@oatelauser/crosschat 1.1.0 → 1.3.0
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/CHANGELOG.md +67 -0
- package/README.md +33 -18
- package/dist/claude/deliver.js +16 -4
- package/dist/claude/deliver.js.map +1 -1
- package/dist/claude/resolve-exe.js +6 -0
- package/dist/claude/resolve-exe.js.map +1 -1
- package/dist/cli.js +24 -9
- package/dist/cli.js.map +1 -1
- package/dist/codex/client.js +5 -0
- package/dist/codex/client.js.map +1 -1
- package/dist/codex/deliver.js +11 -5
- package/dist/codex/deliver.js.map +1 -1
- package/dist/codex/transport.js +4 -1
- package/dist/codex/transport.js.map +1 -1
- package/dist/commands/send.js +54 -12
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/status.js +103 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/conversation-summary.js +123 -0
- package/dist/conversation-summary.js.map +1 -0
- package/dist/conversations.js +174 -0
- package/dist/conversations.js.map +1 -0
- package/dist/envelope.js +1 -1
- package/dist/envelope.js.map +1 -1
- package/dist/identity.js +5 -1
- package/dist/identity.js.map +1 -1
- package/dist/outbox.js +26 -0
- package/dist/outbox.js.map +1 -1
- package/dist/platform/pipe-transport.js +61 -3
- package/dist/platform/pipe-transport.js.map +1 -1
- package/dist/send-log.js +57 -1
- package/dist/send-log.js.map +1 -1
- package/package.json +1 -1
- package/skills/crosschat/SKILL.md +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,73 @@
|
|
|
2
2
|
|
|
3
3
|
本项目的全部显著变更记录于此。格式参照 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [1.3.0] - 2026-10-04
|
|
8
|
+
|
|
9
|
+
### 变更(B1/B2/B3:跨平台 Linux/WSL experimental)
|
|
10
|
+
|
|
11
|
+
- 平台层 unix 支持(B1):`PosixPipeTransport` 落地(AF_UNIX socket,Windows 语义零变化),`resolve-exe` / `identity` 补 unix 分支(自纠措辞按平台给 `env -u` / `Remove-Item` 两种写法)
|
|
12
|
+
- claude unix 投递(B2):deliver 平台分支——unix 侧**免 auth 行**(同 uid 由内核 peer credentials 保证身份,错 token 反而被丢),只发用户帧;send 的 codex 侧缺席时优雅降级。WSL(uid 1000)实测端到端打通:status 发现 / send delivered / 消息落入 transcript
|
|
13
|
+
- CI ubuntu 矩阵(B3):check job 加 windows-latest + ubuntu-latest 双操作系统,posix 门控用例(pipe-transport / deliver 的 `!win32` 用例)进 CI;README / SKILL.md 双平台措辞修正(platform badge、安装节 Linux/WSL 小节、`%LOCALAPPDATA%` → 平台化路径)
|
|
14
|
+
- **WSL/Linux 是独立部署**:unix 状态目录 `~/crosschat`(Windows 侧 `%LOCALAPPDATA%\crosschat`,两侧互不相通),命名管道/socket 不过系统边界,agent 必须与 crosschat 同侧运行;Mac 无实机——unix 实现共享,理论可达、未实测
|
|
15
|
+
|
|
16
|
+
### 变更(B23:conversations 视图裸身份键译名)
|
|
17
|
+
|
|
18
|
+
- `status --conversations` 渲染层补翻译:无名字证据的 pair 槽位(裸身份键 `claude:<id>` / `codex:<id>` 或 id8 缩写 `claude/<id8>` / `codex/<id8>`)按 claude 注册表与 codex 线程清单译成显示名;已有显示名(to/fromName 证据)一律不动,证据优先。claude 侧同源可证:身份键本就由注册表 `sessionId` 构成(identity.ts `claudeIdentity` → `identityKey`),join 精确。codex 清单失败按主视图同款降级(空表不报错)。文本与 JSON 两路径同表,JSON `pair` 值随之变好、八字段形状不变;`lastFrom`(机器字段)与 `endpoints` 不译。数据层与发送路径零改动
|
|
19
|
+
|
|
20
|
+
## [1.2.1] - 2026-10-03
|
|
21
|
+
|
|
22
|
+
### 发布说明
|
|
23
|
+
|
|
24
|
+
- v1.2.0 的 npm 发布失败于 CI(B21 wire 测试依赖本机装有 codex,runner 上必挂;本版修复)。**1.2.1 含 1.2.0 全部功能**。
|
|
25
|
+
|
|
26
|
+
### 修复(CI 封闭性)
|
|
27
|
+
|
|
28
|
+
- `openCodexProxySession` 在注入 `spawnProxy` 时跳过真实 codex.exe 解析(注入路径本就不使用解析结果)——无 codex 环境的 CI runner 不再必挂,两次 CI 红(push + publish 同根因)闭合
|
|
29
|
+
|
|
30
|
+
### 变更(B22:视图实时回执确认 + 旧 ref 防倒退)
|
|
31
|
+
|
|
32
|
+
- `status --conversations` 聚合行新增第 8 字段 `receipt`(`'confirmed' | 'unconfirmed' | null`,取自该对 send-log 最新一条 delivered 消息的 rollout 回执;null = 无记录或非 delivered)——**JSON 契约加键**:原七字段变八字段,`endpoints` 仍为渲染专用不透出
|
|
33
|
+
- 视图实时复核:渲染前对「delivered 且 unconfirmed 且对端含 codex」的行用该行 ref 现场调一次 `confirmInRollout`(2 次轮询 ×200ms 预算,不拖慢 status;claude 端点无 rollout 概念跳过),查到即翻转为已确认——慢落盘的送达时刻不再无处可查。文本视图 delivered 行行尾追加 `已确认` / `回执未确认`;JSON 的 `receipt` 反映复核后结果
|
|
34
|
+
- `--conversation` 旧 ref 防倒退(机制):`conversations.ts` 新增 `continueFromRef`——分片线 c ≥ 传入 ref c 且同对话(nonce 相同)且端点匹配时以分片线为准(`nextTurnRef(分片ref)`),消除迟到回复 / 多人从同一旧 base 续造成的 turn 撞号与倒退分叉(实测三条消息全 turn 27);分片落后 / 缺失 / 不同对话 / 端点不匹配时维持按传入 ref 续的原行为;`--to` 路径(`continueConversation`)语义不动
|
|
35
|
+
- 教学少抄旧 ref:信封教学第二行改为「新话题或对话已推进时: `crosschat send --to <名字> --body "..."`(--to 自动接续该端对最近对话);超 16KiB 请写文件后只发路径」(两行结构不变);SKILL.md「收到消息后如何回复」补一条:对话已推进 / 拿不准 ref 新旧时直接 `--to`,不必抄旧信封的 ref
|
|
36
|
+
|
|
37
|
+
## [1.2.0] - 2026-10-03
|
|
38
|
+
|
|
39
|
+
### 变更(B21:exec 线程可见 + 发送端显示名)
|
|
40
|
+
|
|
41
|
+
- codex 发现的 `thread/list` 显式传 `sourceKinds: ["cli","vscode","exec"]`:`codex exec` 建的线程(source=exec)进入 status 清单;此前服务端默认只收 interactive 源(cli/vscode),exec 线程永不可见(B19/B20 演练 §5.1)
|
|
42
|
+
- send-log 条目新增可选 `fromName`(发送方显示名,发送时源头记账):conversations 视图在"对端还没回信 addressed 我"时不再把发送端渲染成裸身份键;旧条目无 `fromName` 走原路径,行为不变
|
|
43
|
+
|
|
44
|
+
### 变更(B20:conversations 按端对分片)
|
|
45
|
+
|
|
46
|
+
- 会话连续性状态从单一全局 `conversations.json`(每次发送整读整写、无锁,任意两对并发发送毫秒窗内互相覆盖)改为 `conversations/` 目录下每端对一个 `<sha256(对键)>.json` 分片(照 `rate/` 先例,tmp+rename 原子写)——跨端对并发发送互不相干
|
|
47
|
+
- 懒迁移:读=分片优先、缺失回退旧全局文件;写=只写分片,旧文件永不改写永不删除(陈旧快照无害);坏分片自愈为新对话(隔离到单端对)
|
|
48
|
+
- 同端对毫秒级并发仍是后写赢:后果仅该对连续性记录滞后一轮,ref 自包含使在途回复不受影响
|
|
49
|
+
|
|
50
|
+
### 变更(B19:忙端早退 parked + queued 回执措辞)
|
|
51
|
+
|
|
52
|
+
- 写者锁持续被拒 / 线程持续 `not_loaded`:等待从 120s 收敛到 ~10s(`STALL_PARK_TIMEOUT_MS`,3s 轮询约 3 轮,排除瞬时抖动)即抛同名错误码落 `parked`,看门狗照常补投
|
|
53
|
+
- `queued` 投递不再做 1.5s 回执探测(排在对方当前 turn 后,结构上不可能确认),输出改为指向 `crosschat status --conversations`
|
|
54
|
+
|
|
55
|
+
### 记账补漏(B17/B18,随前两批提交,此处补记)
|
|
56
|
+
|
|
57
|
+
- B17:`status` 会话列表数据层——send-log 尾读 + send-log/conversations/注册表三源聚合
|
|
58
|
+
- B18:`status --conversations` 会话列表视图
|
|
59
|
+
|
|
60
|
+
### 变更(B16:审计补缺)
|
|
61
|
+
|
|
62
|
+
- send-log 条目新增 `from`(发送方身份键)——多 agent 并发时审计需要「谁发的」,此前只有「发给谁」
|
|
63
|
+
- README 源码安装节注明:开发期重装本地目录需 `npm i -g . --force`(版本未变时 npm 报 up to date 跳过文件更新,装到的还是旧代码)
|
|
64
|
+
|
|
65
|
+
### 变更(B15:对话连续性——`--to` 消息的 turn 计数修复)
|
|
66
|
+
|
|
67
|
+
- `--to` 发送现在**自动接续该端对最近的对话**(本地 `conversations.json` 按无序端对记 latest ref),turn 随每条消息递增;任一端用 `--to` 回复都续同一线程。修复 2026-10-02 实测的「30 条不同消息全部标 turn=1」失真
|
|
68
|
+
- 送达/入队/寄存都记账;寄存的消息也占轮次(它终将送达)
|
|
69
|
+
- 状态文件损坏自愈为新对话;端对不匹配的记录被忽略
|
|
70
|
+
- `TARGET_NOT_FOUND`(claude 会话已退出)错误附指引:`status` 查在线会话后 `--to <新名字>` 重新寻址
|
|
71
|
+
|
|
5
72
|
## [1.1.0] - 2026-10-03
|
|
6
73
|
|
|
7
74
|
### 变更(B14:发送存根与 rollout 回执,整改第三步)
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**让本机的 Claude Code 与 Codex CLI 互相对话** —— 无守护进程、原生投递、双向实测。
|
|
8
8
|
|
|
9
|
-
         
