OH09: Bridge / 前端宿主 OpenHarness · 对标 S09
与 S09 同主题:除终端外,需要可嵌入的宿主:把同一套 StreamEvent 以机器可读协议送给 UI;Bridge 则处理远程/协作类会话密钥与启动。
上游:HKUDS/OpenHarness · 本仓库快照:reference/rererence_harness/OpenHarness/ · 路径亦见 专题映射表。
course-s09)。🎯 关键路径(读什么)
在 src/openharness/ 下优先打开:
bridge/manager.py、session_runner.py:spawn_session、WorkSecret。ui/backend_host.py:OHJSON:前缀、JSON-lines 事件。ui/react_launcher.py:本地起前端(若环境具备)。
🔍 源码导读
BackendHost 职责
将 AssistantTextDelta、ToolExecutionStarted 等映射为前端协议中的条目;与课内「IDE Bridge」对照时关注边界:宿主不负责模型推理,只搬运事件与收输入。
与 commands/registry 的交叉
registry.py 已 import bridge 相关符号做深度集成(如 work secret URL);读时可从「slash 命令 → bridge」搜索引用。
⚖️ 与课内叙事对照
| 维度 | 课内 S09 | OpenHarness |
|---|---|---|
| 传输 | stdio / socket | JSON lines over 当前进程的 stdout/stdin 或封装流 |
| 状态 | IDE 侧 session | BridgeSessionManager 记录 |
| 与 TUI | 同一引擎 | build_runtime / handle_line 复用路径 |
🤔 思考题
- 若前端协议版本与 backend 不一致,最早在哪一层报错?
WorkSecret解决的主要威胁模型是什么?- BackendHost 是否运行
PermissionChecker?权限仍在_execute_tool_call吗?
📎 延伸阅读
OH01–12 目录 · OH08 · OH10 · S09 · D09