@lingyao037/openclaw-lingyao-cli 0.3.0-alpha.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/README.md ADDED
@@ -0,0 +1,325 @@
1
+ # 灵爻 (Lingyao) - OpenClaw 与鸿蒙 App 通信桥梁
2
+
3
+ 灵爻是一个完整的双端通信系统,实现 OpenClaw Gateway 和鸿蒙 App 之间的实时双向消息同步,通过 lingyao.live 服务器中转。
4
+
5
+ > 当前仓库仅保留“服务器中转 + 双端主动 WebSocket 连接”实现。
6
+
7
+ ## 快速开始
8
+
9
+ ### 🚀 完整部署指南
10
+
11
+ 查看 **[完整部署指南](DEPLOYMENT_GUIDE.md)** 获取三端完整部署流程:
12
+ 1. Lingyao Live 服务器部署
13
+ 2. OpenClaw Gateway 插件安装
14
+ 3. 鸿蒙 App 部署
15
+
16
+ ## 系统架构
17
+
18
+ ```
19
+ ┌─────────────────────┐ ┌─────────────────────┐
20
+ │ OpenClaw Gateway │ │ HarmonyOS App │
21
+ │ (WebSocket Client) │ │ (WebSocket Client) │
22
+ │ │ │ │
23
+ │ 代码: src/ │ │ 代码: harmonyos-app/ │
24
+ │ 部署: 作为插件运行 │ │ 部署: 鸿蒙设备 │
25
+ └──────────┬───────────┘ └──────────┬───────────┘
26
+ │ │
27
+ │ WebSocket │ WebSocket
28
+ │ wss://api.lingyao.live/v1/gateway/ws │ wss://api.lingyao.live/v1/app/ws
29
+ │ │
30
+ ▼ ▼
31
+ ┌─────────────────────────────────────────────────────────────┐
32
+ │ Lingyao Live Server (lingyao.live) │
33
+ │ (WebSocket Relay Server) │
34
+ │ │
35
+ │ 代码: server/src/server.ts │
36
+ │ 部署: 云服务器 (需要公网 IP 和域名) │
37
+ │ WebSocket: /v1/gateway/ws, /v1/app/ws │
38
+ │ HTTP API: /v1/gateway/*, /v1/app/* │
39
+ └─────────────────────────────────────────────────────────────┘
40
+ ```
41
+
42
+ ## 三端组件
43
+
44
+ ### 1. Lingyao Live 服务器 (server/)
45
+
46
+ WebSocket 中转服务器,实现 Gateway 和 App 之间的消息转发。
47
+
48
+ **关键文件:**
49
+ - `server/src/server.ts` - 主服务器实现
50
+ - `server/package.json` - 依赖配置
51
+ - `server/README.md` - 服务器文档
52
+
53
+ **功能:**
54
+ - 双 WebSocket 服务器处理 Gateway 和 App 连接
55
+ - HTTP REST API 提供注册、心跳、消息发送
56
+ - 离线消息队列(每设备最多 100 条)
57
+ - 心跳监控和超时检测
58
+
59
+ ### 2. OpenClaw Gateway 端 (src/)
60
+
61
+ OpenClaw 插件,作为 WebSocket 客户端连接到服务器。
62
+
63
+ **关键文件:**
64
+ - `src/channel.ts` - 主频道类
65
+ - `src/websocket-client.ts` - WebSocket 客户端
66
+ - `src/server-client.ts` - HTTP API 客户端
67
+ - `src/metrics.ts` - 监控指标
68
+ - `src/errors.ts` - 错误处理
69
+
70
+ **功能:**
71
+ - 自动连接到 lingyao.live 服务器
72
+ - 接收来自鸿蒙 App 的同步消息
73
+ - 发送通知到鸿蒙 App
74
+ - 自动重连和心跳保活
75
+
76
+ ### 3. 鸿蒙 App 端 (harmonyos-app/)
77
+
78
+ 鸿蒙应用,作为 WebSocket 客户端连接到服务器。
79
+
80
+ **关键文件:**
81
+ - `harmonyos-app/src/websocket/LingyaoWSClient.ts` - WebSocket 客户端
82
+ - `harmonyos-app/src/sync/DataSyncManager.ts` - 数据同步管理器
83
+ - `harmonyos-app/src/models/Message.ts` - 消息模型
84
+ - `harmonyos-app/src/utils/Logger.ts` - 日志工具
85
+ - `harmonyos-app/entry/src/main/ets/entryability/EntryAbility.ts` - 应用入口
86
+ - `harmonyos-app/README.md` - App 文档
87
+
88
+ **功能:**
89
+ - 连接到 lingyao.live 服务器
90
+ - 发送日记和记忆数据到 Gateway
91
+ - 接收来自 Gateway 的通知
92
+ - 离线消息队列和自动同步
93
+
94
+ ## 核心功能
95
+
96
+ | 功能 | 描述 |
97
+ |------|------|
98
+ | **双向实时通信** | WebSocket 双向消息传递 |
99
+ | **服务器中转** | 双方作为客户端连接,无需公网 IP |
100
+ | **离线消息** | 服务器缓存,上线自动推送 |
101
+ | **自动重连** | 指数退避策略,最多 10 次重试 |
102
+ | **心跳保活** | 30 秒心跳,60 秒超时检测 |
103
+ | **消息类型** | 日记、记忆、通知同步 |
104
+
105
+ ## 消息类型
106
+
107
+ | 类型 | 方向 | 描述 |
108
+ |------|------|------|
109
+ | `sync_diary` | App → Gateway | 同步日记数据 |
110
+ | `sync_memory` | App → Gateway | 同步记忆数据 |
111
+ | `notify_text` | Gateway → App | 文本通知 |
112
+ | `notify_action` | Gateway → App | 动作通知 |
113
+ | `heartbeat` | 双向 | 心跳保活 |
114
+
115
+ ## API 端点
116
+
117
+ ### Gateway 端点
118
+
119
+ | 端点 | 方法 | 功能 |
120
+ |------|------|------|
121
+ | `/v1/gateway/register` | POST | 注册 Gateway |
122
+ | `/v1/gateway/heartbeat` | POST | 发送心跳 |
123
+ | `/v1/gateway/messages` | POST | 发送消息到 App |
124
+ | `/v1/gateway/ws` | WS | WebSocket 连接 |
125
+
126
+ ### App 端点
127
+
128
+ | 端点 | 方法 | 功能 |
129
+ |------|------|------|
130
+ | `/v1/app/register` | POST | 注册 App 设备 |
131
+ | `/v1/app/heartbeat` | POST | 发送心跳 |
132
+ | `/v1/app/sync` | POST | 上传数据到 Gateway |
133
+ | `/v1/app/messages` | GET | 拉取消息 |
134
+ | `/v1/app/ws` | WS | WebSocket 连接 |
135
+
136
+ 详细 API 规范查看 [server-api-spec.yaml](server-api-spec.yaml)
137
+
138
+ ## 开发
139
+
140
+ ### 构建
141
+
142
+ ```bash
143
+ # 构建 OpenClaw 端
144
+ npm run build
145
+
146
+ # 构建服务器端
147
+ cd server && npm run build
148
+
149
+ # 构建鸿蒙 App
150
+ # 使用 DevEco Studio 打开 harmonyos-app 并构建
151
+ ```
152
+
153
+ ### 测试
154
+
155
+ ```bash
156
+ # OpenClaw 端测试
157
+ npm test
158
+
159
+ # 服务器端测试
160
+ cd server && npm test
161
+ ```
162
+
163
+ ### 开发模式
164
+
165
+ ```bash
166
+ # OpenClaw 端开发模式
167
+ npm run dev
168
+
169
+ # 服务器端开发模式
170
+ cd server && npm run dev
171
+
172
+ # 鸿蒙 App 开发
173
+ # 使用 DevEco Studio 的调试功能
174
+ ```
175
+
176
+ ## 文档
177
+
178
+ | 文档 | 描述 |
179
+ |------|------|
180
+ | [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md) | 完整部署指南 |
181
+ | [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) | 实现总结 |
182
+ | [server/README.md](server/README.md) | 服务器文档 |
183
+ | [harmonyos-app/README.md](harmonyos-app/README.md) | App 文档 |
184
+ | [server-api-spec.yaml](server-api-spec.yaml) | OpenAPI 规范 |
185
+
186
+ ## 项目结构
187
+
188
+ ```
189
+ lingyao/
190
+ ├── src/ # OpenClaw Gateway 端代码
191
+ │ ├── channel.ts # 主频道类
192
+ │ ├── websocket-client.ts # WebSocket 客户端
193
+ │ ├── server-client.ts # HTTP 客户端
194
+ │ ├── metrics.ts # 监控指标
195
+ │ ├── errors.ts # 错误处理
196
+ │ └── ...
197
+ ├── server/ # Lingyao Live 服务器
198
+ │ ├── src/
199
+ │ │ └── server.ts # 主服务器
200
+ │ ├── package.json
201
+ │ ├── tsconfig.json
202
+ │ └── README.md
203
+ ├── harmonyos-app/ # 鸿蒙 App 端
204
+ │ ├── src/
205
+ │ │ ├── websocket/ # WebSocket 客户端
206
+ │ │ ├── sync/ # 数据同步
207
+ │ │ ├── models/ # 数据模型
208
+ │ │ └── utils/ # 工具类
209
+ │ ├── entry/ # 应用入口
210
+ │ └── README.md
211
+ ├── test/ # 测试文件
212
+ ├── DEPLOYMENT_GUIDE.md # 部署指南
213
+ ├── IMPLEMENTATION_SUMMARY.md # 实现总结
214
+ ├── server-api-spec.yaml # API 规范
215
+ ├── README.md # 本文件
216
+ └── package.json
217
+ ```
218
+
219
+ ## 配置
220
+
221
+ ### OpenClaw Gateway 配置
222
+
223
+ ```json
224
+ {
225
+ "plugins": {
226
+ "entries": {
227
+ "lingyao": {
228
+ "enabled": true
229
+ }
230
+ }
231
+ }
232
+ }
233
+ ```
234
+
235
+ ### 服务器配置
236
+
237
+ ```bash
238
+ # server/.env
239
+ PORT=3000
240
+ HOST=0.0.0.0
241
+ HEARTBEAT_INTERVAL=30000
242
+ HEARTBEAT_TIMEOUT=60000
243
+ MAX_OFFLINE_MESSAGES=100
244
+ ```
245
+
246
+ ### 鸿蒙 App 配置
247
+
248
+ ```typescript
249
+ // EntryAbility.ts
250
+ const wsClient = new LingyaoWSClient({
251
+ url: 'wss://api.lingyao.live/v1/app/ws',
252
+ deviceId: deviceId,
253
+ appToken: appToken,
254
+ });
255
+ ```
256
+
257
+ ## 监控和调试
258
+
259
+ ### 查看日志
260
+
261
+ | 组件 | 命令 |
262
+ |------|------|
263
+ | **服务器** | `sudo journalctl -u lingyao-live -f` |
264
+ | **Gateway** | `openclaw logs` |
265
+ | **App** | DevEco Studio 日志窗口 |
266
+
267
+ ### 健康检查
268
+
269
+ ```bash
270
+ # 服务器健康检查
271
+ curl https://api.lingyao.live/health
272
+
273
+ # Gateway 状态
274
+ openclaw channels status --channel lingyao
275
+
276
+ # App 连接状态
277
+ # 查看 App 界面中的连接状态显示
278
+ ```
279
+
280
+ ## 故障排查
281
+
282
+ ### 服务器端
283
+
284
+ ```bash
285
+ # 检查服务状态
286
+ sudo systemctl status lingyao-live
287
+
288
+ # 查看错误日志
289
+ sudo journalctl -u lingyao-live -n 50 --no-pager
290
+
291
+ # 重启服务
292
+ sudo systemctl restart lingyao-live
293
+ ```
294
+
295
+ ### Gateway 端
296
+
297
+ ```bash
298
+ # 检查插件状态
299
+ openclaw plugins list
300
+
301
+ # 查看日志
302
+ openclaw logs
303
+
304
+ # 重启 Gateway
305
+ openclaw gateway restart
306
+ ```
307
+
308
+ ### App 端
309
+
310
+ - 检查设备网络连接
311
+ - 确认服务器 URL 正确
312
+ - 查看应用日志
313
+
314
+ ## 贡献
315
+
316
+ 欢迎提交 Issue 和 Pull Request!
317
+
318
+ ## 许可证
319
+
320
+ MIT License
321
+
322
+ ## 联系方式
323
+
324
+ - 项目主页: [https://github.com/your-org/lingyao](https://github.com/your-org/lingyao)
325
+ - 问题反馈: [https://github.com/your-org/lingyao/issues](https://github.com/your-org/lingyao/issues)