1.4 KiB
1.4 KiB
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 去重。