- capability/plugin/manager.go: Manager(Install/Uninstall/List/Restore/Close); Install=连接+发现+mcp:name注册工具,失败不落盘; holder持有*mcp.Registry; boot Restore重装
- config/runtimeconfig/plugins.go: PluginConfig(Normalize/Validate), LoadPlugins/SavePlugins(0600+tmp+rename)/Upsert/Delete/Masked(apiKey+敏感env掩码)
- mcp: MCPConfig加APIKey/Env, http/sse Bearer应用, stdio子进程env合并; registry.ToolNames()
- gateway: adminPluginInstall/Uninstall/ListInstalledPlugins; Deps.Plugins注入
- cmd/cyrene/plugins.go: wirePlugins(boot Restore+close)
- 契约: body{kind:mcp,name,config{transport, endpoint?/command?,args?,apiKey?,env?}} → {installed,name,kind,transport,toolCount}; 失败502不落盘/非法400/未注入501; 卸载连带unregister+删配置
- 测试(manager/plugins/admin/mcp_auth/组合根), build/vet/test绿+3平台交叉编译
- Docs/api-client v0.28 + api-reference install=501改真实; .gitignore加plugins.json
- 前端api.ts仍发旧body(无config)会400, 面板安装表单待后续
57 lines
611 B
Plaintext
57 lines
611 B
Plaintext
# 开发设计文档(本地参考,不入库)
|
||
DevDocs/
|
||
|
||
# 环境变量与密钥
|
||
.env
|
||
models.json
|
||
channels.json
|
||
plugins.json
|
||
*.local
|
||
*.pem
|
||
*.key
|
||
|
||
# 构建产物
|
||
*.exe
|
||
*.exe~
|
||
*.dll
|
||
*.so
|
||
*.dylib
|
||
|
||
# Go
|
||
# 前端
|
||
node_modules/
|
||
dist/
|
||
.vite/
|
||
|
||
# Python
|
||
__pycache__/
|
||
*.pyc
|
||
.venv/
|
||
venv/
|
||
*.egg-info/
|
||
|
||
# IDE
|
||
.idea/
|
||
.vscode/
|
||
*.swp
|
||
*.swo
|
||
|
||
# 系统
|
||
.DS_Store
|
||
Thumbs.db
|
||
desktop.ini
|
||
|
||
# 日志
|
||
*.log
|
||
|
||
# 临时文件
|
||
tmp/
|
||
temp/
|
||
node_modules/
|
||
dist/
|
||
|
||
# 开发/运行本地产出(不入库)
|
||
# data/ = SQLite 数据目录(DATA_DIR=./data);/cyrene = 根目录构建产物(锚定,不误伤 cmd/cyrene)
|
||
data/
|
||
/cyrene
|