feat(client): mirror agent events to digital employee

This commit is contained in:
baiyanyun
2026-06-05 17:00:44 +08:00
parent 512c7ab095
commit f8048724c4
3 changed files with 169 additions and 0 deletions

View File

@@ -379,6 +379,43 @@ crates/agent-electron-client/src/main/services/digitalEmployee/stateService.ts
- 接 ACP event forwarder把 token、tool、step、artifact 写入 Run/Event/Artifact。
- 增加 sync worker根据 `step1_config.serverHost` 和登录 token 推送 outbox。
## Phase 6ACP / computer 运行事件落库(已开始)
目标:让数字员工不只知道“管理端下发了任务”,也能看到 qimingclaw 执行过程中的真实运行事件。
当前 qimingclaw 已接入:
```text
crates/agent-electron-client/src/main/ipc/eventForwarders.ts
crates/agent-electron-client/src/main/services/digitalEmployee/stateService.ts
```
记录来源:
- ACP session SSE 事件:`message.updated``session.updated``session.status``session.idle``session.error` 等。
- computer 执行进度:`computer:progress`
- prompt 生命周期:`computer:promptStart``computer:promptEnd`
- Agent 生命周期:`ready``destroyed``error`
当前落库方式:
- 运行中的事件会创建/更新对应 Plan、Task、Run。
- 完成和失败事件会结束 Run。
- 每条 Event 都写入 `digital_events`
- Plan / Task / Run / Event 均进入 `digital_sync_outbox`,等待后续同步到管理端。
与管理端联动的边界:
- SQLite 作为本地事实缓存和离线队列,不作为最终中心库。
- 管理端 API 未确定前qimingclaw 先沉淀统一的本地实体和 outbox。
- 后续 sync worker 只消费 `digital_sync_outbox`,避免业务写入链路直接依赖网络。
下一步:
- 增加 sync worker读取 `digital_sync_outbox`,推送管理端,回填 `remote_id` / `sync_status`
- 确认 qiming-backend 的数字员工同步 API 路径和鉴权方式。
- 将 Artifact / Approval 从普通 Event 中拆成正式实体。
## 管理端联动原则
数字员工状态是本地优先,但不能成为本地孤岛。