tellrun 1.1.1 → 1.2.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/README.md CHANGED
@@ -20,7 +20,6 @@ Run Tellrun on your server and use Telegram on your phone or desktop to send cod
20
20
 
21
21
  Currently supports **Telegram + Codex** for one user, with one task at a time. A session picker, a queue of separate tasks, approval and structured question interfaces, and image or file input are not yet supported.
22
22
 
23
- The CLI setup wizard and bot status messages are currently in Chinese.
24
23
 
25
24
  ## Install and connect Codex to Telegram
26
25
 
@@ -74,16 +73,16 @@ Without `/cwd`, the working directory defaults to the directory where the servic
74
73
 
75
74
  ## Telegram commands
76
75
 
77
- | Command | Purpose |
78
- | --- | --- |
79
- | `/start`, `/help` | Show usage instructions |
80
- | `/cwd` | Show the current working directory |
81
- | `/cwd /absolute/path` | Change the working directory and start a new conversation |
82
- | `/new` | Start a new conversation while keeping the working directory |
83
- | `/status` | Show connection, conversation, directory, and task status |
84
- | `/last` | Show the latest task's status and result |
85
- | `/stop` | Request that the current task stop and pause new tasks |
86
- | `/resume` | Accept new tasks again without rerunning an interrupted task |
76
+ | Command | Purpose |
77
+ | --------------------- | ------------------------------------------------------------ |
78
+ | `/start`, `/help` | Show usage instructions |
79
+ | `/cwd` | Show the current working directory |
80
+ | `/cwd /absolute/path` | Change the working directory and start a new conversation |
81
+ | `/new` | Start a new conversation while keeping the working directory |
82
+ | `/status` | Show connection, conversation, directory, and task status |
83
+ | `/last` | Show the latest task's status and result |
84
+ | `/stop` | Request that the current task stop and pause new tasks |
85
+ | `/resume` | Accept new tasks again without rerunning an interrupted task |
87
86
 
88
87
  Wait for the current task to finish before changing directories or starting a new conversation. After `/stop`, check the final status, then send `/resume` followed by your next task.
89
88
 
@@ -91,15 +90,15 @@ Wait for the current task to finish before changing directories or starting a ne
91
90
 
92
91
  These commands manage a Linux systemd user service:
93
92
 
94
- | Command | Purpose |
95
- | --- | --- |
96
- | `tellrun start` | Start the background service |
97
- | `tellrun start --enable` | Start the service and enable it at boot |
98
- | `tellrun status` | Show service status and data paths |
99
- | `tellrun logs` | Show the latest 100 log entries |
100
- | `tellrun logs -f` | Follow logs |
101
- | `tellrun restart` | Restart with the current configuration or installed version |
102
- | `tellrun stop` | Stop the background service |
93
+ | Command | Purpose |
94
+ | --------------------------- | ------------------------------------------------------------ |
95
+ | `tellrun start` | Start the background service |
96
+ | `tellrun start --enable` | Start the service and enable it at boot |
97
+ | `tellrun status` | Show service status and data paths |
98
+ | `tellrun logs` | Show the latest 100 log entries |
99
+ | `tellrun logs -f` | Follow logs |
100
+ | `tellrun restart` | Restart with the current configuration or installed version |
101
+ | `tellrun stop` | Stop the background service |
103
102
  | `tellrun service uninstall` | Stop and remove the service, keeping configuration and state |
104
103
 
105
104
  On startup, Tellrun checks and enables user lingering so the service can continue after you disconnect from SSH. If permissions are insufficient, the CLI prints the command to run on your server. Use `tellrun --help` for full CLI help.
@@ -120,11 +119,11 @@ Configuration and state live in `~/.tellrun/` and are preserved when upgrading t
120
119
 
121
120
  Run `tellrun setup` to create or update your configuration. Leave the Bot Token blank to keep the existing value.
122
121
 
123
- | Path | Contents |
124
- | --- | --- |
125
- | `~/.tellrun/config.json` | Bot Token, authorized user ID, Codex path, and optional proxy |
126
- | `~/.tellrun/state.json` | Current conversation, working directory, task inputs and results, and pending replies |
127
- | `~/.tellrun/tellrun.service` | Linux background service definition |
122
+ | Path | Contents |
123
+ | ---------------------------- | ------------------------------------------------------------------------------------- |
124
+ | `~/.tellrun/config.json` | Bot Token, authorized user ID, Codex path, and optional proxy |
125
+ | `~/.tellrun/state.json` | Current conversation, working directory, task inputs and results, and pending replies |
126
+ | `~/.tellrun/tellrun.service` | Linux background service definition |
128
127
 
