@tomflow/chatloop-extension 0.3.27 → 0.3.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/extension/background.js +7 -1
- package/extension/manifest.json +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @tomflow/chatloop-extension|Chat Loop Extension
|
|
2
2
|
|
|
3
|
-
> **当前源码 v0.3.
|
|
3
|
+
> **当前源码 v0.3.29;正式工作窗口 10 分钟;仍是六个正式 Action。** 本包负责受控 Chrome 页面中的观察、一次性授权与动作回执;模型不能主动请求 Handoff。Chrome 安装版本、实站验收结果以 [`CURRENT`](../../context/CURRENT.md) 为准;历史版本的完整叙述已归档至 [`旧版记录`](../../work/v037-acceptance/legacy-project-notes-2026-11-04.md)。
|
|
4
4
|
|
|
5
5
|
**当前边界**:Chat ↔ MCP ↔ Mac 是任务工具通道;扩展 → Chat 是单向生命周期调度。扩展包自有 CLI 与按需 Native Messaging Host 已实现本机 IPC;Chrome 真机机器回执与远端 MCP 仍待验收。完整策略见 [`REQ-001`](../../requirements/REQ-001.md) 和 [`三端运行流程`](../../docs/15-mvp-three-end-runtime-flow.md)。
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
| 组成 | 位置 | 当前职责与状态 |
|
|
10
10
|
| --- | --- | --- |
|
|
11
|
-
| Chrome 扩展 | `extension/manifest.json`(MV3,v0.3.
|
|
11
|
+
| Chrome 扩展 | `extension/manifest.json`(MV3,v0.3.29) | **已实现**:环境检测、Screenshot、DOM、Text、Reload |
|
|
12
12
|
| Eye 动作页 | `extension/{screenshot,dom,text,reload}.html` + `actions/{common,screenshot,dom,text,reload}.js` | **已实现**:每页只执行相应动作,复用底层逻辑;成功关闭、失败留页 |
|
|
13
13
|
| Continue 动作页 | `extension/continue.html` + `actions/continue.js` | **已实现并实测**:持单次授权才能编辑 Chat 输入框并点击一次发送;成功关闭,失败阻断 |
|
|
14
14
|
| ChatGPT 页面脚本 | `extension/content.js` | **已实现**:受限 ChatGPT 页面 Eye 读取;Reload 后仅对明确目标按需重新注入 |
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
| Handoff 动作页 | `extension/handoff.html` + `actions/handoff.js` | **旧显式模式及真实 1 小时历史版本已验收**;当前 v0.3.26 是 Worker 十分钟到期后调度的正式 TIMED Handoff;当前十分钟实际实站以 CURRENT 为准,不将旧 1h 误报为新版本验收 |
|
|
21
21
|
| 回归测试 | `test/{eye,loop,observer,handoff-dom}.test.mjs` | **已实现**:Eye 动作及模拟 DOM 循环行为测试 |
|
|
22
22
|
|
|
23
|
-
`package.json` 与 `extension/manifest.json` 同为 **0.3.
|
|
23
|
+
`package.json` 与 `extension/manifest.json` 同为 **0.3.29**;npm 安装包**不会自动向 Chrome 安装或加载扩展**。
|
|
24
24
|
|
|
25
25
|
**运行事实与旧版验收**:Reload 后可通过 Worker 持久 Owner 重新绑定正在生成的 Observer;正常延时 Handoff 已在旧版真墙钟和受控时钟下取得实站回执。原始测试位于 `work/v037-acceptance/`,版本与结论以 CURRENT 为准,不把正常路径的 PASS 当作异常 E2E 已通过。Plugin→本机 CLI→扩展正式回执尚未实现。
|
|
26
26
|
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
|
|
74
74
|
## 3. API:扩展内部消息协议(实际源码)
|
|
75
75
|
|
|
76
|
-
这些消息仅供**本扩展内部**使用,当前不属于外部插件可直接调用的公共接口。扩展版本 `0.3.
|
|
76
|
+
这些消息仅供**本扩展内部**使用,当前不属于外部插件可直接调用的公共接口。扩展版本 `0.3.29` 与内部读操作契约版本 `chat-loop.eye.v1` 是两回事;**保留 `eye.v1` 兼容名,不为产品改名破坏已验证协议**。
|
|
77
77
|
|
|
78
78
|
| 发送方 → 接收方 | 请求 | 返回字段 |
|
|
79
79
|
| --- | --- | --- |
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
> **此层归 `@tomflow/chatloop-extension` 独立维护**。四个 Action、它们的 CLI 适配、HTML/CSS、原生消息回执和临时文件写入均在本包;`@tomflow/chatloop-tools` 仅代理、按命名空间暴露 MCP 工具,不复制扩展动作。Continue/Handoff 仅由原 Worker 自动授权,绝不对 Chat 开放任意执行命令。
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
|
-
npm install @tomflow/chatloop-extension@0.3.
|
|
111
|
+
npm install @tomflow/chatloop-extension@0.3.29
|
|
112
112
|
# 在 Chrome 加载该 npm 包内的 extension/ 文件夹,并获取实际扩展 ID
|
|
113
113
|
chatloop-extension host install <EXTENSION_ID> # macOS 用户级注册已实现
|
|
114
114
|
chatloop-extension extension chat text
|
package/extension/background.js
CHANGED
|
@@ -895,7 +895,13 @@ async function onExtensionCliTarget(message,sender) {
|
|
|
895
895
|
return {status:"DENIED",code:"INVALID_EXTENSION_ACTION_SOURCE"};
|
|
896
896
|
if(message.action==="reload")return {status:"OK"};
|
|
897
897
|
const run=await readRun();
|
|
898
|
-
|
|
898
|
+
// Read-only Eye may inspect the last confirmed DONE Owner while the same
|
|
899
|
+
// Chat URL and exact tab still match. This does not reactivate the Loop,
|
|
900
|
+
// grant Continue/Handoff permission or select another Chat tab.
|
|
901
|
+
const finishedOwned = run?.phase === "DONE"
|
|
902
|
+
&& /^user:[^\s]{8,}$/.test(run.userKey || "")
|
|
903
|
+
&& /^assistant:[^\s]{8,}$/.test(run.assistantKey || "");
|
|
904
|
+
if(!(run?.phase === "WAITING_REPLY" || finishedOwned) || !Number.isInteger(run.tabId)
|
|
899
905
|
|| typeof run.page!=="string")
|
|
900
906
|
return {status:"DENIED",code:"NO_ACTIVE_CHAT_OWNER"};
|
|
901
907
|
const tab=await chrome.tabs.get(run.tabId).catch(()=>null);
|
package/extension/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tomflow/chatloop-extension",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.29",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Chat Loop Extension package: six formal Action pages and its own native CLI bridge",
|
|
6
6
|
"bin": {
|
|
7
|
-
"chatloop-extension": "
|
|
8
|
-
"chat-loop-browser": "
|
|
7
|
+
"chatloop-extension": "bin/cli.mjs",
|
|
8
|
+
"chat-loop-browser": "bin/cli.mjs"
|
|
9
9
|
},
|
|
10
10
|
"engines": {
|
|
11
11
|
"node": ">=20"
|