|
|
10
10
|
|
|
11
11
|
</div>
|
|
12
12
|
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
|
|
15
15
|
## ✨ 为什么用 crosschat
|
|
16
16
|
|
|
17
|
-
- **🔌 原生投递,零轮询**:消息经 Claude 的 named pipe / Codex 的 App Server daemon 直接注入运行中的会话——接收方像收到一条用户消息一样开始工作,不需要任何轮询或常驻服务
|
|
17
|
+
- **🔌 原生投递,零轮询**:消息经 Claude 的 named pipe / unix socket / Codex 的 App Server daemon 直接注入运行中的会话——接收方像收到一条用户消息一样开始工作,不需要任何轮询或常驻服务
|
|
18
18
|
- **🪶 无守护进程**:整个工具就是一条无状态 CLI。没有后台进程要看护、没有崩溃丢状态、没有端口要占——`send` 就是发消息,`status` 就是看在线
|
|
19
19
|
- **🤖 教学内建,低入侵**:agent 侧装一次 skill,且**每条消息的信封自带回复命令**——照抄即可回话。题词只写角色,不写协议;长对话也不会忘
|
|
20
20
|
- **📮 忙时不丢**:对方正在跑长任务?消息自动进本地发件箱(outbox),并由看门狗进程每 0.5–5 分钟自动重投,对方一空闲就送达——不需要你手动重发;滞留内容随时可在 mailbox 镜像文件里读到
|
|
21
|
-
- **🔐
|
|
21
|
+
- **🔐 同用户信任边界**:全部通道按系统用户隔离(Windows 用户 / unix uid),接收许可只授予 `crosschat claude` 启动的会话——你手敲开的会话不会被外部投递
|
|
22
22
|
- **🧪 每个结论都有实证**:通道可行性、写者锁、daemon 版本行为,全部真机联调验证(见 [📚 更多文档](#-更多文档))
|
|
23
23
|
|
|
24
|
-
> 灵感与部分模块实现来自 [embassy](https://github.com/YuanpingSong/embassy)(macOS-only,MIT)——crosschat 是它的 Windows
|
|
24
|
+
> 灵感与部分模块实现来自 [embassy](https://github.com/YuanpingSong/embassy)(macOS-only,MIT)——crosschat 是它的 Windows 原生、无守护进程重实现(1.3.0 起亦支持 Linux/WSL,experimental)。
|
|
25
25
|
|
|
26
26
|
## 🧰 环境搭建
|
|
27
27
|
|
|
@@ -30,33 +30,42 @@
|
|
|
30
30
|
| Node.js | ≥ 22 | |
|
|
31
31
|
| Claude Code | 任意近期版 | 接收需 `crosschat claude` 启动(工具自动注入许可) |
|
|
32
32
|
| Codex CLI | ≥ 0.160 推荐 | 0.160 daemon 支持开窗投递;接收需 app-server daemon |
|
|
33
|
-
| OS | Windows
|
|
33
|
+
| OS | Windows(稳定)· Linux/WSL(experimental,1.3.0) | mac 未实测(unix 实现共享,理论可达) |
|
|
34
34
|
|
|
35
|
-
```
|
|
35
|
+
```bash
|
|
36
36
|
npm i -g @oatelauser/crosschat # 一行安装(提供 crosschat / multichat 双命令)
|
|
37
37
|
crosschat install-skills # 协议教学装到两侧 agent
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
<details><summary>从源码安装(开发者)</summary>
|
|
41
41
|
|
|
42
|
-
```
|
|
42
|
+
```bash
|
|
43
43
|
git clone https://github.com/Oatelauser/crosschat.git
|
|
44
44
|
cd crosschat && npm ci && npm run build && npm link
|
|
45
45
|
crosschat install-skills
|
|
46
46
|
```
|
|
47
|
+
|
|
48
|
+
开发期反复重装本地目录:`npm run build && npm i -g . --force`——**build 不可省**(包没有 prepare 脚本,npm 不会自动构建,`files` 只打包 dist/ 现状,漏 build 会把旧 dist 装回去);`--force`(或先 bump 版本)是因为版本号未变时 npm 会报 "up to date" 而**跳过文件更新**。若首次用的是 `npm link`(符号链接直连仓库),则每次只需 `npm run build`,无需重装。
|
|
47
49
|
</details>
|
|
48
50
|
|
|
49
51
|
**Codex daemon**(接收方向必需;从**干净终端**启动——勿在 Claude 会话内启动,否则派生 shell 身份污染):
|
|
50
52
|
|
|
51
|
-
```
|
|
53
|
+
```bash
|
|
52
54
|
codex app-server daemon start # 重启电脑后需重新执行
|
|
53
55
|
```
|
|
54
56
|
|
|
57
|
+
**Linux / WSL(experimental,1.3.0)**——**独立部署**:unix 侧自成一套(状态目录 `~/crosschat`、发件箱、投递),与 Windows 侧互不相通,管道/socket 不过系统边界,**agent 必须与 crosschat 同侧运行**:
|
|
58
|
+
|
|
59
|
+
- 前置:Node ≥ 22、claude / codex CLI 装在**同一侧**(WSL 内用 unix 版)
|
|
60
|
+
- claude 安装(受限网络):claude.ai/install.sh 可能被区域屏蔽(302),改用 npm 直装 `npm i -g @anthropic-ai/claude-code`;仍不可达时按架构直装平台包 tarball(如 `@anthropic-ai/claude-code-linux-x64`,镜像源可拉,解包即含原生 `claude` 二进制)
|
|
61
|
+
- 状态目录:unix `~/crosschat`(Windows 侧为 `%LOCALAPPDATA%\crosschat`,两侧各自独立)
|
|
62
|
+
- mac:unix 实现共享,理论可达、未实测
|
|
63
|
+
|
|
55
64
|
## 🚀 快速入门
|
|
56
65
|
|
|
57
66
|
### 30 秒版:两终端互发一句问候
|
|
58
67
|
|
|
59
|
-
```
|
|
68
|
+
```bash
|
|
60
69
|
# 终端 A(claude,能收)
|
|
61
70
|
crosschat claude # 进入后 /rename alice
|
|
62
71
|
|
|
@@ -119,7 +128,7 @@ D:\workspace\demo> codex
|
|
|
119
128
|
crosschat send --to <名字> --body "<正文>" # 新消息(名字含空格加引号)
|
|
120
129
|
crosschat send --conversation <ref> --body "<正文>" # 回复(ref 照抄收到的信封)
|
|
121
130
|
echo … | crosschat send --to <名字> # 正文走 stdin
|
|
122
|
-
crosschat status [--json]
|
|
131
|
+
crosschat status [--json] [--conversations] # 双侧总览(名字/目录/时间/状态)
|
|
123
132
|
crosschat doctor # 一键环境体检(有 ❌ 时退出码 1)
|
|
124
133
|
crosschat install-skills [--dir <根>] # 安装/更新 agent skill(幂等)
|
|
125
134
|
crosschat claude [任意 claude 参数…] # 带接收许可启动 claude(透传)
|
|
@@ -128,6 +137,8 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
128
137
|
|
|
129
138
|
发送输出三种状态:`delivered`(已投递)/ `parked`(对方忙,已入发件箱,看门狗自动重投;输出含队列深度与 mailbox 镜像路径)/ 错误码(见排障)。
|
|
130
139
|
|
|
140
|
+
`status --conversations` 另看对话总览:每对端点的最近方向、相对时间、轮次、末条状态与滞留数(与 `--json` 组合输出同结构数组)。
|
|
141
|
+
|
|
131
142
|
## 📖 对话生命周期(规则总纲)
|
|
132
143
|
|
|
133
144
|
### 三种发起方式
|
|
@@ -138,7 +149,7 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
138
149
|
| **codex** | 会话内 agent 跑 `crosschat send --to <claude 会话名> --body "…"` | 发送随意;回信开窗关窗都能收(daemon 0.160+) |
|
|
139
150
|
| **人** | 任意终端直接 `crosschat send --to <名字> --body "…"` | 身份是 human:**能发、不能被回复**(单向指令) |
|
|
140
151
|
|
|
141
|
-
第一条消息永远用 `--to`(此刻生成对话引用 reply-ref);对方名字用 `status`
|
|
152
|
+
第一条消息永远用 `--to`(此刻生成对话引用 reply-ref);对方名字用 `status` 查。`--to` 不必只用于第一条:对同一端对的重复 `--to` 发送会**自动接续你们最近的对话**(turn 递增,本地记账,无需手带引用);要另起线程时用 `--conversation` 显式切换即可。
|
|
142
153
|
|
|
143
154
|
### 往复规则
|
|
144
155
|
|
|
@@ -158,7 +169,7 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
158
169
|
| claude(裸 `claude` 启动) | 任何 | ❌ 无接收许可(换 `crosschat claude` 重启) |
|
|
159
170
|
| codex(daemon ≥0.160) | 窗口开/关 | ✅ 送达(headless 执行;TUI 不实时刷新,翻历史可见) |
|
|
160
171
|
| codex(daemon ≥0.160) | turn 进行中(忙) | ✅ **入队即达**:`queued`(按线程串行,轮结束瞬间落历史并被处理)——与 Claude 收件箱同粒度 |
|
|
161
|
-
| codex(旧 daemon ≤0.157 / `--no-daemon`) | 窗口开 | ⏳ 等待
|
|
172
|
+
| codex(旧 daemon ≤0.157 / `--no-daemon`) | 窗口开 | ⏳ 等待 ~10s,关窗瞬间送达;超时 `parked` 入发件箱(看门狗自动重投) |
|
|
162
173
|
| codex | 排队被旧 daemon 拒绝等罕见态 | 📮 `parked` 入发件箱(新消息排队不插队),看门狗每 0.5–5 分钟自动重投 |
|
|
163
174
|
|
|
164
175
|
**不对称速记**:claude 收发都随意;codex 收信在 0.160+ 开窗关窗均可,关窗永远是最稳路径。
|
|
@@ -181,9 +192,12 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
181
192
|
- [x] 忙/锁超时 → 本地发件箱 + 看门狗自动重投(outbox,FIFO 不插队,mailbox 镜像可读)
|
|
182
193
|
- [x] daemon 0.160 开窗投递(实证:同 daemon 多连接绕过写者锁)
|
|
183
194
|
|
|
195
|
+
**已完成(v1.3.0)**
|
|
196
|
+
- [x] 🐧 Linux/WSL 平台支持(experimental):PosixPipeTransport + claude unix 投递(免 auth 行,同 uid 内核凭证)+ CI ubuntu 矩阵;mac 外推未实测
|
|
197
|
+
|
|
184
198
|
**计划中**
|
|
185
199
|
- [ ] 🌐 跨机联邦(SSH,异构 win ↔ linux 互聊)
|
|
186
|
-
- [ ] 🐧 mac
|
|
200
|
+
- [ ] 🐧 mac 平台适配(unix 代码路径已共享,待实机验证;平台接缝:PipeTransport / ProcessInspector / PathLayout)
|
|
187
201
|
- [ ] 📦 常驻 broker(忙时持久队列、异步回执、投递状态机——embassy 完整集对齐)
|
|
188
202
|
- [ ] 🖼️ TUI 看板与服务安装(开机自启)
|
|
189
203
|
- [ ] 🤖 新 agent 适配器(GLM 等;有原生唤醒通道则原生,否则论证降级)
|
|
@@ -197,11 +211,11 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
197
211
|
|
|
198
212
|
**通道类**:`CODEX_PROXY_SPAWN_FAILED`(看 stderr 摘录;通常 daemon 未跑)· `CODEX_THREAD_LOCKED`/`CODEX_THREAD_BUSY_TIMEOUT`(已自动转 `parked` 入发件箱,无需重发)· `OUTBOX_FULL`(每线程 200 条积压上限,读 mailbox 镜像取回内容)· `CODEX_APPROVAL_REQUIRED`(**工具永不代答审批**)· `CLAUDE_PIPE_*`/`CODEX_*UNCERTAIN`(写入中途失败状态不明——**勿盲目重发**,先 `status` 核实)
|
|
199
213
|
|
|
200
|
-
**发送审计**:每次发送的最终结果(delivered/queued/parked/failed
|
|
214
|
+
**发送审计**:每次发送的最终结果(delivered/queued/parked/failed、时间、对端、发送方显示名 fromName、回执)追加记录在状态目录的 `send-log.jsonl`(Windows `%LOCALAPPDATA%\crosschat\`;unix `~/crosschat/`);codex 投递附 rollout 回执(消息已确认落入对方会话历史 = `receipt: confirmed`)。命令超时转后台后结果同样在案,事后可查。
|
|
201
215
|
|
|
202
216
|
## ⚠️ 边界与限制
|
|
203
217
|
|
|
204
|
-
单条 ≤16KiB;每对端点 30 条/60s;发件箱每线程 200
|
|
218
|
+
单条 ≤16KiB;每对端点 30 条/60s;发件箱每线程 200 条(满时读状态目录 `mailbox\<线程ID>.md` 镜像取回内容:Windows `%LOCALAPPDATA%\crosschat\mailbox\`、unix `~/crosschat/mailbox/`);信任边界=同一系统用户(Windows 用户 / unix uid);接收许可仅 `crosschat claude` 启动的会话。
|
|
205
219
|
|
|
206
220
|
**daemon 依赖(重要)**:向 codex 会话投递走 `codex app-server proxy`,它连接**运行中的 app-server daemon** control socket。要获得完整能力(TUI 开窗可投、忙时入队),需要 `codex app-server daemon start` 且 daemon ≥0.160,TUI 用同版本 CLI 打开(0.160 起 TUI 自动附着 daemon)。daemon 未运行时投递会报 `CODEX_PROXY_SPAWN_FAILED` 并提示启动命令;旧版本 daemon 下开窗投递与忙时入队退化为「关窗投递 + 发件箱」。重启电脑后需重新 `codex app-server daemon start`。
|
|
207
221
|
|
|
@@ -240,9 +254,10 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
240
254
|
|
|
241
255
|
## 🛠️ 开发说明
|
|
242
256
|
|
|
243
|
-
```
|
|
244
|
-
npm run check
|
|
245
|
-
|
|
257
|
+
```bash
|
|
258
|
+
npm run check # lint + build + test
|
|
259
|
+
CROSSCHAT_LIVE=1 npx vitest run --dir test # 真机 live 测试(unix)
|
|
260
|
+
# PowerShell: $env:CROSSCHAT_LIVE='1'; npx vitest run --dir test
|
|
246
261
|
```
|
|
247
262
|
|
|
248
263
|
- 目录:`src/claude`(注册表/管道/鉴权)· `src/codex`(proxy/RPC/投递)· `src/commands`(CLI)· `src/platform`(平台接缝)· `src/outbox.ts`(发件箱)· `skills/`(agent 教学)
|
package/dist/claude/deliver.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
1
2
|
import { getPipeTransport } from '../platform/pipe-transport.js';
|
|
2
3
|
import { MultichatError } from '../errors.js';
|
|
3
4
|
import { encodeAuthLine, encodeUserFrame } from './frame.js';
|
|
@@ -5,14 +6,25 @@ import { readPeerToken } from './key-file.js';
|
|
|
5
6
|
import { defaultClaudeSessionsDir } from './registry.js';
|
|
6
7
|
/**
|
|
7
8
|
* Deliver one user message to a running Claude session over its messaging
|
|
8
|
-
* pipe
|
|
9
|
-
*
|
|
9
|
+
* pipe, written once, never retried. On win32 the payload is auth line +
|
|
10
|
+
* user frame, the token read from the session's key file; on unix only the
|
|
11
|
+
* user frame is sent — no key file, no auth line
|
|
12
|
+
* (docs/research/claude-unix-socket.md: the auth line is optional there,
|
|
13
|
+
* same-uid kernel credentials are the identity). Transport failures surface
|
|
14
|
+
* as CLAUDE_PIPE_CONNECT_FAILED (never connected) or
|
|
10
15
|
* CLAUDE_PIPE_WRITE_UNCERTAIN (failed after the write started).
|
|
11
16
|
*/
|
|
12
17
|
export async function deliverToClaudeSession(session, content, options = {}) {
|
|
13
18
|
const sessionsDir = options.sessionsDir ?? defaultClaudeSessionsDir();
|
|
14
|
-
const
|
|
15
|
-
|
|
19
|
+
const platform = options.platform ?? process.platform;
|
|
20
|
+
let lines;
|
|
21
|
+
if (platform === 'win32') {
|
|
22
|
+
const token = readPeerToken(sessionsDir, session.pid, session.messagingSocketPath);
|
|
23
|
+
lines = [encodeAuthLine(token), encodeUserFrame(content)];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
lines = [encodeUserFrame(content)];
|
|
27
|
+
}
|
|
16
28
|
const transport = options.transport ?? getPipeTransport();
|
|
17
29
|
try {
|
|
18
30
|
await transport.sendLines(session.messagingSocketPath, lines);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../src/claude/deliver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../src/claude/deliver.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAsB,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAgBzD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA6B,EAC7B,OAAe,EACf,UAAiC,EAAE;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,wBAAwB,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACtD,IAAI,KAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACnF,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACvC,MAAM,IAAI,cAAc,CACtB,4BAA4B,EAC5B,sDAAsD,OAAO,CAAC,GAAG,GAAG,EACpE,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBACxC,MAAM,IAAI,cAAc,CACtB,6BAA6B,EAC7B,6CAA6C,OAAO,CAAC,GAAG,6CAA6C,EACrG,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -11,6 +11,12 @@ export function defaultResolveExeDeps() {
|
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
export function resolveClaudeExe(deps = defaultResolveExeDeps()) {
|
|
14
|
+
if (process.platform !== 'win32') {
|
|
15
|
+
const override = deps.env.CROSSCHAT_CLAUDE_BIN;
|
|
16
|
+
if (override)
|
|
17
|
+
return override;
|
|
18
|
+
return 'claude';
|
|
19
|
+
}
|
|
14
20
|
const candidates = [];
|
|
15
21
|
if (deps.env.APPDATA) {
|
|
16
22
|
candidates.push(join(deps.env.APPDATA, 'npm', 'node_modules', '@anthropic-ai', 'claude-code', 'node_modules', '@anthropic-ai', 'claude-code-win32-x64', 'claude.exe'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-exe.js","sourceRoot":"","sources":["../../src/claude/resolve-exe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-exe.js","sourceRoot":"","sources":["../../src/claude/resolve-exe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAiB9C,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrE,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAuB,qBAAqB,EAAE;IAC7E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC/C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CACb,IAAI,CACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,KAAK,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,YAAY,CACb,CACF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,cAAc,CACtB,sBAAsB,EACtB,uCAAuC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -13,6 +13,8 @@ import { defaultRateDir } from './rate-limit.js';
|
|
|
13
13
|
import { defaultOutboxDir, drain } from './outbox.js';
|
|
14
14
|
import { runWatchdog, spawnWatchdog as ensureWatchdog } from './watchdog.js';
|
|
15
15
|
import { appendSendLog, confirmInRollout, defaultSendLogFile } from './send-log.js';
|
|
16
|
+
import { defaultConversationsFile } from './conversations.js';
|
|
17
|
+
import { conversationSummaries } from './conversation-summary.js';
|
|
16
18
|
import { codexHomeDir } from './codex/rollout-meta.js';
|
|
17
19
|
import { listClaudeSessions } from './claude/registry.js';
|
|
18
20
|
import { deliverToClaudeSession } from './claude/deliver.js';
|
|
@@ -25,7 +27,8 @@ commands:
|
|
|
25
27
|
send --to <name> | --conversation <ref>
|
|
26
28
|
send a message (--body <text> or stdin);
|
|
27
29
|
quote <name> if it contains spaces
|
|
28
|
-
status
|
|
30
|
+
status [--conversations] show claude/codex session status, or per-pair
|
|
31
|
+
conversation overview with --conversations
|
|
29
32
|
doctor environment health check (exits 1 on any ❌)
|
|
30
33
|
install-skills [--dir <root>]
|
|
31
34
|
install the agent skill into <root>/.claude and
|
|
@@ -70,13 +73,20 @@ export function parseSendArgs(argv) {
|
|
|
70
73
|
}
|
|
71
74
|
return args;
|
|
72
75
|
}
|
|
73
|
-
/** status accepts
|
|
76
|
+
/** status accepts only --json and --conversations (each at most once). */
|
|
74
77
|
export function parseStatusArgs(argv) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
let json = false;
|
|
79
|
+
let conversations = false;
|
|
80
|
+
for (const token of argv) {
|
|
81
|
+
if (token === '--json' && !json)
|
|
82
|
+
json = true;
|
|
83
|
+
else if (token === '--conversations' && !conversations)
|
|
84
|
+
conversations = true;
|
|
85
|
+
else {
|
|
86
|
+
throw new MultichatError('USAGE', `status takes only --json/--conversations; got: ${argv.join(' ')}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return { json, conversations };
|
|
80
90
|
}
|
|
81
91
|
/** install-skills accepts only --dir <root> (space or = separated). */
|
|
82
92
|
export function parseInstallSkillsArgs(argv) {
|
|
@@ -123,12 +133,17 @@ function realSendDeps(stdinText) {
|
|
|
123
133
|
spawnWatchdog: () => ensureWatchdog(defaultOutboxDir()),
|
|
124
134
|
appendLog: (entry) => appendSendLog(defaultSendLogFile(), entry),
|
|
125
135
|
confirmReceipt: (threadId, marker) => confirmInRollout(codexHomeDir(), threadId, marker),
|
|
136
|
+
conversationStateFile: defaultConversationsFile(),
|
|
126
137
|
};
|
|
127
138
|
}
|
|
128
139
|
function realStatusDeps() {
|
|
129
140
|
return {
|
|
130
141
|
listClaudeSessions: () => listClaudeSessions(),
|
|
131
142
|
listCodexThreads: () => listCodexThreads(),
|
|
143
|
+
listConversations: () => conversationSummaries(),
|
|
144
|
+
// B22: bounded recheck budget (2 polls × 200ms per unconfirmed row) so the
|
|
145
|
+
// conversations view stays snappy while catching slow rollout flushes.
|
|
146
|
+
confirmReceipt: (threadId, marker) => confirmInRollout(codexHomeDir(), threadId, marker, { tries: 2, delayMs: 200 }),
|
|
132
147
|
};
|
|
133
148
|
}
|
|
134
149
|
function drainAtEntry() {
|
|
@@ -222,9 +237,9 @@ async function main(argv) {
|
|
|
222
237
|
return 0;
|
|
223
238
|
}
|
|
224
239
|
try {
|
|
225
|
-
const { json } = parseStatusArgs(rest);
|
|
240
|
+
const { json, conversations } = parseStatusArgs(rest);
|
|
226
241
|
await drainAtEntry();
|
|
227
|
-
const output = await runStatus(realStatusDeps(), json);
|
|
242
|
+
const output = await runStatus(realStatusDeps(), json, conversations);
|
|
228
243
|
process.stdout.write(`${output}\n`);
|
|
229
244
|
return 0;
|
|
230
245
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/codex/client.js
CHANGED
|
@@ -48,10 +48,15 @@ export function openCodexSession(options = {}) {
|
|
|
48
48
|
rpc.notify('initialized', {});
|
|
49
49
|
},
|
|
50
50
|
async listThreads() {
|
|
51
|
+
// Absent sourceKinds, the server defaults to interactive-only sources
|
|
52
|
+
// (cli/vscode — app-server filters.rs INTERACTIVE_SESSION_SOURCES), so
|
|
53
|
+
// `codex exec` threads (source=exec, B19/B20 drill §5.1) would never be
|
|
54
|
+
// listed. Legal values = ThreadSourceKind enum (v2 protocol schema).
|
|
51
55
|
const result = await rpc.request('thread/list', {
|
|
52
56
|
archived: false,
|
|
53
57
|
limit: 20,
|
|
54
58
|
sortKey: 'recency_at',
|
|
59
|
+
sourceKinds: ['cli', 'vscode', 'exec'],
|
|
55
60
|
useStateDbOnly: true,
|
|
56
61
|
});
|
|
57
62
|
if (!isRecord(result) || !Array.isArray(result.data)) {
|
package/dist/codex/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codex/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codex/client.ts"],"names":[],"mappings":"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"}
|
package/dist/codex/deliver.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { MultichatError } from '../errors.js';
|
|
2
2
|
import { openCodexSession, } from './client.js';
|
|
3
3
|
import { CodexRpcRejectedError } from './rpc.js';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* B19 stall budget: a writer lock that never releases or a thread that never
|
|
6
|
+
* loads parks after ~10s (about 3 polls at the default 3s interval — enough to
|
|
7
|
+
* ride out transient stalls) instead of blocking the sender for the old 120s.
|
|
8
|
+
* send.ts maps both outcomes to parked; the watchdog re-delivers.
|
|
9
|
+
*/
|
|
10
|
+
const STALL_PARK_TIMEOUT_MS = 10_000;
|
|
5
11
|
const DEFAULT_POLL_INTERVAL_MS = 3_000;
|
|
6
12
|
/** Server-side rejection text when a codex TUI window holds the thread writer. */
|
|
7
13
|
const ACTIVE_WRITER_PATTERN = /already has an active writer/i;
|
|
@@ -15,7 +21,7 @@ const STDERR_EXCERPT_CHARS = 300;
|
|
|
15
21
|
const DAEMON_START_HINT = 'codex app-server daemon 可能未启动,可运行: codex app-server daemon start';
|
|
16
22
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
23
|
export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
18
|
-
const
|
|
24
|
+
const stallTimeoutMs = Math.min(options.busyTimeoutMs ?? STALL_PARK_TIMEOUT_MS, STALL_PARK_TIMEOUT_MS);
|
|
19
25
|
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
20
26
|
const sessionFactory = options.sessionFactory ?? openCodexSession();
|
|
21
27
|
let session;
|
|
@@ -31,7 +37,7 @@ export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
|
31
37
|
try {
|
|
32
38
|
try {
|
|
33
39
|
await session.initialize();
|
|
34
|
-
const deadline = Date.now() +
|
|
40
|
+
const deadline = Date.now() + stallTimeoutMs;
|
|
35
41
|
// Disposition loop: idle -> proceed; busy -> proceed too (daemon
|
|
36
42
|
// >=0.160 accepts turn/start against a busy thread and serializes it —
|
|
37
43
|
// measured inbox semantics); waiting_approval -> APPROVAL_REQUIRED
|
|
@@ -79,10 +85,10 @@ export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
|
79
85
|
}
|
|
80
86
|
if (Date.now() + pollIntervalMs > deadline) {
|
|
81
87
|
if (writerHeld) {
|
|
82
|
-
throw new MultichatError('CODEX_THREAD_LOCKED', `Codex thread ${threadId} 正被 codex 窗口占用,等待 ${
|
|
88
|
+
throw new MultichatError('CODEX_THREAD_LOCKED', `Codex thread ${threadId} 正被 codex 窗口占用,等待 ${stallTimeoutMs / 1000}s 未释放。` +
|
|
83
89
|
'关闭该窗口后重发将立即送达;或改投其它线程。');
|
|
84
90
|
}
|
|
85
|
-
throw new MultichatError('CODEX_THREAD_BUSY_TIMEOUT', `Codex thread ${threadId} did not become reachable within ${
|
|
91
|
+
throw new MultichatError('CODEX_THREAD_BUSY_TIMEOUT', `Codex thread ${threadId} did not become reachable within ${stallTimeoutMs}ms.`);
|
|
86
92
|
}
|
|
87
93
|
await sleep(pollIntervalMs);
|
|
88
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../src/codex/deliver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,gBAAgB,GAIjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../src/codex/deliver.ts"],"names":[],"mappings":"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"}
|
package/dist/codex/transport.js
CHANGED
|
@@ -297,7 +297,10 @@ export async function wsChannelFactory(duplex) {
|
|
|
297
297
|
* does not exit on its own.
|
|
298
298
|
*/
|
|
299
299
|
export async function openCodexProxySession(options = {}) {
|
|
300
|
-
|
|
300
|
+
// An injected spawnProxy ignores the command argument entirely: resolve the
|
|
301
|
+
// real executable only when the default spawner will run, so hermetic tests
|
|
302
|
+
// (and codex-less CI runners) do not require a local codex install.
|
|
303
|
+
const command = options.executable ?? (options.spawnProxy !== undefined ? 'codex' : resolveCodexExecutable());
|
|
301
304
|
const doSpawn = options.spawnProxy ??
|
|
302
305
|
((cmd, args) => spawn(cmd, [...args], {
|
|
303
306
|
stdio: ['pipe', 'pipe', 'pipe'],
|