From e148b318b73b748a879d8ef7661c3fea4bb46594 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 1 Apr 2026 21:55:35 -0400 Subject: [PATCH] fix(build): replace require() with dynamic import() in cross-spawn-spawner (#20580) --- packages/opencode/src/effect/cross-spawn-spawner.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/effect/cross-spawn-spawner.ts b/packages/opencode/src/effect/cross-spawn-spawner.ts index 39e50d13da..6e7f09b1d3 100644 --- a/packages/opencode/src/effect/cross-spawn-spawner.ts +++ b/packages/opencode/src/effect/cross-spawn-spawner.ts @@ -491,12 +491,13 @@ export const defaultLayer = layer.pipe(Layer.provide(NodeFileSystem.layer), Laye import { lazy } from "@/util/lazy" -const rt = lazy(() => { +const rt = lazy(async () => { // Dynamic import to avoid circular dep: cross-spawn-spawner → run-service → Instance → project → cross-spawn-spawner - const { makeRuntime } = require("@/effect/run-service") as typeof import("@/effect/run-service") + const { makeRuntime } = await import("@/effect/run-service") return makeRuntime(ChildProcessSpawner, defaultLayer) }) -export const runPromiseExit: ReturnType["runPromiseExit"] = (...args) => - rt().runPromiseExit(...(args as [any])) -export const runPromise: ReturnType["runPromise"] = (...args) => rt().runPromise(...(args as [any])) +type RT = Awaited> +export const runPromiseExit: RT["runPromiseExit"] = async (...args) => + (await rt()).runPromiseExit(...(args as [any])) +export const runPromise: RT["runPromise"] = async (...args) => (await rt()).runPromise(...(args as [any]))