Bläddra i källkod

fix: resolve circular sibling imports causing runtime ReferenceError (#22752)

Kit Langton 4 månader sedan
förälder
incheckning
0e20382396

+ 3 - 3
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"

+ 1 - 1
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"

+ 1 - 1
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(

+ 2 - 2
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"

+ 1 - 1
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"

+ 1 - 1
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,

+ 1 - 1
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"

+ 1 - 1
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"
 

+ 1 - 1
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"
 

+ 1 - 1
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"

+ 2 - 2
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"

+ 2 - 2
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"

+ 1 - 1
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 {

+ 1 - 1
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"

+ 1 - 1
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"

+ 1 - 1
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"

+ 1 - 1
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"

+ 1 - 1
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"

+ 1 - 1
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"

+ 1 - 1
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"

+ 1 - 1
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"
 

+ 1 - 1
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<Session.Info>

+ 1 - 1
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") {