Files
my-pi/pi-chrome/UPSTREAM.md
T
云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 2a6bf8c929 feat(pi-overflow): 新增统一的新工具结果展示截断扩展
此前截断分散在多层且互相冲突:Pi bash 保留尾部 50KB,RTK 兜底截断又只留
开头 12000 字符(砍掉报错与完整输出路径),pi-chrome 截开头 30K,web_fetch
各 provider 不一致。新扩展统一负责"新结果给模型看多少":
- capture.ts 最先加载暂存原文,index.ts 最后加载(system-prompt 之前)
- 超过 24K 字符时原文落盘 <agentDir>/my-pi/pi-overflow/(700/600、原子写),
  优先取 bash fullOutputPath 完整文件;模型看到 头 + 中段信号行 + 尾 的有界
  视图,行号基于落盘原文、结尾永远可见
- overflow_query:按 id 正则搜索、行区间、jsonPath 只读查询,id 校验防穿越
- 收编:RTK truncate 默认关闭、删除 pi-chrome truncateText、web_fetch 默认
  每页 20000(上限 100000)、web_search max_results 限定 1–20
- pi-compaction 遮蔽带 details.overflow.id 的结果时在占位符提示 overflow_query
- 登记 tools.jsonc / routing / 权限 allow / tool-search 常驻与分组

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-21 20:25:44 -07:00

2.3 KiB
Raw Blame History

上游来源

  • 官方仓库:https://github.com/tianrendong/pi-chrome
  • 导入 npm 版本:pi-chrome@0.15.46
  • 导入 commit:017ff4b9a639f0b8b213e58a3f30613fc38edcc8
  • Commit 日期:2026-07-07T01:30:54-04:00
  • 导入依据:pi-chrome@0.15.46 官方 npm 元数据中记录的 gitHead;没有任何上游 tag 指向该 commit。
  • 初始本地导入:2026-08-28

被跟踪的上游源码、测试、文档、脚本和许可证均从官方 Git 仓库导入。不保留嵌套 .git、依赖目录、覆盖率与构建产物。

本地维护

本目录由 my-pi 组合包直接维护,不是 submodule。根包加载本目录中的 extensions/chrome-profile-bridge/index.ts,并通过 file:./pi-chrome 依赖它;不得并行加载 npm 预编译扩展入口。

导入后的本地改动:

  • Chrome 快照以原子方式写入当前项目 .pi/chrome-context/ 目录下的 owner-only、Session 临时文件,而不是把原始页面结构返回给模型上下文。
  • 每个 Session/目标只保留最新快照;浏览器交互会使陈旧捕获失效,Session 关闭时移除该 Session 目录。
  • chrome_find 返回紧凑的排序匹配,同时把完整结构化快照保留在 Session 本地捕获中,供可选的 ctx_execute_file 分析使用。
  • click/type/fill/key 上的 includeSnapshot=true 会保存动作后的快照并返回其捕获路径,而不是把快照嵌入工具结果。
  • 授权后的 before_agent_start 不再返回 systemPrompt:Chrome 使用提示写入 event.systemPromptOptions.sections.chrome_profile_bridge 结构化分区,由组合包单一提示词出口 extensions/system-prompt.ts 统一组装,顺序由 config/prompt/sections.jsonc 控制;未授权时不贡献任何提示词内容。
  • 移除 PI_CHROME_BRIDGE_HOST/PI_CHROME_BRIDGE_PORT 环境变量,host/port 固定为 127.0.0.1:17318(Companion 扩展 service_worker.js 同样硬编码该地址,单侧可配只会断连且非回环 host 有安全风险)。
  • 移除 MAX_TEXT_CHARS/truncateText 的 30K 字符文本截断:chrome_* 工具返回完整文本,超长结果的展示截断由 pi-overflow 统一负责;MAX_ELEMENTS 等条数上限保留不变。

同步上游时,请以导入 commit 为基准比较并选择性移植改动。不得整体覆盖这些本地生命周期、隐私和 Context Mode 集成。