mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
feat: enable permission-aware subagents
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
/**
|
||||
* default-agents.ts — Embedded default agent configurations.
|
||||
*
|
||||
* These are always available but can be overridden by user .md files with the same name.
|
||||
*/
|
||||
|
||||
import type { AgentConfig } from "./types.js";
|
||||
|
||||
const READ_ONLY_TOOLS = ["read", "bash", "grep", "find", "ls"];
|
||||
|
||||
export const DEFAULT_AGENTS: Map<string, AgentConfig> = new Map([
|
||||
[
|
||||
"general-purpose",
|
||||
{
|
||||
name: "general-purpose",
|
||||
displayName: "Agent",
|
||||
description: "General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you.",
|
||||
// builtinToolNames omitted — means "all available tools" (resolved at lookup time)
|
||||
// inheritContext / runInBackground / isolated omitted — strategy fields, callers decide per-call.
|
||||
// Setting them to false would lock callsite intent (see resolveAgentInvocationConfig in invocation-config.ts).
|
||||
extensions: true,
|
||||
skills: true,
|
||||
systemPrompt: "",
|
||||
promptMode: "append",
|
||||
isDefault: true,
|
||||
},
|
||||
],
|
||||
[
|
||||
"Explore",
|
||||
{
|
||||
name: "Explore",
|
||||
displayName: "Explore",
|
||||
description: "Fast read-only search agent for locating code. Use it to find files by pattern (eg. \"src/components/**/*.tsx\"), grep for symbols or keywords (eg. \"API endpoints\"), or answer \"where is X defined / which files reference Y.\" Do NOT use it for code review, design-doc auditing, cross-file consistency checks, or open-ended analysis — it reads excerpts rather than whole files and will miss content past its read window. When calling, specify search breadth: \"quick\" for a single targeted lookup, \"medium\" for moderate exploration, or \"very thorough\" to search across multiple locations and naming conventions.",
|
||||
builtinToolNames: READ_ONLY_TOOLS,
|
||||
extensions: true,
|
||||
skills: true,
|
||||
// Fast/cheap model for read-only search. Provider-preferred but resilient:
|
||||
// resolveModel matches this fuzzily (date-stamp optional) and falls back to
|
||||
// the same model under another provider if anthropic doesn't expose it.
|
||||
model: "anthropic/claude-haiku-4-5",
|
||||
systemPrompt: `# CRITICAL: READ-ONLY MODE - NO FILE MODIFICATIONS
|
||||
You are a file search specialist. You excel at thoroughly navigating and exploring codebases.
|
||||
Your role is EXCLUSIVELY to search and analyze existing code. You do NOT have access to file editing tools.
|
||||
|
||||
You are STRICTLY PROHIBITED from:
|
||||
- Creating new files
|
||||
- Modifying existing files
|
||||
- Deleting files
|
||||
- Moving or copying files
|
||||
- Creating temporary files anywhere, including /tmp
|
||||
- Using redirect operators (>, >>, |) or heredocs to write to files
|
||||
- Running ANY commands that change system state
|
||||
|
||||
Use Bash ONLY for read-only operations: ls, git status, git log, git diff, find, cat, head, tail.
|
||||
|
||||
# Tool Usage
|
||||
- Use the find tool for file pattern matching (NOT the bash find command)
|
||||
- Use the grep tool for content search (NOT bash grep/rg command)
|
||||
- Use the read tool for reading files (NOT bash cat/head/tail)
|
||||
- Use Bash ONLY for read-only operations
|
||||
- Make independent tool calls in parallel for efficiency
|
||||
- Adapt search approach based on thoroughness level specified
|
||||
|
||||
# Output
|
||||
- Use absolute file paths in all references
|
||||
- Report findings as regular messages
|
||||
- Do not use emojis
|
||||
- Be thorough and precise`,
|
||||
promptMode: "replace",
|
||||
isDefault: true,
|
||||
},
|
||||
],
|
||||
[
|
||||
"Plan",
|
||||
{
|
||||
name: "Plan",
|
||||
displayName: "Plan",
|
||||
description: "Software architect agent for designing implementation plans. Use this when you need to plan the implementation strategy for a task. Returns step-by-step plans, identifies critical files, and considers architectural trade-offs.",
|
||||
builtinToolNames: READ_ONLY_TOOLS,
|
||||
extensions: true,
|
||||
skills: true,
|
||||
systemPrompt: `# CRITICAL: READ-ONLY MODE - NO FILE MODIFICATIONS
|
||||
You are a software architect and planning specialist.
|
||||
Your role is EXCLUSIVELY to explore the codebase and design implementation plans.
|
||||
You do NOT have access to file editing tools — attempting to edit files will fail.
|
||||
|
||||
You are STRICTLY PROHIBITED from:
|
||||
- Creating new files
|
||||
- Modifying existing files
|
||||
- Deleting files
|
||||
- Moving or copying files
|
||||
- Creating temporary files anywhere, including /tmp
|
||||
- Using redirect operators (>, >>, |) or heredocs to write to files
|
||||
- Running ANY commands that change system state
|
||||
|
||||
# Planning Process
|
||||
1. Understand requirements
|
||||
2. Explore thoroughly (read files, find patterns, understand architecture)
|
||||
3. Design solution based on your assigned perspective
|
||||
4. Detail the plan with step-by-step implementation strategy
|
||||
|
||||
# Requirements
|
||||
- Consider trade-offs and architectural decisions
|
||||
- Identify dependencies and sequencing
|
||||
- Anticipate potential challenges
|
||||
- Follow existing patterns where appropriate
|
||||
|
||||
# Tool Usage
|
||||
- Use the find tool for file pattern matching (NOT the bash find command)
|
||||
- Use the grep tool for content search (NOT bash grep/rg command)
|
||||
- Use the read tool for reading files (NOT bash cat/head/tail)
|
||||
- Use Bash ONLY for read-only operations
|
||||
|
||||
# Output Format
|
||||
- Use absolute file paths
|
||||
- Do not use emojis
|
||||
- End your response with:
|
||||
|
||||
### Critical Files for Implementation
|
||||
List 3-5 files most critical for implementing this plan:
|
||||
- /absolute/path/to/file.ts - [Brief reason]`,
|
||||
promptMode: "replace",
|
||||
isDefault: true,
|
||||
},
|
||||
],
|
||||
]);
|
||||
Reference in New Issue
Block a user