From 1f37c265747ce233a9690c6e664dde3a60e8086a Mon Sep 17 00:00:00 2001 From: James Long Date: Mon, 29 Jun 2026 22:53:42 -0400 Subject: [PATCH] refactor(opencode): use layer nodes in remaining harnesses (#34516) --- packages/opencode/test/effect/runtime-flags.test.ts | 3 ++- .../test/session/structured-output-integration.test.ts | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/opencode/test/effect/runtime-flags.test.ts b/packages/opencode/test/effect/runtime-flags.test.ts index 2e1226b38b..19b249182b 100644 --- a/packages/opencode/test/effect/runtime-flags.test.ts +++ b/packages/opencode/test/effect/runtime-flags.test.ts @@ -1,10 +1,11 @@ import { describe, expect } from "bun:test" import { ConfigProvider, Effect, Layer } from "effect" +import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { RuntimeFlags } from "../../src/effect/runtime-flags" import { it } from "../lib/effect" const fromConfig = (input: Record) => - RuntimeFlags.defaultLayer.pipe(Layer.provide(ConfigProvider.layer(ConfigProvider.fromUnknown(input)))) + AppNodeBuilder.build(RuntimeFlags.node).pipe(Layer.provide(ConfigProvider.layer(ConfigProvider.fromUnknown(input)))) const readFlags = RuntimeFlags.Service.useSync((flags) => flags) diff --git a/packages/opencode/test/session/structured-output-integration.test.ts b/packages/opencode/test/session/structured-output-integration.test.ts index 319b3bd728..9c97a94bb1 100644 --- a/packages/opencode/test/session/structured-output-integration.test.ts +++ b/packages/opencode/test/session/structured-output-integration.test.ts @@ -1,7 +1,9 @@ import { describe, expect, test } from "bun:test" import { SessionV1 } from "@opencode-ai/core/v1/session" import { Ripgrep } from "@opencode-ai/core/ripgrep" -import { Effect, Layer } from "effect" +import { Effect } from "effect" +import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" +import { LayerNode } from "@opencode-ai/core/effect/layer-node" import { Session } from "@/session/session" import { SessionPrompt } from "../../src/session/prompt" import { MessageV2 } from "../../src/session/message-v2" @@ -10,7 +12,7 @@ import { testEffect } from "../lib/effect" // Skip tests if no API key is available const hasApiKey = !!process.env.ANTHROPIC_API_KEY const it = testEffect( - Layer.mergeAll(SessionPrompt.defaultLayer, Session.defaultLayer).pipe(Layer.provide(Ripgrep.defaultLayer)), + AppNodeBuilder.build(LayerNode.group([SessionPrompt.node, Session.node, Ripgrep.node])), ) const live = hasApiKey ? it.instance : it.instance.skip