Files
anomalyco_opencode/packages/opencode/src/control-plane/workspace-context.ts
T
2026-05-30 21:08:38 -04:00

27 lines
707 B
TypeScript

import { LocalContext } from "@/util/local-context"
import type { WorkspaceV2 } from "@opencode-ai/core/workspace"
export interface WorkspaceContext {
workspaceID: WorkspaceV2.ID | undefined
}
const context = LocalContext.create<WorkspaceContext>("instance")
export const WorkspaceContext = {
async provide<R>(input: { workspaceID?: WorkspaceV2.ID; fn: () => R }): Promise<R> {
return context.provide({ workspaceID: input.workspaceID }, () => input.fn())
},
restore<R>(workspaceID: WorkspaceV2.ID, fn: () => R): R {
return context.provide({ workspaceID }, fn)
},
get workspaceID() {
try {
return context.use().workspaceID
} catch {
return undefined
}
},
}