flit stk — 量化盯盘 架构总览

Chrome Extension (Manifest V3) · 轻量浏览器股票监控

flit stk — 量化盯盘 架构总览 Chrome Extension (Manifest V3) · 轻量浏览器股票监控 Chrome Extension Sandbox 外部网络 (不可信) 本地机器 (可信任) 股票页面源 · iwencai / xueqiu · 外部网络 (不可信) · 页面抓取 股票页面源 iwencai / xueqiu 页面抓取 实时行情 API · Sina / Tencent / xiaoshi · 外部网络 (不可信) · API 直取 实时行情 API Sina / Tencent / xiaoshi API 直取 LLM 端点 · OpenAI 兼容接口 · 外部网络 (不可信) · 用户配置 LLM 端点 OpenAI 兼容接口 用户配置 Content Script · 内容抓取 · Chrome Extension Sandbox · injected Content Script 内容抓取 injected Background SW · Service Worker · Chrome Extension Sandbox · 调度中枢 Background SW Service Worker 调度中枢 Offscreen Parser · 隐藏解析页 · Chrome Extension Sandbox · DOM 解析 Offscreen Parser 隐藏解析页 DOM 解析 Data Landing · 匹配 + 合并 + 通知 · Chrome Extension Sandbox · 落库单点 Data Landing 匹配 + 合并 + 通知 落库单点 Popup UI · 弹窗界面 · Chrome Extension Sandbox · 展示与操作 Popup UI 弹窗界面 展示与操作 AI Chat · AI 对话窗口 · Chrome Extension Sandbox · 工具调用 AI Chat AI 对话窗口 工具调用 chrome.storage · sync + local · Chrome Extension Sandbox · 持久化 chrome.storage sync + local 持久化 flit_bridge · 本地 Node.js 服务 · 本地机器 (可信任) · 本地可信任 flit_bridge 本地 Node.js 服务 本地可信任 reload 页面 fetch 行情 DOCUMENT_CAPTURED parseDocument parsed 结果 读→合并→写回 onChanged 监听 port 连接 ai-chat 连接 SSE streaming 工具查库 Legend 扩展界面 SW 模块 存储 信任边界 外部依赖

主要数据路径(加粗线)

  • • ① Content Script 抓取股票页整页 HTML → background SW
  • • ② SW 转发 HTML 到 Offscreen 隐藏页解析(SW 无 DOM)
  • • ③ Data Landing 匹配股票 → 合并字段 → 双阈值锁存通知
  • • ④ 落地结果写入 chrome.storage,popup 通过 onChanged 刷新

外部依赖

  • • 股票页面: iwencai.com / xueqiu.com(定时 reload 抓取)
  • • 实时行情: hq.sinajs.cn / qt.gtimg.cn / api.shizixi.com
  • • LLM: 用户自配置 OpenAI 兼容端点(DeepSeek / Qwen 等)
  • • 本地桥接: flit_bridge Node.js 服务 :17321(Docker PG / 工作区)

信任边界

  • • Chrome Extension Sandbox — SW + 页面在浏览器隔离沙箱内
  • • 外部网络(红线外)— 不可信,HTTPS 传输,content script 只读操作
  • • 本地机器 — flit_bridge 限 127.0.0.1,请求校验 workspace_root

AI 对话设计

  • • 流式 SSE 在 SW 内解析(行缓冲 + TextDecoder stream)
  • • 工具定义:26+ 工具(行情/K线/要点/事件/数据库/文件)
  • • 反编造 guard(ai_guard.js)三态判定:pass/note/correct/drop
  • • 非流式降级:stream=false 时页面降级全量取数

关键设计约束

  • • 数据落地一律「读 storage 最新 → 合并 → 写回」,不依赖内存快照
  • • 设置存 chrome.storage.sync(8KB 上限),列表存 local
  • • ETF(159/51/58)不走问财,恒刷雪球个股页
  • • 无构建系统、无测试、原生 JS(ES2020)