@voko/lite 0.3.1
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/package.json +32 -0
- package/scripts/build-native.js +72 -0
- package/src/bankHeadOffices.js +20543 -0
- package/src/channels/email.js +35 -0
- package/src/channels/feishu.js +31 -0
- package/src/channels/qq-email.js +30 -0
- package/src/channels/registry.js +279 -0
- package/src/channels/telegram.js +28 -0
- package/src/channels/voko-email.js +7 -0
- package/src/channels/wechat.js +35 -0
- package/src/cli.js +120 -0
- package/src/context.js +164 -0
- package/src/core/access-control-api.js +150 -0
- package/src/core/access-control.js +56 -0
- package/src/core/agent-registration.js +319 -0
- package/src/core/api-signature.js +33 -0
- package/src/core/audit.js +133 -0
- package/src/core/database.js +1409 -0
- package/src/core/did-auth.js +54 -0
- package/src/core/hermes-paths.js +57 -0
- package/src/core/invitation.js +49 -0
- package/src/core/lite-bus.js +16 -0
- package/src/core/llm-client.js +1032 -0
- package/src/core/messenger.js +456 -0
- package/src/core/notifier.js +99 -0
- package/src/core/offline-sync.js +150 -0
- package/src/core/payment.js +285 -0
- package/src/core/publish-agent.js +166 -0
- package/src/core/register-capabilities.js +119 -0
- package/src/core/search-capabilities.js +136 -0
- package/src/core/send-message.js +85 -0
- package/src/core/set-agent-status.js +65 -0
- package/src/core/update-agent-profile.js +102 -0
- package/src/core/worker-manager.js +332 -0
- package/src/endpoints.json +21 -0
- package/src/index.js +712 -0
- package/src/mcp/CLAUDE_TEST.md +82 -0
- package/src/mcp/FULL_TEST.md +139 -0
- package/src/mcp/TEST.md +124 -0
- package/src/mcp/TEST_STEPS.md +75 -0
- package/src/mcp/server.js +612 -0
- package/src/mcp/tools.js +1367 -0
- package/src/mcp/transport/http.js +95 -0
- package/src/mcp/transport/stdio.js +20 -0
- package/src/preload.js +27 -0
- package/src/server/agent-email-api.js +120 -0
- package/src/server/agent-manager.js +580 -0
- package/src/server/email-handler.js +329 -0
- package/src/server/feishu-handler.js +249 -0
- package/src/server/hermes-api-client.js +166 -0
- package/src/server/hermes-discovery.js +80 -0
- package/src/server/hermes-handler.js +287 -0
- package/src/server/openclaw-handler-cli.js +131 -0
- package/src/server/openclaw-websocket-handler.js +1290 -0
- package/src/server/oss.js +186 -0
- package/src/server/owner-intervention-notifier.js +320 -0
- package/src/server/release-page.html +204 -0
- package/src/server/telegram-handler.js +208 -0
- package/src/server/voko-email-handler.js +68 -0
- package/src/server/wechat-handler.js +439 -0
- package/src/workers/agent-worker.js +378 -0
- package/src/workers/message-content.js +51 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Claude Code 自然语言测试(复制到新终端)
|
|
2
|
+
|
|
3
|
+
打开新终端 → cd D:/kimi_code/voko-desktop → claude
|
|
4
|
+
|
|
5
|
+
进去后逐条复制以下提示语(或一次复制多条):
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 查状态
|
|
10
|
+
```
|
|
11
|
+
用 voko_get_status 查一下 gym 的连接状态
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 2. 列会话
|
|
15
|
+
```
|
|
16
|
+
用 voko_list_conversations 列出 gym 最近的活跃会话
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 3. 查访客
|
|
20
|
+
```
|
|
21
|
+
用 voko_get_visitor_profile 查一下访客 oIf3l2ztNX5dAmjFAdGBZaFCsWgU 的信息
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 4. 聊天历史
|
|
25
|
+
```
|
|
26
|
+
用 voko_get_chat_history 查 gym 和 oIf3l2ztNX5dAmjFAdGBZaFCsWgU 最近3条聊天记录
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 5. 查新消息
|
|
30
|
+
```
|
|
31
|
+
用 voko_fetch_new_messages 查 gym 有没有 oIf3l2ztNX5dAmjFAdGBZaFCsWgU 的新消息
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 6. 黑名单
|
|
35
|
+
```
|
|
36
|
+
用 voko_list_blocked_users 查 gym 的黑名单
|
|
37
|
+
把 test_user 加入 gym 的黑名单
|
|
38
|
+
把 test_user 移出 gym 的黑名单
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 7. 白名单
|
|
42
|
+
```
|
|
43
|
+
用 voko_list_allowed_users 查 gym 的白名单
|
|
44
|
+
开启 gym 的白名单模式
|
|
45
|
+
关闭 gym 的白名单模式
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 8. 人工介入
|
|
49
|
+
```
|
|
50
|
+
用 voko_ask_human_for_help 请求主人介入,访客是 oIf3l2ztNX5dAmjFAdGBZaFCsWgU,问题是想退款
|
|
51
|
+
用 voko_check_human_replies 查 gym 有没有主人回复
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## 9. 收款
|
|
55
|
+
```
|
|
56
|
+
用 voko_request_payment 向 oIf3l2ztNX5dAmjFAdGBZaFCsWgU 收款 100 元,原因是私教体验课
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 10. OSS 上传
|
|
60
|
+
```
|
|
61
|
+
用 voko_get_upload_url 获取一个 test.jpg 的上传地址
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 11. 搜索能力
|
|
65
|
+
```
|
|
66
|
+
用 voko_search_capabilities 搜索一下有哪些 agent 提供健身服务
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 测试注册流程
|
|
70
|
+
```
|
|
71
|
+
用 voko_register_agent 给邮箱=你的邮箱 发送验证码
|
|
72
|
+
```
|
|
73
|
+
然后查邮箱 → 拿到验证码后:
|
|
74
|
+
```
|
|
75
|
+
用 voko_verify_agent_email 完成注册,邮箱=你的邮箱,code=xxxxxx
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
> 说明:
|
|
79
|
+
> - `voko_register_agent` 只需要 `email`
|
|
80
|
+
> - `voko_verify_agent_email` 只需要 `email` + `code`,验证成功后服务端返回 agentId、DID、IM 账号等并写入本地 agents 表
|
|
81
|
+
> - 注册后状态为 `unpublished`,不会启动 worker
|
|
82
|
+
> - `serverUrl` 和 `backendType` 由服务端返回或内部默认,不需要调用方传入
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# VOKO MCP 完整测试流程
|
|
2
|
+
|
|
3
|
+
## 前置条件
|
|
4
|
+
- VOKO Desktop 已在运行(端口 3002)
|
|
5
|
+
- 新开终端:`cd D:/kimi_code/voko-desktop && claude`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 第1步:注册新 agent
|
|
10
|
+
|
|
11
|
+
在 Claude Code 中输入:
|
|
12
|
+
```
|
|
13
|
+
注册一个新 agent,我的邮箱是 xxxx@163.com
|
|
14
|
+
```
|
|
15
|
+
(替换成你的真实邮箱)
|
|
16
|
+
|
|
17
|
+
agent 会自动生成 agentId、imUid、token 等参数,调 voko_register_agent 提交,验证码会发到你邮箱。
|
|
18
|
+
|
|
19
|
+
去邮箱查验证码,然后把验证码告诉 agent:
|
|
20
|
+
```
|
|
21
|
+
验证码是 xxxxxx
|
|
22
|
+
```
|
|
23
|
+
agent 会调 voko_verify_agent_email 完成注册。
|
|
24
|
+
|
|
25
|
+
预期:返回 `{ success: true, agentId: "testagent001" }`
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 第2步:查状态
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
用 voko_get_status 查一下刚才注册的 agent 的连接状态
|
|
33
|
+
```
|
|
34
|
+
预期:返回 IM 状态、ability、capability 等
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 第3步:声明能力
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
声明 testagent001 的能力
|
|
42
|
+
```
|
|
43
|
+
agent 应先调 voko_get_status 看现有能力(应该为空),然后问你要定义哪些能力。
|
|
44
|
+
|
|
45
|
+
你可以说:
|
|
46
|
+
```
|
|
47
|
+
我的 agent 是做天气查询的,可以查全国各地的天气
|
|
48
|
+
```
|
|
49
|
+
agent 会构造能力 JSON,让你确认后提交。
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 第4步:搜索能力
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
用 voko_search_capabilities 搜索一下天气相关的 agent
|
|
57
|
+
```
|
|
58
|
+
预期:返回"暂未实现"(搜索接口未上线)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 第5步:发消息
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
用 voko_send_message 给访客 oIf3l2ztNX5dAmjFAdGBZaFCsWgU 发一条消息,内容是"你好,我是新注册的测试 agent"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
用哪个 agentId 发都可以,比如:
|
|
69
|
+
```
|
|
70
|
+
用 voko_send_message 用 gym 给 visitor_oIf3l2ztNX5dAmjFAdGBZaFCsWgU 发消息,内容"你好,这是测试消息"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 第6步:收消息(轮询)
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
用 voko_fetch_new_messages 查 gym 有没有 visitor_oIf3l2ztNX5dAmjFAdGBZaFCsWgU 的新消息
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 第7步:聊天历史
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
用 voko_get_chat_history 查 gym 和 visitor_oIf3l2ztNX5dAmjFAdGBZaFCsWgU 的最近5条聊天记录
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 第8步:查访客信息
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
用 voko_get_visitor_profile 查一下 visitor_oIf3l2ztNX5dAmjFAdGBZaFCsWgU 的信息
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 第9步:收款
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
用 voko_request_payment 向 visitor_oIf3l2ztNX5dAmjFAdGBZaFCsWgU 收款 0.01 元,备注测试
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 第10步:人工介入
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
用 voko_ask_human_for_help 请求主人介入,访客 visitor_oIf3l2ztNX5dAmjFAdGBZaFCsWgU,问题是"用户要求退款,需要主人决定"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
用 voko_check_human_replies 查 gym 有没有主人回复
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
用 voko_close_human_request 关闭刚才的介入请求
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 第11步:黑白名单
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
把 visitor_test_block 加入 gym 的黑名单
|
|
127
|
+
```
|
|
128
|
+
```
|
|
129
|
+
查一下 gym 的黑名单
|
|
130
|
+
```
|
|
131
|
+
```
|
|
132
|
+
把 visitor_test_block 移出 gym 的黑名单
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 第12步:清理
|
|
138
|
+
|
|
139
|
+
用 Desktop UI 把 testagent001 下架或删除。
|
package/src/mcp/TEST.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# VOKO MCP Server 测试步骤
|
|
2
|
+
|
|
3
|
+
## 前置条件
|
|
4
|
+
- VOKO Desktop 已在运行(端口 3002)
|
|
5
|
+
- 打开终端(cmd 或 Git Bash),执行以下命令
|
|
6
|
+
- 每步单独复制粘贴执行,等出结果后再执行下一步
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 第一步:初始化会话
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
SID=$(curl -s -D - http://localhost:3002/mcp \
|
|
14
|
+
-H "Content-Type: application/json" \
|
|
15
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | grep -i mcp-session-id | awk '{print $2}' | tr -d '\r')
|
|
16
|
+
echo "Session ID: $SID"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
预期输出:
|
|
20
|
+
```
|
|
21
|
+
Session ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 第二步:查 gym 状态
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
curl -s http://localhost:3002/mcp \
|
|
30
|
+
-H "Content-Type: application/json" \
|
|
31
|
+
-H "mcp-session-id: $SID" \
|
|
32
|
+
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"voko_get_status","arguments":{"agentId":"gym"}}}' | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'))"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Windows 版(如果上面不行):
|
|
36
|
+
```bash
|
|
37
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_get_status\",\"arguments\":{\"agentId\":\"gym\"}}}"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
预期:能看到 `imConnected`、`warnings`、`uptime` 等字段。
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 第三步:列出 gym 的活跃会话
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_list_conversations\",\"arguments\":{\"agentId\":\"gym\",\"limit\":5}}}"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
预期:返回 conversations 数组,包含 channelId、lastMessage 等。
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 第四步:查访客信息
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":4,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_get_visitor_profile\",\"arguments\":{\"visitorId\":\"oIf3l2ztNX5dAmjFAdGBZaFCsWgU\"}}}"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
预期:返回 nickname、totalMessages、lastActive 等。
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 第五步:查聊天历史
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":5,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_get_chat_history\",\"arguments\":{\"agentId\":\"gym\",\"channelId\":\"oIf3l2ztNX5dAmjFAdGBZaFCsWgU\",\"limit\":3}}}"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 第六步:获取新消息(轮询兜底)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":6,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_fetch_new_messages\",\"arguments\":{\"agentId\":\"gym\",\"visitorId\":\"oIf3l2ztNX5dAmjFAdGBZaFCsWgU\",\"limit\":5}}}"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 第七步:黑名单测试
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# 查看黑名单
|
|
84
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":7,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_list_blocked_users\",\"arguments\":{\"agentId\":\"gym\"}}}"
|
|
85
|
+
|
|
86
|
+
# 添加测试
|
|
87
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":8,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_block_user\",\"arguments\":{\"agentId\":\"gym\",\"visitorId\":\"test_user_123\",\"reason\":\"测试\"}}}"
|
|
88
|
+
|
|
89
|
+
# 移出
|
|
90
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":9,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_unblock_user\",\"arguments\":{\"agentId\":\"gym\",\"visitorId\":\"test_user_123\"}}}"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 第八步:获取 OSS 上传地址
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
curl -s http://localhost:3002/mcp -H "Content-Type: application/json" -H "mcp-session-id: $SID" -d "{\"jsonrpc\":\"2.0\",\"id\":10,\"method\":\"tools/call\",\"params\":{\"name\":\"voko_get_upload_url\",\"arguments\":{\"filename\":\"test.jpg\"}}}"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 清理:删除会话
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
curl -s -X DELETE "http://localhost:3002/mcp?sessionId=$SID"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 在新 Claude Code 终端测试
|
|
112
|
+
|
|
113
|
+
打开另一个终端,运行:
|
|
114
|
+
```bash
|
|
115
|
+
cd D:/kimi_code/voko-desktop
|
|
116
|
+
claude
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
进去后直接输入:
|
|
120
|
+
```
|
|
121
|
+
用 voko_get_status 查 gym 的状态
|
|
122
|
+
列一下 gym 的活跃会话
|
|
123
|
+
查一下访客 oIf3l2ztNX5dAmjFAdGBZaFCsWgU 的信息
|
|
124
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# 手动测试步骤
|
|
2
|
+
|
|
3
|
+
## 前置条件
|
|
4
|
+
- VOKO Desktop 已在运行
|
|
5
|
+
- 新开一个终端 cd D:/kimi_code/voko-desktop && claude
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 验证 get_status 返回 ability + capability
|
|
10
|
+
|
|
11
|
+
在新 Claude Code 终端里输入:
|
|
12
|
+
```
|
|
13
|
+
用 voko_get_status 查一下 gym 的状态
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
预期:返回内容包含 `ability` 和 `capability` 两个字段。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 2. 验证 declare_capabilities 写入 capability(不是 ability)
|
|
21
|
+
|
|
22
|
+
在新 Claude Code 终端里输入:
|
|
23
|
+
```
|
|
24
|
+
声明 gym 的能力
|
|
25
|
+
```
|
|
26
|
+
- 如果已有能力,会先展示给你看,询问增删
|
|
27
|
+
- 如果为空,询问你定义哪些能力
|
|
28
|
+
- 你确认后提交
|
|
29
|
+
|
|
30
|
+
提交后验证数据写入的是 `capability` 列而不是 `ability`:
|
|
31
|
+
```bash
|
|
32
|
+
node -e "const Database=require('better-sqlite3');const db=new Database('C:/Users/tjyu/AppData/Roaming/voko/wukongim.db',{timeout:3000});const r=db.prepare('SELECT ability,capability FROM agents WHERE agent_id=?').get('gym');console.log('ability:',r.ability?.substring(0,50));console.log('capability:',r.capability?.substring(0,200))"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 3. SSE 推送测试(需要 Desktop 发一条消息)
|
|
38
|
+
|
|
39
|
+
1. 在 Claude Code 中执行:
|
|
40
|
+
```
|
|
41
|
+
保持一个 SSE 长连监视 gym 的消息推送
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
2. 在 VOKO Desktop 上找到一个访客,随便发一条消息
|
|
45
|
+
|
|
46
|
+
3. 看 Claude Code 是否实时收到通知
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 4. 验证 search_capabilities 显示"暂未实现"
|
|
51
|
+
|
|
52
|
+
在新 Claude Code 终端里输入:
|
|
53
|
+
```
|
|
54
|
+
搜索一下健身相关的能力
|
|
55
|
+
```
|
|
56
|
+
或直接调工具:
|
|
57
|
+
```
|
|
58
|
+
用 voko_search_capabilities 搜索健身
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
预期:返回"暂未实现,需要远程服务器新增搜索接口后才能使用"
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 5. 端到端回归(基础6步)
|
|
66
|
+
|
|
67
|
+
在新 Claude Code 终端里执行:
|
|
68
|
+
```
|
|
69
|
+
1. 用 voko_get_status 查 gym 的状态
|
|
70
|
+
2. 用 voko_list_conversations 列出 gym 最近的会话
|
|
71
|
+
3. 用 voko_get_visitor_profile 查一下 oIf3l2ztNX5dAmjFAdGBZaFCsWgU
|
|
72
|
+
4. 用 voko_get_chat_history 查 gym 和该访客最近3条记录
|
|
73
|
+
5. 用 voko_fetch_new_messages 查 gym 有没有该访客的新消息
|
|
74
|
+
6. 用 voko_list_blocked_users 查 gym 的黑名单
|
|
75
|
+
```
|