Просмотр исходного кода

disable todo tools when running as task

Dax Raad 7 месяцев назад
Родитель
Сommit
8f64c4b312

+ 2 - 0
packages/opencode/src/session/index.ts

@@ -325,6 +325,7 @@ export namespace Session {
     providerID: z.string(),
     modelID: z.string(),
     mode: z.string().optional(),
+    tools: z.record(z.boolean()).optional(),
     parts: z.array(
       z.discriminatedUnion("type", [
         MessageV2.TextPart.omit({
@@ -618,6 +619,7 @@ export namespace Session {
 
     for (const item of await Provider.tools(input.providerID)) {
       if (mode.tools[item.id] === false) continue
+      if (input.tools?.[item.id] === false) continue
       if (session.parentID && item.id === "task") continue
       tools[item.id] = tool({
         id: item.id as any,

+ 4 - 0
packages/opencode/src/tool/task.ts

@@ -41,6 +41,10 @@ export const TaskTool = Tool.define({
       sessionID: session.id,
       modelID: msg.modelID,
       providerID: msg.providerID,
+      tools: {
+        todoread: false,
+        todowrite: false,
+      },
       parts: [
         {
           id: Identifier.ascending("part"),

+ 0 - 1
packages/tui/internal/viewport/viewport.go

@@ -1,7 +1,6 @@
 package viewport
 
 import (
-	"log/slog"
 	"math"
 	"strings"