129
128
  Codex uses the same operating system user's authentication and model configuration, and manages its own full conversation history. Tellrun does not maintain a project directory allowlist. Access depends on operating system permissions and the Codex sandbox; Tellrun defaults to workspace write access and approvals on request.
130
129
 
@@ -132,11 +131,11 @@ Codex uses the same operating system user's authentication and model configurati
132
131
 
133
132
  When running in the foreground or managing the process yourself, you can override configuration with environment variables:
134
133
 
135
- | Variable | Purpose |
136
- | --- | --- |
137
- | `TELEGRAM_BOT_TOKEN` | Bot token |
138
- | `TELEGRAM_OWNER_ID` | Numeric ID of the user allowed to interact with the bot |
139
- | `CODEX_PATH` | Codex command name or executable path |
134
+ | Variable | Purpose |
135
+ | -------------------- | ----------------------------------------------------------------------------- |
136
+ | `TELEGRAM_BOT_TOKEN` | Bot token |
137
+ | `TELEGRAM_OWNER_ID` | Numeric ID of the user allowed to interact with the bot |
138
+ | `CODEX_PATH` | Codex command name or executable path |
140
139
  | `TELEGRAM_PROXY_URL` | HTTP/HTTPS proxy for Telegram; overrides the configuration file when nonempty |
141
140
 
142
141
  The built-in background service does not automatically load your current terminal's environment variables or a project's `.env` file. Save the required configuration with `tellrun setup`.
@@ -188,12 +187,12 @@ npm run dev
188
187
 
189
188
  Choose to save configuration without starting a background service in the setup wizard, then start the development process. Development and global installations share `~/.tellrun/`, so stop any existing instance first. You can also create a `.env` file using the repository's [.env.example](https://github.com/chaoyue1998/tellrun/blob/main/.env.example) for development configuration.
190
189
 
191
- | Command | Purpose |
192
- | --- | --- |
193
- | `npm run dev` | Watch source files and restart automatically |
190
+ | Command | Purpose |
191
+ | --------------- | ------------------------------------------------ |
192
+ | `npm run dev` | Watch source files and restart automatically |
194
193
  | `npm run check` | Run formatting, static analysis, and type checks |
195
- | `npm run build` | Compile to `dist/` |
196
- | `npm start` | Run the compiled application |
194
+ | `npm run build` | Compile to `dist/` |
195
+ | `npm start` | Run the compiled application |
197
196
 
198
197
  When asking Codex to modify Tellrun itself, run `npm run build` followed by `npm start` so source changes do not trigger a restart during the task.
199
198
 
package/README.zh-CN.md CHANGED
@@ -20,7 +20,6 @@
20
20
 
21
21
  当前支持 **Telegram + Codex**,面向单用户,每次处理一个任务。多会话列表、独立任务排队、审批与结构化提问交互、图片和文件输入暂未支持。
22
22
 
23
- CLI 配置向导和机器人状态提示目前使用中文。
24
23
 
25
24
  ## 安装并通过 Telegram 使用 Codex
26
25
 
@@ -74,16 +73,16 @@ tellrun run
74
73
 
75
74
  ## Telegram 命令
76
75
 
77
- | 命令 | 作用 |
78
- | --- | --- |
79
- | `/start`、`/help` | 查看使用说明 |
80
- | `/cwd` | 查看当前工作目录 |
81
- | `/cwd /absolute/path` | 切换工作目录并开始新会话 |
82
- | `/new` | 开始新会话,保留工作目录 |
83
- | `/status` | 查看连接、会话、目录和任务状态 |
84
- | `/last` | 查看最近任务的状态与结果 |
85
- | `/stop` | 请求停止当前任务,并暂停接收新任务 |
86
- | `/resume` | 恢复接收新任务,不会重新执行此前中断的任务 |
76
+ | 命令 | 作用 |
77
+ | --------------------- | ------------------------------------------ |
78
+ | `/start`、`/help` | 查看使用说明 |
79
+ | `/cwd` | 查看当前工作目录 |
80
+ | `/cwd /absolute/path` | 切换工作目录并开始新会话 |
81
+ | `/new` | 开始新会话,保留工作目录 |
82
+ | `/status` | 查看连接、会话、目录和任务状态 |
83
+ | `/last` | 查看最近任务的状态与结果 |
84
+ | `/stop` | 请求停止当前任务,并暂停接收新任务 |
85
+ | `/resume` | 恢复接收新任务,不会重新执行此前中断的任务 |
87
86
 
