feat: launch as neuron — bin entry + CLI script name

This commit is contained in:
2026-08-21 13:59:45 -05:00
parent 4972fcc4bb
commit 58e0050a81
7 changed files with 17 additions and 5 deletions
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -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
}
},
}