tellrun 1.2.4 → 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/README.md +8 -0
- package/README.zh-CN.md +8 -0
- package/dist/agents/codex.js +181 -99
- package/dist/agents/codex.js.map +1 -1
- package/dist/core/relay.js +19 -7
- package/dist/core/relay.js.map +1 -1
- package/dist/im/telegram.js +80 -31
- package/dist/im/telegram.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/storage/schema.js +15 -0
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/store.js +116 -12
- package/dist/storage/store.js.map +1 -1
- package/docs/architecture.md +57 -47
- package/docs/prd.md +6 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ Run Tellrun on your server and use Telegram on your phone or desktop to send cod
|
|
|
17
17
|
- **Live feedback**: see typing indicators and streaming replies, and send additional instructions while a task is running.
|
|
18
18
|
- **Task control**: check status and the latest result, stop a task and pause new work, and retain the current conversation and task state across restarts.
|
|
19
19
|
- **Approvals and questions**: use buttons for command, file, and permission approvals; select options or reply directly to questions, with answers submitted after all questions are answered.
|
|
20
|
+
- **Permission modes**: use `/permissions` to choose one of four Codex modes, saved for subsequent tasks.
|
|
20
21
|
|
|
21
22
|
## Install and connect Codex to Telegram
|
|
22
23
|
|
|
@@ -46,12 +47,15 @@ Without `/cwd`, the working directory defaults to the directory where the servic
|
|
|
46
47
|
|
|
47
48
|
## Telegram commands
|
|
48
49
|
|
|
50
|
+
At startup, Tellrun registers an English command menu. Use the menu button beside the chat input or type `/` to select a command.
|
|
51
|
+
|
|
49
52
|
| Command | Purpose |
|
|
50
53
|
| --------------------- | ------------------------------------------------------------ |
|
|
51
54
|
| `/start`, `/help` | Show usage instructions |
|
|
52
55
|
| `/cwd` | Show the current working directory |
|
|
53
56
|
| `/cwd /absolute/path` | Change the working directory and start a new conversation |
|
|
54
57
|
| `/new` | Start a new conversation while keeping the working directory |
|
|
58
|
+
| `/permissions` | Choose the permission mode for subsequent tasks |
|
|
55
59
|
| `/status` | Show connection, conversation, directory, and task status |
|
|
56
60
|
| `/last` | Show the latest finished task's status and result |
|
|
57
61
|
| `/stop` | Request that the current task stop and pause new tasks |
|
|
@@ -59,6 +63,10 @@ Without `/cwd`, the working directory defaults to the directory where the servic
|
|
|
59
63
|
|
|
60
64
|
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.
|
|
61
65
|
|
|
66
|
+
`/permissions` offers the four presets from Codex CLI 0.165.0: Ask for approval (default), Approve for me (Codex automatic review), Full Access (no Codex sandbox or execution approvals), and Read Only (approval required for edits or network access). Full Access remains subject to operating system permissions.
|
|
67
|
+
|
|
68
|
+
Selections apply to subsequently submitted tasks; the current task and its follow-up messages retain their original mode. `/status` shows both modes when they differ. Selections survive service restarts and `/new`; changing the working directory resets the mode to its default. Menus expire after 10 minutes and are invalidated when reopened, on a new conversation, on a directory change, or after a restart. Codex validates the selected mode when starting a task. If it rejects the configuration or returns different settings, the task does not start.
|
|
69
|
+
|
|
62
70
|
## Terminal commands
|
|
63
71
|
|
|
64
72
|
Run these commands in the terminal on the computer or server running Tellrun.
|
package/README.zh-CN.md
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
- **即时反馈**:显示输入状态与流式回复,执行期间可以继续发送文字补充要求。
|
|
18
18
|
- **任务控制**:查看状态和最近结果,停止任务并暂停接收;重启后保留当前会话与任务状态。
|
|
19
19
|
- **审批与提问**:通过按钮处理命令、文件和权限审批;点击选项或明确回复对应问题,多题全部回答后提交。
|
|
20
|
+
- **权限选择**:通过 `/permissions` 选择 Codex 的四种权限模式,选择会保存并用于后续任务。
|
|
20
21
|
|
|
21
22
|
## 安装并通过 Telegram 使用 Codex
|
|
22
23
|
|
|
@@ -46,12 +47,15 @@ tellrun setup
|
|
|
46
47
|
|
|
47
48
|
## Telegram 命令
|
|
48
49
|
|
|
50
|
+
服务启动时自动注册英文命令菜单,可通过聊天输入框旁的菜单按钮或输入 `/` 选择命令。
|
|
51
|
+
|
|
49
52
|
| 命令 | 作用 |
|
|
50
53
|
| --------------------- | ------------------------------------------ |
|
|
51
54
|
| `/start`、`/help` | 查看使用说明 |
|
|
52
55
|
| `/cwd` | 查看当前工作目录 |
|
|
53
56
|
| `/cwd /absolute/path` | 切换工作目录并开始新会话 |
|
|
54
57
|
| `/new` | 开始新会话,保留工作目录 |
|
|
58
|
+
| `/permissions` | 选择后续任务的权限模式 |
|
|
55
59
|
| `/status` | 查看连接、会话、目录和任务状态 |
|
|
56
60
|
| `/last` | 查看最近已结束任务的状态与结果 |
|
|
57
61
|
| `/stop` | 请求停止当前任务,并暂停接收新任务 |
|
|
@@ -59,6 +63,10 @@ tellrun setup
|
|
|
59
63
|
|
|
60
64
|
切换目录或新建会话前,需要等待当前任务结束。使用 `/stop` 后,先检查最终状态,再发送 `/resume` 和新的任务内容。
|
|
61
65
|
|
|
66
|
+
`/permissions` 提供与 Codex CLI 0.165.0 对应的四种模式:Ask for approval(默认,额外权限由你审批)、Approve for me(由 Codex 自动审查)、Full Access(不使用 Codex 沙箱和执行审批)、Read Only(只读,修改或联网时请求审批)。Full Access 仍受系统用户权限约束。
|
|
67
|
+
|
|
68
|
+
选择在下一次提交任务时使用,当前任务及其补充消息保留原权限;`/status` 会在两者不同时分别显示。选择跨服务重启保留,`/new` 沿用选择,切换工作目录恢复默认。菜单有效期为 10 分钟,重新打开、新建会话、切换目录或重启后旧按钮失效。模式受本机 Codex 版本与托管策略限制,启动任务时由 Codex 校验;被拒绝或返回设置不符时不启动任务。
|
|
69
|
+
|
|
62
70
|
## 终端命令
|
|
63
71
|
|
|
64
72
|
在运行 Tellrun 的电脑或服务器上执行以下命令。
|
package/dist/agents/codex.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { execFile
|
|
2
|
-
import {
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { 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";
|
|
@@ -13,10 +13,37 @@ const turnSchema = z.object({
|
|
|
13
13
|
id: z.string().min(1),
|
|
14
14
|
status: z.enum(["inProgress", "completed", "failed", "interrupted"]),
|
|
15
15
|
});
|
|
16
|
-
/**
|
|
16
|
+
/** Codex CLI 的四种预设;协议参数只在适配层使用,菜单与执行共用此定义。 */
|
|
17
|
+
const permissionModes = [
|
|
18
|
+
{
|
|
19
|
+
id: "default",
|
|
20
|
+
label: "Ask for approval",
|
|
21
|
+
config: { sandbox: "workspace-write", approvalPolicy: "on-request", approvalsReviewer: "user" },
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "auto-review",
|
|
25
|
+
label: "Approve for me",
|
|
26
|
+
config: {
|
|
27
|
+
sandbox: "workspace-write",
|
|
28
|
+
approvalPolicy: "on-request",
|
|
29
|
+
approvalsReviewer: "auto_review",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "full-access",
|
|
34
|
+
label: "Full Access",
|
|
35
|
+
config: { sandbox: "danger-full-access", approvalPolicy: "never", approvalsReviewer: "user" },
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "read-only",
|
|
39
|
+
label: "Read Only",
|
|
40
|
+
config: { sandbox: "read-only", approvalPolicy: "on-request", approvalsReviewer: "user" },
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
/** 连接独立的 Codex 后台服务;Tellrun 退出不结束后台轮次。 */
|
|
17
44
|
export async function createCodexAgent(command = "codex") {
|
|
18
45
|
/** 保留运行时、认证和代理环境,不向子进程传入 Telegram 凭据。 */
|
|
19
|
-
const env = Object.fromEntries(Object.entries(process.env).filter(([key]) => /^(PATH|HOME|USER|LOGNAME|SHELL|LANG|LC_.*|TERM|TMPDIR|TEMP|TMP|SYSTEMROOT|WINDIR|CODEX_HOME|OPENAI_API_KEY|OPENAI_BASE_URL|HTTP_PROXY|HTTPS_PROXY|ALL_PROXY|NO_PROXY|http_proxy|https_proxy|all_proxy|no_proxy|SSL_CERT_FILE|SSL_CERT_DIR)$/.test(key)));
|
|
46
|
+
const env = Object.fromEntries(Object.entries(process.env).filter(([key]) => /^(PATH|HOME|USER|LOGNAME|SHELL|LANG|LC_.*|TERM|TMPDIR|TEMP|TMP|SYSTEMROOT|WINDIR|XDG_RUNTIME_DIR|DBUS_SESSION_BUS_ADDRESS|CODEX_HOME|OPENAI_API_KEY|OPENAI_BASE_URL|HTTP_PROXY|HTTPS_PROXY|ALL_PROXY|NO_PROXY|http_proxy|https_proxy|all_proxy|no_proxy|SSL_CERT_FILE|SSL_CERT_DIR)$/.test(key)));
|
|
20
47
|
/** npm 版 Codex 通过 env 查找 node;后台服务也应复用运行 Tellrun 的 Node。 */
|
|
21
48
|
env.PATH = [dirname(process.execPath), env.PATH].filter(Boolean).join(delimiter);
|
|
22
49
|
const { stdout } = await promisify(execFile)(command, ["--version"], {
|
|
@@ -33,33 +60,61 @@ export async function createCodexAgent(command = "codex") {
|
|
|
33
60
|
return {
|
|
34
61
|
name: "Codex",
|
|
35
62
|
version: stdout.trim().replace(/^codex-cli /, ""),
|
|
63
|
+
permissionModes: permissionModes.map(({ id, label }) => ({ id, label })),
|
|
36
64
|
async run(input) {
|
|
37
65
|
if (active)
|
|
38
66
|
throw new Error("Codex is already running a task.");
|
|
39
67
|
const controller = new AbortController();
|
|
40
68
|
active = controller;
|
|
41
|
-
/**
|
|
69
|
+
/** 复用后台的 Unix socket,避免把编码进程放进 Tellrun 的服务控制组。 */
|
|
42
70
|
const socketPath = join(env.CODEX_HOME ?? join(homedir(), ".codex"), "app-server-control", "app-server-control.sock");
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
71
|
+
let socket;
|
|
72
|
+
try {
|
|
73
|
+
for (let attempt = 0; attempt < 2 && !controller.signal.aborted; attempt++) {
|
|
74
|
+
socket = await new Promise((resolve) => {
|
|
75
|
+
const connection = new WebSocket("ws://localhost", {
|
|
76
|
+
createConnection: () => connect(socketPath),
|
|
77
|
+
handshakeTimeout: 5_000,
|
|
78
|
+
maxPayload: 8_000_000,
|
|
79
|
+
});
|
|
80
|
+
connection.once("open", () => resolve(connection));
|
|
81
|
+
connection.once("error", () => {
|
|
82
|
+
connection.terminate();
|
|
83
|
+
resolve(undefined);
|
|
84
|
+
});
|
|
49
85
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
86
|
+
if (socket)
|
|
87
|
+
break;
|
|
88
|
+
if (attempt === 0) {
|
|
89
|
+
/** bootstrap 交给系统管理独立 daemon;普通 detached 子进程仍会被 systemd 清理。 */
|
|
90
|
+
await promisify(execFile)(command, ["app-server", "daemon", "bootstrap"], {
|
|
91
|
+
cwd: input.cwd,
|
|
92
|
+
env,
|
|
93
|
+
timeout: 30_000,
|
|
94
|
+
maxBuffer: 1_048_576,
|
|
95
|
+
signal: controller.signal,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (!socket)
|
|
100
|
+
throw new Error("Codex daemon unavailable.");
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
active = undefined;
|
|
104
|
+
if (controller.signal.aborted)
|
|
105
|
+
return controller.signal.reason === "disconnect"
|
|
106
|
+
? undefined
|
|
107
|
+
: input.runId
|
|
108
|
+
? {
|
|
109
|
+
status: "interrupted",
|
|
110
|
+
text: "Codex stop unconfirmed. Could not reconnect to the task.",
|
|
111
|
+
}
|
|
112
|
+
: { status: "cancelled", text: "Stopped before connecting." };
|
|
113
|
+
return {
|
|
114
|
+
status: input.runId ? "interrupted" : "failed",
|
|
115
|
+
text: "Codex daemon unavailable. Run codex app-server daemon bootstrap on the host, then retry. Existing work was not stopped or resubmitted.",
|
|
116
|
+
};
|
|
117
|
+
}
|
|
63
118
|
const completed = Promise.withResolvers();
|
|
64
119
|
/** 库管理请求关联和超时;Codex 线上消息省略 jsonrpc 字段。 */
|
|
65
120
|
const client = new JSONRPCClient(({ id, method, params }) => write({ id, method, params }));
|
|
@@ -69,11 +124,11 @@ export async function createCodexAgent(command = "codex") {
|
|
|
69
124
|
const seenRequests = new Set();
|
|
70
125
|
const fileChanges = new Map();
|
|
71
126
|
let buffer = "";
|
|
72
|
-
/**
|
|
127
|
+
/** 新任务等启动响应,恢复任务等完整快照,再处理当前轮次的早到事件。 */
|
|
73
128
|
let earlyMessages = "";
|
|
74
|
-
let sessionId;
|
|
129
|
+
let sessionId = input.sessionId ?? undefined;
|
|
75
130
|
let runId;
|
|
76
|
-
let dispatched =
|
|
131
|
+
let dispatched = Boolean(input.runId);
|
|
77
132
|
let settled = false;
|
|
78
133
|
let stopTimer;
|
|
79
134
|
/** 只接受第一个终态,避免退出事件覆盖已经确认的执行结果。 */
|
|
@@ -94,59 +149,27 @@ export async function createCodexAgent(command = "codex") {
|
|
|
94
149
|
}
|
|
95
150
|
input.onText(text);
|
|
96
151
|
}
|
|
97
|
-
/** 共享后台仅断开自己的连接;独立进程按进程组清理。 */
|
|
98
|
-
function terminate(signal) {
|
|
99
|
-
if (socket) {
|
|
100
|
-
socket.terminate();
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (!child?.pid)
|
|
104
|
-
return;
|
|
105
|
-
try {
|
|
106
|
-
if (process.platform === "win32")
|
|
107
|
-
child.kill(signal);
|
|
108
|
-
else
|
|
109
|
-
process.kill(-child.pid, signal);
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
if (!(error instanceof Error && "code" in error && error.code === "ESRCH")) {
|
|
113
|
-
finish({
|
|
114
|
-
status: "interrupted",
|
|
115
|
-
text: "Codex stop unconfirmed. Check local processes.",
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
152
|
/** 通信故障不等于执行失败;保留不确定状态并结束当前连接。 */
|
|
121
153
|
function fail(text) {
|
|
122
154
|
if (settled)
|
|
123
155
|
return;
|
|
124
156
|
finish({ status: "interrupted", text });
|
|
125
|
-
/** 共享服务不会随连接退出;仅中断已经确认归属本次任务的 turn。 */
|
|
126
|
-
if (socket?.readyState === WebSocket.OPEN && sessionId && runId)
|
|
127
|
-
void request("turn/interrupt", { threadId: sessionId, turnId: runId }).catch(() => { });
|
|
128
157
|
client.rejectAllPendingRequests(text);
|
|
129
158
|
controller.abort();
|
|
130
159
|
}
|
|
131
|
-
/**
|
|
160
|
+
/** 请求、通知和交互应答共用发送入口,一帧对应一条 RPC 消息。 */
|
|
132
161
|
function write(message) {
|
|
133
162
|
try {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
});
|
|
139
|
-
else
|
|
140
|
-
child?.stdin.write(`${JSON.stringify(message)}\n`, (error) => {
|
|
141
|
-
if (error)
|
|
142
|
-
fail("Codex connection write failed. Task status unknown.");
|
|
143
|
-
});
|
|
163
|
+
socket?.send(JSON.stringify(message), (error) => {
|
|
164
|
+
if (error)
|
|
165
|
+
fail("Codex connection write failed. Task status unknown.");
|
|
166
|
+
});
|
|
144
167
|
}
|
|
145
168
|
catch {
|
|
146
169
|
fail("Codex connection write failed. Task status unknown.");
|
|
147
170
|
}
|
|
148
171
|
}
|
|
149
|
-
/**
|
|
172
|
+
/** 超时结束本次跟踪;区分服务端拒绝与连接故障,保留输入的不确定状态。 */
|
|
150
173
|
async function request(method, params) {
|
|
151
174
|
if (controller.signal.aborted && method !== "turn/interrupt")
|
|
152
175
|
throw new Error("Task stopped.");
|
|
@@ -173,13 +196,13 @@ export async function createCodexAgent(command = "codex") {
|
|
|
173
196
|
throw error;
|
|
174
197
|
}
|
|
175
198
|
}
|
|
176
|
-
/**
|
|
199
|
+
/** 启动响应或已保存轮次确定任务归属;其他客户端的事件不能改变关联。 */
|
|
177
200
|
function recordRun(id) {
|
|
178
201
|
if (runId && runId !== id)
|
|
179
202
|
return false;
|
|
180
203
|
if (!runId) {
|
|
181
204
|
runId = id;
|
|
182
|
-
input.onStarted();
|
|
205
|
+
input.onStarted(id);
|
|
183
206
|
}
|
|
184
207
|
return true;
|
|
185
208
|
}
|
|
@@ -189,24 +212,29 @@ export async function createCodexAgent(command = "codex") {
|
|
|
189
212
|
interactions.clear();
|
|
190
213
|
if (settled)
|
|
191
214
|
return;
|
|
215
|
+
if (controller.signal.reason === "disconnect") {
|
|
216
|
+
finish();
|
|
217
|
+
client.rejectAllPendingRequests("Tellrun disconnected. Task continues in Codex.");
|
|
218
|
+
socket?.terminate();
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
192
221
|
stopTimer = setTimeout(() => fail("Stop unconfirmed; Codex disconnected. Check the project before /resume."), 5_000);
|
|
193
222
|
if (sessionId && runId) {
|
|
194
|
-
void request("turn/interrupt", { threadId: sessionId, turnId: runId }).catch(() => terminate(
|
|
223
|
+
void request("turn/interrupt", { threadId: sessionId, turnId: runId }).catch(() => socket?.terminate());
|
|
195
224
|
}
|
|
196
225
|
else
|
|
197
|
-
terminate(
|
|
226
|
+
socket?.terminate();
|
|
198
227
|
}, { once: true });
|
|
199
|
-
/**
|
|
200
|
-
function onClose(
|
|
201
|
-
closed.resolve();
|
|
228
|
+
/** 连接关闭不能当作后台任务已停止,更不能向后台补发取消。 */
|
|
229
|
+
function onClose() {
|
|
202
230
|
if (controller.signal.aborted && !dispatched)
|
|
203
231
|
finish({ status: "cancelled", text: "Stopped before starting." });
|
|
204
232
|
if (!settled)
|
|
205
|
-
fail(
|
|
233
|
+
fail("Codex disconnected. Task may still be running; check the local session.");
|
|
206
234
|
else
|
|
207
235
|
client.rejectAllPendingRequests("Codex connection closed.");
|
|
208
236
|
}
|
|
209
|
-
/**
|
|
237
|
+
/** 实时事件与恢复快照共用协议处理,始终只消费当前任务的事件。 */
|
|
210
238
|
function onData(chunk) {
|
|
211
239
|
if (settled)
|
|
212
240
|
return;
|
|
@@ -389,13 +417,8 @@ export async function createCodexAgent(command = "codex") {
|
|
|
389
417
|
}
|
|
390
418
|
}
|
|
391
419
|
}
|
|
392
|
-
child?.on("error", () => fail("Cannot start Codex app-server. Check CLI and working directory."));
|
|
393
|
-
child?.stdin.on("error", () => fail("Codex input closed. Task status unknown."));
|
|
394
|
-
child?.on("close", onClose);
|
|
395
|
-
child?.stdout.setEncoding("utf8");
|
|
396
|
-
child?.stdout.on("data", onData);
|
|
397
420
|
socket?.on("error", () => fail("Codex connection failed. Task status unknown."));
|
|
398
|
-
socket?.on("close",
|
|
421
|
+
socket?.on("close", onClose);
|
|
399
422
|
socket?.on("message", (data) => onData(`${data.toString()}\n`));
|
|
400
423
|
steer = async (prompt) => {
|
|
401
424
|
if (!sessionId || !runId || settled || controller.signal.aborted)
|
|
@@ -456,7 +479,17 @@ export async function createCodexAgent(command = "codex") {
|
|
|
456
479
|
};
|
|
457
480
|
try {
|
|
458
481
|
if (controller.signal.aborted)
|
|
459
|
-
return
|
|
482
|
+
return controller.signal.reason === "disconnect"
|
|
483
|
+
? undefined
|
|
484
|
+
: input.runId
|
|
485
|
+
? {
|
|
486
|
+
status: "interrupted",
|
|
487
|
+
text: "Codex stop unconfirmed. Could not reconnect to the task.",
|
|
488
|
+
}
|
|
489
|
+
: { status: "cancelled", text: "Stopped before starting." };
|
|
490
|
+
const permissionMode = permissionModes.find((mode) => mode.id === (input.permissionMode ?? "default"));
|
|
491
|
+
if (!permissionMode)
|
|
492
|
+
throw new Error("Codex permission mode unavailable. Choose another mode with /permissions.");
|
|
460
493
|
await request("initialize", {
|
|
461
494
|
clientInfo: {
|
|
462
495
|
name: "tellrun",
|
|
@@ -467,7 +500,52 @@ export async function createCodexAgent(command = "codex") {
|
|
|
467
500
|
capabilities: { experimentalApi: true, requestAttestation: false },
|
|
468
501
|
});
|
|
469
502
|
write({ method: "initialized" });
|
|
470
|
-
if (
|
|
503
|
+
if (input.runId) {
|
|
504
|
+
if (!sessionId)
|
|
505
|
+
throw new Error("Codex task session missing. Task not resubmitted.");
|
|
506
|
+
/** 恢复订阅时不覆盖权限或提交输入;只接回本任务已确认的轮次。 */
|
|
507
|
+
const resumed = z
|
|
508
|
+
.object({
|
|
509
|
+
thread: z.object({ id: z.string(), status: z.object({ type: z.string() }) }),
|
|
510
|
+
})
|
|
511
|
+
.parse(await request("thread/resume", { threadId: sessionId, excludeTurns: true }));
|
|
512
|
+
if (resumed.thread.id !== sessionId)
|
|
513
|
+
throw new Error("Codex resumed a different session. Check the local session.");
|
|
514
|
+
let cursor = null;
|
|
515
|
+
do {
|
|
516
|
+
const page = z
|
|
517
|
+
.object({
|
|
518
|
+
data: z.array(turnSchema.extend({ items: z.array(z.unknown()) })),
|
|
519
|
+
nextCursor: z.string().nullable(),
|
|
520
|
+
})
|
|
521
|
+
.parse(await request("thread/turns/list", {
|
|
522
|
+
threadId: sessionId,
|
|
523
|
+
limit: 1,
|
|
524
|
+
itemsView: "full",
|
|
525
|
+
...(cursor ? { cursor } : {}),
|
|
526
|
+
}));
|
|
527
|
+
const turn = page.data.find((turn) => turn.id === input.runId);
|
|
528
|
+
if (turn) {
|
|
529
|
+
if (turn.status === "inProgress" && resumed.thread.status.type !== "active")
|
|
530
|
+
throw new Error("Codex task is no longer active. Check the local session.");
|
|
531
|
+
recordRun(turn.id);
|
|
532
|
+
/** 完整快照补回离线输出;缓冲增量已包含在快照中,不再次拼接。 */
|
|
533
|
+
for (const item of turn.items)
|
|
534
|
+
onData(`${JSON.stringify({ method: "item/completed", params: { threadId: sessionId, turnId: turn.id, item } })}\n`);
|
|
535
|
+
onData(`${earlyMessages
|
|
536
|
+
.split("\n")
|
|
537
|
+
.filter((line) => line && JSON.parse(line).method !== "item/agentMessage/delta")
|
|
538
|
+
.join("\n")}\n`);
|
|
539
|
+
earlyMessages = "";
|
|
540
|
+
if (turn.status !== "inProgress")
|
|
541
|
+
onData(`${JSON.stringify({ method: "turn/completed", params: { threadId: sessionId, turn } })}\n`);
|
|
542
|
+
return await completed.promise;
|
|
543
|
+
}
|
|
544
|
+
cursor = page.nextCursor;
|
|
545
|
+
} while (cursor && !controller.signal.aborted);
|
|
546
|
+
throw new Error("Codex task turn missing. Task not resubmitted; check the local session.");
|
|
547
|
+
}
|
|
548
|
+
if (input.sessionId) {
|
|
471
549
|
/** 先查询共享会话,忙碌时不恢复配置、不追加输入,也不中断其他客户端任务。 */
|
|
472
550
|
const current = z
|
|
473
551
|
.object({ thread: z.object({ status: z.object({ type: z.string() }) }) })
|
|
@@ -481,19 +559,29 @@ export async function createCodexAgent(command = "codex") {
|
|
|
481
559
|
id: z.string().min(1),
|
|
482
560
|
status: z.object({ type: z.string() }).optional(),
|
|
483
561
|
}),
|
|
562
|
+
approvalPolicy: z.unknown(),
|
|
563
|
+
approvalsReviewer: z.string(),
|
|
564
|
+
sandbox: z.object({ type: z.string() }),
|
|
484
565
|
})
|
|
485
566
|
.parse(await request(input.sessionId ? "thread/resume" : "thread/start", {
|
|
486
567
|
...(input.sessionId ? { threadId: input.sessionId, excludeTurns: true } : {}),
|
|
487
568
|
cwd: input.cwd,
|
|
488
|
-
|
|
489
|
-
sandbox: "workspace-write",
|
|
569
|
+
...permissionMode.config,
|
|
490
570
|
}));
|
|
491
|
-
if (
|
|
571
|
+
if (response.thread.status?.type !== "idle")
|
|
492
572
|
throw new Error("Codex session busy. Message not sent; wait until it is idle.");
|
|
573
|
+
/** 使用服务端实际返回值核实预设,不能在权限被改写时仍启动任务。 */
|
|
574
|
+
if (response.approvalPolicy !== permissionMode.config.approvalPolicy ||
|
|
575
|
+
response.approvalsReviewer !== permissionMode.config.approvalsReviewer ||
|
|
576
|
+
response.sandbox.type.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`) !==
|
|
577
|
+
permissionMode.config.sandbox)
|
|
578
|
+
throw new Error("Codex did not apply the selected permission mode. Task not started; check config and choose a mode with /permissions.");
|
|
493
579
|
sessionId = response.thread.id;
|
|
494
580
|
input.onSession(sessionId);
|
|
495
581
|
if (controller.signal.aborted)
|
|
496
|
-
return
|
|
582
|
+
return controller.signal.reason === "disconnect"
|
|
583
|
+
? undefined
|
|
584
|
+
: { status: "cancelled", text: "Stopped before starting." };
|
|
497
585
|
dispatched = true;
|
|
498
586
|
const started = await Promise.race([
|
|
499
587
|
request("turn/start", {
|
|
@@ -529,18 +617,8 @@ export async function createCodexAgent(command = "codex") {
|
|
|
529
617
|
interactions.clear();
|
|
530
618
|
clearTimeout(stopTimer);
|
|
531
619
|
client.rejectAllPendingRequests("Codex connection closed.");
|
|
532
|
-
terminate(
|
|
533
|
-
|
|
534
|
-
const deadline = setTimeout(() => closed.reject(new Error("Codex exit unconfirmed. Service must stop.")), 8_000);
|
|
535
|
-
try {
|
|
536
|
-
await closed.promise;
|
|
537
|
-
terminate("SIGKILL");
|
|
538
|
-
}
|
|
539
|
-
finally {
|
|
540
|
-
clearTimeout(force);
|
|
541
|
-
clearTimeout(deadline);
|
|
542
|
-
active = undefined;
|
|
543
|
-
}
|
|
620
|
+
socket?.terminate();
|
|
621
|
+
active = undefined;
|
|
544
622
|
}
|
|
545
623
|
},
|
|
546
624
|
/** 外部 ID 必须命中本次连接,不能把旧按钮转交给新一轮任务。 */
|
|
@@ -553,7 +631,11 @@ export async function createCodexAgent(command = "codex") {
|
|
|
553
631
|
return Promise.reject(new Error("Codex has no active turn. Input not sent; resend to continue."));
|
|
554
632
|
return steer(prompt);
|
|
555
633
|
},
|
|
556
|
-
/**
|
|
634
|
+
/** 服务退出只断开客户端,保留 Codex daemon 和当前任务。 */
|
|
635
|
+
disconnect() {
|
|
636
|
+
active?.abort("disconnect");
|
|
637
|
+
},
|
|
638
|
+
/** 用户停止等待当前轮次终态;不会退出共享后台服务。 */
|
|
557
639
|
stop() {
|
|
558
640
|
active?.abort();
|
|
559
641
|
},
|
package/dist/agents/codex.js.map
CHANGED
|
@@ -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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"}
|