mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-18 22:35:51 +00:00
* feat: 第一版大重构 * fix: 修复类型问题 * chore: 更新版本到 1.3.2 * Add brave as alternative WebSearchTool * fix: 修正顺序 * fix: 修复对穷鬼模式的 auto dream 和 session memory 越过 * feat: 穷鬼模式去除 session-summary * feat: 创建 builtin-tools 包,搬运所有工具实现 将 src/tools/ 下的全部 60 个工具目录迁移至 packages/builtin-tools/src/tools/, 内部导入路径已更新为 src/ alias 模式。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: 更新 src/ 中所有工具引用至 builtin-tools 包,删除 src/tools/ - src/tools.ts 及 178 个 src/ 文件的 import 路径从 ./tools/ 改为 builtin-tools/tools/ - 删除 src/tools/ 整个目录(已迁移至 packages/builtin-tools/) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: 添加 builtin-tools 路径别名至 tsconfig,更新 bun.lock - tsconfig.json 新增 builtin-tools/* 和 builtin-tools 路径映射 - 新增 packages/builtin-tools/src 至 include Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: 为 builtin-tools、mcp-client、agent-tools 添加 @claude-code-best 作用域前缀 所有包名及 import 路径统一添加 @claude-code-best/ 前缀: - builtin-tools → @claude-code-best/builtin-tools - mcp-client → @claude-code-best/mcp-client - agent-tools → @claude-code-best/agent-tools Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: 修复 node 环境没有 bun 的问题 --------- Co-authored-by: Eric-Guo <eric.guocz@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
84 lines
4.8 KiB
TypeScript
84 lines
4.8 KiB
TypeScript
import { BASH_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/BashTool/toolName.js'
|
|
import { EXIT_PLAN_MODE_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/ExitPlanModeTool/constants.js'
|
|
import { FILE_EDIT_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/FileEditTool/constants.js'
|
|
import { FILE_READ_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/FileReadTool/prompt.js'
|
|
import { FILE_WRITE_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/FileWriteTool/prompt.js'
|
|
import { GLOB_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/GlobTool/prompt.js'
|
|
import { GREP_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/GrepTool/prompt.js'
|
|
import { NOTEBOOK_EDIT_TOOL_NAME } from '@claude-code-best/builtin-tools/tools/NotebookEditTool/constants.js'
|
|
import { hasEmbeddedSearchTools } from 'src/utils/embeddedTools.js'
|
|
import { AGENT_TOOL_NAME } from '../constants.js'
|
|
import type { BuiltInAgentDefinition } from '../loadAgentsDir.js'
|
|
|
|
function getExploreSystemPrompt(): string {
|
|
// Ant-native builds alias find/grep to embedded bfs/ugrep and remove the
|
|
// dedicated Glob/Grep tools, so point at find/grep via Bash instead.
|
|
const embedded = hasEmbeddedSearchTools()
|
|
const globGuidance = embedded
|
|
? `- Use \`find\` via ${BASH_TOOL_NAME} for broad file pattern matching`
|
|
: `- Use ${GLOB_TOOL_NAME} for broad file pattern matching`
|
|
const grepGuidance = embedded
|
|
? `- Use \`grep\` via ${BASH_TOOL_NAME} for searching file contents with regex`
|
|
: `- Use ${GREP_TOOL_NAME} for searching file contents with regex`
|
|
|
|
return `You are a file search specialist for Claude Code, Anthropic's official CLI for Claude. You excel at thoroughly navigating and exploring codebases.
|
|
|
|
=== CRITICAL: READ-ONLY MODE - NO FILE MODIFICATIONS ===
|
|
This is a READ-ONLY exploration task. You are STRICTLY PROHIBITED from:
|
|
- Creating new files (no Write, touch, or file creation of any kind)
|
|
- Modifying existing files (no Edit operations)
|
|
- Deleting files (no rm or deletion)
|
|
- Moving or copying files (no mv or cp)
|
|
- Creating temporary files anywhere, including /tmp
|
|
- Using redirect operators (>, >>, |) or heredocs to write to files
|
|
- Running ANY commands that change system state
|
|
|
|
Your role is EXCLUSIVELY to search and analyze existing code. You do NOT have access to file editing tools - attempting to edit files will fail.
|
|
|
|
Your strengths:
|
|
- Rapidly finding files using glob patterns
|
|
- Searching code and text with powerful regex patterns
|
|
- Reading and analyzing file contents
|
|
|
|
Guidelines:
|
|
${globGuidance}
|
|
${grepGuidance}
|
|
- Use ${FILE_READ_TOOL_NAME} when you know the specific file path you need to read
|
|
- Use ${BASH_TOOL_NAME} ONLY for read-only operations (ls, git status, git log, git diff, find${embedded ? ', grep' : ''}, cat, head, tail)
|
|
- NEVER use ${BASH_TOOL_NAME} for: mkdir, touch, rm, cp, mv, git add, git commit, npm install, pip install, or any file creation/modification
|
|
- Adapt your search approach based on the thoroughness level specified by the caller
|
|
- Communicate your final report directly as a regular message - do NOT attempt to create files
|
|
|
|
NOTE: You are meant to be a fast agent that returns output as quickly as possible. In order to achieve this you must:
|
|
- Make efficient use of the tools that you have at your disposal: be smart about how you search for files and implementations
|
|
- Wherever possible you should try to spawn multiple parallel tool calls for grepping and reading files
|
|
|
|
Complete the user's search request efficiently and report your findings clearly.`
|
|
}
|
|
|
|
export const EXPLORE_AGENT_MIN_QUERIES = 3
|
|
|
|
const EXPLORE_WHEN_TO_USE =
|
|
'Fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. "src/components/**/*.tsx"), search code for keywords (eg. "API endpoints"), or answer questions about the codebase (eg. "how do API endpoints work?"). When calling this agent, specify the desired thoroughness level: "quick" for basic searches, "medium" for moderate exploration, or "very thorough" for comprehensive analysis across multiple locations and naming conventions.'
|
|
|
|
export const EXPLORE_AGENT: BuiltInAgentDefinition = {
|
|
agentType: 'Explore',
|
|
whenToUse: EXPLORE_WHEN_TO_USE,
|
|
disallowedTools: [
|
|
AGENT_TOOL_NAME,
|
|
EXIT_PLAN_MODE_TOOL_NAME,
|
|
FILE_EDIT_TOOL_NAME,
|
|
FILE_WRITE_TOOL_NAME,
|
|
NOTEBOOK_EDIT_TOOL_NAME,
|
|
],
|
|
source: 'built-in',
|
|
baseDir: 'built-in',
|
|
// Ants get inherit to use the main agent's model; external users get haiku for speed
|
|
// Note: For ants, getAgentModel() checks tengu_explore_agent GrowthBook flag at runtime
|
|
model: process.env.USER_TYPE === 'ant' ? 'inherit' : 'haiku',
|
|
// Explore is a fast read-only search agent — it doesn't need commit/PR/lint
|
|
// rules from CLAUDE.md. The main agent has full context and interprets results.
|
|
omitClaudeMd: true,
|
|
getSystemPrompt: () => getExploreSystemPrompt(),
|
|
}
|