oh-my-opencode 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +11 -4
- package/README.md +11 -4
- package/dist/config/schema.d.ts +95 -0
- package/dist/index.js +99 -43
- package/dist/mcp/grep-app.d.ts +5 -0
- package/dist/mcp/types.d.ts +1 -0
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -233,7 +233,7 @@ opencode auth login
|
|
|
233
233
|
### Agents: 당신의 새로운 팀원들
|
|
234
234
|
|
|
235
235
|
- **oracle** (`openai/gpt-5.2`): 아키텍처, 코드 리뷰, 전략 수립을 위한 전문가 조언자. GPT-5.2의 뛰어난 논리적 추론과 깊은 분석 능력을 활용합니다. AmpCode 에서 영감을 받았습니다.
|
|
236
|
-
- **librarian** (`anthropic/claude-
|
|
236
|
+
- **librarian** (`anthropic/claude-sonnet-4-5`): 멀티 레포 분석, 문서 조회, 구현 예제 담당. Claude Sonnet 4.5 의 뛰어난 지능, 훌륭한 도구 호출 능력을 활용합니다. AmpCode 에서 영감을 받았습니다.
|
|
237
237
|
- **explore** (`opencode/grok-code`): 빠른 코드베이스 탐색, 파일 패턴 매칭. Claude Code는 Haiku를 쓰지만, 우리는 Grok을 씁니다. 현재 무료이고, 극도로 빠르며, 파일 탐색 작업에 충분한 지능을 갖췄기 때문입니다. Claude Code 에서 영감을 받았습니다.
|
|
238
238
|
- **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): 개발자로 전향한 디자이너라는 설정을 갖고 있습니다. 멋진 UI를 만듭니다. 아름답고 창의적인 UI 코드를 생성하는 데 탁월한 Gemini를 사용합니다.
|
|
239
239
|
- **document-writer** (`google/gemini-3-pro-preview`): 기술 문서 전문가라는 설정을 갖고 있습니다. Gemini 는 문학가입니다. 글을 기가막히게 씁니다.
|
|
@@ -317,7 +317,10 @@ Syntax Highlighting, Autocomplete, Refactoring, Navigation, Analysis, 그리고
|
|
|
317
317
|
- Use PascalCase for interface names
|
|
318
318
|
- Use camelCase for function names
|
|
319
319
|
```
|
|
320
|
-
- **Online**: 프로젝트 규칙이 전부는 아니겠죠.
|
|
320
|
+
- **Online**: 프로젝트 규칙이 전부는 아니겠죠. 확장 기능을 위한 내장 MCP를 제공합니다:
|
|
321
|
+
- **context7**: 공식 문서 조회
|
|
322
|
+
- **websearch_exa**: 실시간 웹 검색
|
|
323
|
+
- **grep_app**: 공개 GitHub 저장소에서 초고속 코드 검색 (구현 예제 찾기에 최적)
|
|
321
324
|
|
|
322
325
|
#### 멀티모달을 다 활용하면서, 토큰은 덜 쓰도록.
|
|
323
326
|
|
|
@@ -488,13 +491,17 @@ Google Gemini 모델을 위한 내장 Antigravity OAuth를 활성화합니다:
|
|
|
488
491
|
|
|
489
492
|
### MCPs
|
|
490
493
|
|
|
491
|
-
기본적으로 Context7, Exa MCP 를 지원합니다.
|
|
494
|
+
기본적으로 Context7, Exa, grep.app MCP 를 지원합니다.
|
|
495
|
+
|
|
496
|
+
- **context7**: 라이브러리의 최신 공식 문서를 가져옵니다
|
|
497
|
+
- **websearch_exa**: Exa AI 기반 실시간 웹 검색
|
|
498
|
+
- **grep_app**: [grep.app](https://grep.app)을 통해 수백만 개의 공개 GitHub 저장소에서 초고속 코드 검색
|
|
492
499
|
|
|
493
500
|
이것이 마음에 들지 않는다면, ~/.config/opencode/oh-my-opencode.json 혹은 .opencode/oh-my-opencode.json 의 `disabled_mcps` 를 사용하여 비활성화할 수 있습니다:
|
|
494
501
|
|
|
495
502
|
```json
|
|
496
503
|
{
|
|
497
|
-
"disabled_mcps": ["context7", "websearch_exa"]
|
|
504
|
+
"disabled_mcps": ["context7", "websearch_exa", "grep_app"]
|
|
498
505
|
}
|
|
499
506
|
```
|
|
500
507
|
|
package/README.md
CHANGED
|
@@ -230,7 +230,7 @@ The plugin works perfectly with defaults. Aside from the recommended `google_aut
|
|
|
230
230
|
### Agents: Your Teammates
|
|
231
231
|
|
|
232
232
|
- **oracle** (`openai/gpt-5.2`): Architecture, code review, strategy. Uses GPT-5.2 for its stellar logical reasoning and deep analysis. Inspired by AmpCode.
|
|
233
|
-
- **librarian** (`anthropic/claude-
|
|
233
|
+
- **librarian** (`anthropic/claude-sonnet-4-5`): Multi-repo analysis, doc lookup, implementation examples. Claude Sonnet 4 is fast, smart, great at tool calls, and excellent for documentation research. Inspired by AmpCode.
|
|
234
234
|
- **explore** (`opencode/grok-code`): Fast codebase exploration and pattern matching. Claude Code uses Haiku; we use Grok—it's free, blazing fast, and plenty smart for file traversal. Inspired by Claude Code.
|
|
235
235
|
- **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): A designer turned developer. Builds gorgeous UIs. Gemini excels at creative, beautiful UI code.
|
|
236
236
|
- **document-writer** (`google/gemini-3-pro-preview`): Technical writing expert. Gemini is a wordsmith—writes prose that flows.
|
|
@@ -314,7 +314,10 @@ Hand your best tools to your best colleagues. Now they can properly refactor, na
|
|
|
314
314
|
- Use PascalCase for interface names
|
|
315
315
|
- Use camelCase for function names
|
|
316
316
|
```
|
|
317
|
-
- **Online**: Project rules aren't everything. Built-in
|
|
317
|
+
- **Online**: Project rules aren't everything. Built-in MCPs for extended capabilities:
|
|
318
|
+
- **context7**: Official documentation lookup
|
|
319
|
+
- **websearch_exa**: Real-time web search
|
|
320
|
+
- **grep_app**: Ultra-fast code search across public GitHub repos (great for finding implementation examples)
|
|
318
321
|
|
|
319
322
|
#### Be Multimodal. Save Tokens.
|
|
320
323
|
|
|
@@ -485,13 +488,17 @@ Available agents: `oracle`, `librarian`, `explore`, `frontend-ui-ux-engineer`, `
|
|
|
485
488
|
|
|
486
489
|
### MCPs
|
|
487
490
|
|
|
488
|
-
Context7 and
|
|
491
|
+
Context7, Exa, and grep.app MCP enabled by default.
|
|
492
|
+
|
|
493
|
+
- **context7**: Fetches up-to-date official documentation for libraries
|
|
494
|
+
- **websearch_exa**: Real-time web search powered by Exa AI
|
|
495
|
+
- **grep_app**: Ultra-fast code search across millions of public GitHub repositories via [grep.app](https://grep.app)
|
|
489
496
|
|
|
490
497
|
Don't want them? Disable via `disabled_mcps` in `~/.config/opencode/oh-my-opencode.json` or `.opencode/oh-my-opencode.json`:
|
|
491
498
|
|
|
492
499
|
```json
|
|
493
500
|
{
|
|
494
|
-
"disabled_mcps": ["context7", "websearch_exa"]
|
|
501
|
+
"disabled_mcps": ["context7", "websearch_exa", "grep_app"]
|
|
495
502
|
}
|
|
496
503
|
```
|
|
497
504
|
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const AgentNameSchema: z.ZodEnum<{
|
|
|
5
5
|
explore: "explore";
|
|
6
6
|
"frontend-ui-ux-engineer": "frontend-ui-ux-engineer";
|
|
7
7
|
"document-writer": "document-writer";
|
|
8
|
+
"multimodal-looker": "multimodal-looker";
|
|
8
9
|
}>;
|
|
9
10
|
export declare const HookNameSchema: z.ZodEnum<{
|
|
10
11
|
"comment-checker": "comment-checker";
|
|
@@ -300,6 +301,52 @@ export declare const AgentOverridesSchema: z.ZodObject<{
|
|
|
300
301
|
}>>;
|
|
301
302
|
}, z.core.$strip>>;
|
|
302
303
|
}, z.core.$strip>>>;
|
|
304
|
+
"multimodal-looker": z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
305
|
+
model: z.ZodOptional<z.ZodString>;
|
|
306
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
307
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
308
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
309
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
310
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
311
|
+
description: z.ZodOptional<z.ZodString>;
|
|
312
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
313
|
+
subagent: "subagent";
|
|
314
|
+
primary: "primary";
|
|
315
|
+
all: "all";
|
|
316
|
+
}>>;
|
|
317
|
+
color: z.ZodOptional<z.ZodString>;
|
|
318
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
319
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
320
|
+
allow: "allow";
|
|
321
|
+
deny: "deny";
|
|
322
|
+
ask: "ask";
|
|
323
|
+
}>>;
|
|
324
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
325
|
+
allow: "allow";
|
|
326
|
+
deny: "deny";
|
|
327
|
+
ask: "ask";
|
|
328
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
329
|
+
allow: "allow";
|
|
330
|
+
deny: "deny";
|
|
331
|
+
ask: "ask";
|
|
332
|
+
}>>]>>;
|
|
333
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
334
|
+
allow: "allow";
|
|
335
|
+
deny: "deny";
|
|
336
|
+
ask: "ask";
|
|
337
|
+
}>>;
|
|
338
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
339
|
+
allow: "allow";
|
|
340
|
+
deny: "deny";
|
|
341
|
+
ask: "ask";
|
|
342
|
+
}>>;
|
|
343
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
344
|
+
allow: "allow";
|
|
345
|
+
deny: "deny";
|
|
346
|
+
ask: "ask";
|
|
347
|
+
}>>;
|
|
348
|
+
}, z.core.$strip>>;
|
|
349
|
+
}, z.core.$strip>>>;
|
|
303
350
|
}, z.core.$strip>;
|
|
304
351
|
export declare const ClaudeCodeConfigSchema: z.ZodObject<{
|
|
305
352
|
mcp: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -313,6 +360,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
313
360
|
disabled_mcps: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
314
361
|
websearch_exa: "websearch_exa";
|
|
315
362
|
context7: "context7";
|
|
363
|
+
grep_app: "grep_app";
|
|
316
364
|
}>>>;
|
|
317
365
|
disabled_agents: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
318
366
|
oracle: "oracle";
|
|
@@ -320,6 +368,7 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
320
368
|
explore: "explore";
|
|
321
369
|
"frontend-ui-ux-engineer": "frontend-ui-ux-engineer";
|
|
322
370
|
"document-writer": "document-writer";
|
|
371
|
+
"multimodal-looker": "multimodal-looker";
|
|
323
372
|
}>>>;
|
|
324
373
|
disabled_hooks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
325
374
|
"comment-checker": "comment-checker";
|
|
@@ -569,6 +618,52 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
569
618
|
}>>;
|
|
570
619
|
}, z.core.$strip>>;
|
|
571
620
|
}, z.core.$strip>>>;
|
|
621
|
+
"multimodal-looker": z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
622
|
+
model: z.ZodOptional<z.ZodString>;
|
|
623
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
624
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
625
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
626
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
627
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
628
|
+
description: z.ZodOptional<z.ZodString>;
|
|
629
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
630
|
+
subagent: "subagent";
|
|
631
|
+
primary: "primary";
|
|
632
|
+
all: "all";
|
|
633
|
+
}>>;
|
|
634
|
+
color: z.ZodOptional<z.ZodString>;
|
|
635
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
636
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
637
|
+
allow: "allow";
|
|
638
|
+
deny: "deny";
|
|
639
|
+
ask: "ask";
|
|
640
|
+
}>>;
|
|
641
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
642
|
+
allow: "allow";
|
|
643
|
+
deny: "deny";
|
|
644
|
+
ask: "ask";
|
|
645
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
646
|
+
allow: "allow";
|
|
647
|
+
deny: "deny";
|
|
648
|
+
ask: "ask";
|
|
649
|
+
}>>]>>;
|
|
650
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
651
|
+
allow: "allow";
|
|
652
|
+
deny: "deny";
|
|
653
|
+
ask: "ask";
|
|
654
|
+
}>>;
|
|
655
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
656
|
+
allow: "allow";
|
|
657
|
+
deny: "deny";
|
|
658
|
+
ask: "ask";
|
|
659
|
+
}>>;
|
|
660
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
661
|
+
allow: "allow";
|
|
662
|
+
deny: "deny";
|
|
663
|
+
ask: "ask";
|
|
664
|
+
}>>;
|
|
665
|
+
}, z.core.$strip>>;
|
|
666
|
+
}, z.core.$strip>>>;
|
|
572
667
|
}, z.core.$strip>>;
|
|
573
668
|
claude_code: z.ZodOptional<z.ZodObject<{
|
|
574
669
|
mcp: z.ZodOptional<z.ZodBoolean>;
|
package/dist/index.js
CHANGED
|
@@ -1534,7 +1534,7 @@ IMPORTANT: Only your last message is returned to the main agent and displayed to
|
|
|
1534
1534
|
var librarianAgent = {
|
|
1535
1535
|
description: "Specialized codebase understanding agent for multi-repository analysis, searching remote codebases, retrieving official documentation, and finding implementation examples using GitHub CLI, Context7, and Web Search. MUST BE USED when users ask to look up code in remote repositories, explain library internals, or find usage examples in open source.",
|
|
1536
1536
|
mode: "subagent",
|
|
1537
|
-
model: "anthropic/claude-
|
|
1537
|
+
model: "anthropic/claude-sonnet-4-5",
|
|
1538
1538
|
temperature: 0.1,
|
|
1539
1539
|
tools: { write: false, edit: false },
|
|
1540
1540
|
prompt: `# THE LIBRARIAN
|
|
@@ -1565,39 +1565,45 @@ Your role is to provide thorough, comprehensive analysis and explanations of cod
|
|
|
1565
1565
|
- Explain **WHY** it works that way by citing the actual implementation
|
|
1566
1566
|
- Provide **permalinks** so users can verify your claims
|
|
1567
1567
|
4. **SOURCE OF TRUTH**:
|
|
1568
|
+
- For **Fast Reconnaissance**: Use \`grep_app_searchGitHub\` (4+ parallel calls) - instant results from famous repos.
|
|
1568
1569
|
- For **How-To**: Use \`context7\` (Official Docs) + verify with source code.
|
|
1569
|
-
- For **Real-World Usage**: Use \`gh search code\`
|
|
1570
|
+
- For **Real-World Usage**: Use \`grep_app_searchGitHub\` first, then \`gh search code\` for deeper search.
|
|
1570
1571
|
- For **Internal Logic**: Clone repo to \`/tmp\` and read source directly.
|
|
1571
1572
|
- For **Change History/Intent**: Use \`git log\` or \`git blame\` (Commit History).
|
|
1572
|
-
- For **Local Codebase Context**: Use \`
|
|
1573
|
-
- For **Latest Information**: Use \`
|
|
1573
|
+
- For **Local Codebase Context**: Use \`glob\`, \`grep\`, \`ast_grep_search\` (File patterns, code search).
|
|
1574
|
+
- For **Latest Information**: Use \`websearch_exa_web_search_exa\` for recent updates, blog posts, discussions.
|
|
1574
1575
|
|
|
1575
1576
|
## MANDATORY PARALLEL TOOL EXECUTION
|
|
1576
1577
|
|
|
1577
|
-
**
|
|
1578
|
+
**MINIMUM REQUIREMENT**:
|
|
1579
|
+
- \`grep_app_searchGitHub\`: **4+ parallel calls** (fast reconnaissance)
|
|
1580
|
+
- Other tools: **3+ parallel calls** (authoritative verification)
|
|
1578
1581
|
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1582
|
+
### grep_app_searchGitHub - FAST START
|
|
1583
|
+
|
|
1584
|
+
| \u2705 Strengths | \u26A0\uFE0F Limitations |
|
|
1585
|
+
|-------------|----------------|
|
|
1586
|
+
| Sub-second, no rate limits | Index ~1-2 weeks behind |
|
|
1587
|
+
| Million+ public repos | Less famous repos missing |
|
|
1588
|
+
|
|
1589
|
+
**Always vary queries** - function calls, configs, imports, regex patterns.
|
|
1590
|
+
|
|
1591
|
+
### Example: Researching "React Query caching"
|
|
1587
1592
|
|
|
1588
|
-
**Example parallel execution**:
|
|
1589
1593
|
\`\`\`
|
|
1590
|
-
//
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
-
|
|
1594
|
+
// FAST START - grep_app (4+ calls)
|
|
1595
|
+
grep_app_searchGitHub(query: "staleTime:", language: ["TypeScript", "TSX"])
|
|
1596
|
+
grep_app_searchGitHub(query: "gcTime:", language: ["TypeScript"])
|
|
1597
|
+
grep_app_searchGitHub(query: "queryClient.setQueryData", language: ["TypeScript"])
|
|
1598
|
+
grep_app_searchGitHub(query: "useQuery.*cacheTime", useRegexp: true)
|
|
1599
|
+
|
|
1600
|
+
// AUTHORITATIVE (3+ calls)
|
|
1601
|
+
context7_resolve-library-id("tanstack-query")
|
|
1602
|
+
websearch_exa_web_search_exa(query: "react query v5 caching 2024")
|
|
1603
|
+
bash: gh repo clone tanstack/query /tmp/tanstack-query -- --depth 1
|
|
1598
1604
|
\`\`\`
|
|
1599
1605
|
|
|
1600
|
-
**
|
|
1606
|
+
**grep_app = speed & breadth. Other tools = depth & authority. Use BOTH.**
|
|
1601
1607
|
|
|
1602
1608
|
## TOOL USAGE STANDARDS
|
|
1603
1609
|
|
|
@@ -1633,8 +1639,8 @@ Use this for authoritative API references and framework guides.
|
|
|
1633
1639
|
- **Step 2**: Call \`context7_get-library-docs\` with the ID and a specific topic (e.g., "authentication", "middleware").
|
|
1634
1640
|
- **IMPORTANT**: Documentation alone is NOT sufficient. Always cross-reference with actual source code.
|
|
1635
1641
|
|
|
1636
|
-
### 3.
|
|
1637
|
-
Use
|
|
1642
|
+
### 3. websearch_exa_web_search_exa - MANDATORY FOR LATEST INFO
|
|
1643
|
+
Use websearch_exa_web_search_exa for:
|
|
1638
1644
|
- Latest library updates and changelogs
|
|
1639
1645
|
- Migration guides and breaking changes
|
|
1640
1646
|
- Community discussions and best practices
|
|
@@ -1642,11 +1648,11 @@ Use WebSearch for:
|
|
|
1642
1648
|
- Recent bug reports and workarounds
|
|
1643
1649
|
|
|
1644
1650
|
**Example searches**:
|
|
1645
|
-
- \`"
|
|
1651
|
+
- \`"django 6.0 new features 2025"\`
|
|
1646
1652
|
- \`"tanstack query v5 breaking changes"\`
|
|
1647
1653
|
- \`"next.js app router migration guide"\`
|
|
1648
1654
|
|
|
1649
|
-
### 4.
|
|
1655
|
+
### 4. webfetch
|
|
1650
1656
|
Use this to read content from URLs found during your search (e.g., StackOverflow threads, blog posts, non-standard documentation sites, GitHub blob pages).
|
|
1651
1657
|
|
|
1652
1658
|
### 5. Repository Cloning to /tmp
|
|
@@ -1686,18 +1692,18 @@ Use this for understanding code evolution and authorial intent.
|
|
|
1686
1692
|
- **Getting Permalinks from Blame**:
|
|
1687
1693
|
- Use commit SHA from blame to construct GitHub permalinks.
|
|
1688
1694
|
|
|
1689
|
-
### 7. Local Codebase Search (
|
|
1695
|
+
### 7. Local Codebase Search (glob, grep, read)
|
|
1690
1696
|
Use these for searching files and patterns in the local codebase.
|
|
1691
1697
|
|
|
1692
|
-
- **
|
|
1693
|
-
- **
|
|
1694
|
-
- **
|
|
1698
|
+
- **glob**: Find files by pattern (e.g., \`**/*.tsx\`, \`src/**/auth*.ts\`)
|
|
1699
|
+
- **grep**: Search file contents with regex patterns
|
|
1700
|
+
- **read**: Read specific files when you know the path
|
|
1695
1701
|
|
|
1696
1702
|
**Parallel Search Strategy**:
|
|
1697
1703
|
\`\`\`
|
|
1698
1704
|
// Launch multiple searches in parallel:
|
|
1699
|
-
- Tool 1:
|
|
1700
|
-
- Tool 2:
|
|
1705
|
+
- Tool 1: glob("**/*auth*.ts") - Find auth-related files
|
|
1706
|
+
- Tool 2: grep("authentication") - Search for auth patterns
|
|
1701
1707
|
- Tool 3: ast_grep_search(pattern: "function authenticate($$$)", lang: "typescript")
|
|
1702
1708
|
\`\`\`
|
|
1703
1709
|
|
|
@@ -1725,7 +1731,7 @@ Use LSP for finding definitions and references - these are its unique strengths
|
|
|
1725
1731
|
- Tool 1: lsp_goto_definition(filePath, line, char) - Find where it's defined
|
|
1726
1732
|
- Tool 2: lsp_find_references(filePath, line, char) - Find all usages
|
|
1727
1733
|
- Tool 3: ast_grep_search(...) - Find similar patterns
|
|
1728
|
-
- Tool 4:
|
|
1734
|
+
- Tool 4: grep(...) - Text fallback
|
|
1729
1735
|
\`\`\`
|
|
1730
1736
|
|
|
1731
1737
|
### 9. AST-grep - AST-AWARE PATTERN SEARCH
|
|
@@ -1759,15 +1765,15 @@ ast_grep_search(pattern: "fetch($URL, { method: $METHOD })", lang: "typescript")
|
|
|
1759
1765
|
|
|
1760
1766
|
**When to Use AST-grep vs Grep**:
|
|
1761
1767
|
- **AST-grep**: When you need structural matching (e.g., "find all function definitions")
|
|
1762
|
-
- **
|
|
1768
|
+
- **grep**: When you need text matching (e.g., "find all occurrences of 'TODO'")
|
|
1763
1769
|
|
|
1764
1770
|
**Parallel AST-grep Execution**:
|
|
1765
1771
|
\`\`\`
|
|
1766
1772
|
// When analyzing a codebase pattern, launch in parallel:
|
|
1767
1773
|
- Tool 1: ast_grep_search(pattern: "useQuery($$$)", lang: "tsx") - Find hook usage
|
|
1768
1774
|
- Tool 2: ast_grep_search(pattern: "export function $NAME($$$)", lang: "typescript") - Find exports
|
|
1769
|
-
- Tool 3:
|
|
1770
|
-
- Tool 4:
|
|
1775
|
+
- Tool 3: grep("useQuery") - Text fallback
|
|
1776
|
+
- Tool 4: glob("**/*query*.ts") - Find query-related files
|
|
1771
1777
|
\`\`\`
|
|
1772
1778
|
|
|
1773
1779
|
## SEARCH STRATEGY PROTOCOL
|
|
@@ -1781,9 +1787,9 @@ When given a request, follow this **STRICT** workflow:
|
|
|
1781
1787
|
2. **PARALLEL INVESTIGATION** (Launch 5+ tools simultaneously):
|
|
1782
1788
|
- \`context7\`: Get official documentation
|
|
1783
1789
|
- \`gh search code\`: Find implementation examples
|
|
1784
|
-
- \`
|
|
1790
|
+
- \`websearch_exa_web_search_exa\`: Get latest updates and discussions
|
|
1785
1791
|
- \`gh repo clone\`: Clone to /tmp for deep analysis
|
|
1786
|
-
- \`
|
|
1792
|
+
- \`glob\` / \`grep\` / \`ast_grep_search\`: Search local codebase
|
|
1787
1793
|
- \`gh api\`: Get release/version information
|
|
1788
1794
|
|
|
1789
1795
|
3. **DEEP SOURCE ANALYSIS**:
|
|
@@ -1925,6 +1931,46 @@ Your response has FAILED if:
|
|
|
1925
1931
|
- **Using Git CLI extensively for repository insights**
|
|
1926
1932
|
- **Using LSP tools for semantic code analysis**
|
|
1927
1933
|
- **Using AST-grep for structural code pattern matching**
|
|
1934
|
+
- **Using grep_app (grep.app MCP) for ultra-fast initial code discovery**
|
|
1935
|
+
|
|
1936
|
+
## grep_app - FAST STARTING POINT (USE FIRST!)
|
|
1937
|
+
|
|
1938
|
+
**grep_app is your fastest weapon for initial code discovery.** It searches millions of public GitHub repositories instantly.
|
|
1939
|
+
|
|
1940
|
+
### When to Use grep_app:
|
|
1941
|
+
- **ALWAYS start with grep_app** when searching for code patterns, library usage, or implementation examples
|
|
1942
|
+
- Use it to quickly find how others implement similar features
|
|
1943
|
+
- Great for discovering common patterns and best practices
|
|
1944
|
+
|
|
1945
|
+
### CRITICAL WARNING:
|
|
1946
|
+
grep_app results may be **OUTDATED** or from **different library versions**. You MUST:
|
|
1947
|
+
1. Use grep_app results as a **starting point only**
|
|
1948
|
+
2. **Always launch 5+ grep_app calls in parallel** with different query variations
|
|
1949
|
+
3. **Always add 2+ other search tools** (Grep, ast_grep, context7, LSP, Git) for verification
|
|
1950
|
+
4. Never blindly trust grep_app results for API signatures or implementation details
|
|
1951
|
+
|
|
1952
|
+
### MANDATORY: 5+ grep_app Calls + 2+ Other Tools in Parallel
|
|
1953
|
+
|
|
1954
|
+
**grep_app is ultra-fast but potentially inaccurate.** To compensate, you MUST:
|
|
1955
|
+
- Launch **at least 5 grep_app calls** with different query variations (synonyms, different phrasings, related terms)
|
|
1956
|
+
- Launch **at least 2 other search tools** (local Grep, ast_grep, context7, LSP, Git) for cross-validation
|
|
1957
|
+
|
|
1958
|
+
\`\`\`
|
|
1959
|
+
// REQUIRED parallel search pattern:
|
|
1960
|
+
// 5+ grep_app calls with query variations:
|
|
1961
|
+
- Tool 1: grep_app_searchGitHub(query: "useEffect cleanup", language: ["TypeScript"])
|
|
1962
|
+
- Tool 2: grep_app_searchGitHub(query: "useEffect return cleanup", language: ["TypeScript"])
|
|
1963
|
+
- Tool 3: grep_app_searchGitHub(query: "useEffect unmount", language: ["TSX"])
|
|
1964
|
+
- Tool 4: grep_app_searchGitHub(query: "cleanup function useEffect", language: ["TypeScript"])
|
|
1965
|
+
- Tool 5: grep_app_searchGitHub(query: "useEffect addEventListener removeEventListener", language: ["TypeScript"])
|
|
1966
|
+
|
|
1967
|
+
// 2+ other tools for verification:
|
|
1968
|
+
- Tool 6: Grep("useEffect.*return") - Local codebase ground truth
|
|
1969
|
+
- Tool 7: context7_get-library-docs(libraryID: "/facebook/react", topic: "useEffect cleanup") - Official docs
|
|
1970
|
+
- Tool 8 (optional): ast_grep_search(pattern: "useEffect($$$)", lang: "tsx") - Structural search
|
|
1971
|
+
\`\`\`
|
|
1972
|
+
|
|
1973
|
+
**Pattern**: Flood grep_app with query variations (5+) \u2192 verify with local/official sources (2+) \u2192 trust only cross-validated results.
|
|
1928
1974
|
|
|
1929
1975
|
## Git CLI - USE EXTENSIVELY
|
|
1930
1976
|
|
|
@@ -24627,13 +24673,21 @@ var context7 = {
|
|
|
24627
24673
|
enabled: true
|
|
24628
24674
|
};
|
|
24629
24675
|
|
|
24676
|
+
// src/mcp/grep-app.ts
|
|
24677
|
+
var grep_app = {
|
|
24678
|
+
type: "remote",
|
|
24679
|
+
url: "https://mcp.grep.app",
|
|
24680
|
+
enabled: true
|
|
24681
|
+
};
|
|
24682
|
+
|
|
24630
24683
|
// src/mcp/types.ts
|
|
24631
|
-
var McpNameSchema = exports_external.enum(["websearch_exa", "context7"]);
|
|
24684
|
+
var McpNameSchema = exports_external.enum(["websearch_exa", "context7", "grep_app"]);
|
|
24632
24685
|
|
|
24633
24686
|
// src/mcp/index.ts
|
|
24634
24687
|
var allBuiltinMcps = {
|
|
24635
24688
|
websearch_exa,
|
|
24636
|
-
context7
|
|
24689
|
+
context7,
|
|
24690
|
+
grep_app
|
|
24637
24691
|
};
|
|
24638
24692
|
function createBuiltinMcps(disabledMcps = []) {
|
|
24639
24693
|
const mcps = {};
|
|
@@ -24663,7 +24717,8 @@ var AgentNameSchema = exports_external.enum([
|
|
|
24663
24717
|
"librarian",
|
|
24664
24718
|
"explore",
|
|
24665
24719
|
"frontend-ui-ux-engineer",
|
|
24666
|
-
"document-writer"
|
|
24720
|
+
"document-writer",
|
|
24721
|
+
"multimodal-looker"
|
|
24667
24722
|
]);
|
|
24668
24723
|
var HookNameSchema = exports_external.enum([
|
|
24669
24724
|
"todo-continuation-enforcer",
|
|
@@ -24699,7 +24754,8 @@ var AgentOverridesSchema = exports_external.object({
|
|
|
24699
24754
|
librarian: AgentOverrideConfigSchema.optional(),
|
|
24700
24755
|
explore: AgentOverrideConfigSchema.optional(),
|
|
24701
24756
|
"frontend-ui-ux-engineer": AgentOverrideConfigSchema.optional(),
|
|
24702
|
-
"document-writer": AgentOverrideConfigSchema.optional()
|
|
24757
|
+
"document-writer": AgentOverrideConfigSchema.optional(),
|
|
24758
|
+
"multimodal-looker": AgentOverrideConfigSchema.optional()
|
|
24703
24759
|
}).partial();
|
|
24704
24760
|
var ClaudeCodeConfigSchema = exports_external.object({
|
|
24705
24761
|
mcp: exports_external.boolean().optional(),
|
package/dist/mcp/types.d.ts
CHANGED