fix: migrate metadata references from BashOutput to TaskOutput (#908)

Co-authored-by: Letta <noreply@letta.com>
This commit is contained in:
Charles Packer
2026-02-10 19:03:10 -08:00
committed by GitHub
parent a69541004b
commit 85d2a27e1c
11 changed files with 18 additions and 16 deletions

View File

@@ -73,8 +73,8 @@ const PARALLEL_SAFE_TOOLS = new Set([
"conversation_search", "conversation_search",
"web_search", "web_search",
"fetch_webpage", "fetch_webpage",
// Background shell output (read-only check) // Background task output (read-only check)
"BashOutput", "TaskOutput",
// Task spawns independent subagents // Task spawns independent subagents
"Task", "Task",
// Plan mode tools (no parameters, no file operations) // Plan mode tools (no parameters, no file operations)

View File

@@ -1,7 +1,7 @@
--- ---
name: explore name: explore
description: Fast agent for codebase exploration - finding files, searching code, understanding structure description: Fast agent for codebase exploration - finding files, searching code, understanding structure
tools: Glob, Grep, Read, LS, BashOutput tools: Glob, Grep, Read, LS, TaskOutput
model: haiku model: haiku
memoryBlocks: human, persona memoryBlocks: human, persona
mode: stateless mode: stateless

View File

@@ -1,7 +1,7 @@
--- ---
name: general-purpose name: general-purpose
description: Full-capability agent for research, planning, and implementation description: Full-capability agent for research, planning, and implementation
tools: Bash, BashOutput, Edit, Glob, Grep, KillBash, LS, MultiEdit, Read, TodoWrite, Write tools: Bash, TaskOutput, Edit, Glob, Grep, KillBash, LS, MultiEdit, Read, TodoWrite, Write
model: sonnet-4.5 model: sonnet-4.5
memoryBlocks: all memoryBlocks: all
mode: stateful mode: stateful

View File

@@ -1,7 +1,7 @@
--- ---
name: plan name: plan
description: Planning agent that breaks down complex tasks into actionable steps description: Planning agent that breaks down complex tasks into actionable steps
tools: Glob, Grep, Read, LS, BashOutput tools: Glob, Grep, Read, LS, TaskOutput
model: opus model: opus
memoryBlocks: all memoryBlocks: all
mode: stateless mode: stateless

View File

@@ -1,7 +1,7 @@
--- ---
name: recall name: recall
description: Search conversation history to recall past discussions, decisions, and context description: Search conversation history to recall past discussions, decisions, and context
tools: Bash, Read, BashOutput tools: Bash, Read, TaskOutput
model: opus model: opus
memoryBlocks: none memoryBlocks: none
mode: stateless mode: stateless

View File

@@ -1,7 +1,7 @@
--- ---
name: reflection name: reflection
description: Background agent that reflects on recent conversations and updates memory files description: Background agent that reflects on recent conversations and updates memory files
tools: Read, Edit, Write, Glob, Grep, Bash, BashOutput tools: Read, Edit, Write, Glob, Grep, Bash, TaskOutput
model: sonnet-4.5 model: sonnet-4.5
memoryBlocks: none memoryBlocks: none
skills: searching-messages skills: searching-messages

View File

@@ -99,7 +99,7 @@ const FALLBACK_TOOL_NAMES = [
"Skill", "Skill",
"EnterPlanMode", "EnterPlanMode",
"ExitPlanMode", "ExitPlanMode",
"BashOutput", "TaskOutput",
"KillBash", "KillBash",
]; ];

View File

@@ -31,7 +31,7 @@ const toolsets: ToolsetOption[] = [
description: "Toolset optimized for Claude models", description: "Toolset optimized for Claude models",
tools: [ tools: [
"Bash", "Bash",
"BashOutput", "TaskOutput",
"Edit", "Edit",
"Glob", "Glob",
"Grep", "Grep",

View File

@@ -68,7 +68,9 @@ export function getDisplayToolName(rawName: string): string {
if (rawName === "Replace" || rawName === "replace") return "Update"; if (rawName === "Replace" || rawName === "replace") return "Update";
if (rawName === "WriteFile" || rawName === "write_file") return "Write"; if (rawName === "WriteFile" || rawName === "write_file") return "Write";
if (rawName === "KillBash") return "Kill Bash"; if (rawName === "KillBash") return "Kill Bash";
if (rawName === "BashOutput") return "Shell Output"; if (rawName === "BashOutput" || rawName === "TaskOutput") {
return "Shell Output";
}
if (rawName === "MultiEdit") return "Update"; if (rawName === "MultiEdit") return "Update";
// No mapping found, return as-is // No mapping found, return as-is

View File

@@ -400,15 +400,15 @@ function matchesPattern(
/** /**
* Subagent types that are read-only and safe to auto-approve. * Subagent types that are read-only and safe to auto-approve.
* These only have access to read-only tools (Glob, Grep, Read, LS, BashOutput). * These only have access to read-only tools (Glob, Grep, Read, LS, TaskOutput).
* See: src/agent/subagents/builtin/*.md for definitions * See: src/agent/subagents/builtin/*.md for definitions
*/ */
const READ_ONLY_SUBAGENT_TYPES = new Set([ const READ_ONLY_SUBAGENT_TYPES = new Set([
"explore", // Codebase exploration - Glob, Grep, Read, LS, BashOutput "explore", // Codebase exploration - Glob, Grep, Read, LS, TaskOutput
"Explore", "Explore",
"plan", // Planning agent - Glob, Grep, Read, LS, BashOutput "plan", // Planning agent - Glob, Grep, Read, LS, TaskOutput
"Plan", "Plan",
"recall", // Conversation history search - Skill, Bash, Read, BashOutput "recall", // Conversation history search - Skill, Bash, Read, TaskOutput
"Recall", "Recall",
]); ]);
@@ -428,7 +428,7 @@ function getDefaultDecision(
"Glob", "Glob",
"Grep", "Grep",
"TodoWrite", "TodoWrite",
"BashOutput", "TaskOutput",
"LS", "LS",
// Codex toolset (snake_case) - tools that don't require approval // Codex toolset (snake_case) - tools that don't require approval
"read_file", "read_file",

View File

@@ -239,7 +239,7 @@ class PermissionModeManager {
} }
// Allow Task tool with read-only subagent types // Allow Task tool with read-only subagent types
// These subagents only have access to read-only tools (Glob, Grep, Read, LS, BashOutput) // These subagents only have access to read-only tools (Glob, Grep, Read, LS, TaskOutput)
const readOnlySubagentTypes = new Set([ const readOnlySubagentTypes = new Set([
"explore", "explore",
"Explore", "Explore",