联泰下单助手
Chrome Manifest V3 扩展,在用户已登录的 LTJT ERP 页面内执行经过平台确认、Schema 校验和 ERP 只读唯一解析的确定性业务操作。
职责边界
- 平台与 Agent 负责业务意图、用户事实、任务/会话、确认和通讯。
- 插件负责前门禁、ERP 对象/资源解析、页面联动、严格写前校验、原生提交与 fresh requery。
- 插件不解释新的自然语言含义,不绕过候选唯一/首条选择规则,不维护主数据,不凭 HTTP 200 宣称成功。
operation.source只允许显式历史测试上下文;普通平台元数据不得混入业务 operation。
当前版本
当前源码版本为 0.5.140。版本化 ZIP、文件哈希和 Skill/DOCX 基线见 ../../dist/release-manifest.json。旧版本实现流水已冻结在 ../../archive/project-history/2026-08-16/chrome-extension-README.pre-governance.md。
0.5.140 当前重点:
- 产品与客户分别执行 ERP 唯一解析;来源地关键字仅保留客户侧候选辅助,不再强制要求产品与客户来源地相互匹配。
- 散拼母团创建收到 ERP 成功响应后,精确团号回查会清空无关筛选并进行有限延迟只读重查;任一团号仍未命中时转逐日期唯一回查,整个恢复过程不重新提交创建请求。
- 无编号独立团检索以客户 + 出发日期为主条件;客户支持中文分词匹配和日期回退。
- 产品与领队只作候选补充校验,不作为原生列表硬筛。
- SGL/TWN 房型映射到
frenshu0/frenshu1,三类人数映射到darenshu/xiaorenshu/quanrenshu,均有非负校验和 fresh 表单回查;这些新增映射仍待授权 ERP 实写复测。 - ERP 明确返回业务规则拒绝时保留原生提示,任务标记为业务阻断,不进入“结果不确定/待回查”,也不自动重试。
- 跨订单列表和计划列表合并候选后,再用已提供的产品/领队可见文本做二次筛选;仍不唯一时继续阻断,不猜选。
- 恢复/取消进入精确编辑页后读取当前状态;目标状态相同则返回“无需迁移”,只有状态不同才继续写入前门禁。
- 恢复订单按对象类型主动切换 ERP 原生【已取消】或母团【收客中】状态标签;状态标签由原生菜单点击触发,避免遗留筛选把已取消记录排除在候选集之外。
- 插件实际领取任务后 10 分钟无最终结果自动失败;启动/重载时清理过期运行态、无执行孤儿缓存和超过 30 分钟的残留当前任务指针,可能跨过 ERP 写入边界的记录保留只读回查,不自动重试。
- ERP 页面脚本注入前检查 host permission 和批准 origin;重定向到非白名单页面、站点访问被关闭或 Chrome 拒绝注入时 fail-closed,并回传可操作的诊断码,不再把原始权限异常当作普通导出失败。
- ERP 待机保活默认开启:Chrome alarm 约每 5 分钟在已有 ERP 标签页内发送一次带 Cookie 的只读
GET /System/Mainlt.asp;执行任务期间跳过,不新开标签、不刷新页面、不修改业务数据,可在插件面板单独关闭。 - ERP 只读探测发现会话失效、页面注入异常或链路失败时,在无插件执行任务且已有同源 ERP 标签页的前提下,按 2 分钟冷却最多自动绕缓存刷新一次现有标签页,并等待完成后再次只读复测;失败只保留告警,不自动重交业务任务。
- 其他未验证独立团字段保留在 operation 并转人工复核,不静默丢弃。
完整开放/阻断边界见 生命周期发布门槛。
本地加载
- 打开
chrome://extensions。 - 启用开发者模式。
- 选择“加载已解压的扩展程序”。
- 选择本目录
chrome-extension/ltjt-order-assistant/。 - 每次源码或版本更新后在扩展管理页重载,并通过平台握手确认运行版本。
ZIP 仅用于交付,不从 ZIP 目录直接维护源码。
执行链
平台领取任务
→ validateDispatchOperation
→ 找到已登录 ERP 页面
→ resolveLifecycleOperation / 资源解析
→ validateOperation 严格门禁
→ 原生页面操作
→ 明确服务端响应
→ fresh requery
→ 结构化结果回传平台
零候选、多候选、页面身份不一致、登录失效、联动失败、状态不支持、提交不确定或回查不一致都必须在写前阻断或进入只读 reconciliation。不得自动重提同一写操作。
主要源码
| 文件 | 职责 |
|---|---|
background.js |
平台桥接、任务领取、版本握手和调度 |
business-bridge.js |
页面与扩展消息桥 |
operation-plans.js |
前门禁、严格门禁和执行规划 |
inpage.js |
ERP 页面发现、列表检索和业务路由 |
lifecycle-adapters.js |
生命周期表单操作、写入和回查 |
team-batch*.js |
独立团/散拼创建与批量执行 |
product-lookup.js、source-region.js |
产品候选和客户候选解析;来源地仅作客户侧辅助 |
lifecycle-result.js、split-plan-reconciliation.js |
结果统一与只读收敛 |
验证
node --check chrome-extension/ltjt-order-assistant/background.js
node --check chrome-extension/ltjt-order-assistant/inpage.js
npm run test:legacy
npm run check:repo
修改插件源码时必须递增 manifest.json 版本,同步平台最低版本、mappings/lifecycle.mapping.json、回归断言、版本化 ZIP 和 dist/release-manifest.json。真实 ERP 写入仍需用户针对本轮对象明确授权。