forked from imbytecat/opencode-config
chore: 初始提交
This commit is contained in:
4
.env.example
Normal file
4
.env.example
Normal file
@@ -0,0 +1,4 @@
|
||||
CPA_API_KEY=
|
||||
|
||||
# if using Windows
|
||||
OPENCODE_GIT_BASH_PATH=C:\Users\imbytecat\scoop\apps\git\current\bin\bash.exe
|
||||
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
node_modules
|
||||
package.json
|
||||
bun.lock
|
||||
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
16
.vscode/settings.json
vendored
Normal file
16
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.biome": "explicit",
|
||||
"source.organizeImports.biome": "explicit"
|
||||
},
|
||||
"editor.formatOnSave": true,
|
||||
"[json]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"[jsonc]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"files.associations": {
|
||||
"**/opencode.json": "jsonc"
|
||||
}
|
||||
}
|
||||
36
biome.json
Normal file
36
biome.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"$schema": "https://biomejs.dev/schemas/latest/schema.json",
|
||||
"vcs": {
|
||||
"enabled": true,
|
||||
"clientKind": "git",
|
||||
"useIgnoreFile": true
|
||||
},
|
||||
"files": {
|
||||
"ignoreUnknown": false
|
||||
},
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"indentStyle": "space",
|
||||
"indentWidth": 2
|
||||
},
|
||||
"linter": {
|
||||
"enabled": true,
|
||||
"rules": {
|
||||
"recommended": true
|
||||
}
|
||||
},
|
||||
"javascript": {
|
||||
"formatter": {
|
||||
"quoteStyle": "single",
|
||||
"semicolons": "asNeeded"
|
||||
}
|
||||
},
|
||||
"assist": {
|
||||
"enabled": true,
|
||||
"actions": {
|
||||
"source": {
|
||||
"organizeImports": "on"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
55
dcp.jsonc
Normal file
55
dcp.jsonc
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
// Enable or disable the plugin
|
||||
"enabled": true,
|
||||
// Enable debug logging to ~/.config/opencode/logs/dcp/
|
||||
"debug": false,
|
||||
// Notification display: "off", "minimal", or "detailed"
|
||||
"pruneNotification": "detailed",
|
||||
// Protect from pruning for <turns> message turns
|
||||
"turnProtection": {
|
||||
"enabled": false,
|
||||
"turns": 4
|
||||
},
|
||||
// LLM-driven context pruning tools
|
||||
"tools": {
|
||||
// Shared settings for all prune tools
|
||||
"settings": {
|
||||
// Nudge the LLM to use prune tools (every <nudgeFrequency> tool results)
|
||||
"nudgeEnabled": true,
|
||||
"nudgeFrequency": 10,
|
||||
// Additional tools to protect from pruning
|
||||
"protectedTools": []
|
||||
},
|
||||
// Removes tool content from context without preservation (for completed tasks or noise)
|
||||
"discard": {
|
||||
"enabled": true
|
||||
},
|
||||
// Distills key findings into preserved knowledge before removing raw content
|
||||
"extract": {
|
||||
"enabled": true,
|
||||
// Show distillation content as an ignored message notification
|
||||
"showDistillation": false
|
||||
}
|
||||
},
|
||||
// Automatic pruning strategies
|
||||
"strategies": {
|
||||
// Remove duplicate tool calls (same tool with same arguments)
|
||||
"deduplication": {
|
||||
"enabled": true,
|
||||
// Additional tools to protect from pruning
|
||||
"protectedTools": []
|
||||
},
|
||||
// Prune write tool inputs when the file has been subsequently read
|
||||
"supersedeWrites": {
|
||||
"enabled": false
|
||||
},
|
||||
// Prune tool inputs for errored tools after X turns
|
||||
"purgeErrors": {
|
||||
"enabled": true,
|
||||
// Number of turns before errored tool inputs are pruned
|
||||
"turns": 4,
|
||||
// Additional tools to protect from pruning
|
||||
"protectedTools": []
|
||||
}
|
||||
}
|
||||
}
|
||||
77
opencode.json
Normal file
77
opencode.json
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"autoupdate": "notify",
|
||||
"theme": "tokyonight",
|
||||
"model": "ai-gateway/claude-opus-4-5-thinking",
|
||||
"small_model": "ai-gateway/gemini-3-flash-preview",
|
||||
"plugin": [
|
||||
"@tarquinen/opencode-dcp@latest",
|
||||
"@franlol/opencode-md-table-formatter@latest"
|
||||
],
|
||||
"mcp": {
|
||||
"websearch": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.exa.ai/mcp?tools=web_search_exa"
|
||||
},
|
||||
"context7": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.context7.com/mcp"
|
||||
},
|
||||
"grep_app": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.grep.app"
|
||||
}
|
||||
},
|
||||
"permission": {
|
||||
"websearch": "deny"
|
||||
},
|
||||
"provider": {
|
||||
"ai-gateway": {
|
||||
"name": "AI Gateway",
|
||||
"npm": "@ai-sdk/anthropic",
|
||||
"options": {
|
||||
"baseURL": "http://10.0.1.1:8317/v1",
|
||||
"apiKey": "{env:CPA_API_KEY}"
|
||||
},
|
||||
"models": {
|
||||
"claude-opus-4-5-thinking": {
|
||||
"name": "Claude Opus 4.5 (Thinking)"
|
||||
},
|
||||
"claude-sonnet-4-5-thinking": {
|
||||
"name": "Claude Sonnet 4.5 (Thinking)"
|
||||
},
|
||||
"claude-sonnet-4-5": {
|
||||
"name": "Claude Sonnet 4.5"
|
||||
},
|
||||
"claude-haiku-4-5": {
|
||||
"name": "Claude Haiku 4.5"
|
||||
},
|
||||
"gemini-3-pro-preview": {
|
||||
"name": "Gemini 3 Pro"
|
||||
},
|
||||
"gemini-3-flash-preview": {
|
||||
"name": "Gemini 3 Flash"
|
||||
},
|
||||
"gpt-5.2-codex": {
|
||||
"name": "GPT-5.2-Codex"
|
||||
},
|
||||
"gpt-5.2": {
|
||||
"name": "GPT-5.2"
|
||||
}
|
||||
}
|
||||
},
|
||||
"GLM Coding": {
|
||||
"name": "Z.AI",
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"options": {
|
||||
"baseURL": "https://api.z.ai/api/coding/paas/v4",
|
||||
"apiKey": "{env:ZAI_API_KEY}"
|
||||
},
|
||||
"models": {
|
||||
"glm-4.7": {
|
||||
"name": "GLM-4.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
0
skill/.gitkeep
Normal file
0
skill/.gitkeep
Normal file
21
snippet/mcp.jsonc
Normal file
21
snippet/mcp.jsonc
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"mcp": {
|
||||
"context7": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.context7.com/mcp"
|
||||
},
|
||||
"deepwiki": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.deepwiki.com/mcp"
|
||||
},
|
||||
"sequential-thinking": {
|
||||
"type": "local",
|
||||
"command": ["bunx", "@modelcontextprotocol/server-sequential-thinking"]
|
||||
},
|
||||
"memory": {
|
||||
"type": "local",
|
||||
"command": ["bunx", "@modelcontextprotocol/server-memory"]
|
||||
}
|
||||
}
|
||||
}
|
||||
58
snippet/provider.jsonc
Normal file
58
snippet/provider.jsonc
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"provider": {
|
||||
"cli-proxy-api": {
|
||||
"name": "CLI Proxy API",
|
||||
"npm": "@ai-sdk/anthropic",
|
||||
"options": {
|
||||
// "baseURL": "https://cpa.services.sh.cn:8443/v1",
|
||||
"baseURL": "http://10.0.1.1:8317/v1",
|
||||
"apiKey": "{env:CPA_API_KEY}"
|
||||
},
|
||||
"models": {
|
||||
// Claude
|
||||
"claude-opus-4-5-thinking": {
|
||||
"name": "Claude Opus 4.5 (Thinking)"
|
||||
},
|
||||
"claude-sonnet-4-5-thinking": {
|
||||
"name": "Claude Sonnet 4.5 (Thinking)"
|
||||
},
|
||||
"claude-sonnet-4-5": {
|
||||
"name": "Claude Sonnet 4.5"
|
||||
},
|
||||
"claude-haiku-4-5": {
|
||||
"name": "Claude Haiku 4.5"
|
||||
},
|
||||
|
||||
// Gemini
|
||||
"gemini-3-pro-preview": {
|
||||
"name": "Gemini 3 Pro"
|
||||
},
|
||||
"gemini-3-flash-preview": {
|
||||
"name": "Gemini 3 Flash"
|
||||
},
|
||||
|
||||
// GPT
|
||||
"gpt-5.2-codex": {
|
||||
"name": "GPT-5.2-Codex"
|
||||
},
|
||||
"gpt-5.2": {
|
||||
"name": "GPT-5.2"
|
||||
}
|
||||
}
|
||||
},
|
||||
"GLM Coding": {
|
||||
"name": "Z.AI",
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"options": {
|
||||
"baseURL": "https://api.z.ai/api/coding/paas/v4",
|
||||
"apiKey": "{env:ZAI_API_KEY}"
|
||||
},
|
||||
"models": {
|
||||
"glm-4.7": {
|
||||
"name": "GLM-4.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user