diff --git a/packages/prompts-core/prompts/mode/search.md b/packages/prompts-core/prompts/mode/search.md new file mode 100644 index 000000000..0ba054e1a --- /dev/null +++ b/packages/prompts-core/prompts/mode/search.md @@ -0,0 +1,6 @@ +[search-mode] +MAXIMIZE SEARCH EFFORT. Launch multiple background agents IN PARALLEL: +- explore agents (codebase patterns, file structures, ast-grep) +- librarian agents (remote repos, official docs, GitHub examples) +Plus direct tools: Grep, ripgrep (rg), ast-grep (sg) +NEVER stop at first result - be exhaustive. diff --git a/packages/prompts-core/src/index.ts b/packages/prompts-core/src/index.ts index 639fa86a7..1ba8cb640 100644 --- a/packages/prompts-core/src/index.ts +++ b/packages/prompts-core/src/index.ts @@ -9,3 +9,4 @@ export type { export { resolveVariant } from "./variant-resolver" export type { ResolveVariantInput } from "./variant-resolver" export { loadPrompt, PromptFileNotFoundError, PromptPathTraversalError } from "./loader" +export { SEARCH_MODE_PROMPT } from "./mode-prompts" diff --git a/packages/prompts-core/src/mode-prompts.ts b/packages/prompts-core/src/mode-prompts.ts new file mode 100644 index 000000000..1a27470b5 --- /dev/null +++ b/packages/prompts-core/src/mode-prompts.ts @@ -0,0 +1,7 @@ +import searchModePrompt from "../prompts/mode/search.md" with { type: "text" } + +export const SEARCH_MODE_PROMPT = stripFinalLineFeed(searchModePrompt) + +function stripFinalLineFeed(prompt: string): string { + return prompt.endsWith("\n") ? prompt.slice(0, -1) : prompt +} diff --git a/src/hooks/keyword-detector/search/default.ts b/src/hooks/keyword-detector/search/default.ts index 579574e18..2b999b280 100644 --- a/src/hooks/keyword-detector/search/default.ts +++ b/src/hooks/keyword-detector/search/default.ts @@ -1,3 +1,5 @@ +import { SEARCH_MODE_PROMPT } from "@oh-my-opencode/prompts-core" + /** * Search mode keyword detector. * @@ -12,9 +14,4 @@ export const SEARCH_PATTERN = /\b(search|find|locate|lookup|look\s*up|explore|discover|scan|grep|query|browse|detect|trace|seek|track|pinpoint|hunt)\b|where\s+is|show\s+me|list\s+all|검색|찾아|탐색|조회|스캔|서치|뒤져|찾기|어디|추적|탐지|찾아봐|찾아내|보여줘|목록|検索|探して|見つけて|サーチ|探索|スキャン|どこ|発見|捜索|見つけ出す|一覧|搜索|查找|寻找|查询|检索|定位|扫描|发现|在哪里|找出来|列出|tìm kiếm|tra cứu|định vị|quét|phát hiện|truy tìm|tìm ra|ở đâu|liệt kê/i -export const SEARCH_MESSAGE = `[search-mode] -MAXIMIZE SEARCH EFFORT. Launch multiple background agents IN PARALLEL: -- explore agents (codebase patterns, file structures, ast-grep) -- librarian agents (remote repos, official docs, GitHub examples) -Plus direct tools: Grep, ripgrep (rg), ast-grep (sg) -NEVER stop at first result - be exhaustive.` +export const SEARCH_MESSAGE = SEARCH_MODE_PROMPT