88
87
  切换目录或新建会话前,需要等待当前任务结束。使用 `/stop` 后,先检查最终状态,再发送 `/resume` 和新的任务内容。
89
88
 
@@ -91,15 +90,15 @@ tellrun run
91
90
 
92
91
  以下命令用于 Linux systemd 用户服务:
93
92
 
94
- | 命令 | 作用 |
95
- | --- | --- |
96
- | `tellrun start` | 启动后台服务 |
97
- | `tellrun start --enable` | 启动服务并启用开机自启 |
98
- | `tellrun status` | 查看服务状态与数据路径 |
99
- | `tellrun logs` | 查看最近 100 条日志 |
100
- | `tellrun logs -f` | 持续跟随日志 |
101
- | `tellrun restart` | 重启服务,加载新配置或新版本 |
102
- | `tellrun stop` | 停止后台服务 |
93
+ | 命令 | 作用 |
94
+ | --------------------------- | ------------------------------ |
95
+ | `tellrun start` | 启动后台服务 |
96
+ | `tellrun start --enable` | 启动服务并启用开机自启 |
97
+ | `tellrun status` | 查看服务状态与数据路径 |
98
+ | `tellrun logs` | 查看最近 100 条日志 |
99
+ | `tellrun logs -f` | 持续跟随日志 |
100
+ | `tellrun restart` | 重启服务,加载新配置或新版本 |
101
+ | `tellrun stop` | 停止后台服务 |
103
102
  | `tellrun service uninstall` | 停止并移除服务,保留配置和状态 |
104
103
 
105
104
  启动时会检查并启用用户 linger,使服务在退出 SSH 后继续运行。若权限不足,CLI 会显示需要在服务器执行的命令。完整命令帮助见 `tellrun --help`。
@@ -120,11 +119,11 @@ tellrun restart
120
119
 
121
120
  运行 `tellrun setup` 创建或更新配置,已有 Bot Token 可留空保留原值。
122
121
 
123
- | 路径 | 内容 |
124
- | --- | --- |
125
- | `~/.tellrun/config.json` | Bot Token、授权用户 ID、Codex 路径和可选代理 |
126
- | `~/.tellrun/state.json` | 当前会话、工作目录、任务输入与结果、待发送回复 |
127
- | `~/.tellrun/tellrun.service` | Linux 后台服务定义 |
122
+ | 路径 | 内容 |
123
+ | ---------------------------- | ---------------------------------------------- |
124
+ | `~/.tellrun/config.json` | Bot Token、授权用户 ID、Codex 路径和可选代理 |
125
+ | `~/.tellrun/state.json` | 当前会话、工作目录、任务输入与结果、待发送回复 |
126
+ | `~/.tellrun/tellrun.service` | Linux 后台服务定义 |
128
127
 
129
128
  Codex 使用同一系统用户的登录和模型配置,完整会话历史由 Codex 管理。Tellrun 不设置项目目录白名单;可访问范围由运行用户权限和 Codex 沙箱共同决定,默认采用工作区写入与按需审批策略。
130
129
 
@@ -132,11 +131,11 @@ Codex 使用同一系统用户的登录和模型配置,完整会话历史由 C
132
131
 
133
132
  前台运行或自行托管进程时,可以使用环境变量覆盖配置:
134
133
 
135
- | 变量 | 用途 |
136
- | --- | --- |
137
- | `TELEGRAM_BOT_TOKEN` | 机器人 Token |
138
- | `TELEGRAM_OWNER_ID` | 允许操作机器人的数字用户 ID |
139
- | `CODEX_PATH` | Codex 命令名或可执行文件路径 |
134
+ | 变量 | 用途 |
135
+ | -------------------- | ----------------------------------------------- |
136
+ | `TELEGRAM_BOT_TOKEN` | 机器人 Token |
137
+ | `TELEGRAM_OWNER_ID` | 允许操作机器人的数字用户 ID |
138
+ | `CODEX_PATH` | Codex 命令名或可执行文件路径 |
140
139
  | `TELEGRAM_PROXY_URL` | Telegram 的 HTTP/HTTPS 代理,非空时覆盖配置文件 |
