# amigo **Repository Path**: byi312/amigo ## Basic Information - **Project Name**: amigo - **Description**: No description available - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-29 - **Last Updated**: 2026-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # amigo amigo 是一个本地轻量级服务中心(service hub),对外提供统一的 HTTP API,内部路由到不同的本地程序或服务(如有道云笔记、文件系统等)。 它的核心设计理念类似大模型 API:**客户端只与一个 POST 端点对话**,通过 `service_name` + `cmds` 字段指定调用哪个服务执行什么命令。 ## 快速开始 ### 构建 ```bash # 默认构建(需要 GCC,包含系统托盘) go build # 纯控制台构建(无需 GCC,无系统托盘) go build -tags notray -o amigo-console.exe ``` > **Windows 用户**:默认构建需要安装 [Mingw-w64](https://www.mingw-w64.org/) 以提供 GCC(系统托盘功能依赖 CGO)。纯控制台构建不需要 GCC。 ### 配置 编辑 `config.yaml`: ```yaml server: host: "127.0.0.1" port: 0 # 0 = 自动分配端口 auth: token: "auto" # "auto" = 启动时自动生成随机 token services: youdaonote: enabled: true exe_path: "youdaonote.exe" api_key: "your-api-key" ``` ### 启动 ```bash amigo.exe ``` 启动后: - 系统托盘出现 amigo 图标,右键可查看端口和 Token - 端口号和 Token 同时写入 `%USERPROFILE%\.amigo\` 目录 ### 验证 ```bash # 健康检查 curl http://127.0.0.1:/api/v1/health # 查看可用服务 curl http://127.0.0.1:/api/v1/services # 调用有道云笔记 curl -X POST http://127.0.0.1:/api/v1/execute \ -H "Content-Type: application/json" \ -H "Authorization: Bearer " \ -d '{"version":"v0.0.1","service_name":"youdaonote","cmds":["list"]}' ``` ### 测试 ```bash # 运行全部测试 go test ./... # 详细输出 go test ./... -v # 查看覆盖率 go test ./... -cover ``` 测试覆盖了以下模块: | 模块 | 测试内容 | |------|----------| | `internal/config` | 配置加载、默认值、文件缺失处理 | | `internal/registry` | 服务注册、查找、列表、清除 | | `internal/middleware` | CORS 预检/透传、Auth 拦截/放行/公开端点豁免 | | `internal/handler` | execute 成功/失败/参数空/JSON 异常、services 列表/单个、health | | `internal/service/youdaonote` | 全部 9 个命令分发、参数构建、错误处理、JSON/非 JSON 输出 | ## 项目结构 ``` amigo/ ├── main.go ├── go.mod ├── config.yaml ├── README.md ├── docs/ │ ├── DESIGN.md │ └── API.md ├── internal/ │ ├── config/ # 配置解析 + 测试 │ ├── server/ # HTTP Server + Helpers │ ├── handler/ # API 处理器 + 测试 │ ├── middleware/ # CORS + Auth 中间件 + 测试 │ ├── registry/ # Service 注册表 + 测试 │ ├── service/ │ │ ├── service.go # Service 接口定义 │ │ └── youdaonote/ # 有道云笔记 Service + 测试 │ └── tray/ # 系统托盘 / 控制台 ``` ## License MIT