Răsfoiți Sursa

fix plan mode bash tool making changes

Dax Raad 6 luni în urmă
părinte
comite
457386ad08

+ 11 - 11
packages/opencode/src/session/index.ts

@@ -15,6 +15,7 @@ import {
 } from "ai"
 } from "ai"
 
 
 import PROMPT_INITIALIZE from "../session/prompt/initialize.txt"
 import PROMPT_INITIALIZE from "../session/prompt/initialize.txt"
+import PROMPT_PLAN from "../session/prompt/plan.txt"
 
 
 import { App } from "../app/app"
 import { App } from "../app/app"
 import { Bus } from "../bus"
 import { Bus } from "../bus"
@@ -607,17 +608,6 @@ export namespace Session {
         ]
         ]
       }),
       }),
     ).then((x) => x.flat())
     ).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(
     await Plugin.trigger(
       "chat.message",
       "chat.message",
       {},
       {},
@@ -720,6 +710,16 @@ export namespace Session {
     }
     }
 
 
     const agent = await Agent.get(inputAgent)
     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)
     let system = SystemPrompt.header(input.providerID)
     system.push(
     system.push(
       ...(() => {
       ...(() => {

+ 6 - 1
packages/opencode/src/session/prompt/plan.txt

@@ -1,3 +1,8 @@
 <system-reminder>
 <system-reminder>
-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
 </system-reminder>
 </system-reminder>
+

+ 1 - 0
packages/opencode/src/session/system.ts

@@ -20,6 +20,7 @@ export namespace SystemPrompt {
     if (providerID.includes("anthropic")) return [PROMPT_ANTHROPIC_SPOOF.trim()]
     if (providerID.includes("anthropic")) return [PROMPT_ANTHROPIC_SPOOF.trim()]
     return []
     return []
   }
   }
+
   export function provider(modelID: string) {
   export function provider(modelID: string) {
     if (modelID.includes("gpt-5")) return [PROMPT_CODEX]
     if (modelID.includes("gpt-5")) return [PROMPT_CODEX]
     if (modelID.includes("gpt-") || modelID.includes("o1") || modelID.includes("o3")) return [PROMPT_BEAST]
     if (modelID.includes("gpt-") || modelID.includes("o1") || modelID.includes("o3")) return [PROMPT_BEAST]