From 9205dfe72471204b2d7638123a3553f0202b5c2b Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Mon, 29 Jun 2026 15:37:20 +0000 Subject: [PATCH] chore: generate --- packages/core/src/effect/layer-node.ts | 16 +++++++------- packages/core/test/filesystem/watcher.test.ts | 4 +--- .../core/test/instruction-context.test.ts | 13 ++++++++---- packages/core/test/permission.test.ts | 9 +++++++- packages/core/test/plugin/command.test.ts | 7 ++++--- packages/core/test/policy.test.ts | 5 ++++- packages/core/test/session-create.test.ts | 11 ++++++---- packages/core/test/session-history.test.ts | 11 ++++++---- packages/core/test/session-prompt.test.ts | 7 ++++--- .../test/session-runner-tool-registry.test.ts | 4 +++- packages/core/test/snapshot.test.ts | 15 +++++++------ packages/core/test/tool-apply-patch.test.ts | 8 ++++++- packages/core/test/tool-bash.test.ts | 17 ++++++++------- packages/core/test/tool-edit.test.ts | 21 +++++++++++++------ packages/core/test/tool-websearch.test.ts | 15 +++++++------ packages/core/test/tool-write.test.ts | 21 +++++++++++++------ 16 files changed, 119 insertions(+), 65 deletions(-) diff --git a/packages/core/src/effect/layer-node.ts b/packages/core/src/effect/layer-node.ts index 00a759f9f3..b58692a155 100644 --- a/packages/core/src/effect/layer-node.ts +++ b/packages/core/src/effect/layer-node.ts @@ -272,13 +272,15 @@ export function compile( } function replacementMapFrom(replacements?: Replacements) { - return replacements?.reduce((map, [source, replacement]) => { - const normalized = rewriteReplacementDependencies(replacementNode(source, replacement), map) - const current = new Map([[source.name, normalized]]) - for (const [name, node] of map) map.set(name, rewriteReplacementDependencies(node, current)) - map.set(source.name, normalized) - return map - }, new Map()) ?? new Map() + return ( + replacements?.reduce((map, [source, replacement]) => { + const normalized = rewriteReplacementDependencies(replacementNode(source, replacement), map) + const current = new Map([[source.name, normalized]]) + for (const [name, node] of map) map.set(name, rewriteReplacementDependencies(node, current)) + map.set(source.name, normalized) + return map + }, new Map()) ?? new Map() + ) } function rewriteReplacementDependencies(root: AnyNode, replacements: ReadonlyMap) { diff --git a/packages/core/test/filesystem/watcher.test.ts b/packages/core/test/filesystem/watcher.test.ts index c8eaa579fe..bce2bf69c2 100644 --- a/packages/core/test/filesystem/watcher.test.ts +++ b/packages/core/test/filesystem/watcher.test.ts @@ -44,9 +44,7 @@ function provide(directory: string, vcs?: Location.Interface["vcs"]) { AppNodeBuilder.build(Watcher.node, [ [Config.node, configLayer], [Location.node, locationLayer], - ]).pipe( - Layer.provide(flagsLayer), - ), + ]).pipe(Layer.provide(flagsLayer)), ) } diff --git a/packages/core/test/instruction-context.test.ts b/packages/core/test/instruction-context.test.ts index da0649e567..0a61ede3f0 100644 --- a/packages/core/test/instruction-context.test.ts +++ b/packages/core/test/instruction-context.test.ts @@ -17,9 +17,11 @@ import { testEffect } from "./lib/effect" const it = testEffect(Layer.empty) -const instructionLayer = ( - input: { config: string; locationServiceLayer: Layer.Layer; filesystemLayer?: Layer.Layer }, -) => +const instructionLayer = (input: { + config: string + locationServiceLayer: Layer.Layer + filesystemLayer?: Layer.Layer +}) => AppNodeBuilder.build(LayerNode.group([SystemContextRegistry.node, InstructionContext.node]), [ [Global.node, Global.layerWith({ config: input.config })], [Location.node, input.locationServiceLayer], @@ -305,7 +307,10 @@ describe("InstructionContext", () => { locationServiceLayer: Layer.succeed( Location.Service, Location.Service.of( - location({ directory: AbsolutePath.make("/outside") }, { projectDirectory: AbsolutePath.make("/repo") }), + location( + { directory: AbsolutePath.make("/outside") }, + { projectDirectory: AbsolutePath.make("/repo") }, + ), ), ), }), diff --git a/packages/core/test/permission.test.ts b/packages/core/test/permission.test.ts index c627483c4a..a556f1fce2 100644 --- a/packages/core/test/permission.test.ts +++ b/packages/core/test/permission.test.ts @@ -25,7 +25,14 @@ const current = Layer.succeed( ) const it = testEffect( AppNodeBuilder.build( - LayerNode.group([Database.node, EventV2.node, SessionStore.node, PermissionSaved.node, AgentV2.node, PermissionV2.node]), + LayerNode.group([ + Database.node, + EventV2.node, + SessionStore.node, + PermissionSaved.node, + AgentV2.node, + PermissionV2.node, + ]), [[Location.node, current]], ), ) diff --git a/packages/core/test/plugin/command.test.ts b/packages/core/test/plugin/command.test.ts index 4a49fe48db..d163cd903a 100644 --- a/packages/core/test/plugin/command.test.ts +++ b/packages/core/test/plugin/command.test.ts @@ -11,10 +11,11 @@ import { host } from "./host" const directory = AbsolutePath.make("/repo/packages/app") const project = AbsolutePath.make("/repo") -const locationLayer = Layer.succeed(Location.Service, Location.Service.of(location({ directory }, { projectDirectory: project }))) -const it = testEffect( - AppNodeBuilder.build(CommandV2.node, [[Location.node, locationLayer]]), +const locationLayer = Layer.succeed( + Location.Service, + Location.Service.of(location({ directory }, { projectDirectory: project })), ) +const it = testEffect(AppNodeBuilder.build(CommandV2.node, [[Location.node, locationLayer]])) describe("CommandPlugin.Plugin", () => { it.effect("registers built-in init and review commands", () => diff --git a/packages/core/test/policy.test.ts b/packages/core/test/policy.test.ts index 9b5309c6d6..1428c1b830 100644 --- a/packages/core/test/policy.test.ts +++ b/packages/core/test/policy.test.ts @@ -9,7 +9,10 @@ import { testEffect } from "./lib/effect" const it = testEffect( AppNodeBuilder.build(Policy.node, [ - [Location.node, Layer.succeed(Location.Service, Location.Service.of(location({ directory: AbsolutePath.make("test") })))], + [ + Location.node, + Layer.succeed(Location.Service, Location.Service.of(location({ directory: AbsolutePath.make("test") }))), + ], ]), ) diff --git a/packages/core/test/session-create.test.ts b/packages/core/test/session-create.test.ts index 54ff364901..4688ede82d 100644 --- a/packages/core/test/session-create.test.ts +++ b/packages/core/test/session-create.test.ts @@ -36,10 +36,13 @@ const projects = Layer.succeed( }), ) const it = testEffect( - AppNodeBuilder.build(LayerNode.group([Database.node, EventV2.node, SessionProjector.node, SessionStore.node, SessionV2.node]), [ - [ProjectV2.node, projects], - [SessionExecution.node, SessionExecution.noopLayer], - ]), + AppNodeBuilder.build( + LayerNode.group([Database.node, EventV2.node, SessionProjector.node, SessionStore.node, SessionV2.node]), + [ + [ProjectV2.node, projects], + [SessionExecution.node, SessionExecution.noopLayer], + ], + ), ) const location = Location.Ref.make({ directory: AbsolutePath.make("/project") }) const id = SessionV2.ID.create() diff --git a/packages/core/test/session-history.test.ts b/packages/core/test/session-history.test.ts index e5cb7eccc4..c67f776d29 100644 --- a/packages/core/test/session-history.test.ts +++ b/packages/core/test/session-history.test.ts @@ -24,10 +24,13 @@ const projects = Layer.succeed( }), ) const it = testEffect( - AppNodeBuilder.build(LayerNode.group([Database.node, EventV2.node, SessionProjector.node, SessionStore.node, SessionV2.node]), [ - [ProjectV2.node, projects], - [SessionExecution.node, SessionExecution.noopLayer], - ]), + AppNodeBuilder.build( + LayerNode.group([Database.node, EventV2.node, SessionProjector.node, SessionStore.node, SessionV2.node]), + [ + [ProjectV2.node, projects], + [SessionExecution.node, SessionExecution.noopLayer], + ], + ), ) const location = Location.Ref.make({ directory: AbsolutePath.make("/project") }) diff --git a/packages/core/test/session-prompt.test.ts b/packages/core/test/session-prompt.test.ts index 7c0c824b71..c6bc9430b3 100644 --- a/packages/core/test/session-prompt.test.ts +++ b/packages/core/test/session-prompt.test.ts @@ -43,9 +43,10 @@ const execution = Layer.succeed( }), ) const it = testEffect( - AppNodeBuilder.build(LayerNode.group([Database.node, EventV2.node, SessionProjector.node, SessionStore.node, SessionV2.node]), [ - [SessionExecution.node, execution], - ]), + AppNodeBuilder.build( + LayerNode.group([Database.node, EventV2.node, SessionProjector.node, SessionStore.node, SessionV2.node]), + [[SessionExecution.node, execution]], + ), ) const sessionID = SessionV2.ID.make("ses_prompt_test") const messageID = SessionMessage.ID.create() diff --git a/packages/core/test/session-runner-tool-registry.test.ts b/packages/core/test/session-runner-tool-registry.test.ts index 68597f8452..82cd015aaf 100644 --- a/packages/core/test/session-runner-tool-registry.test.ts +++ b/packages/core/test/session-runner-tool-registry.test.ts @@ -32,7 +32,9 @@ const outputStore = Layer.mock(ToolOutputStore.Service, { const registryLayer = AppNodeBuilder.build(ToolRegistry.node, [[ToolOutputStore.node, outputStore]]) const it = testEffect(registryLayer) const integrated = testEffect( - AppNodeBuilder.build(LayerNode.group([ApplicationTools.node, ToolRegistry.node]), [[ToolOutputStore.node, outputStore]]), + AppNodeBuilder.build(LayerNode.group([ApplicationTools.node, ToolRegistry.node]), [ + [ToolOutputStore.node, outputStore], + ]), ) const identity = { agent: AgentV2.ID.make("build"), diff --git a/packages/core/test/snapshot.test.ts b/packages/core/test/snapshot.test.ts index db0a43168d..5e01fefc17 100644 --- a/packages/core/test/snapshot.test.ts +++ b/packages/core/test/snapshot.test.ts @@ -114,7 +114,9 @@ describe("Snapshot", () => { const projectID = yield* Effect.gen(function* () { return (yield* Location.Service).project.id }).pipe( - Effect.provide(AppNodeBuilder.build(Location.boundNode(Location.Ref.make({ directory: AbsolutePath.make(project) })))), + Effect.provide( + AppNodeBuilder.build(Location.boundNode(Location.Ref.make({ directory: AbsolutePath.make(project) }))), + ), ) expect( yield* Effect.promise(() => fs.stat(path.join(tmp.path, "snapshot", projectID, Hash.fast(project)))), @@ -165,13 +167,10 @@ describe("Snapshot", () => { }) function snapshotLayer(data: string, directory: string) { - return AppNodeBuilder.build( - Snapshot.node, - [ - [Location.node, Location.boundNode(Location.Ref.make({ directory: AbsolutePath.make(directory) }))], - [Global.node, Global.layerWith({ data, config: path.join(data, "config") })], - ], - ) + return AppNodeBuilder.build(Snapshot.node, [ + [Location.node, Location.boundNode(Location.Ref.make({ directory: AbsolutePath.make(directory) }))], + [Global.node, Global.layerWith({ data, config: path.join(data, "config") })], + ]) } function read(file: string) { diff --git a/packages/core/test/tool-apply-patch.test.ts b/packages/core/test/tool-apply-patch.test.ts index 5efcf8538a..b986d4972a 100644 --- a/packages/core/test/tool-apply-patch.test.ts +++ b/packages/core/test/tool-apply-patch.test.ts @@ -96,7 +96,13 @@ const withTool = (directory: string, body: (registry: ToolRegistry.Inte }).pipe( Effect.provide( AppNodeBuilder.build( - LayerNode.group([ToolRegistry.node, ToolRegistry.toolsNode, LocationMutation.node, FileMutation.node, ApplyPatchTool.node]), + LayerNode.group([ + ToolRegistry.node, + ToolRegistry.toolsNode, + LocationMutation.node, + FileMutation.node, + ApplyPatchTool.node, + ]), [ [FSUtil.node, filesystem], [Location.node, activeLocation], diff --git a/packages/core/test/tool-bash.test.ts b/packages/core/test/tool-bash.test.ts index 8b602f858b..3a969e9570 100644 --- a/packages/core/test/tool-bash.test.ts +++ b/packages/core/test/tool-bash.test.ts @@ -110,13 +110,16 @@ const withTool = ( return yield* body(yield* ToolRegistry.Service) }).pipe( Effect.provide( - AppNodeBuilder.build(LayerNode.group([ToolRegistry.node, ToolRegistry.toolsNode, LocationMutation.node, BashTool.node]), [ - [Location.node, activeLocation], - [PermissionV2.node, permission], - [AppProcess.node, processLayer], - [Config.node, config], - [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], - ]), + AppNodeBuilder.build( + LayerNode.group([ToolRegistry.node, ToolRegistry.toolsNode, LocationMutation.node, BashTool.node]), + [ + [Location.node, activeLocation], + [PermissionV2.node, permission], + [AppProcess.node, processLayer], + [Config.node, config], + [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], + ], + ), ), ) } diff --git a/packages/core/test/tool-edit.test.ts b/packages/core/test/tool-edit.test.ts index 4b05f9579d..2c684523b7 100644 --- a/packages/core/test/tool-edit.test.ts +++ b/packages/core/test/tool-edit.test.ts @@ -85,12 +85,21 @@ const withTool = (directory: string, body: (registry: ToolRegistry.Inte return yield* body(yield* ToolRegistry.Service) }).pipe( Effect.provide( - AppNodeBuilder.build(LayerNode.group([ToolRegistry.node, ToolRegistry.toolsNode, LocationMutation.node, FileMutation.node, EditTool.node]), [ - [FSUtil.node, filesystem], - [Location.node, activeLocation], - [PermissionV2.node, permission], - [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], - ]), + AppNodeBuilder.build( + LayerNode.group([ + ToolRegistry.node, + ToolRegistry.toolsNode, + LocationMutation.node, + FileMutation.node, + EditTool.node, + ]), + [ + [FSUtil.node, filesystem], + [Location.node, activeLocation], + [PermissionV2.node, permission], + [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], + ], + ), ), ) } diff --git a/packages/core/test/tool-websearch.test.ts b/packages/core/test/tool-websearch.test.ts index 4f3c8f156c..0b99a80ecb 100644 --- a/packages/core/test/tool-websearch.test.ts +++ b/packages/core/test/tool-websearch.test.ts @@ -124,12 +124,15 @@ const websearchConfig = Layer.succeed( }), ) const it = testEffect( - AppNodeBuilder.build(LayerNode.group([ToolRegistry.node, ToolRegistry.toolsNode, WebSearchTool.configNode, WebSearchTool.node]), [ - [PermissionV2.node, permission], - [LayerNodePlatform.httpClient, http], - [WebSearchTool.configNode, websearchConfig], - [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], - ]), + AppNodeBuilder.build( + LayerNode.group([ToolRegistry.node, ToolRegistry.toolsNode, WebSearchTool.configNode, WebSearchTool.node]), + [ + [PermissionV2.node, permission], + [LayerNodePlatform.httpClient, http], + [WebSearchTool.configNode, websearchConfig], + [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], + ], + ), ) describe("WebSearchTool registration", () => { diff --git a/packages/core/test/tool-write.test.ts b/packages/core/test/tool-write.test.ts index fcbe31b684..a45bf73ee4 100644 --- a/packages/core/test/tool-write.test.ts +++ b/packages/core/test/tool-write.test.ts @@ -69,12 +69,21 @@ const withTool = (directory: string, body: (registry: ToolRegistry.Inte return yield* body(yield* ToolRegistry.Service) }).pipe( Effect.provide( - AppNodeBuilder.build(LayerNode.group([ToolRegistry.node, ToolRegistry.toolsNode, LocationMutation.node, FileMutation.node, WriteTool.node]), [ - [FSUtil.node, filesystem], - [Location.node, activeLocation], - [PermissionV2.node, permission], - [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], - ]), + AppNodeBuilder.build( + LayerNode.group([ + ToolRegistry.node, + ToolRegistry.toolsNode, + LocationMutation.node, + FileMutation.node, + WriteTool.node, + ]), + [ + [FSUtil.node, filesystem], + [Location.node, activeLocation], + [PermissionV2.node, permission], + [ToolOutputStore.node, ToolOutputStore.nodeWithoutConfig], + ], + ), ), ) }