资讯动态

架构揭秘:Chromex四层运行时边界,从Chrome Extension到codex app-server

发布时间:2026/10/14 15:38:08 来源:尧图企业网站定制
【免费下载链接】chromexA Codex-powered Chrome side-panel assistant for page context, tabs, voice, and image workflows.项目地址https://gitcode.com/gh_mirrors/chr/chromex点击查看免费下载Chromex 是一款基于 Codex 的 Chrome 侧边栏 AI 助手支持页面上下文问答、多标签页总结、语音转写、图片生成与编辑等浏览器工作流。它的架构核心是一条清晰的四层运行时边界Chrome Extension → Native Messaging Host → Local Bridge → codex app-server。本文带你逐层拆解这四层各自的职责、通信协议与安全设计帮助你快速理解 Chromex 浏览器扩展的架构原理。为什么要把一个扩展拆成四层Chromex 的边界设计可以概括为一条链路Chrome Extension - Native Messaging Host - Local Bridge - codex app-server这样拆分的核心动机有三个能力隔离浏览器扩展的沙箱里不能随意启动本地进程、读写任意文件而这些能力由本地 Node.js 层完成凭据安全OpenAI API Key、OAuth 令牌等敏感信息完全不进入 Chrome 扩展存储⚙️协议解耦每一层只负责一种协议的翻译故障可以被精确定位到某一层源码目录与四层的对应关系一目了然层级目录一句话职责第 1 层packages/extension/Chrome MV3 侧边栏扩展UI、页面上下文、权限请求第 2 层packages/native-host/Chrome Native Messaging 中继纯协议转发第 3 层packages/bridge/本地桥接守护进程文件、图像、诊断、路由第 4 层codex app-server外部 CLICodex 对话、登录态与模型调用公共层packages/shared/跨层共享的类型、策略、Profile 与提示词路由第一层Chrome Extension —— UI 与上下文采集Chromex 是一个 Chrome MV3 扩展见 manifest.json由三部分组成侧边栏Side Panel聊天主界面负责输入框、消息流、标签页选择、/Profile 选择Service Worker 后台处理页面上下文抓取、权限决策、浏览器动作编排入口在 background/index.tsContent Script注入网页配合完成可见标签页捕获、DOM 操作与活动指示器后台与本地层的唯一出口是 native-bridge-client.ts 中的NativeBridgeClient。它通过chrome.runtime.connectNative(com.codex.sidepanel.bridge)建立长连接所有调用都是带唯一id的请求/响应模型并支持超时控制与事件订阅——这样侧边栏才能实时收到流式回复和进度事件。边界规则扩展层不存储任何凭据它只是一个带界面的远程调用客户端。第二层Native Messaging Host —— 最薄的一层协议翻译器这是整个架构中代码量最少、但最关键的一层。它的职责只有三件事解包Chrome Native Messaging 的二进制帧。Chrome 要求消息格式为 4 字节小端长度前缀 JSON 正文见 framing.ts转发把 JSON 消息按行写入子进程的 stdin把子进程 stdout 的每行重新打包为 Native 消息写回 stdout核心逻辑在 relay.ts拉起本地桥接启动 bridge 入口时附带一份精简后的环境变量见下文安全部分入口文件 cli.ts 只有一行有效代码new NativeHostRelay().start()堪称最薄一层的典范。这一层需要一次性注册到 Chrome 的 NativeMessagingHosts 配置中由 scripts/install-native-host.mjs 自动完成支持 chrome、chromium、canary 等多种渠道。第三层Local Bridge —— 本地运营中枢bridge 层是本地真正的大脑。入口文件 bridge/src/cli.ts 展示了它装配的全部组件CodexAppServerClient第四层 app-server 的 JSON-RPC 客户端BridgeRpcRouter统一的 RPC 方法分发器若干Plane功能平面AppServerCodexPlane对话、CodexVoicePlane语音、CodexImagePlane图像、RealtimeTranslationPlane实时翻译、BridgeLocalFilePlane本地文件、CodexAgenticRouterPlane智能路由、CodexBrowserActionPlane浏览器动作BridgeHarnessRuntime工作区、钩子与权限管理BridgeImageAssetStore、BridgeDiagnosticLogStore生成图片归档与诊断日志所有请求都经由 router.ts 中的BridgeRpcRouter.handle按method分发如account.status、session.open、thread.read、goal.set等。与扩展层通信采用JSON Lines每行一条 JSON的极简协议无端口、无网络栈。第四层codex app-server —— 模型能力与登录态所在地最内层是openai/codexCLI 提供的 app-server要求版本 ≥ 0.130.0。codex-app-server.ts 中的CodexAppServerClient通过 stdio 与其进行 JSON-RPC 对话并处理了两个工程细节过载重试服务端返回-32001Server overloaded时做指数退避最多 4 次反向请求app-server 可向 bridge 反向提问如 Plan 模式下的用户输入请求bridge 通过注册的 handler 响应一个重要的安全设计Codex 的 OAuth / ChatGPT 登录完全走 app-server 流程令牌始终存放在本地 Codex 配置目录与 Chrome 彻底隔离API Key 登录则是可选的本地回退方案且只在用户明确确认后启用。一次请求的完整旅程 以总结当前网页为例完整链路是侧边栏点击发送Service Worker 抓取页面上下文DOM / 视觉 / 混合策略由 shared/src/read-strategy.ts 的策略决定NativeBridgeClient.request把请求经 Native Messaging 帧协议送出native-host 解包、转发给 bridge 子进程BridgeRpcRouter分发到 codex 平面经 app-server 执行对话流式回复与事件沿原路逐层回传侧边栏增量渲染整个过程中页面数据、截图、语音只在这一条受控通道内流动。边界如何守护安全️凭据零落地扩展存储中不存在 API Key / OAuth 令牌登录状态归 app-server 管理环境变量白名单bridge 子进程启动时只继承 environment.ts 中约 40 个基础变量PATH、代理、SSL 证书等避免宿主环境的意外暴露内存态密钥bridge 的密钥保存在InMemoryBridgeSecrets进程退出即消失细粒度权限浏览器动作如page.dom.perform受 shared/src/harness.ts 定义的权限模式控制敏感操作需用户确认源码速查按层定位关键文件 想了解的机制直接看这里扩展如何发起本地调用packages/extension/src/background/native-bridge-client.tsNative 帧的 4 字节长度协议packages/native-host/src/framing.ts中继转发与子进程管理packages/native-host/src/relay.ts环境变量白名单packages/native-host/src/environment.tsbridge 组件装配packages/bridge/src/cli.tsRPC 方法分发packages/bridge/src/router.tsapp-server 客户端与过载重试packages/bridge/src/codex-app-server.tsNative host 安装注册scripts/install-native-host.mjs隐私与安全策略说明PRIVACY.md、SECURITY.md小结Chromex 的四层运行时边界本质上是一次按信任域切分的架构实践浏览器只负责界面与上下文Native Messaging 层只做协议翻译本地桥接层集中处理文件与本地资源而模型能力与凭据全部收敛在最内层的 codex app-server。理解这条链路后无论是排查codex app-server exited with code 1这类连接问题还是为项目新增功能平面你都能快速找到该动哪一层。赞分享【免费下载链接】chromexA Codex-powered Chrome side-panel assistant for page context, tabs, voice, and image workflows.项目地址https://gitcode.com/gh_mirrors/chr/chromex点击查看免费下载相关推荐SoundMind项目深度解析基于强化学习的音频语言模型逻辑推理框架SoundMind项目深度解析基于强化学习的音频语言模型逻辑推理框架 SoundMind是一个创新的开源项目旨在通过规则化强化学习RL算法赋予音频语言模Taro项目架构揭秘从CLI到运行时的一体化设计Taro项目架构揭秘从CLI到运行时的一体化设计 本文深入解析了Taro跨端框架的整体架构设计从CLI工具链的项目创建流程开始详细介绍了多框架支持机制R前端跨平台小程序移动开发开发工具OpenArk 热键管理快捷键冲突排查实操笔记OpenArk 热键管理快捷键冲突排查实操笔记 ⌨️ CtrlC 复制突然失灵或者你精心设置的自定义快捷键被后装的软件悄悄占用这类快捷键冲突在 Wind网络安全逆向工程桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