141
140
 
142
141
  内置后台服务不会自动读取当前终端的环境变量或项目 `.env`,请使用 `tellrun setup` 保存必要配置。
@@ -188,12 +187,12 @@ npm run dev
188
187
 
189
188
  在配置向导中选择仅保存配置,再启动开发进程。开发环境与全局安装共用 `~/.tellrun/`,请先停止已有实例。也可参考仓库中的 [.env.example](https://github.com/chaoyue1998/tellrun/blob/main/.env.example),创建 `.env` 提供开发配置。
190
189
 
191
- | 命令 | 用途 |
192
- | --- | --- |
193
- | `npm run dev` | 监听源码并自动重启 |
190
+ | 命令 | 用途 |
191
+ | --------------- | ------------------------ |
192
+ | `npm run dev` | 监听源码并自动重启 |
194
193
  | `npm run check` | 格式、静态检查与类型检查 |
195
- | `npm run build` | 编译到 `dist/` |
196
- | `npm start` | 运行编译产物 |
194
+ | `npm run build` | 编译到 `dist/` |
195
+ | `npm start` | 运行编译产物 |
197
196
 
198
197
  如果让 Codex 修改 Tellrun 自身,使用 `npm run build` 后执行 `npm start`,避免源码监听重启打断任务。
199
198
 
@@ -1,5 +1,5 @@
1
1
  import { execFile, spawn } from "node:child_process";
2
- import { existsSync } from "node:fs";
2
+ import { existsSync, readFileSync } from "node:fs";
3
3
  import { connect } from "node:net";
4
4
  import { homedir } from "node:os";
5
5
  import { delimiter, dirname, join } from "node:path";
@@ -24,7 +24,7 @@ export async function createCodexAgent(command = "codex") {
24
24
  env,
25
25
  });
26
26
  if (!/^codex-cli \S+$/.test(stdout.trim()))
27
- throw new Error("Codex CLI 返回了无法识别的版本信息");
27
+ throw new Error("Unrecognized Codex CLI version.");
28
28
  let active;
29
29
  /** 只绑定当前任务的连接,不能把迟到输入送入下一轮或其他客户端的轮次。 */
30
30
  let steer;
