@harmonyos-arkts/opencode-acp 0.0.3 → 0.0.6
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/CHANGELOG.md +22 -0
- package/README.md +10 -10
- package/dist/index.cjs +506 -300
- package/dist/index.cjs.map +4 -4
- package/docs/mcp-extmethod-design.md +92 -76
- package/docs/provider-config-flow.md +35 -35
- package/docs/session-stats-to-vscode-design.md +18 -16
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,28 @@ All notable changes to this project will be documented in this file.
|
|
|
6
6
|
|
|
7
7
|
### Added
|
|
8
8
|
|
|
9
|
+
- MCP extMethod API:通过 ACP `extMethod("mcp/*")` 向客户端暴露 MCP 服务器运行时管理能力
|
|
10
|
+
- `mcp/status` — 获取所有 MCP 服务器连接状态
|
|
11
|
+
- `mcp/add` — 动态添加 MCP 服务器(local/remote)
|
|
12
|
+
- `mcp/connect` — 连接已断开的 MCP 服务器
|
|
13
|
+
- `mcp/disconnect` — 断开 MCP 服务器
|
|
14
|
+
- `mcp/auth/start` — 启动 OAuth 认证流程,返回授权 URL
|
|
15
|
+
- `mcp/auth/callback` — 用授权码完成 OAuth 认证
|
|
16
|
+
- `mcp/auth/remove` — 删除 OAuth 凭据
|
|
17
|
+
- 新增 `src/mcp-manager.ts`:McpManager 封装所有 MCP SDK 调用,统一日志(`ocCall`)和错误处理
|
|
18
|
+
- 新增 `scripts/test-mcp-extmethod.mjs`:MCP extMethod 端到端测试脚本(`npm run test:mcp`)
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- `loadSessionMode()` MCP 注册逻辑迁移到 `McpManager.add()`,消除重复代码
|
|
23
|
+
- Mock SDK 补全 MCP 方法(`status`, `connect`, `disconnect`, `auth.*`)
|
|
24
|
+
|
|
25
|
+
### Tests
|
|
26
|
+
|
|
27
|
+
- 新增 `src/__tests__/mcp-manager.test.ts`:McpManager 单元测试(9 个用例)
|
|
28
|
+
- `agent.test.ts` 新增 extMethod MCP 路由测试(10 个用例),含参数校验和错误处理
|
|
29
|
+
- 测试总数从 118 增加到 137
|
|
30
|
+
|
|
9
31
|
- Provider Auth extMethod API:通过 ACP `extMethod("provider/*")` 向 VSCode 暴露 OpenCode 的 API Key 配置能力
|
|
10
32
|
- `provider/list` — 列出所有 provider 及连接状态
|
|
11
33
|
- `provider/auth/methods` — 获取各 provider 的认证方式和 prompts
|
package/README.md
CHANGED
|
@@ -210,14 +210,14 @@ Harmony-ACP exposes OpenCode's provider auth API to VSCode through ACP `extMetho
|
|
|
210
210
|
|
|
211
211
|
### Available Methods
|
|
212
212
|
|
|
213
|
-
| extMethod
|
|
214
|
-
|
|
215
|
-
| `provider/list`
|
|
216
|
-
| `provider/auth/methods`
|
|
217
|
-
| `provider/auth/set`
|
|
218
|
-
| `provider/auth/remove`
|
|
219
|
-
| `provider/oauth/authorize` | Start OAuth flow, returns authorization URL
|
|
220
|
-
| `provider/oauth/callback`
|
|
213
|
+
| extMethod | Description |
|
|
214
|
+
| -------------------------- | ------------------------------------------------------ |
|
|
215
|
+
| `provider/list` | List all providers with connected status |
|
|
216
|
+
| `provider/auth/methods` | Get auth methods per provider (API key prompts, OAuth) |
|
|
217
|
+
| `provider/auth/set` | Set API key credentials |
|
|
218
|
+
| `provider/auth/remove` | Remove credentials for a provider |
|
|
219
|
+
| `provider/oauth/authorize` | Start OAuth flow, returns authorization URL |
|
|
220
|
+
| `provider/oauth/callback` | Complete OAuth with authorization code |
|
|
221
221
|
|
|
222
222
|
### Usage Example (VSCode → Harmony-ACP)
|
|
223
223
|
|
|
@@ -228,7 +228,7 @@ const providers = await extMethod("provider/list", { sessionId });
|
|
|
228
228
|
// Set API key
|
|
229
229
|
await extMethod("provider/auth/set", {
|
|
230
230
|
providerID: "anthropic",
|
|
231
|
-
auth: { type: "api", key: "sk-ant-xxx" }
|
|
231
|
+
auth: { type: "api", key: "sk-ant-xxx" },
|
|
232
232
|
});
|
|
233
233
|
|
|
234
234
|
// Remove credentials
|
|
@@ -245,7 +245,7 @@ The `initialize()` response includes provider connectivity status in `_meta`:
|
|
|
245
245
|
providers: [
|
|
246
246
|
{ id: "anthropic", name: "Anthropic", connected: true },
|
|
247
247
|
{ id: "openai", name: "OpenAI", connected: false },
|
|
248
|
-
]
|
|
248
|
+
];
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
```
|