feat: launch as neuron — bin entry + CLI script name
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Context, Effect, Exit, Fiber } from "effect"
|
||||
import { WorkspaceContext } from "@/control-plane/workspace-context"
|
||||
import { WorkspaceContext } from "@/effect/workspace-context"
|
||||
import type { WorkspaceV2 } from "@opencode-ai/core/workspace"
|
||||
import { InstanceRef, WorkspaceRef } from "./instance-ref"
|
||||
import { attachWith } from "./run-service"
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Effect, ScopedCache, Scope } from "effect"
|
||||
import type { InstanceContext } from "@/project/instance-context"
|
||||
import { InstanceRef, WorkspaceRef } from "./instance-ref"
|
||||
import { registerDisposer } from "./instance-registry"
|
||||
import { WorkspaceContext } from "@/control-plane/workspace-context"
|
||||
import { WorkspaceContext } from "@/effect/workspace-context"
|
||||
|
||||
const TypeId = "~opencode/InstanceState"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Effect, Fiber, Layer, ManagedRuntime } from "effect"
|
||||
import * as Context from "effect/Context"
|
||||
import { InstanceRef, WorkspaceRef } from "./instance-ref"
|
||||
import * as Observability from "@opencode-ai/core/observability"
|
||||
import { WorkspaceContext } from "@/control-plane/workspace-context"
|
||||
import { WorkspaceContext } from "@/effect/workspace-context"
|
||||
import type { InstanceContext } from "@/project/instance-context"
|
||||
import { memoMap } from "@opencode-ai/core/effect/memo-map"
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
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
|
||||
}
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user