diff options
| author | Kit Langton <[email protected]> | 2026-04-30 21:29:28 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-30 21:29:28 -0400 |
| commit | 8aa8798e076b7f3ca40c8dd0b34256413e049dae (patch) | |
| tree | 791b25d4dc9c7c703d4d0ec6f24fc8d92c3a66b6 | |
| parent | 6d4629b566f2ab7e689e9ea0600dfbce63b68952 (diff) | |
| download | opencode-8aa8798e076b7f3ca40c8dd0b34256413e049dae.tar.gz opencode-8aa8798e076b7f3ca40c8dd0b34256413e049dae.zip | |
refactor(session): yield instance context in llm (#25200)
| -rw-r--r-- | packages/opencode/src/session/llm.ts | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index b8b891185..58677debc 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -7,7 +7,7 @@ import { mergeDeep, pipe } from "remeda" import { GitLabWorkflowLanguageModel } from "gitlab-ai-provider" import { ProviderTransform } from "@/provider/transform" import { Config } from "@/config/config" -import { Instance } from "@/project/instance" +import { InstanceState } from "@/effect/instance-state" import type { Agent } from "@/agent/agent" import type { MessageV2 } from "./message-v2" import { Plugin } from "@/plugin" @@ -268,7 +268,7 @@ const live: Layer.Layer< const bridge = yield* EffectBridge.make() const approvedToolsForSession = new Set<string>() - workflowModel.approvalHandler = Instance.bind(async (approvalTools) => { + workflowModel.approvalHandler = InstanceState.bind(async (approvalTools) => { const uniqueNames = [...new Set(approvalTools.map((t: { name: string }) => t.name))] as string[] // Auto-approve tools that were already approved in this session // (prevents infinite approval loops for server-side MCP tools) @@ -330,6 +330,10 @@ const live: Layer.Layer< }) : undefined + const opencodeProjectID = input.model.providerID.startsWith("opencode") + ? (yield* InstanceState.context).project.id + : undefined + return streamText({ onError(error) { l.error("stream error", { @@ -369,7 +373,7 @@ const live: Layer.Layer< headers: { ...(input.model.providerID.startsWith("opencode") ? { - "x-opencode-project": Instance.project.id, + "x-opencode-project": opencodeProjectID, "x-opencode-session": input.sessionID, "x-opencode-request": input.user.id, "x-opencode-client": Flag.OPENCODE_CLIENT, |
