update
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
node_modules
|
||||||
16
README.md
Normal file
16
README.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
## opencode基本配置
|
||||||
|
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# clone 到根目录
|
||||||
|
git clone https://cnb.cool/kevisual/dev-opencode ~/.opencode
|
||||||
|
|
||||||
|
export OPENCODE_CONFIG=~/.opencode/opencode.json
|
||||||
|
```
|
||||||
|
|
||||||
|
模型配置
|
||||||
|
|
||||||
|
```sh
|
||||||
|
GLM-4.7
|
||||||
|
MiniMax-M2.1
|
||||||
|
```
|
||||||
46
opencode.json
Normal file
46
opencode.json
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://opencode.ai/config.json",
|
||||||
|
"autoshare": false,
|
||||||
|
"share": "disabled",
|
||||||
|
"autoupdate": true,
|
||||||
|
"permission": "allow",
|
||||||
|
"disabled_providers": [
|
||||||
|
"openai",
|
||||||
|
"gemini"
|
||||||
|
],
|
||||||
|
"watcher": {
|
||||||
|
"ignore": [
|
||||||
|
"node_modules/**",
|
||||||
|
"dist/**",
|
||||||
|
".git/**"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"provider": {
|
||||||
|
"custom-zhipu": {
|
||||||
|
"npm": "@ai-sdk/openai-compatible",
|
||||||
|
"name": "国内智谱AI",
|
||||||
|
"models": {
|
||||||
|
"GLM-4.7": {
|
||||||
|
"name": "GLM-4.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"baseURL": "https://open.bigmodel.cn/api/coding/paas/v4",
|
||||||
|
"apiKey": "{env:ZHIPU_TOKEN}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"custom-minimax": {
|
||||||
|
"npm": "@ai-sdk/anthropic",
|
||||||
|
"name": "国内MiniMax",
|
||||||
|
"models": {
|
||||||
|
"MiniMax-M2.1": {
|
||||||
|
"name": "MiniMax-M2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"baseURL": "https://api.minimaxi.com/anthropic/v1",
|
||||||
|
"apiKey": "{env:MINIMAX_TOKEN}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
6
package.json
Normal file
6
package.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"@opencode-ai/plugin": "1.1.12",
|
||||||
|
"shescape": "^2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
21
plugin/example.ts
Normal file
21
plugin/example.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { tool, type Plugin } from "@opencode-ai/plugin"
|
||||||
|
|
||||||
|
// 列出工具列表便能获取到更多示例
|
||||||
|
export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => {
|
||||||
|
console.log("Plugin initialized!")
|
||||||
|
|
||||||
|
return {
|
||||||
|
// Hook implementations go here
|
||||||
|
tool: {
|
||||||
|
mytool: tool({
|
||||||
|
description: "获取foo的问候语",
|
||||||
|
args: {
|
||||||
|
foo: tool.schema.string(),
|
||||||
|
},
|
||||||
|
async execute(args, ctx) {
|
||||||
|
return `Hello ${args.foo}!`
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
61
pnpm-lock.yaml
generated
Normal file
61
pnpm-lock.yaml
generated
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
lockfileVersion: '9.0'
|
||||||
|
|
||||||
|
settings:
|
||||||
|
autoInstallPeers: true
|
||||||
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
|
importers:
|
||||||
|
|
||||||
|
.:
|
||||||
|
dependencies:
|
||||||
|
'@opencode-ai/plugin':
|
||||||
|
specifier: 1.1.12
|
||||||
|
version: 1.1.12
|
||||||
|
shescape:
|
||||||
|
specifier: ^2.1.0
|
||||||
|
version: 2.1.7
|
||||||
|
|
||||||
|
packages:
|
||||||
|
|
||||||
|
'@opencode-ai/plugin@1.1.12':
|
||||||
|
resolution: {integrity: sha512-L+sh6mDU1teVgjRbpNnJdQIv3EYx9v8X2ZgjCAtC/eyjERR5s1smvBmvvBCpJ+p5APWKD4nuDS0xtiJiUBFZKQ==}
|
||||||
|
|
||||||
|
'@opencode-ai/sdk@1.1.12':
|
||||||
|
resolution: {integrity: sha512-M1c+525865g2C03iKaMdx3aUVC7oZSNbBGaTDjUN2UTIakdxqKHog0Hd8IA9WL8M0aU1QJ8+CnpvRT2Jt9kRNw==}
|
||||||
|
|
||||||
|
isexe@3.1.1:
|
||||||
|
resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
|
||||||
|
engines: {node: '>=16'}
|
||||||
|
|
||||||
|
shescape@2.1.7:
|
||||||
|
resolution: {integrity: sha512-Y1syY0ggm3ow7mE1zrcK9YrOhAqv/IGbm3+J9S+MXLukwXf/M8yzL3hZp7ubVeSy250TT7M5SVKikTZkKyib6w==}
|
||||||
|
engines: {node: ^14.18.0 || ^16.13.0 || ^18 || ^19 || ^20 || ^22 || ^24}
|
||||||
|
|
||||||
|
which@6.0.0:
|
||||||
|
resolution: {integrity: sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==}
|
||||||
|
engines: {node: ^20.17.0 || >=22.9.0}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
zod@4.1.8:
|
||||||
|
resolution: {integrity: sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==}
|
||||||
|
|
||||||
|
snapshots:
|
||||||
|
|
||||||
|
'@opencode-ai/plugin@1.1.12':
|
||||||
|
dependencies:
|
||||||
|
'@opencode-ai/sdk': 1.1.12
|
||||||
|
zod: 4.1.8
|
||||||
|
|
||||||
|
'@opencode-ai/sdk@1.1.12': {}
|
||||||
|
|
||||||
|
isexe@3.1.1: {}
|
||||||
|
|
||||||
|
shescape@2.1.7:
|
||||||
|
dependencies:
|
||||||
|
which: 6.0.0
|
||||||
|
|
||||||
|
which@6.0.0:
|
||||||
|
dependencies:
|
||||||
|
isexe: 3.1.1
|
||||||
|
|
||||||
|
zod@4.1.8: {}
|
||||||
14
skills/check-login/SKILL.md
Normal file
14
skills/check-login/SKILL.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
name: check-login
|
||||||
|
description: 检测ev是否已登录
|
||||||
|
---
|
||||||
|
|
||||||
|
# check-login
|
||||||
|
|
||||||
|
需要执行
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 检测ev是否已登录
|
||||||
|
ev me
|
||||||
|
```
|
||||||
|
如果返回信息有用户名,则表示已登录,否则未登录。
|
||||||
25
tool/math.ts
Normal file
25
tool/math.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { tool } from "@opencode-ai/plugin"
|
||||||
|
|
||||||
|
export const add = tool({
|
||||||
|
description: "两个数字相加",
|
||||||
|
args: {
|
||||||
|
a: tool.schema.number().describe("第一个数字"),
|
||||||
|
b: tool.schema.number().describe("第二个数字"),
|
||||||
|
},
|
||||||
|
async execute(args) {
|
||||||
|
const end = args.a + args.b
|
||||||
|
return end + ""
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const multiply = tool({
|
||||||
|
description: "两个数字相乘",
|
||||||
|
args: {
|
||||||
|
a: tool.schema.number().describe("第一个数字"),
|
||||||
|
b: tool.schema.number().describe("第二个数字"),
|
||||||
|
},
|
||||||
|
async execute(args) {
|
||||||
|
const end = args.a * args.b
|
||||||
|
return end + ""
|
||||||
|
},
|
||||||
|
})
|
||||||
11
tool/project.ts
Normal file
11
tool/project.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { tool } from "@opencode-ai/plugin"
|
||||||
|
|
||||||
|
export default tool({
|
||||||
|
description: "获取当前会话信息",
|
||||||
|
args: {},
|
||||||
|
async execute(args, context) {
|
||||||
|
// Access context information
|
||||||
|
const { agent, sessionID, messageID } = context
|
||||||
|
return `智能体: ${agent}, 会话ID: ${sessionID}, 消息ID: ${messageID}`
|
||||||
|
},
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user