diff --git a/packages/opencode/src/control-plane/workspace-context.ts b/packages/opencode/src/control-plane/workspace-context.ts index 273adbb24a..565472a24f 100644 --- a/packages/opencode/src/control-plane/workspace-context.ts +++ b/packages/opencode/src/control-plane/workspace-context.ts @@ -1,4 +1,4 @@ -import { LocalContext } from "../util/local-context" +import { LocalContext } from "../util" import type { WorkspaceID } from "../control-plane/schema" export interface WorkspaceContext { diff --git a/packages/opencode/src/effect/bridge.ts b/packages/opencode/src/effect/bridge.ts index bafa5a0ea6..7d61b53ee9 100644 --- a/packages/opencode/src/effect/bridge.ts +++ b/packages/opencode/src/effect/bridge.ts @@ -1,7 +1,7 @@ import { Effect, Fiber } from "effect" import { WorkspaceContext } from "@/control-plane/workspace-context" import { Instance, type InstanceContext } from "@/project/instance" -import { LocalContext } from "@/util/local-context" +import { LocalContext } from "@/util" import { InstanceRef, WorkspaceRef } from "./instance-ref" import { attachWith } from "./run-service" diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index b3392d1563..7fc97a5daa 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -1,7 +1,7 @@ import { Effect, Fiber, ScopedCache, Scope, Context } from "effect" import { EffectLogger } from "@/effect/logger" import { Instance, type InstanceContext } from "@/project/instance" -import { LocalContext } from "@/util/local-context" +import { LocalContext } from "@/util" import { InstanceRef, WorkspaceRef } from "./instance-ref" import { registerDisposer } from "./instance-registry" import { WorkspaceContext } from "@/control-plane/workspace-context" diff --git a/packages/opencode/src/effect/run-service.ts b/packages/opencode/src/effect/run-service.ts index 3de82e0d11..9553e7a3aa 100644 --- a/packages/opencode/src/effect/run-service.ts +++ b/packages/opencode/src/effect/run-service.ts @@ -1,7 +1,7 @@ import { Effect, Layer, ManagedRuntime } from "effect" import * as Context from "effect/Context" import { Instance } from "@/project/instance" -import { LocalContext } from "@/util/local-context" +import { LocalContext } from "@/util" import { InstanceRef, WorkspaceRef } from "./instance-ref" import { Observability } from "./observability" import { WorkspaceContext } from "@/control-plane/workspace-context" diff --git a/packages/opencode/src/project/instance.ts b/packages/opencode/src/project/instance.ts index 2a20ecac97..e8e3fdc403 100644 --- a/packages/opencode/src/project/instance.ts +++ b/packages/opencode/src/project/instance.ts @@ -4,7 +4,7 @@ import { makeRuntime } from "@/effect/run-service" import { AppFileSystem } from "@opencode-ai/shared/filesystem" import { iife } from "@/util/iife" import { Log } from "@/util/log" -import { LocalContext } from "../util/local-context" +import { LocalContext } from "../util" import { Project } from "./project" import { WorkspaceContext } from "@/control-plane/workspace-context" diff --git a/packages/opencode/src/storage/db.ts b/packages/opencode/src/storage/db.ts index 68a41e471f..d579646320 100644 --- a/packages/opencode/src/storage/db.ts +++ b/packages/opencode/src/storage/db.ts @@ -2,7 +2,7 @@ import { type SQLiteBunDatabase } from "drizzle-orm/bun-sqlite" import { migrate } from "drizzle-orm/bun-sqlite/migrator" import { type SQLiteTransaction } from "drizzle-orm/sqlite-core" export * from "drizzle-orm" -import { LocalContext } from "../util/local-context" +import { LocalContext } from "../util" import { lazy } from "../util/lazy" import { Global } from "../global" import { Log } from "../util/log" diff --git a/packages/opencode/src/util/index.ts b/packages/opencode/src/util/index.ts new file mode 100644 index 0000000000..1f0a550466 --- /dev/null +++ b/packages/opencode/src/util/index.ts @@ -0,0 +1 @@ +export * as LocalContext from "./local-context" diff --git a/packages/opencode/src/util/local-context.ts b/packages/opencode/src/util/local-context.ts index 26f88ab09e..c1aef946f4 100644 --- a/packages/opencode/src/util/local-context.ts +++ b/packages/opencode/src/util/local-context.ts @@ -1,25 +1,23 @@ import { AsyncLocalStorage } from "async_hooks" -export namespace LocalContext { - export class NotFound extends Error { - constructor(public override readonly name: string) { - super(`No context found for ${name}`) - } - } - - export function create(name: string) { - const storage = new AsyncLocalStorage() - return { - use() { - const result = storage.getStore() - if (!result) { - throw new NotFound(name) - } - return result - }, - provide(value: T, fn: () => R) { - return storage.run(value, fn) - }, - } +export class NotFound extends Error { + constructor(public override readonly name: string) { + super(`No context found for ${name}`) + } +} + +export function create(name: string) { + const storage = new AsyncLocalStorage() + return { + use() { + const result = storage.getStore() + if (!result) { + throw new NotFound(name) + } + return result + }, + provide(value: T, fn: () => R) { + return storage.run(value, fn) + }, } }