From 0e2038239699b430595980be2939c08c5e4cde93 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 15 Apr 2026 23:41:34 -0400 Subject: [PATCH] fix: resolve circular sibling imports causing runtime ReferenceError (#22752) --- packages/opencode/src/config/config.ts | 6 +++--- packages/opencode/src/config/tui-migrate.ts | 2 +- packages/opencode/src/config/tui-schema.ts | 2 +- packages/opencode/src/config/tui.ts | 4 ++-- packages/opencode/src/effect/app-runtime.ts | 2 +- packages/opencode/src/effect/bootstrap-runtime.ts | 2 +- packages/opencode/src/effect/instance-state.ts | 2 +- packages/opencode/src/effect/observability.ts | 2 +- packages/opencode/src/effect/run-service.ts | 2 +- packages/opencode/src/lsp/client.ts | 2 +- packages/opencode/src/lsp/lsp.ts | 4 ++-- packages/opencode/src/project/bootstrap.ts | 4 ++-- packages/opencode/src/project/instance.ts | 2 +- packages/opencode/src/provider/transform.ts | 2 +- packages/opencode/src/session/compaction.ts | 2 +- packages/opencode/src/session/processor.ts | 2 +- packages/opencode/src/session/projectors.ts | 2 +- packages/opencode/src/session/prompt.ts | 2 +- packages/opencode/src/session/revert.ts | 2 +- packages/opencode/src/session/run-state.ts | 2 +- packages/opencode/src/session/summary.ts | 2 +- packages/opencode/src/share/session.ts | 2 +- packages/opencode/src/util/archive.ts | 2 +- 23 files changed, 28 insertions(+), 28 deletions(-) diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index d8cfd5e48f..8690dbda2d 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -19,9 +19,9 @@ import { printParseErrorCode, } from "jsonc-parser" import { Instance, type InstanceContext } from "../project/instance" -import { LSPServer } from "../lsp" +import * as LSPServer from "../lsp/server" import { Installation } from "@/installation" -import { ConfigMarkdown } from "." +import * as ConfigMarkdown from "./markdown" import { existsSync } from "fs" import { Bus } from "@/bus" import { GlobalBus } from "@/bus/global" @@ -29,7 +29,7 @@ import { Event } from "../server/event" import { Glob } from "@opencode-ai/shared/util/glob" import { Account } from "@/account" import { isRecord } from "@/util/record" -import { ConfigPaths } from "." +import * as ConfigPaths from "./paths" import type { ConsoleState } from "./console-state" import { AppFileSystem } from "@opencode-ai/shared/filesystem" import { InstanceState } from "@/effect" diff --git a/packages/opencode/src/config/tui-migrate.ts b/packages/opencode/src/config/tui-migrate.ts index 18cee554d5..ed19474be2 100644 --- a/packages/opencode/src/config/tui-migrate.ts +++ b/packages/opencode/src/config/tui-migrate.ts @@ -2,7 +2,7 @@ import path from "path" import { type ParseError as JsoncParseError, applyEdits, modify, parse as parseJsonc } from "jsonc-parser" import { unique } from "remeda" import z from "zod" -import { ConfigPaths } from "." +import * as ConfigPaths from "./paths" import { TuiInfo, TuiOptions } from "./tui-schema" import { Instance } from "@/project/instance" import { Flag } from "@/flag/flag" diff --git a/packages/opencode/src/config/tui-schema.ts b/packages/opencode/src/config/tui-schema.ts index fd5cd8c88d..3be988370d 100644 --- a/packages/opencode/src/config/tui-schema.ts +++ b/packages/opencode/src/config/tui-schema.ts @@ -1,5 +1,5 @@ import z from "zod" -import { Config } from "." +import * as Config from "./config" const KeybindOverride = z .object( diff --git a/packages/opencode/src/config/tui.ts b/packages/opencode/src/config/tui.ts index 43f1bce460..3cde908b03 100644 --- a/packages/opencode/src/config/tui.ts +++ b/packages/opencode/src/config/tui.ts @@ -2,8 +2,8 @@ import { existsSync } from "fs" import z from "zod" import { mergeDeep, unique } from "remeda" import { Context, Effect, Fiber, Layer } from "effect" -import { Config } from "." -import { ConfigPaths } from "." +import * as Config from "./config" +import * as ConfigPaths from "./paths" import { migrateTuiConfig } from "./tui-migrate" import { TuiInfo } from "./tui-schema" import { Flag } from "@/flag/flag" diff --git a/packages/opencode/src/effect/app-runtime.ts b/packages/opencode/src/effect/app-runtime.ts index 3e28183448..0b76e96a84 100644 --- a/packages/opencode/src/effect/app-runtime.ts +++ b/packages/opencode/src/effect/app-runtime.ts @@ -1,6 +1,6 @@ import { Layer, ManagedRuntime } from "effect" import { attach, memoMap } from "./run-service" -import { Observability } from "." +import * as Observability from "./observability" import { AppFileSystem } from "@opencode-ai/shared/filesystem" import { Bus } from "@/bus" diff --git a/packages/opencode/src/effect/bootstrap-runtime.ts b/packages/opencode/src/effect/bootstrap-runtime.ts index 208a83bf85..89cc071561 100644 --- a/packages/opencode/src/effect/bootstrap-runtime.ts +++ b/packages/opencode/src/effect/bootstrap-runtime.ts @@ -10,7 +10,7 @@ import { File } from "@/file" import { Vcs } from "@/project" import { Snapshot } from "@/snapshot" import { Bus } from "@/bus" -import { Observability } from "." +import * as Observability from "./observability" export const BootstrapLayer = Layer.mergeAll( Plugin.defaultLayer, diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index d71f82df97..7095657f5d 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -1,5 +1,5 @@ import { Effect, Fiber, ScopedCache, Scope, Context } from "effect" -import { EffectLogger } from "@/effect" +import * as EffectLogger from "./logger" import { Instance, type InstanceContext } from "@/project/instance" import { LocalContext } from "@/util" import { InstanceRef, WorkspaceRef } from "./instance-ref" diff --git a/packages/opencode/src/effect/observability.ts b/packages/opencode/src/effect/observability.ts index 4e8ae22217..2f4040113d 100644 --- a/packages/opencode/src/effect/observability.ts +++ b/packages/opencode/src/effect/observability.ts @@ -1,7 +1,7 @@ import { Effect, Layer, Logger } from "effect" import { FetchHttpClient } from "effect/unstable/http" import { OtlpLogger, OtlpSerialization } from "effect/unstable/observability" -import { EffectLogger } from "@/effect" +import * as EffectLogger from "./logger" import { Flag } from "@/flag/flag" import { CHANNEL, VERSION } from "@/installation/meta" diff --git a/packages/opencode/src/effect/run-service.ts b/packages/opencode/src/effect/run-service.ts index a9d653b108..28265f9b27 100644 --- a/packages/opencode/src/effect/run-service.ts +++ b/packages/opencode/src/effect/run-service.ts @@ -3,7 +3,7 @@ import * as Context from "effect/Context" import { Instance } from "@/project/instance" import { LocalContext } from "@/util" import { InstanceRef, WorkspaceRef } from "./instance-ref" -import { Observability } from "." +import * as Observability from "./observability" import { WorkspaceContext } from "@/control-plane/workspace-context" import type { InstanceContext } from "@/project/instance" diff --git a/packages/opencode/src/lsp/client.ts b/packages/opencode/src/lsp/client.ts index fed2bf5c99..59a64ca1ed 100644 --- a/packages/opencode/src/lsp/client.ts +++ b/packages/opencode/src/lsp/client.ts @@ -8,7 +8,7 @@ import { Log } from "../util" import { Process } from "../util" import { LANGUAGE_EXTENSIONS } from "./language" import z from "zod" -import type { LSPServer } from "." +import type * as LSPServer from "./server" import { NamedError } from "@opencode-ai/shared/util/error" import { withTimeout } from "../util/timeout" import { Instance } from "../project/instance" diff --git a/packages/opencode/src/lsp/lsp.ts b/packages/opencode/src/lsp/lsp.ts index 7f5b36313d..2c0982eca5 100644 --- a/packages/opencode/src/lsp/lsp.ts +++ b/packages/opencode/src/lsp/lsp.ts @@ -1,10 +1,10 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" import { Log } from "../util" -import { LSPClient } from "." +import * as LSPClient from "./client" import path from "path" import { pathToFileURL, fileURLToPath } from "url" -import { LSPServer } from "." +import * as LSPServer from "./server" import z from "zod" import { Config } from "../config" import { Instance } from "../project/instance" diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index 27ed35b7f0..a405607bea 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -3,8 +3,8 @@ import { Format } from "../format" import { LSP } from "../lsp" import { File } from "../file" import { Snapshot } from "../snapshot" -import { Project } from "." -import { Vcs } from "." +import * as Project from "./project" +import * as Vcs from "./vcs" import { Bus } from "../bus" import { Command } from "../command" import { Instance } from "./instance" diff --git a/packages/opencode/src/project/instance.ts b/packages/opencode/src/project/instance.ts index b95962ae08..056eede01b 100644 --- a/packages/opencode/src/project/instance.ts +++ b/packages/opencode/src/project/instance.ts @@ -5,7 +5,7 @@ import { AppFileSystem } from "@opencode-ai/shared/filesystem" import { iife } from "@/util/iife" import { Log } from "@/util" import { LocalContext } from "../util" -import { Project } from "." +import * as Project from "./project" import { WorkspaceContext } from "@/control-plane/workspace-context" export interface InstanceContext { diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 7b83c245f4..a0d3e2258a 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -2,7 +2,7 @@ import type { ModelMessage } from "ai" import { mergeDeep, unique } from "remeda" import type { JSONSchema7 } from "@ai-sdk/provider" import type { JSONSchema } from "zod/v4/core" -import type { Provider } from "." +import type * as Provider from "./provider" import type { ModelsDev } from "./models" import { iife } from "@/util/iife" import { Flag } from "@/flag/flag" diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 5ad80b6b02..3ef6977547 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -1,6 +1,6 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" -import { Session } from "." +import * as Session from "./session" import { SessionID, MessageID, PartID } from "./schema" import { Provider } from "../provider" import { MessageV2 } from "./message-v2" diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 72b27403bd..415639fbe5 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -6,7 +6,7 @@ import { Config } from "@/config" import { Permission } from "@/permission" import { Plugin } from "@/plugin" import { Snapshot } from "@/snapshot" -import { Session } from "." +import * as Session from "./session" import { LLM } from "./llm" import { MessageV2 } from "./message-v2" import { isOverflow } from "./overflow" diff --git a/packages/opencode/src/session/projectors.ts b/packages/opencode/src/session/projectors.ts index 9a36ef5b3b..fb8354dda1 100644 --- a/packages/opencode/src/session/projectors.ts +++ b/packages/opencode/src/session/projectors.ts @@ -1,6 +1,6 @@ import { NotFoundError, eq, and } from "../storage" import { SyncEvent } from "@/sync" -import { Session } from "." +import * as Session from "./session" import { MessageV2 } from "./message-v2" import { SessionTable, MessageTable, PartTable } from "./session.sql" import { Log } from "../util" diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 1d4bb66bc5..65fc7c8c70 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -5,7 +5,7 @@ import { SessionID, MessageID, PartID } from "./schema" import { MessageV2 } from "./message-v2" import { Log } from "../util" import { SessionRevert } from "./revert" -import { Session } from "." +import * as Session from "./session" import { Agent } from "../agent/agent" import { Provider } from "../provider" import { ModelID, ProviderID } from "../provider/schema" diff --git a/packages/opencode/src/session/revert.ts b/packages/opencode/src/session/revert.ts index 93d0e6219c..f09ccf24ad 100644 --- a/packages/opencode/src/session/revert.ts +++ b/packages/opencode/src/session/revert.ts @@ -5,7 +5,7 @@ import { Snapshot } from "../snapshot" import { Storage } from "@/storage" import { SyncEvent } from "../sync" import { Log } from "../util" -import { Session } from "." +import * as Session from "./session" import { MessageV2 } from "./message-v2" import { SessionID, MessageID, PartID } from "./schema" import { SessionRunState } from "./run-state" diff --git a/packages/opencode/src/session/run-state.ts b/packages/opencode/src/session/run-state.ts index 179f287fa8..a18e0b5732 100644 --- a/packages/opencode/src/session/run-state.ts +++ b/packages/opencode/src/session/run-state.ts @@ -1,7 +1,7 @@ import { InstanceState } from "@/effect" import { Runner } from "@/effect" import { Effect, Layer, Scope, Context } from "effect" -import { Session } from "." +import * as Session from "./session" import { MessageV2 } from "./message-v2" import { SessionID } from "./schema" import { SessionStatus } from "./status" diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index 21203c326b..9f8e70f162 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -3,7 +3,7 @@ import { Effect, Layer, Context } from "effect" import { Bus } from "@/bus" import { Snapshot } from "@/snapshot" import { Storage } from "@/storage" -import { Session } from "." +import * as Session from "./session" import { MessageV2 } from "./message-v2" import { SessionID, MessageID } from "./schema" diff --git a/packages/opencode/src/share/session.ts b/packages/opencode/src/share/session.ts index 71fa17c889..63b7670785 100644 --- a/packages/opencode/src/share/session.ts +++ b/packages/opencode/src/share/session.ts @@ -4,7 +4,7 @@ import { SyncEvent } from "@/sync" import { Effect, Layer, Scope, Context } from "effect" import { Config } from "../config" import { Flag } from "../flag/flag" -import { ShareNext } from "." +import * as ShareNext from "./share-next" export interface Interface { readonly create: (input?: Session.CreateInput) => Effect.Effect diff --git a/packages/opencode/src/util/archive.ts b/packages/opencode/src/util/archive.ts index 21d014c6a8..97fe6aefb2 100644 --- a/packages/opencode/src/util/archive.ts +++ b/packages/opencode/src/util/archive.ts @@ -1,5 +1,5 @@ import path from "path" -import { Process } from "." +import * as Process from "./process" export async function extractZip(zipPath: string, destDir: string) { if (process.platform === "win32") {