feat(client): mirror agent events to digital employee
This commit is contained in:
@@ -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 6:ACP / 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 中拆成正式实体。
|
||||
|
||||
## 管理端联动原则
|
||||
|
||||
数字员工状态是本地优先,但不能成为本地孤岛。
|
||||
|
||||
Reference in New Issue
Block a user