opencodekit 0.15.15 → 0.15.16
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.md +4 -4
- package/dist/index.js +4 -16
- package/dist/template/.opencode/README.md +2 -2
- package/dist/template/.opencode/agent/plan.md +2 -2
- package/dist/template/.opencode/agent/scout.md +18 -18
- package/dist/template/.opencode/command/research-ui.md +1 -1
- package/dist/template/.opencode/command/research.md +4 -4
- package/dist/template/.opencode/memory/observations/2026-01-28-decision-gh-grep-mcp-wrapper-vs-native-grep-searc.md +4 -4
- package/dist/template/.opencode/memory/research/opencode-mcp-bug-report.md +1 -1
- package/dist/template/.opencode/opencode.json +93 -133
- package/dist/template/.opencode/package.json +1 -1
- package/dist/template/.opencode/plans/1768385996691-silent-wizard.md +2 -2
- package/dist/template/.opencode/skill/deep-research/SKILL.md +1 -1
- package/dist/template/.opencode/skill/source-code-research/SKILL.md +2 -2
- package/dist/template/.opencode/skill/tool-priority/SKILL.md +1 -1
- package/dist/template/.opencode/tool/{grep-search.ts → grepsearch.ts} +3 -3
- package/package.json +4 -16
package/README.md
CHANGED
|
@@ -80,8 +80,8 @@ Background Plugins:
|
|
|
80
80
|
Supporting:
|
|
81
81
|
• 30+ Skills (domain expertise loaded on-demand)
|
|
82
82
|
• 26+ Commands (workflow shortcuts)
|
|
83
|
-
• 3 MCP Services (context7, exa) +
|
|
84
|
-
• Custom Tools (memory-*, observation,
|
|
83
|
+
• 3 MCP Services (context7, exa) + grepsearch tool + skill-embedded MCPs
|
|
84
|
+
• Custom Tools (memory-*, observation, grepsearch, lsp-*)
|
|
85
85
|
• Beads task tracking (`bd` CLI for multi-session workflows)
|
|
86
86
|
• Manual Handoffs (clean phase transitions)
|
|
87
87
|
```
|
|
@@ -223,9 +223,9 @@ You've successfully set up OpenCodeKit when:
|
|
|
223
223
|
- ✅ Skills load on-demand (30+ skills)
|
|
224
224
|
- ✅ Delegation is clear (build → specialized subagents)
|
|
225
225
|
- ✅ `/handoff` creates portable bundles (.opencode/memory/handoffs/)
|
|
226
|
-
- ✅ Tools configured (context7,
|
|
226
|
+
- ✅ Tools configured (context7, grepsearch + skill-embedded MCP)
|
|
227
227
|
- ✅ Background plugins active (enforcer, compactor, truncator)
|
|
228
|
-
- ✅ Custom tools available (memory-_, observation,
|
|
228
|
+
- ✅ Custom tools available (memory-_, observation, grepsearch, lsp-_)
|
|
229
229
|
- ✅ Environment variables set (.opencode/.env with API keys)
|
|
230
230
|
|
|
231
231
|
---
|
package/dist/index.js
CHANGED
|
@@ -750,16 +750,9 @@ var cac = (name = "") => new CAC(name);
|
|
|
750
750
|
// package.json
|
|
751
751
|
var package_default = {
|
|
752
752
|
name: "opencodekit",
|
|
753
|
-
version: "0.15.
|
|
753
|
+
version: "0.15.16",
|
|
754
754
|
description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
|
|
755
|
-
keywords: [
|
|
756
|
-
"agents",
|
|
757
|
-
"cli",
|
|
758
|
-
"mcp",
|
|
759
|
-
"opencode",
|
|
760
|
-
"opencodekit",
|
|
761
|
-
"template"
|
|
762
|
-
],
|
|
755
|
+
keywords: ["agents", "cli", "mcp", "opencode", "opencodekit", "template"],
|
|
763
756
|
license: "MIT",
|
|
764
757
|
author: "OpenCodeKit",
|
|
765
758
|
repository: {
|
|
@@ -769,10 +762,7 @@ var package_default = {
|
|
|
769
762
|
bin: {
|
|
770
763
|
ock: "dist/index.js"
|
|
771
764
|
},
|
|
772
|
-
files: [
|
|
773
|
-
"dist",
|
|
774
|
-
"README.md"
|
|
775
|
-
],
|
|
765
|
+
files: ["dist", "README.md"],
|
|
776
766
|
type: "module",
|
|
777
767
|
publishConfig: {
|
|
778
768
|
access: "public",
|
|
@@ -816,9 +806,7 @@ var package_default = {
|
|
|
816
806
|
engines: {
|
|
817
807
|
bun: ">=1.3.2"
|
|
818
808
|
},
|
|
819
|
-
trustedDependencies: [
|
|
820
|
-
"@beads/bd"
|
|
821
|
-
]
|
|
809
|
+
trustedDependencies: ["@beads/bd"]
|
|
822
810
|
};
|
|
823
811
|
|
|
824
812
|
// src/commands/agent.ts
|
|
@@ -189,8 +189,8 @@ Plugins run automatically in every session:
|
|
|
189
189
|
- Requires: EXA_API_KEY
|
|
190
190
|
- GitHub: https://github.com/exa-labs/exa-mcp-server
|
|
191
191
|
|
|
192
|
-
3. **
|
|
193
|
-
- Native tool: `
|
|
192
|
+
3. **grepsearch** - Search 1M+ public GitHub repositories via grep.app
|
|
193
|
+
- Native tool: `grepsearch({ query: "...", language: [...] })`
|
|
194
194
|
- No API key needed (public service)
|
|
195
195
|
- Direct HTTP wrapper (no MCP overhead)
|
|
196
196
|
|
|
@@ -4,13 +4,13 @@ mode: primary
|
|
|
4
4
|
temperature: 0.2
|
|
5
5
|
permission:
|
|
6
6
|
write:
|
|
7
|
-
"*":
|
|
7
|
+
"*": ask
|
|
8
8
|
".beads/artifacts/*/*.md": allow
|
|
9
9
|
".opencode/memory/plans/*.md": allow
|
|
10
10
|
".opencode/memory/project/*.md": allow
|
|
11
11
|
".opencode/plans/*.md": allow
|
|
12
12
|
edit:
|
|
13
|
-
"*":
|
|
13
|
+
"*": ask
|
|
14
14
|
".beads/artifacts/*/*.md": allow
|
|
15
15
|
".opencode/memory/plans/*.md": allow
|
|
16
16
|
".opencode/memory/project/*.md": allow
|
|
@@ -93,7 +93,7 @@ Run 2-3 tool calls in parallel.
|
|
|
93
93
|
**Triggers:** "how do others", "compare", "best practices", "production patterns"
|
|
94
94
|
**Target:** Summary, 3-5 code examples, tradeoffs, recommendation
|
|
95
95
|
|
|
96
|
-
1. Search GitHub with
|
|
96
|
+
1. Search GitHub with grepsearch (vary queries for different angles)
|
|
97
97
|
2. Compare 3-5 implementations from different repositories
|
|
98
98
|
3. Synthesize common patterns
|
|
99
99
|
4. Note tradeoffs and edge cases
|
|
@@ -101,8 +101,8 @@ Run 2-3 tool calls in parallel.
|
|
|
101
101
|
```typescript
|
|
102
102
|
// Run 4-6 external tool calls in parallel
|
|
103
103
|
// Adapt language filter based on research context
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
grepsearch({ query: "<pattern 1>" }); // No language filter = search all
|
|
105
|
+
grepsearch({ query: "<pattern 2>", language: "<relevant lang>" });
|
|
106
106
|
codesearch({ query: "<API usage>", tokensNum: 5000 });
|
|
107
107
|
context7_query_docs({ libraryId: "<id>", topic: "<feature>" });
|
|
108
108
|
```
|
|
@@ -123,7 +123,7 @@ Run 4-6 tool calls in parallel.
|
|
|
123
123
|
|
|
124
124
|
Every code reference must include a GitHub permalink. Never link to a branch or tag that can change.
|
|
125
125
|
|
|
126
|
-
To construct a permalink: use `
|
|
126
|
+
To construct a permalink: use `grepsearch` to find code, then build the URL from the repository and file path returned. Format: `https://github.com/owner/repo/blob/<sha>/path/to/file#L10-L20`.
|
|
127
127
|
|
|
128
128
|
## Tool Priority (External Sources Only)
|
|
129
129
|
|
|
@@ -132,7 +132,7 @@ To construct a permalink: use `grep_search` to find code, then build the URL fro
|
|
|
132
132
|
| 1 | memory-search | Past research findings | Instant |
|
|
133
133
|
| 2 | context7 | Official library docs | Fast |
|
|
134
134
|
| 3 | codesearch | Exa Code API for SDK/library patterns | Fast |
|
|
135
|
-
| 4 |
|
|
135
|
+
| 4 | grepsearch | Cross-repo GitHub code search (1M+ repos) | Medium |
|
|
136
136
|
| 5 | webfetch | Specific doc URLs, READMEs, changelogs | Medium |
|
|
137
137
|
| 6 | opensrc + LSP | Clone & analyze source code | Slow |
|
|
138
138
|
| 7 | websearch | Tutorials, blog posts, recent news | Slow |
|
|
@@ -210,14 +210,14 @@ context7_query_docs({ libraryId: nodeId, topic: "streams API" });
|
|
|
210
210
|
| Empty results | Try related terms or "API reference" |
|
|
211
211
|
| API error | Verify CONTEXT7_API_KEY is set (optional) |
|
|
212
212
|
|
|
213
|
-
##
|
|
213
|
+
## grepsearch Tool
|
|
214
214
|
|
|
215
215
|
Use for cross-repository code search across 1M+ public GitHub repositories.
|
|
216
216
|
|
|
217
217
|
### Schema
|
|
218
218
|
|
|
219
219
|
```typescript
|
|
220
|
-
|
|
220
|
+
grepsearch({
|
|
221
221
|
query: string, // Required - search pattern (literal code, not keywords)
|
|
222
222
|
repo?: string, // Optional - filter to specific repo (e.g., "vercel/ai")
|
|
223
223
|
language?: string[], // Optional - e.g., ["TypeScript", "TSX"]
|
|
@@ -247,22 +247,22 @@ grep_search({
|
|
|
247
247
|
|
|
248
248
|
```typescript
|
|
249
249
|
// Basic repo search
|
|
250
|
-
|
|
250
|
+
grepsearch({ query: "batch_tool", repo: "anomalyco/opencode" });
|
|
251
251
|
|
|
252
252
|
// With language filter
|
|
253
|
-
|
|
253
|
+
grepsearch({
|
|
254
254
|
query: "getServerSession",
|
|
255
255
|
language: ["TypeScript", "TSX"],
|
|
256
256
|
});
|
|
257
257
|
|
|
258
258
|
// Regex pattern (multi-line)
|
|
259
|
-
|
|
259
|
+
grepsearch({
|
|
260
260
|
query: "(?s)useEffect\\(\\(\\) => {.*removeEventListener",
|
|
261
261
|
useRegexp: true,
|
|
262
262
|
});
|
|
263
263
|
|
|
264
264
|
// Path filter for specific files
|
|
265
|
-
|
|
265
|
+
grepsearch({
|
|
266
266
|
query: "CORS(",
|
|
267
267
|
language: ["Python"],
|
|
268
268
|
matchCase: true,
|
|
@@ -406,8 +406,8 @@ Structure your response as:
|
|
|
406
406
|
|
|
407
407
|
```
|
|
408
408
|
context7 fails → try codesearch for patterns
|
|
409
|
-
codesearch empty → try
|
|
410
|
-
|
|
409
|
+
codesearch empty → try grepsearch with broader query
|
|
410
|
+
grepsearch empty → webfetch specific doc URLs if known
|
|
411
411
|
still stuck → opensrc clone + LSP analysis
|
|
412
412
|
last resort → websearch for tutorials/blogs
|
|
413
413
|
```
|
|
@@ -417,10 +417,10 @@ last resort → websearch for tutorials/blogs
|
|
|
417
417
|
**context7 doesn't find library:**
|
|
418
418
|
|
|
419
419
|
1. Try `codesearch({ query: "<library> <function> example" })`
|
|
420
|
-
2. Try `
|
|
420
|
+
2. Try `grepsearch({ query: "import.*from.*<library>", language: ["TypeScript"] })`
|
|
421
421
|
3. Clone with `npx opensrc <library>` and read source
|
|
422
422
|
|
|
423
|
-
**
|
|
423
|
+
**grepsearch returns nothing:**
|
|
424
424
|
|
|
425
425
|
- Broaden query: search concepts, not exact function names
|
|
426
426
|
- Remove specific repo filter to search across all repos
|
|
@@ -429,7 +429,7 @@ last resort → websearch for tutorials/blogs
|
|
|
429
429
|
- Search for error messages, config patterns, or import statements
|
|
430
430
|
- Fall back to `codesearch` for conceptual queries
|
|
431
431
|
|
|
432
|
-
**
|
|
432
|
+
**grepsearch API error:**
|
|
433
433
|
|
|
434
434
|
- The grep.app API may be temporarily unavailable
|
|
435
435
|
- Fall back to `codesearch` for similar functionality
|
|
@@ -458,6 +458,6 @@ NO URL GUESSING: Only use URLs from tools or user input.
|
|
|
458
458
|
CITE EVERYTHING: No claims without source links.
|
|
459
459
|
|
|
460
460
|
Quick: context7 → codesearch → websearch (2-3 parallel calls)
|
|
461
|
-
Deep:
|
|
462
|
-
Fallback: context7 → codesearch →
|
|
461
|
+
Deep: grepsearch (4-6 parallel calls) → compare 3-5 repos → synthesize
|
|
462
|
+
Fallback: context7 → codesearch → grepsearch → webfetch → opensrc → websearch
|
|
463
463
|
```
|
|
@@ -50,7 +50,7 @@ Return file:line references for all findings.`,
|
|
|
50
50
|
|
|
51
51
|
### External Research → @scout (this agent)
|
|
52
52
|
|
|
53
|
-
Scout handles external sources (context7,
|
|
53
|
+
Scout handles external sources (context7, grepsearch, codesearch, etc.)
|
|
54
54
|
|
|
55
55
|
### Parallel Execution
|
|
56
56
|
|
|
@@ -60,7 +60,7 @@ Run internal and external research in parallel:
|
|
|
60
60
|
// Launch both in parallel
|
|
61
61
|
task({ subagent_type: "explore", prompt: "LSP analysis of..." });
|
|
62
62
|
context7_resolve_library_id({ libraryName: "<lib>" });
|
|
63
|
-
|
|
63
|
+
grepsearch({ query: "<pattern>", language: "TypeScript" });
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
## Load Context
|
|
@@ -107,7 +107,7 @@ If memory search fails (Ollama not running), continue to external sources.
|
|
|
107
107
|
2. **Official docs** (high trust) - What does the library documentation say?
|
|
108
108
|
3. **Context7** (high trust) - API usage and examples
|
|
109
109
|
4. **Source code** (high trust) - Library implementation (use `source-code-research` skill)
|
|
110
|
-
5. **GitHub examples** (medium trust) - Real-world patterns via codesearch/
|
|
110
|
+
5. **GitHub examples** (medium trust) - Real-world patterns via codesearch/grepsearch
|
|
111
111
|
6. **Web search** (lower trust) - Only if tiers 1-5 don't answer
|
|
112
112
|
|
|
113
113
|
## Research
|
|
@@ -161,7 +161,7 @@ npx opensrc <owner>/<repo> # GitHub repo
|
|
|
161
161
|
|
|
162
162
|
```typescript
|
|
163
163
|
codesearch({ query: "<API usage pattern>", tokensNum: 5000 });
|
|
164
|
-
|
|
164
|
+
grepsearch({ query: "<code pattern>", language: "TypeScript" });
|
|
165
165
|
```
|
|
166
166
|
|
|
167
167
|
## Validate Findings
|
|
@@ -4,18 +4,18 @@ created: 2026-01-28T16:59:35.621Z
|
|
|
4
4
|
confidence: high
|
|
5
5
|
valid_until: null
|
|
6
6
|
superseded_by: null
|
|
7
|
-
concepts: ["
|
|
7
|
+
concepts: ["grepsearch", "MCP", "native tool", "architecture", "best practices"]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# 🎯 gh-grep MCP wrapper vs native
|
|
10
|
+
# 🎯 gh-grep MCP wrapper vs native grepsearch tool
|
|
11
11
|
|
|
12
12
|
🟢 **Confidence:** high
|
|
13
13
|
|
|
14
14
|
Created two implementations for GitHub code search:
|
|
15
15
|
|
|
16
|
-
1. **Native tool** (.opencode/tool/
|
|
16
|
+
1. **Native tool** (.opencode/tool/grepsearch.ts): TypeScript wrapper around grep.app API - WORKING ✅
|
|
17
17
|
2. **MCP skill** (.opencode/skill/gh-grep/): Skill wrapper that calls uvx grep-mcp server - BROKEN ❌
|
|
18
18
|
|
|
19
|
-
The MCP server has an argument parsing bug ('str' object has no attribute 'get') that prevents tool execution. Even the SKILL.md documentation admits: "Note: The MCP server (grep-mcp) may have bugs. The native
|
|
19
|
+
The MCP server has an argument parsing bug ('str' object has no attribute 'get') that prevents tool execution. Even the SKILL.md documentation admits: "Note: The MCP server (grep-mcp) may have bugs. The native grepsearch tool is recommended."
|
|
20
20
|
|
|
21
21
|
**Key insight**: We already documented the problem and recommended against the MCP approach. The native tool works perfectly and doesn't require external process dependencies.
|
|
@@ -100,7 +100,7 @@ The bug is in **OpenCode's tool response handler**, not the MCP connection layer
|
|
|
100
100
|
|
|
101
101
|
- `context7_resolve-library-id` - Native HTTP wrapper (works)
|
|
102
102
|
- `context7_query-docs` - Native HTTP wrapper (works)
|
|
103
|
-
- `
|
|
103
|
+
- `grepsearch` - Native HTTP wrapper (works)
|
|
104
104
|
- `codesearch` (Exa Code API) - works
|
|
105
105
|
- `websearch` (Exa Web Search) - works
|
|
106
106
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"agent": {
|
|
4
4
|
"build": {
|
|
5
5
|
"description": "Primary development agent with full codebase access",
|
|
6
|
-
"model": "
|
|
6
|
+
"model": "kimi-for-coding/k2p5"
|
|
7
7
|
},
|
|
8
8
|
"compaction": {
|
|
9
9
|
"description": "Session summarizer for context continuity across compactions"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"plan": {
|
|
28
28
|
"description": "Primary planning agent for architecture and multi-phase execution",
|
|
29
|
-
"model": "
|
|
29
|
+
"model": "kimi-for-coding/k2p5"
|
|
30
30
|
},
|
|
31
31
|
"review": {
|
|
32
32
|
"description": "Code review, debugging, and security audit specialist",
|
|
@@ -49,65 +49,26 @@
|
|
|
49
49
|
"experimental": {},
|
|
50
50
|
"formatter": {
|
|
51
51
|
"biome": {
|
|
52
|
-
"command": [
|
|
53
|
-
|
|
54
|
-
"@biomejs/biome",
|
|
55
|
-
"check",
|
|
56
|
-
"--write",
|
|
57
|
-
"$FILE"
|
|
58
|
-
],
|
|
59
|
-
"extensions": [
|
|
60
|
-
".js",
|
|
61
|
-
".jsx",
|
|
62
|
-
".ts",
|
|
63
|
-
".tsx",
|
|
64
|
-
".json",
|
|
65
|
-
".jsonc"
|
|
66
|
-
]
|
|
52
|
+
"command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
|
|
53
|
+
"extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
|
|
67
54
|
},
|
|
68
55
|
"cargo-fmt": {
|
|
69
|
-
"command": [
|
|
70
|
-
|
|
71
|
-
"fmt",
|
|
72
|
-
"--",
|
|
73
|
-
"$FILE"
|
|
74
|
-
],
|
|
75
|
-
"extensions": [
|
|
76
|
-
".rs"
|
|
77
|
-
]
|
|
56
|
+
"command": ["cargo", "fmt", "--", "$FILE"],
|
|
57
|
+
"extensions": [".rs"]
|
|
78
58
|
},
|
|
79
59
|
"java-formatter": {
|
|
80
|
-
"command": [
|
|
81
|
-
"google-java-format",
|
|
82
|
-
"--replace",
|
|
83
|
-
"$FILE"
|
|
84
|
-
],
|
|
60
|
+
"command": ["google-java-format", "--replace", "$FILE"],
|
|
85
61
|
"environment": {
|
|
86
62
|
"JAVA_HOME": "{env:JAVA_HOME}"
|
|
87
63
|
},
|
|
88
|
-
"extensions": [
|
|
89
|
-
".java"
|
|
90
|
-
]
|
|
64
|
+
"extensions": [".java"]
|
|
91
65
|
},
|
|
92
66
|
"laravel-pint": {
|
|
93
|
-
"command": [
|
|
94
|
-
|
|
95
|
-
"laravel-pint",
|
|
96
|
-
"--preset",
|
|
97
|
-
"psr12",
|
|
98
|
-
"$FILE"
|
|
99
|
-
],
|
|
100
|
-
"extensions": [
|
|
101
|
-
".php"
|
|
102
|
-
]
|
|
67
|
+
"command": ["npx", "laravel-pint", "--preset", "psr12", "$FILE"],
|
|
68
|
+
"extensions": [".php"]
|
|
103
69
|
},
|
|
104
70
|
"oxfmt": {
|
|
105
|
-
"command": [
|
|
106
|
-
"npx",
|
|
107
|
-
"oxfmt",
|
|
108
|
-
"--write",
|
|
109
|
-
"$FILE"
|
|
110
|
-
],
|
|
71
|
+
"command": ["npx", "oxfmt", "--write", "$FILE"],
|
|
111
72
|
"extensions": [
|
|
112
73
|
".js",
|
|
113
74
|
".jsx",
|
|
@@ -126,10 +87,7 @@
|
|
|
126
87
|
]
|
|
127
88
|
}
|
|
128
89
|
},
|
|
129
|
-
"instructions": [
|
|
130
|
-
".opencode/memory/user.md",
|
|
131
|
-
".opencode/memory/project/*.md"
|
|
132
|
-
],
|
|
90
|
+
"instructions": [".opencode/memory/user.md", ".opencode/memory/project/*.md"],
|
|
133
91
|
"keybinds": {
|
|
134
92
|
"command_list": ";",
|
|
135
93
|
"leader": "`",
|
|
@@ -149,7 +107,7 @@
|
|
|
149
107
|
"url": "https://stitch.googleapis.com/mcp"
|
|
150
108
|
}
|
|
151
109
|
},
|
|
152
|
-
"model": "
|
|
110
|
+
"model": "kimi-for-coding/k2p5",
|
|
153
111
|
"permission": {
|
|
154
112
|
"bash": {
|
|
155
113
|
"*": "allow",
|
|
@@ -185,6 +143,64 @@
|
|
|
185
143
|
"@franlol/opencode-md-table-formatter@0.0.3"
|
|
186
144
|
],
|
|
187
145
|
"provider": {
|
|
146
|
+
"kimi-for-coding": {
|
|
147
|
+
"models": {
|
|
148
|
+
"k2p5": {
|
|
149
|
+
"limit": {
|
|
150
|
+
"context": 262144,
|
|
151
|
+
"output": 32768
|
|
152
|
+
},
|
|
153
|
+
"temperature": true,
|
|
154
|
+
"reasoning": true,
|
|
155
|
+
"tool_call": true,
|
|
156
|
+
"variants": {
|
|
157
|
+
"high": {
|
|
158
|
+
"options": {
|
|
159
|
+
"thinking": {
|
|
160
|
+
"budgetTokens": 32000,
|
|
161
|
+
"type": "enabled"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"medium": {
|
|
166
|
+
"options": {
|
|
167
|
+
"thinking": {
|
|
168
|
+
"budgetTokens": 16000,
|
|
169
|
+
"type": "enabled"
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"kimi-k2-thinking": {
|
|
176
|
+
"limit": {
|
|
177
|
+
"context": 262144,
|
|
178
|
+
"output": 32768
|
|
179
|
+
},
|
|
180
|
+
"temperature": true,
|
|
181
|
+
"reasoning": true,
|
|
182
|
+
"tool_call": true,
|
|
183
|
+
"variants": {
|
|
184
|
+
"high": {
|
|
185
|
+
"options": {
|
|
186
|
+
"thinking": {
|
|
187
|
+
"budgetTokens": 32000,
|
|
188
|
+
"type": "enabled"
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
"medium": {
|
|
193
|
+
"options": {
|
|
194
|
+
"thinking": {
|
|
195
|
+
"budgetTokens": 16000,
|
|
196
|
+
"type": "enabled"
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
188
204
|
"github-copilot": {
|
|
189
205
|
"models": {
|
|
190
206
|
"claude-haiku-4.5": {
|
|
@@ -327,17 +343,13 @@
|
|
|
327
343
|
"disabled": true
|
|
328
344
|
},
|
|
329
345
|
"high": {
|
|
330
|
-
"include": [
|
|
331
|
-
"reasoning.encrypted_content"
|
|
332
|
-
],
|
|
346
|
+
"include": ["reasoning.encrypted_content"],
|
|
333
347
|
"reasoningEffort": "high",
|
|
334
348
|
"reasoningSummary": "auto",
|
|
335
349
|
"textVerbosity": "low"
|
|
336
350
|
},
|
|
337
351
|
"medium": {
|
|
338
|
-
"include": [
|
|
339
|
-
"reasoning.encrypted_content"
|
|
340
|
-
],
|
|
352
|
+
"include": ["reasoning.encrypted_content"],
|
|
341
353
|
"reasoningEffort": "medium",
|
|
342
354
|
"reasoningSummary": "auto",
|
|
343
355
|
"textVerbosity": "low"
|
|
@@ -350,17 +362,13 @@
|
|
|
350
362
|
"disabled": true
|
|
351
363
|
},
|
|
352
364
|
"high": {
|
|
353
|
-
"include": [
|
|
354
|
-
"reasoning.encrypted_content"
|
|
355
|
-
],
|
|
365
|
+
"include": ["reasoning.encrypted_content"],
|
|
356
366
|
"reasoningEffort": "high",
|
|
357
367
|
"reasoningSummary": "auto",
|
|
358
368
|
"textVerbosity": "low"
|
|
359
369
|
},
|
|
360
370
|
"medium": {
|
|
361
|
-
"include": [
|
|
362
|
-
"reasoning.encrypted_content"
|
|
363
|
-
],
|
|
371
|
+
"include": ["reasoning.encrypted_content"],
|
|
364
372
|
"reasoningEffort": "medium",
|
|
365
373
|
"reasoningSummary": "auto",
|
|
366
374
|
"textVerbosity": "low"
|
|
@@ -390,14 +398,8 @@
|
|
|
390
398
|
"output": 65536
|
|
391
399
|
},
|
|
392
400
|
"modalities": {
|
|
393
|
-
"input": [
|
|
394
|
-
|
|
395
|
-
"image",
|
|
396
|
-
"pdf"
|
|
397
|
-
],
|
|
398
|
-
"output": [
|
|
399
|
-
"text"
|
|
400
|
-
]
|
|
401
|
+
"input": ["text", "image", "pdf"],
|
|
402
|
+
"output": ["text"]
|
|
401
403
|
},
|
|
402
404
|
"name": "Gemini 2 5 Flash"
|
|
403
405
|
},
|
|
@@ -407,14 +409,8 @@
|
|
|
407
409
|
"output": 65536
|
|
408
410
|
},
|
|
409
411
|
"modalities": {
|
|
410
|
-
"input": [
|
|
411
|
-
|
|
412
|
-
"image",
|
|
413
|
-
"pdf"
|
|
414
|
-
],
|
|
415
|
-
"output": [
|
|
416
|
-
"text"
|
|
417
|
-
]
|
|
412
|
+
"input": ["text", "image", "pdf"],
|
|
413
|
+
"output": ["text"]
|
|
418
414
|
},
|
|
419
415
|
"name": "Gemini 2 5 Flash Lite"
|
|
420
416
|
},
|
|
@@ -424,14 +420,8 @@
|
|
|
424
420
|
"output": 65536
|
|
425
421
|
},
|
|
426
422
|
"modalities": {
|
|
427
|
-
"input": [
|
|
428
|
-
|
|
429
|
-
"image",
|
|
430
|
-
"pdf"
|
|
431
|
-
],
|
|
432
|
-
"output": [
|
|
433
|
-
"text"
|
|
434
|
-
]
|
|
423
|
+
"input": ["text", "image", "pdf"],
|
|
424
|
+
"output": ["text"]
|
|
435
425
|
},
|
|
436
426
|
"name": "Gemini 2 5 Pro"
|
|
437
427
|
},
|
|
@@ -441,14 +431,8 @@
|
|
|
441
431
|
"output": 65536
|
|
442
432
|
},
|
|
443
433
|
"modalities": {
|
|
444
|
-
"input": [
|
|
445
|
-
|
|
446
|
-
"image",
|
|
447
|
-
"pdf"
|
|
448
|
-
],
|
|
449
|
-
"output": [
|
|
450
|
-
"text"
|
|
451
|
-
]
|
|
434
|
+
"input": ["text", "image", "pdf"],
|
|
435
|
+
"output": ["text"]
|
|
452
436
|
},
|
|
453
437
|
"name": "Gemini 3 Flash Preview",
|
|
454
438
|
"options": {
|
|
@@ -485,14 +469,8 @@
|
|
|
485
469
|
"output": 65536
|
|
486
470
|
},
|
|
487
471
|
"modalities": {
|
|
488
|
-
"input": [
|
|
489
|
-
|
|
490
|
-
"image",
|
|
491
|
-
"pdf"
|
|
492
|
-
],
|
|
493
|
-
"output": [
|
|
494
|
-
"text"
|
|
495
|
-
]
|
|
472
|
+
"input": ["text", "image", "pdf"],
|
|
473
|
+
"output": ["text"]
|
|
496
474
|
},
|
|
497
475
|
"name": "Gemini 3 Pro Preview",
|
|
498
476
|
"options": {
|
|
@@ -522,14 +500,8 @@
|
|
|
522
500
|
"output": 64000
|
|
523
501
|
},
|
|
524
502
|
"modalities": {
|
|
525
|
-
"input": [
|
|
526
|
-
|
|
527
|
-
"image",
|
|
528
|
-
"pdf"
|
|
529
|
-
],
|
|
530
|
-
"output": [
|
|
531
|
-
"text"
|
|
532
|
-
]
|
|
503
|
+
"input": ["text", "image", "pdf"],
|
|
504
|
+
"output": ["text"]
|
|
533
505
|
},
|
|
534
506
|
"name": "Gemini Claude Opus 4 5 Thinking",
|
|
535
507
|
"options": {
|
|
@@ -558,14 +530,8 @@
|
|
|
558
530
|
"output": 64000
|
|
559
531
|
},
|
|
560
532
|
"modalities": {
|
|
561
|
-
"input": [
|
|
562
|
-
|
|
563
|
-
"image",
|
|
564
|
-
"pdf"
|
|
565
|
-
],
|
|
566
|
-
"output": [
|
|
567
|
-
"text"
|
|
568
|
-
]
|
|
533
|
+
"input": ["text", "image", "pdf"],
|
|
534
|
+
"output": ["text"]
|
|
569
535
|
},
|
|
570
536
|
"name": "Gemini Claude Sonnet 4 5"
|
|
571
537
|
},
|
|
@@ -575,14 +541,8 @@
|
|
|
575
541
|
"output": 64000
|
|
576
542
|
},
|
|
577
543
|
"modalities": {
|
|
578
|
-
"input": [
|
|
579
|
-
|
|
580
|
-
"image",
|
|
581
|
-
"pdf"
|
|
582
|
-
],
|
|
583
|
-
"output": [
|
|
584
|
-
"text"
|
|
585
|
-
]
|
|
544
|
+
"input": ["text", "image", "pdf"],
|
|
545
|
+
"output": ["text"]
|
|
586
546
|
},
|
|
587
547
|
"name": "Gemini Claude Sonnet 4 5 Thinking",
|
|
588
548
|
"options": {
|
|
@@ -860,7 +820,7 @@
|
|
|
860
820
|
"tools": {
|
|
861
821
|
"context7-query-docs": true,
|
|
862
822
|
"context7-resolve-library-id": true,
|
|
863
|
-
"
|
|
823
|
+
"grepsearch": true,
|
|
864
824
|
"oracle": true
|
|
865
825
|
},
|
|
866
826
|
"tui": {
|
|
@@ -880,4 +840,4 @@
|
|
|
880
840
|
".DS_Store"
|
|
881
841
|
]
|
|
882
842
|
}
|
|
883
|
-
}
|
|
843
|
+
}
|
|
@@ -44,7 +44,7 @@ If memory returns high-confidence findings on this exact topic, synthesize and r
|
|
|
44
44
|
| 2 | context7_resolve-library-id | Resolve library names to IDs | Fast |
|
|
45
45
|
| 3 | context7_query-docs | Official library docs | Fast |
|
|
46
46
|
| 4 | codesearch | Exa Code API for SDK/library patterns | Fast |
|
|
47
|
-
| 5 |
|
|
47
|
+
| 5 | grepsearch | Cross-repo GitHub code search | Medium |
|
|
48
48
|
| 6 | webfetch | Specific doc URLs, READMEs, changelogs | Medium |
|
|
49
49
|
| 7 | opensrc + LSP | Clone & analyze source code | Slow |
|
|
50
50
|
| 8 | websearch | Tutorials, blog posts, recent news | Slow |
|
|
@@ -186,7 +186,7 @@ last resort → websearch for tutorials/blogs
|
|
|
186
186
|
|
|
187
187
|
**context7 doesn't find library:**
|
|
188
188
|
1. Try `codesearch({ query: "<library> <function> example" })`
|
|
189
|
-
2. Try `
|
|
189
|
+
2. Try `gh_grepsearchGitHub({ query: "import.*from.*<library>" })`
|
|
190
190
|
3. Clone with `npx opensrc <library>` and read source
|
|
191
191
|
|
|
192
192
|
**gh_grep returns nothing:**
|
|
@@ -115,7 +115,7 @@ context7_query_docs({ libraryId: "<id>", topic: "<specific question>" });
|
|
|
115
115
|
|
|
116
116
|
// Real-world patterns
|
|
117
117
|
codesearch({ query: "<API usage pattern>", tokensNum: 5000 });
|
|
118
|
-
|
|
118
|
+
grepsearch({ query: "<code pattern>", language: "TypeScript" });
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
## Confidence Levels
|
|
@@ -366,7 +366,7 @@ Source code research complements other tools:
|
|
|
366
366
|
| --------------- | -------------------------- | ------------------------------ |
|
|
367
367
|
| **Context7** | API docs, official guides | Implementation details |
|
|
368
368
|
| **codesearch** | Usage patterns in the wild | Canonical implementation |
|
|
369
|
-
| **
|
|
369
|
+
| **grepsearch** | Real-world examples | How library itself works |
|
|
370
370
|
| **Web search** | Tutorials, blog posts | Ground truth from source |
|
|
371
371
|
| **Codebase** | Project-specific patterns | How dependencies actually work |
|
|
372
372
|
|
|
@@ -375,7 +375,7 @@ Source code research complements other tools:
|
|
|
375
375
|
1. Context7 - Check official docs
|
|
376
376
|
2. Codebase - Check existing usage
|
|
377
377
|
3. **Source code** - If still unclear, fetch source
|
|
378
|
-
4. codesearch/
|
|
378
|
+
4. codesearch/grepsearch - See how others use it
|
|
379
379
|
5. Web search - Last resort for context
|
|
380
380
|
|
|
381
381
|
## Cleanup
|
|
@@ -186,5 +186,5 @@ glob ["src/**/*.ts", "tests/**/*.ts"]
|
|
|
186
186
|
| **context7_query-docs** | Query official library documentation. Fast. |
|
|
187
187
|
| **websearch** | Docs not in Context7, recent releases, troubleshooting. |
|
|
188
188
|
| **codesearch** | Real implementation patterns from GitHub. |
|
|
189
|
-
| **
|
|
189
|
+
| **grepsearch** | Cross-repo code patterns via grep.app. |
|
|
190
190
|
| **webfetch** | Specific URL user provided. |
|
|
@@ -27,9 +27,9 @@ IMPORTANT: Search for **literal code patterns**, not keywords:
|
|
|
27
27
|
❌ Bad: "react tutorial", "best practices", "how to use"
|
|
28
28
|
|
|
29
29
|
Examples:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
grepsearch({ query: "getServerSession", language: "TypeScript" })
|
|
31
|
+
grepsearch({ query: "CORS(", language: "Python", repo: "flask" })
|
|
32
|
+
grepsearch({ query: "export async function POST", path: "route.ts" })
|
|
33
33
|
`,
|
|
34
34
|
args: {
|
|
35
35
|
query: tool.schema
|
package/package.json
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencodekit",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.16",
|
|
4
4
|
"description": "CLI tool for bootstrapping and managing OpenCodeKit projects",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"agents",
|
|
7
|
-
"cli",
|
|
8
|
-
"mcp",
|
|
9
|
-
"opencode",
|
|
10
|
-
"opencodekit",
|
|
11
|
-
"template"
|
|
12
|
-
],
|
|
5
|
+
"keywords": ["agents", "cli", "mcp", "opencode", "opencodekit", "template"],
|
|
13
6
|
"license": "MIT",
|
|
14
7
|
"author": "OpenCodeKit",
|
|
15
8
|
"repository": {
|
|
@@ -19,10 +12,7 @@
|
|
|
19
12
|
"bin": {
|
|
20
13
|
"ock": "dist/index.js"
|
|
21
14
|
},
|
|
22
|
-
"files": [
|
|
23
|
-
"dist",
|
|
24
|
-
"README.md"
|
|
25
|
-
],
|
|
15
|
+
"files": ["dist", "README.md"],
|
|
26
16
|
"type": "module",
|
|
27
17
|
"publishConfig": {
|
|
28
18
|
"access": "public",
|
|
@@ -66,7 +56,5 @@
|
|
|
66
56
|
"engines": {
|
|
67
57
|
"bun": ">=1.3.2"
|
|
68
58
|
},
|
|
69
|
-
"trustedDependencies": [
|
|
70
|
-
"@beads/bd"
|
|
71
|
-
]
|
|
59
|
+
"trustedDependencies": ["@beads/bd"]
|
|
72
60
|
}
|