@oatelauser/crosschat 1.2.1 → 1.3.1
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 +23 -0
- package/README.md +27 -16
- 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/commands/send.js +12 -1
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/status.js +37 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/identity.js +5 -1
- package/dist/identity.js.map +1 -1
- package/dist/platform/pipe-transport.js +61 -3
- package/dist/platform/pipe-transport.js.map +1 -1
- package/dist/resolve.js +18 -1
- package/dist/resolve.js.map +1 -1
- package/package.json +1 -1
- package/skills/crosschat/SKILL.md +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
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.1] - 2026-10-05
|
|
8
|
+
|
|
9
|
+
### 变更(B4 + skill 教学修正)
|
|
10
|
+
|
|
11
|
+
- skill 会话纪律新增**"发送成功即完成本轮"**:`send` 返回 `delivered`/`queued` 即结束当前轮次、禁止轮询 `status` 等回复(异步原生唤醒:对方回复会作为新消息注入本会话)——实测暴露的教学缺口,agent 曾以 20s 间隔轮询等回复白耗整轮;发布后真实使用中 agent 已主动引用该纪律并自省
|
|
12
|
+
- `--to` 支持 **codex 线程 id 寻址**(`codex exec` 线程天生无名,此前无法被主动发起对话):解析顺序 = 精确名(原样)→ 可选 `codex/` 前缀 + id8 前缀或完整 uuid;id8 多命中抛 `NAME_COLLISION` 列全量 id(UUIDv7 同分钟创建的线程 id8 天然同头);`NAME_NOT_FOUND` 提示补 id 寻址句;名字永远优先。WSL 活体验收:碰撞对正确报错、完整 id delivered 到无名线程
|
|
13
|
+
- 文档:unix 联调报告补全(codex 三腿打通、全六向闭环、真实使用验证附录)
|
|
14
|
+
|
|
15
|
+
## [1.3.0] - 2026-10-04
|
|
16
|
+
|
|
17
|
+
### 变更(B1/B2/B3:跨平台 Linux/WSL experimental)
|
|
18
|
+
|
|
19
|
+
- 平台层 unix 支持(B1):`PosixPipeTransport` 落地(AF_UNIX socket,Windows 语义零变化),`resolve-exe` / `identity` 补 unix 分支(自纠措辞按平台给 `env -u` / `Remove-Item` 两种写法)
|
|
20
|
+
- claude unix 投递(B2):deliver 平台分支——unix 侧**免 auth 行**(同 uid 由内核 peer credentials 保证身份,错 token 反而被丢),只发用户帧;send 的 codex 侧缺席时优雅降级。WSL(uid 1000)实测端到端打通:status 发现 / send delivered / 消息落入 transcript
|
|
21
|
+
- CI ubuntu 矩阵(B3):check job 加 windows-latest + ubuntu-latest 双操作系统,posix 门控用例(pipe-transport / deliver 的 `!win32` 用例)进 CI;README / SKILL.md 双平台措辞修正(platform badge、安装节 Linux/WSL 小节、`%LOCALAPPDATA%` → 平台化路径)
|
|
22
|
+
- **WSL/Linux 是独立部署**:unix 状态目录 `~/crosschat`(Windows 侧 `%LOCALAPPDATA%\crosschat`,两侧互不相通),命名管道/socket 不过系统边界,agent 必须与 crosschat 同侧运行;Mac 无实机——unix 实现共享,理论可达、未实测
|
|
23
|
+
|
|
24
|
+
### 变更(B23:conversations 视图裸身份键译名)
|
|
25
|
+
|
|
26
|
+
- `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` 不译。数据层与发送路径零改动
|
|
27
|
+
|
|
5
28
|
## [1.2.1] - 2026-10-03
|
|
6
29
|
|
|
7
30
|
### 发布说明
|
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,16 +30,16 @@
|
|
|
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
|
|
@@ -50,15 +50,22 @@ crosschat install-skills
|
|
|
50
50
|
|
|
51
51
|
**Codex daemon**(接收方向必需;从**干净终端**启动——勿在 Claude 会话内启动,否则派生 shell 身份污染):
|
|
52
52
|
|
|
53
|
-
```
|
|
53
|
+
```bash
|
|
54
54
|
codex app-server daemon start # 重启电脑后需重新执行
|
|
55
55
|
```
|
|
56
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
|
+
|
|
57
64
|
## 🚀 快速入门
|
|
58
65
|
|
|
59
66
|
### 30 秒版:两终端互发一句问候
|
|
60
67
|
|
|
61
|
-
```
|
|
68
|
+
```bash
|
|
62
69
|
# 终端 A(claude,能收)
|
|
63
70
|
crosschat claude # 进入后 /rename alice
|
|
64
71
|
|
|
@@ -118,7 +125,7 @@ D:\workspace\demo> codex
|
|
|
118
125
|
## 📋 命令列表
|
|
119
126
|
|
|
120
127
|
```
|
|
121
|
-
crosschat send --to <名字> --body "<正文>" #
|
|
128
|
+
crosschat send --to <名字> --body "<正文>" # 新消息(名字含空格加引号;未命名 codex 线程可用 id8 或完整 id 寻址,status 可见)
|
|
122
129
|
crosschat send --conversation <ref> --body "<正文>" # 回复(ref 照抄收到的信封)
|
|
123
130
|
echo … | crosschat send --to <名字> # 正文走 stdin
|
|
124
131
|
crosschat status [--json] [--conversations] # 双侧总览(名字/目录/时间/状态)
|
|
@@ -185,9 +192,12 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
185
192
|
- [x] 忙/锁超时 → 本地发件箱 + 看门狗自动重投(outbox,FIFO 不插队,mailbox 镜像可读)
|
|
186
193
|
- [x] daemon 0.160 开窗投递(实证:同 daemon 多连接绕过写者锁)
|
|
187
194
|
|
|
195
|
+
**已完成(v1.3.0)**
|
|
196
|
+
- [x] 🐧 Linux/WSL 平台支持(experimental):PosixPipeTransport + claude unix 投递(免 auth 行,同 uid 内核凭证)+ CI ubuntu 矩阵;mac 外推未实测
|
|
197
|
+
|
|
188
198
|
**计划中**
|
|
189
199
|
- [ ] 🌐 跨机联邦(SSH,异构 win ↔ linux 互聊)
|
|
190
|
-
- [ ] 🐧 mac
|
|
200
|
+
- [ ] 🐧 mac 平台适配(unix 代码路径已共享,待实机验证;平台接缝:PipeTransport / ProcessInspector / PathLayout)
|
|
191
201
|
- [ ] 📦 常驻 broker(忙时持久队列、异步回执、投递状态机——embassy 完整集对齐)
|
|
192
202
|
- [ ] 🖼️ TUI 看板与服务安装(开机自启)
|
|
193
203
|
- [ ] 🤖 新 agent 适配器(GLM 等;有原生唤醒通道则原生,否则论证降级)
|
|
@@ -201,11 +211,11 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
201
211
|
|
|
202
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` 核实)
|
|
203
213
|
|
|
204
|
-
**发送审计**:每次发送的最终结果(delivered/queued/parked/failed、时间、对端、发送方显示名 fromName
|
|
214
|
+
**发送审计**:每次发送的最终结果(delivered/queued/parked/failed、时间、对端、发送方显示名 fromName、回执)追加记录在状态目录的 `send-log.jsonl`(Windows `%LOCALAPPDATA%\crosschat\`;unix `~/crosschat/`);codex 投递附 rollout 回执(消息已确认落入对方会话历史 = `receipt: confirmed`)。命令超时转后台后结果同样在案,事后可查。
|
|
205
215
|
|
|
206
216
|
## ⚠️ 边界与限制
|
|
207
217
|
|
|
208
|
-
单条 ≤16KiB;每对端点 30 条/60s;发件箱每线程 200
|
|
218
|
+
单条 ≤16KiB;每对端点 30 条/60s;发件箱每线程 200 条(满时读状态目录 `mailbox\<线程ID>.md` 镜像取回内容:Windows `%LOCALAPPDATA%\crosschat\mailbox\`、unix `~/crosschat/mailbox/`);信任边界=同一系统用户(Windows 用户 / unix uid);接收许可仅 `crosschat claude` 启动的会话。
|
|
209
219
|
|
|
210
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`。
|
|
211
221
|
|
|
@@ -244,9 +254,10 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
244
254
|
|
|
245
255
|
## 🛠️ 开发说明
|
|
246
256
|
|
|
247
|
-
```
|
|
248
|
-
npm run check
|
|
249
|
-
|
|
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
|
|
250
261
|
```
|
|
251
262
|
|
|
252
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/commands/send.js
CHANGED
|
@@ -43,7 +43,18 @@ export async function runSend(args, deps) {
|
|
|
43
43
|
turn = continued.turn;
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
46
|
-
|
|
46
|
+
// Codex may be entirely absent (unix deploy); --to resolution still has
|
|
47
|
+
// to work claude-side, so an unreachable codex degrades to an empty
|
|
48
|
+
// thread list. A codex-side name then fails resolution with its own
|
|
49
|
+
// error instead of a transport spawn failure, and the codex-target
|
|
50
|
+
// delivery path still hits the real proxy below.
|
|
51
|
+
let threads = [];
|
|
52
|
+
try {
|
|
53
|
+
threads = await deps.listCodexThreads();
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// claude-side --to names still resolvable; otherwise let resolveTargetByName report it
|
|
57
|
+
}
|
|
47
58
|
// Guard above ensures exactly one of --to/--conversation; here it is --to.
|
|
48
59
|
const resolved = resolveTargetByName(args.to ?? '', scan.sessions, threads);
|
|
49
60
|
target =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -80,6 +80,13 @@ export async function runStatus(deps, json, conversations = false) {
|
|
|
80
80
|
async function conversationsView(deps, json) {
|
|
81
81
|
const rows = deps.listConversations?.() ?? [];
|
|
82
82
|
await recheckReceipts(rows, deps);
|
|
83
|
+
// B23: bare identity-key / id8 pair slots become display names (render-only).
|
|
84
|
+
// Slots already carrying evidence names (to/fromName) never match a table
|
|
85
|
+
// key, so they keep priority; `lastFrom` and `endpoints` stay identity keys.
|
|
86
|
+
const names = rows.length === 0 ? new Map() : await endpointDisplayNames(deps);
|
|
87
|
+
for (const row of rows) {
|
|
88
|
+
row.pair = [names.get(row.pair[0]) ?? row.pair[0], names.get(row.pair[1]) ?? row.pair[1]];
|
|
89
|
+
}
|
|
83
90
|
if (json) {
|
|
84
91
|
// Frozen JSON contract: exactly the eight summary fields (B22 added `receipt`);
|
|
85
92
|
// `endpoints` is render-only.
|
|
@@ -97,6 +104,36 @@ async function conversationsView(deps, json) {
|
|
|
97
104
|
}
|
|
98
105
|
return lines.join('\n');
|
|
99
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Display names keyed by every bare form a pair slot can render (B23): the
|
|
109
|
+
* full identity key (`claude:<id>` / `codex:<id>`) and the id8 descriptor
|
|
110
|
+
* `shortEndpoint` produces (`claude/<id8>`). Same-source on the claude side:
|
|
111
|
+
* identity keys are built from this very registry's sessionId
|
|
112
|
+
* (identity.ts claudeIdentity → identityKey), so the join is exact. A codex
|
|
113
|
+
* listing failure degrades to claude-only names (same stance as the main
|
|
114
|
+
* view); a nameless session/thread is simply not in the table.
|
|
115
|
+
*/
|
|
116
|
+
async function endpointDisplayNames(deps) {
|
|
117
|
+
const names = new Map();
|
|
118
|
+
const add = (prefix, id, name) => {
|
|
119
|
+
if (name === undefined || name === null || name === '')
|
|
120
|
+
return;
|
|
121
|
+
names.set(`${prefix}:${id}`, name);
|
|
122
|
+
names.set(`${prefix}/${id.slice(0, 8)}`, name);
|
|
123
|
+
};
|
|
124
|
+
for (const session of deps.listClaudeSessions().sessions) {
|
|
125
|
+
if (session.sessionId !== '')
|
|
126
|
+
add('claude', session.sessionId, session.name);
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
for (const thread of await deps.listCodexThreads())
|
|
130
|
+
add('codex', thread.id, thread.name);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// codex down is a valid status answer — translate the claude side only
|
|
134
|
+
}
|
|
135
|
+
return names;
|
|
136
|
+
}
|
|
100
137
|
/**
|
|
101
138
|
* One live re-probe per row that left the sender unconfirmed (B22): the
|
|
102
139
|
* rollout write often lands after send's own 1.5s budget, so status is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
1
2
|
import { MultichatError } from './errors.js';
|
|
2
3
|
/** Canonical key used for rate-limit buckets ("claude:<id>" / "codex:<id>" / "human"). */
|
|
3
4
|
export function identityKey(identity) {
|
|
@@ -18,9 +19,12 @@ export function resolveCallerIdentity(env, scan) {
|
|
|
18
19
|
const claude = socket !== '' ? claudeIdentity(socket, scan) : undefined;
|
|
19
20
|
const codexId = env.CODEX_THREAD_ID || env.CODEX_SESSION_ID || '';
|
|
20
21
|
if (claude !== undefined && codexId !== '') {
|
|
22
|
+
const unsetHint = process.platform === 'win32'
|
|
23
|
+
? `(PowerShell 先 Remove-Item Env:CLAUDE_CODE_*)。`
|
|
24
|
+
: `(bash 先 unset CLAUDE_CODE_*;单次用 env -u 前缀)。`;
|
|
21
25
|
throw new MultichatError('CALLER_IDENTITY_CONFLICT', `Caller identity conflict: both CLAUDE_CODE_* and CODEX_* identity variables are present (socket ${socket}, thread ${codexId}). ` +
|
|
22
26
|
`自纠(临时): 命令前缀 env -u CLAUDE_CODE_MESSAGING_SOCKET -u CLAUDE_CODE_MESSAGING_TOKEN -u CLAUDE_CODE_SESSION_ID ` +
|
|
23
|
-
|
|
27
|
+
unsetHint +
|
|
24
28
|
`根治: 从干净终端重启 codex daemon(codex app-server daemon stop && codex app-server daemon start)` +
|
|
25
29
|
`——daemon 会把启动时的环境传给它派生的所有 shell。`);
|
|
26
30
|
}
|
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C,0FAA0F;AAC1F,MAAM,UAAU,WAAW,CAAC,QAAoC;IAC9D,OAAO,QAAQ,CAAC,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAwB;IACzD,OAAO,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAwB,EAAE,QAAqB;IACrF,IAAI,QAAQ,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC;IAC1D,IAAI,QAAQ,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,GAAuC,EACvC,IAAwB;IAExB,MAAM,MAAM,GAAG,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAClE,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,cAAc,CACtB,0BAA0B,EAC1B,mGAAmG,MAAM,YAAY,OAAO,KAAK;YAC/H,4GAA4G;YAC5G
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,10 +61,68 @@ export class WindowsNamedPipeTransport {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Unix domain socket transport: identical wire semantics to the Windows
|
|
66
|
+
* named pipe transport, because `net.createConnection({ path })` addresses
|
|
67
|
+
* a UDS with the same API. Writes newline-delimited lines once per
|
|
68
|
+
* connection, ends the socket after the last write, never retries.
|
|
69
|
+
*/
|
|
65
70
|
export class PosixPipeTransport {
|
|
66
|
-
async sendLines() {
|
|
67
|
-
|
|
71
|
+
async sendLines(pipePath, lines) {
|
|
72
|
+
await new Promise((resolve, reject) => {
|
|
73
|
+
let settled = false;
|
|
74
|
+
let connected = false;
|
|
75
|
+
let ended = false;
|
|
76
|
+
let lastError;
|
|
77
|
+
let flushTimer;
|
|
78
|
+
const settle = (outcome) => {
|
|
79
|
+
if (settled)
|
|
80
|
+
return;
|
|
81
|
+
settled = true;
|
|
82
|
+
if (flushTimer !== undefined)
|
|
83
|
+
clearTimeout(flushTimer);
|
|
84
|
+
outcome();
|
|
85
|
+
};
|
|
86
|
+
// The peer normally closes the connection right after our EOF; a short
|
|
87
|
+
// grace period lets a broken socket surface as an error (the write
|
|
88
|
+
// error can arrive a tick AFTER the end callback) instead of a false
|
|
89
|
+
// "delivered" when the peer just holds the connection open.
|
|
90
|
+
const FLUSH_GRACE_MS = 250;
|
|
91
|
+
const socket = createConnection({ path: pipePath }, () => {
|
|
92
|
+
connected = true;
|
|
93
|
+
try {
|
|
94
|
+
for (const line of lines) {
|
|
95
|
+
socket.write(line.endsWith('\n') ? line : `${line}\n`);
|
|
96
|
+
}
|
|
97
|
+
socket.end(() => {
|
|
98
|
+
ended = true;
|
|
99
|
+
flushTimer = setTimeout(() => settle(resolve), FLUSH_GRACE_MS);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
lastError = err;
|
|
104
|
+
socket.destroy();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
socket.on('error', (err) => {
|
|
108
|
+
lastError = err;
|
|
109
|
+
});
|
|
110
|
+
socket.on('close', (hadError) => {
|
|
111
|
+
if (hadError || lastError !== undefined || !ended) {
|
|
112
|
+
if (!connected) {
|
|
113
|
+
settle(() => reject(new MultichatError('PIPE_CONNECT_FAILED', `Cannot connect to socket ${pipePath}.`, {
|
|
114
|
+
cause: lastError,
|
|
115
|
+
})));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
settle(() => reject(new MultichatError('PIPE_WRITE_UNCERTAIN', `Connection to socket ${pipePath} failed or closed early; delivery state unknown.`, { cause: lastError })));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
settle(resolve);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
68
126
|
}
|
|
69
127
|
}
|
|
70
128
|
export function getPipeTransport() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe-transport.js","sourceRoot":"","sources":["../../src/platform/pipe-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;AAY3C,MAAM,OAAO,yBAAyB;IACpC,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,KAAwB;QACxD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,SAA4B,CAAC;YACjC,IAAI,UAAsC,CAAC;YAE3C,MAAM,MAAM,GAAG,CAAC,OAAmB,EAAE,EAAE;gBACrC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,UAAU,KAAK,SAAS;oBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;gBACvD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,uEAAuE;YACvE,uEAAuE;YACvE,qEAAqE;YACrE,kEAAkE;YAClE,MAAM,cAAc,GAAG,GAAG,CAAC;YAE3B,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE;gBACvD,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC;oBACH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;oBACzD,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;wBACd,KAAK,GAAG,IAAI,CAAC;wBACb,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,SAAS,GAAG,GAAY,CAAC;oBACzB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAChC,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAiB,EAAE,EAAE;gBACvC,IAAI,QAAQ,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CACJ,IAAI,cAAc,CAAC,qBAAqB,EAAE,0BAA0B,QAAQ,GAAG,EAAE;4BAC/E,KAAK,EAAE,SAAS;yBACjB,CAAC,CACH,CACF,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CACJ,IAAI,cAAc,CAChB,sBAAsB,EACtB,sBAAsB,QAAQ,kDAAkD,EAChF,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CACF,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED
|
|
1
|
+
{"version":3,"file":"pipe-transport.js","sourceRoot":"","sources":["../../src/platform/pipe-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/resolve.js
CHANGED
|
@@ -17,6 +17,23 @@ export function resolveTargetByName(name, sessions, threads) {
|
|
|
17
17
|
return { side: 'claude', session: claudeMatches[0] };
|
|
18
18
|
if (codexMatches.length === 1)
|
|
19
19
|
return { side: 'codex', thread: codexMatches[0] };
|
|
20
|
+
const idMatch = /^(?:codex\/)?([0-9a-f]{8}(?:-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?)$/.exec(name);
|
|
21
|
+
if (idMatch !== null) {
|
|
22
|
+
const id = idMatch[1];
|
|
23
|
+
if (id.length === 36) {
|
|
24
|
+
const thread = threads.find((candidate) => candidate.id === id);
|
|
25
|
+
if (thread !== undefined)
|
|
26
|
+
return { side: 'codex', thread };
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const prefixed = threads.filter((candidate) => candidate.id.startsWith(id));
|
|
30
|
+
if (prefixed.length === 1)
|
|
31
|
+
return { side: 'codex', thread: prefixed[0] };
|
|
32
|
+
if (prefixed.length > 1) {
|
|
33
|
+
throw new MultichatError('NAME_COLLISION', `Multiple Codex threads match id prefix ${JSON.stringify(name)}: ${prefixed.map((thread) => thread.id).join(', ')}. Use the full id to address one.`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
20
37
|
throw new MultichatError('NAME_NOT_FOUND', `No agent named ${JSON.stringify(name)}. ${describeAvailableNames(sessions, threads)}`);
|
|
21
38
|
}
|
|
22
39
|
function describeAvailableNames(sessions, threads) {
|
|
@@ -25,6 +42,6 @@ function describeAvailableNames(sessions, threads) {
|
|
|
25
42
|
const unnamed = threads.length - namedThreads.length;
|
|
26
43
|
const claudeList = claudeNames.map((name) => JSON.stringify(name)).join(', ') || '(no named sessions)';
|
|
27
44
|
const codexList = namedThreads.map((name) => JSON.stringify(name)).join(', ') || '(no named threads)';
|
|
28
|
-
return `Available names — claude: ${claudeList}; codex: ${codexList}${unnamed > 0 ? ` (+${unnamed} unnamed)` : ''}
|
|
45
|
+
return `Available names — claude: ${claudeList}; codex: ${codexList}${unnamed > 0 ? ` (+${unnamed} unnamed)` : ''}.${unnamed > 0 ? ' Unnamed codex threads can be addressed by id8 or full id (see crosschat status).' : ''}`;
|
|
29
46
|
}
|
|
30
47
|
//# sourceMappingURL=resolve.js.map
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oatelauser/crosschat",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Let Claude Code and Codex CLI talk to each other on your machine: native delivery via named pipe and app-server, stateless CLI, no daemon.",
|
|
6
6
|
"repository": {
|
|
@@ -41,7 +41,7 @@ crosschat status
|
|
|
41
41
|
crosschat send --to <名字> --body "正文"
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
- 名字 = claude 会话名或 codex 线程名(status
|
|
44
|
+
- 名字 = claude 会话名或 codex 线程名(status 列出全部可路由对象);未命名 codex 线程可用 id8 或完整 id 寻址(`crosschat status` 里可见)。
|
|
45
45
|
- 查会话往来(双方、最近活跃、轮次、最近投递状态、滞留条数):`crosschat status --conversations`;`queued` / `parked` 的终态也在这里确认。
|
|
46
46
|
- 长正文可省略 `--body`,改为管道:`<正文文件路径的内容> | crosschat send --to <名字>`。
|
|
47
47
|
- 投给 codex 的消息:**开窗、关窗、忙时均可投**(daemon 0.160+)。对方正在跑 turn 也不阻塞——消息直接**入队**(输出 `queued`),当前轮结束即进入对话被处理;TUI 窗口会实时刷出。输出 `delivered`(已送达)/ `queued`(已入队,轮末处理)/ `parked`(仅旧 daemon 异常态,已暂存),三者都**无需重发**。
|
|
@@ -50,18 +50,19 @@ crosschat send --to <名字> --body "正文"
|
|
|
50
50
|
|
|
51
51
|
- `MESSAGE_TOO_LARGE`:正文超过 16KiB。把完整内容**写入一个文件,只发文件路径**(接收方会按需读取,这也是长内容的标准做法)。
|
|
52
52
|
- `RATE_LIMITED`:发送过快(每对端点 60 秒最多 30 条)。**等待后重试**,或直接总结收尾;系统不会静默丢弃或自动重试。
|
|
53
|
-
- `CODEX_THREAD_LOCKED` / `CODEX_THREAD_BUSY_TIMEOUT`:旧 daemon(≤0.157 / 未附着 TUI)下线程被窗口占用或长 turn 在跑。消息**已暂存(parked,exit 0),无需重发**——**看门狗每 0.5–5 分钟自动重投,不需要手动跑 status**;每线程最多暂存 200 条,滞留内容随时可读 `%LOCALAPPDATA%\crosschat\mailbox\<线程ID>.md
|
|
53
|
+
- `CODEX_THREAD_LOCKED` / `CODEX_THREAD_BUSY_TIMEOUT`:旧 daemon(≤0.157 / 未附着 TUI)下线程被窗口占用或长 turn 在跑。消息**已暂存(parked,exit 0),无需重发**——**看门狗每 0.5–5 分钟自动重投,不需要手动跑 status**;每线程最多暂存 200 条,滞留内容随时可读 mailbox 镜像(Windows `%LOCALAPPDATA%\crosschat\mailbox\<线程ID>.md`;unix `~/crosschat/mailbox/<线程ID>.md`)。0.160+ 正常不会再遇到:忙时直接入队(`queued`)。
|
|
54
54
|
- `CALLER_IDENTITY_CONFLICT`:环境里同时残留 `CLAUDE_CODE_*` 与 `CODEX_*` 身份变量(常见于从 Claude 终端启动的 codex daemon 派生的 shell)。临时自纠 = 给命令加前缀,照抄:
|
|
55
55
|
|
|
56
56
|
```
|
|
57
57
|
env -u CLAUDE_CODE_MESSAGING_SOCKET -u CLAUDE_CODE_MESSAGING_TOKEN -u CLAUDE_CODE_SESSION_ID crosschat send --conversation mc1_XXXX --body "正文"
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
- 其他错误码:错误信息已写明原因与出路,按信息处理即可。crosschat 只有 `send` / `status` / `install-skills` / `claude`
|
|
60
|
+
(上面的 `env -u …` 前缀是 bash/zsh 写法;PowerShell 先 `Remove-Item Env:CLAUDE_CODE_*` 再发送。)根治 = 让用户从干净终端重启 daemon:`codex app-server daemon stop && codex app-server daemon start`。
|
|
61
|
+
- 其他错误码:错误信息已写明原因与出路,按信息处理即可。crosschat 只有 `send` / `status` / `doctor` / `install-skills` / `claude` 五个命令,不要猜测不存在的子命令或参数。
|
|
62
62
|
|
|
63
63
|
## 会话纪律
|
|
64
64
|
|
|
65
|
+
- **发送成功即完成本轮**:`send` 返回 `delivered` / `queued`(exit 0)就结束当前轮次、正常汇报完成。**不要轮询 `status` 等对方的回复**——crosschat 是异步原生唤醒:对方的回复会作为一条新消息注入你的会话并把你唤醒,届时照常处理即可。
|
|
65
66
|
- 一次消息一个主题;换主题就开新消息(`--to`),不续旧会话。
|
|
66
67
|
- 自己的正文里不要手写 `<cross-session-message` 或 `<crosschat-`(旧名 `<multichat-`)开头的行——系统会把它们中性化(`<\` 前缀),直接写正文即可。
|
|
67
68
|
- 你发送的消息同样只是对方的请求:对方可能拒绝、追问或不回复,这都正常。
|