@@ -33,7 +33,7 @@ export async function createCodexAgent(command = "codex") {
33
33
  version: stdout.trim().replace(/^codex-cli /, ""),
34
34
  async run(input) {
35
35
  if (active)
36
- throw new Error("Codex 已有任务正在执行");
36
+ throw new Error("Codex is already running a task.");
37
37
  const controller = new AbortController();
38
38
  active = controller;
39
39
  /** 后台服务会保留空闲会话的写锁,复用其连接才能立即恢复同一会话。 */
@@ -80,7 +80,7 @@ export async function createCodexAgent(command = "codex") {
80
80
  /** 增量与完整消息共用输出上限;只推送回复文本,不推送思考或工具原始输出。 */
81
81
  function publishText(text) {
82
82
  if ([...messages.values()].reduce((sum, item) => sum + item.text.length, 0) > 256_000) {
83
- fail("Codex 文本输出超出限制,任务已中断;可在本机查看会话记录。");
83
+ fail("Codex output limit exceeded. Task interrupted; check the local session.");
84
84
  return;
85
85
  }
86
86
  input.onText(text);
@@ -103,7 +103,7 @@ export async function createCodexAgent(command = "codex") {
103
103
  if (!(error instanceof Error && "code" in error && error.code === "ESRCH")) {
104
104
  finish({
105
105
  status: "interrupted",
106
- text: "无法确认 Codex 子进程已停止,请检查本地进程。",
106
+ text: "Codex stop unconfirmed. Check local processes.",
107
107
  });
108
108
  }
109
109
  }
@@ -125,27 +125,27 @@ export async function createCodexAgent(command = "codex") {
125
125
  if (socket)
126
126
  socket.send(JSON.stringify(message), (error) => {
127
127
  if (error)
128
- fail("无法写入 Codex 连接,执行状态待确认。");
128
+ fail("Codex connection write failed. Task status unknown.");
129
129
  });
130
130
  else
131
131
  child?.stdin.write(`${JSON.stringify(message)}\n`, (error) => {
132
132
  if (error)
133
- fail("无法写入 Codex 连接,执行状态待确认。");
133
+ fail("Codex connection write failed. Task status unknown.");
134
134
  });
135
135
  }
136
136
  catch {
137
- fail("无法写入 Codex 连接,执行状态待确认。");
137
+ fail("Codex connection write failed. Task status unknown.");
138
138
  }
139
139
  }
140
140
  /** 超时仍终止任务;区分服务端拒绝与连接故障,保留补充输入的不确定状态。 */
141
141
  async function request(method, params) {
142
142
  if (controller.signal.aborted && method !== "turn/interrupt")
143
- throw new Error("任务已停止");
143
+ throw new Error("Task stopped.");
144
144
  try {
145
145
  return await client
146
146
  .timeout(30_000, (id) => {
147
- fail(`Codex ${method} 请求超时,未自动重试。`);
148
- return createJSONRPCErrorResponse(id, 0, "Codex 请求超时");
147
+ fail(`Codex ${method} timed out. Not retried.`);
148
+ return createJSONRPCErrorResponse(id, 0, "Codex request timed out.");
149
149
  })
150
150
  .request(method, params);
151
151
  }
@@ -155,12 +155,12 @@ export async function createCodexAgent(command = "codex") {
155
155
  throw new Error(method === "thread/resume" &&
156
156
  error.code === -32600 &&
157
157
  error.message.includes("already has an active writer")
158
- ? "Codex 会话仍由其他进程持有,本次任务未开始。请检查本机 Codex 后台连接;空闲会话也可能暂时保留写锁。"
158
+ ? "Codex session locked by another process. Task not started; check local Codex connections."
159
159
  : method === "turn/steer"
160
- ? `Codex 补充输入被拒绝(${error.code}),可能当前轮次已结束。请重新发送需要继续的内容。`
161
- : `Codex ${method} 请求被拒绝(${error.code})。请检查本机 Codex 配置与认证。`);
160
+ ? `Codex rejected input (${error.code}). The turn may have ended; resend to continue.`
161
+ : `Codex ${method} rejected (${error.code}). Check config and sign-in.`);
162
162
  if (method === "turn/steer")
163
- throw new Error("Codex 无法确认补充输入是否已提交,未自动重试。请检查会话后重新发送需要继续的内容。");
163
+ throw new Error("Codex input delivery unconfirmed. Not retried; check the session before resending.");
164
164
  throw error;
165
165
  }
166
166
  }
@@ -177,7 +177,7 @@ export async function createCodexAgent(command = "codex") {
177
177
  controller.signal.addEventListener("abort", () => {
178
178
  if (settled)
179
179
  return;
180
- stopTimer = setTimeout(() => fail("停止请求未得到确认,已结束 Codex 连接。请检查工作目录后发送 /resume。"), 5_000);
180
+ stopTimer = setTimeout(() => fail("Stop unconfirmed; Codex disconnected. Check the project before /resume."), 5_000);
181
181
  if (sessionId && runId) {
182
182
  void request("turn/interrupt", { threadId: sessionId, turnId: runId }).catch(() => terminate("SIGTERM"));
183
183
  }
@@ -188,11 +188,11 @@ export async function createCodexAgent(command = "codex") {
188
188
  function onClose(code) {
189
189
  closed.resolve();
190
190
  if (controller.signal.aborted && !dispatched)
191
- finish({ status: "cancelled", text: "任务在开始前已停止。" });
191
+ finish({ status: "cancelled", text: "Stopped before starting." });
192
192
  if (!settled)
193
- fail(`Codex 连接已退出(${code ?? "signal"}),请检查本机认证与运行环境。`);
193
+ fail(`Codex disconnected (${code ?? "signal"}). Check sign-in and local setup.`);
194
194
  else
195
- client.rejectAllPendingRequests("Codex 连接已关闭");
195
+ client.rejectAllPendingRequests("Codex connection closed.");
196
196
  }
197
197
  /** 两种传输与提前到达的通知共用协议处理,始终只消费当前任务的事件。 */
198
198
  function onData(chunk) {
@@ -200,7 +200,7 @@ export async function createCodexAgent(command = "codex") {
200
200
  return;
201
201
  buffer += chunk;
202
202
  if (buffer.length > 8_000_000)
203
- return fail("Codex 协议缓冲超出限制,任务已中断。");
203
+ return fail("Codex buffer limit exceeded. Task interrupted.");
204
204
  const lines = buffer.split("\n");
205
205
  buffer = lines.pop() ?? "";
206
206
  for (const line of lines) {
@@ -220,7 +220,7 @@ export async function createCodexAgent(command = "codex") {
220
220
  if (dispatched) {
221
221
  earlyMessages += `${line}\n`;
222
222
  if (earlyMessages.length > 8_000_000)
223
- return fail("Codex 提前通知超出限制,任务已中断。");
223
+ return fail("Codex event limit exceeded. Task interrupted.");
224
224
  }
225
225
  continue;
226
226
  }
@@ -241,7 +241,7 @@ export async function createCodexAgent(command = "codex") {
241
241
  message: "This client does not support interactive requests yet",
242
242
  },
243
243
  });
244
- fail("任务需要审批或补充输入,当前版本尚未接入该交互,已中断。请在本机处理后发送 /resume,或调整任务后重新提交。");
244
+ fail("Task interrupted: approvals and structured questions are unsupported. Handle locally, then /resume.");
245
245
  }
246
246
  else if (typeof message.id === "number") {
247
247
  /** 补齐库需要的协议字段;错误来源标记仅用于本地处理,不信任服务端 data。 */
@@ -305,45 +305,50 @@ export async function createCodexAgent(command = "codex") {
305
305
  .map((item) => item.text)
306
306
  .join("\n\n") ||
307
307
  (event.turn.status === "completed"
308
- ? "Codex 已完成,本轮没有文本输出。"
308
+ ? "Codex finished with no text output."
309
309
  : event.turn.status === "failed"
310
- ? "Codex 未能完成本轮任务,请检查本机认证、模型访问与网络。"
311
- : "任务已中断。已完成的文件修改不会自动撤销。"),
310
+ ? "Codex task failed. Check sign-in, model access, and network."
311
+ : "Task interrupted. File changes were not reverted."),
312
312
  });
313
313
  }
314
314
  }
315
315
  }
316
316
  catch {
317
- fail("Codex 协议响应或状态保存失败,任务已中断,请检查 CLI 版本与本地存储。");
317
+ fail("Codex response or state save failed. Task interrupted; check CLI version and storage.");
318
318
  }
319
319
  }
320
320
  }
