Files
Daily-Campaign-Agent/docs/event-mapping.md
T

22 lines
1.4 KiB
Markdown

# Event Mapping
| Pi / Harness 事实 | HarnessEvent | assistant-ui / UI 状态 |
|---|---|---|
| HTTP message accepted | `user.message`, `run.started` | user message, running |
| `message_update.text_delta` | `assistant.delta` | 合并同 messageId 文本 |
| assistant `message_end` | `assistant.completed` | complete/stop |
| `tool_execution_start` | `tool.requested` | tool-call waiting/running |
| successful `tool_execution_end` | `tool.completed` | result/success |
| failed `tool_execution_end` | `tool.failed` | isError/error |
| canonical Skill `read` preflight | `skill.requested` | Catalog 高亮 |
| same `read` successful `tool_result` | `skill.loaded` | loaded 高亮 |
| ApprovalBroker request | `approval.required` | Tool card + modal pending |
| broker decision/timeout/abort | `approval.resolved` | approved/denied/expired/cancelled |
| prompt resolves | `run.completed` | idle |
| user abort / deadline | `run.cancelled` | incomplete/cancel reason |
| prompt rejects | `run.failed` | error |
`skill.requested`/`skill.loaded` 是 Harness 推导事件,不是 Pi 原生事件。未识别 Pi Event 被安全忽略。高频 delta 只在内存窗口和 SSE 中保留,不包含 thinking、密钥或图片 base64。
SSE 的 `afterSequence` 优先于 `Last-Event-ID`。历史仍在窗口时补发;游标早于最早保留 sequence 时发送 `harness.reset` 控制事件,避免静默缺口。客户端再按 eventId/sequence 去重。