diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 594663f9..5565f3e0 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -15,6 +15,7 @@ import { } from "ai" import PROMPT_INITIALIZE from "../session/prompt/initialize.txt" +import PROMPT_PLAN from "../session/prompt/plan.txt" import { App } from "../app/app" import { Bus } from "../bus" @@ -607,17 +608,6 @@ export namespace Session { ] }), ).then((x) => x.flat()) - /* - if (inputAgent === "plan") - userParts.push({ - id: Identifier.ascending("part"), - messageID: userMsg.id, - sessionID: input.sessionID, - type: "text", - text: PROMPT_PLAN, - synthetic: true, - }) - */ await Plugin.trigger( "chat.message", {}, @@ -720,6 +710,16 @@ export namespace Session { } const agent = await Agent.get(inputAgent) + if (agent.name === "plan") { + msgs.at(-1)?.parts.push({ + id: Identifier.ascending("part"), + messageID: userMsg.id, + sessionID: input.sessionID, + type: "text", + text: PROMPT_PLAN, + synthetic: true, + }) + } let system = SystemPrompt.header(input.providerID) system.push( ...(() => { diff --git a/packages/opencode/src/session/prompt/plan.txt b/packages/opencode/src/session/prompt/plan.txt index f0e02d26..b17ca1d8 100644 --- a/packages/opencode/src/session/prompt/plan.txt +++ b/packages/opencode/src/session/prompt/plan.txt @@ -1,3 +1,8 @@ -Plan mode is active. The user indicated that they do not want you to execute yet -- you MUST NOT make any edits, run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supersedes any other instructions you have received (for example, to make edits). +Plan mode is active. The user indicated that they do not want you to execute yet +-- you MUST NOT make any edits, run any non-readonly tools (including changing +configs or making commits), or otherwise make any changes to the system. This +supersedes any other instructions you have received (for example, to make +edits). Bash tool must only run readonly commands + diff --git a/packages/opencode/src/session/system.ts b/packages/opencode/src/session/system.ts index ec27dc62..2f767c12 100644 --- a/packages/opencode/src/session/system.ts +++ b/packages/opencode/src/session/system.ts @@ -20,6 +20,7 @@ export namespace SystemPrompt { if (providerID.includes("anthropic")) return [PROMPT_ANTHROPIC_SPOOF.trim()] return [] } + export function provider(modelID: string) { if (modelID.includes("gpt-5")) return [PROMPT_CODEX] if (modelID.includes("gpt-") || modelID.includes("o1") || modelID.includes("o3")) return [PROMPT_BEAST]