321
- child?.on("error", () => fail("无法启动 Codex app-server,请检查 CLI 和工作目录。"));
322
- child?.stdin.on("error", () => fail("Codex 输入连接已关闭,执行状态待确认。"));
321
+ child?.on("error", () => fail("Cannot start Codex app-server. Check CLI and working directory."));
322
+ child?.stdin.on("error", () => fail("Codex input closed. Task status unknown."));
323
323
  child?.on("close", onClose);
324
324
  child?.stdout.setEncoding("utf8");
325
325
  child?.stdout.on("data", onData);
326
- socket?.on("error", () => fail("Codex 后台连接异常,执行状态待确认。"));
326
+ socket?.on("error", () => fail("Codex connection failed. Task status unknown."));
327
327
  socket?.on("close", () => onClose(null));
328
328
  socket?.on("message", (data) => onData(`${data.toString()}\n`));
329
329
  steer = async (prompt) => {
330
330
  if (!sessionId || !runId || settled || controller.signal.aborted)
331
- throw new Error("Codex 当前轮次尚未开始、已结束或正在停止,补充消息未提交。请稍后重新发送。");
331
+ throw new Error("Codex turn is not running. Input not sent; try again later.");
332
332
  const response = z.object({ turnId: z.string() }).parse(await request("turn/steer", {
333
333
  threadId: sessionId,
334
334
  expectedTurnId: runId,
335
335
  input: [{ type: "text", text: prompt, text_elements: [] }],
336
336
  }));
337
337
  if (response.turnId !== runId) {
338
- fail("Codex 补充输入返回了不同轮次,执行状态待确认。");
339
- throw new Error("Codex 无法确认补充输入所属轮次,未自动重试。请检查会话。");
338
+ fail("Codex input returned a different turn. Task status unknown.");
339
+ throw new Error("Codex input turn unconfirmed. Not retried; check the session.");
340
340
  }
341
341
  };
