首页/OpenHarness 源码课/OH09: Bridge / 前端宿主

OH09: Bridge / 前端宿主 OpenHarness · 对标 S09

S09 同主题:除终端外,需要可嵌入的宿主:把同一套 StreamEvent 以机器可读协议送给 UI;Bridge 则处理远程/协作类会话密钥与启动。

上游:HKUDS/OpenHarness · 本仓库快照:reference/rererence_harness/OpenHarness/ · 路径亦见 专题映射表

与 S09 站内导图对齐course-s09)。

🎯 关键路径(读什么)

src/openharness/ 下优先打开:

  • bridge/manager.pysession_runner.pyspawn_sessionWorkSecret
  • ui/backend_host.pyOHJSON: 前缀、JSON-lines 事件。
  • ui/react_launcher.py:本地起前端(若环境具备)。

🔍 源码导读

BackendHost 职责

AssistantTextDeltaToolExecutionStarted 等映射为前端协议中的条目;与课内「IDE Bridge」对照时关注边界:宿主不负责模型推理,只搬运事件与收输入。

与 commands/registry 的交叉

registry.py 已 import bridge 相关符号做深度集成(如 work secret URL);读时可从「slash 命令 → bridge」搜索引用。

⚖️ 与课内叙事对照

维度课内 S09OpenHarness
传输stdio / socketJSON lines over 当前进程的 stdout/stdin 或封装流
状态IDE 侧 sessionBridgeSessionManager 记录
与 TUI同一引擎build_runtime / handle_line 复用路径

🤔 思考题

  1. 若前端协议版本与 backend 不一致,最早在哪一层报错?
  2. WorkSecret 解决的主要威胁模型是什么?
  3. BackendHost 是否运行 PermissionChecker?权限仍在 _execute_tool_call 吗?

📎 延伸阅读

OH01–12 目录 · OH08 · OH10 · S09 · D09