342
342
  try {
343
343
  if (controller.signal.aborted)
344
- return { status: "cancelled", text: "任务在开始前已停止。" };
344
+ return { status: "cancelled", text: "Stopped before starting." };
345
345
  await request("initialize", {
346
- clientInfo: { name: "tellrun", title: "Tellrun", version: "1.0.1" },
346
+ clientInfo: {
347
+ name: "tellrun",
348
+ title: "Tellrun",
349
+ /** 源码和编译产物都读取包版本,与 CLI 的版本显示保持一致。 */
350
+ version: JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf8")).version,
351
+ },
347
352
  capabilities: null,
348
353
  });
349
354
  write({ method: "initialized" });
@@ -353,7 +358,7 @@ export async function createCodexAgent(command = "codex") {
353
358
  .object({ thread: z.object({ status: z.object({ type: z.string() }) }) })
354
359
  .parse(await request("thread/read", { threadId: input.sessionId }));
355
360
  if (!["idle", "notLoaded"].includes(current.thread.status.type))
356
- throw new Error("Codex 会话仍在执行任务或状态异常,本次消息未提交。请等待当前任务结束后再发送。");
361
+ throw new Error("Codex session busy or unavailable. Message not sent; wait until it is idle.");
357
362
  }
358
363
  const response = z
359
364
  .object({
@@ -369,11 +374,11 @@ export async function createCodexAgent(command = "codex") {
369
374
  sandbox: "workspace-write",
370
375
  }));
371
376
  if (socket && response.thread.status?.type !== "idle")
372
- throw new Error("Codex 会话当前未空闲,本次消息未提交。请等待当前任务结束后再发送。");
377
+ throw new Error("Codex session busy. Message not sent; wait until it is idle.");
373
378
  sessionId = response.thread.id;
374
379
  input.onSession(sessionId);
375
380
  if (controller.signal.aborted)
376
- return { status: "cancelled", text: "任务在开始前已停止。" };
381
+ return { status: "cancelled", text: "Stopped before starting." };
377
382
  dispatched = true;
378
383
  const started = await Promise.race([
379
384
  request("turn/start", {
@@ -397,17 +402,17 @@ export async function createCodexAgent(command = "codex") {
397
402
  status: dispatched ? "interrupted" : controller.signal.aborted ? "cancelled" : "failed",
398
403
  text: error instanceof Error && error.message.startsWith("Codex ")
399
404
  ? error.message
400
- : "Codex 任务未能正常完成,请检查本地运行环境。",
405
+ : "Codex task failed. Check the local setup.",
401
406
  });
402
407
  return await completed.promise;
403
408
  }
404
409
  finally {
405
410
  steer = undefined;
406
411
  clearTimeout(stopTimer);
407
- client.rejectAllPendingRequests("Codex 连接已结束");
412
+ client.rejectAllPendingRequests("Codex connection closed.");
408
413
  terminate("SIGTERM");
409
414
  const force = setTimeout(() => terminate("SIGKILL"), 3_000);
410
- const deadline = setTimeout(() => closed.reject(new Error("无法确认 Codex 子进程退出,服务必须停止")), 8_000);
415
+ const deadline = setTimeout(() => closed.reject(new Error("Codex exit unconfirmed. Service must stop.")), 8_000);
411
416
  try {
412
417
  await closed.promise;
413
418
  terminate("SIGKILL");
@@ -422,7 +427,7 @@ export async function createCodexAgent(command = "codex") {
422
427
  /** 复用当前连接提交补充消息,由 expectedTurnId 防止误入其他轮次。 */
423
428
  steer(prompt) {
424
429
  if (!steer)
425
- return Promise.reject(new Error("Codex 当前没有执行中的轮次,补充消息未提交。请重新发送。"));
430
+ return Promise.reject(new Error("Codex has no active turn. Input not sent; resend to continue."));
426
431
  return steer(prompt);
427
432
  },
428
433
  /** 中断当前任务;run 会等待终态或子进程退出后才返回。 */
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"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"}