tellrun 1.0.1 → 1.1.2
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/LICENSE +21 -0
- package/README.md +144 -108
- package/README.zh-CN.md +207 -0
- package/dist/agents/codex.js +225 -80
- package/dist/agents/codex.js.map +1 -1
- package/dist/cli.js +39 -39
- package/dist/cli.js.map +1 -1
- package/dist/config.js +3 -3
- package/dist/config.js.map +1 -1
- package/dist/core/relay.js +80 -44
- package/dist/core/relay.js.map +1 -1
- package/dist/im/telegram.js +90 -14
- package/dist/im/telegram.js.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/main.js +12 -12
- package/dist/main.js.map +1 -1
- package/dist/storage/schema.js +8 -1
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/store.js +88 -21
- package/dist/storage/store.js.map +1 -1
- package/dist/systemd.js +17 -17
- package/dist/systemd.js.map +1 -1
- package/docs/architecture.md +32 -18
- package/docs/prd.md +9 -9
- package/package.json +32 -5
package/dist/agents/codex.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { execFile, spawn } from "node:child_process";
|
|
2
|
-
import {
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { connect } from "node:net";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { delimiter, dirname, join } from "node:path";
|
|
3
6
|
import { promisify } from "node:util";
|
|
7
|
+
import { createJSONRPCErrorResponse, createJSONRPCSuccessResponse, JSONRPCClient, JSONRPCErrorException, } from "json-rpc-2.0";
|
|
8
|
+
import WebSocket from "ws";
|
|
4
9
|
import { z } from "zod";
|
|
5
10
|
/** 由 Codex 0.165.0 的 generate-ts 核对;只校验实际消费的协议字段。 */
|
|
6
11
|
const turnSchema = z.object({
|
|
7
12
|
id: z.string().min(1),
|
|
8
13
|
status: z.enum(["inProgress", "completed", "failed", "interrupted"]),
|
|
9
14
|
});
|
|
10
|
-
/**
|
|
15
|
+
/** 优先连接本机后台服务,否则启动独立进程;续聊使用已持久化的 thread ID。 */
|
|
11
16
|
export async function createCodexAgent(command = "codex") {
|
|
12
17
|
/** 保留运行时、认证和代理环境,不向子进程传入 Telegram 凭据。 */
|
|
13
18
|
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)));
|
|
@@ -19,28 +24,47 @@ export async function createCodexAgent(command = "codex") {
|
|
|
19
24
|
env,
|
|
20
25
|
});
|
|
21
26
|
if (!/^codex-cli \S+$/.test(stdout.trim()))
|
|
22
|
-
throw new Error("Codex CLI
|
|
27
|
+
throw new Error("Unrecognized Codex CLI version.");
|
|
23
28
|
let active;
|
|
29
|
+
/** 只绑定当前任务的连接,不能把迟到输入送入下一轮或其他客户端的轮次。 */
|
|
30
|
+
let steer;
|
|
24
31
|
return {
|
|
25
32
|
name: "Codex",
|
|
26
33
|
version: stdout.trim().replace(/^codex-cli /, ""),
|
|
27
34
|
async run(input) {
|
|
28
35
|
if (active)
|
|
29
|
-
throw new Error("Codex
|
|
36
|
+
throw new Error("Codex is already running a task.");
|
|
30
37
|
const controller = new AbortController();
|
|
31
38
|
active = controller;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
/** 后台服务会保留空闲会话的写锁,复用其连接才能立即恢复同一会话。 */
|
|
40
|
+
const socketPath = join(env.CODEX_HOME ?? join(homedir(), ".codex"), "app-server-control", "app-server-control.sock");
|
|
41
|
+
const socket = process.platform !== "win32" && existsSync(socketPath)
|
|
42
|
+
? await new Promise((resolve) => {
|
|
43
|
+
const connection = new WebSocket("ws://localhost", {
|
|
44
|
+
createConnection: () => connect(socketPath),
|
|
45
|
+
handshakeTimeout: 5_000,
|
|
46
|
+
maxPayload: 8_000_000,
|
|
47
|
+
});
|
|
48
|
+
connection.once("open", () => resolve(connection));
|
|
49
|
+
connection.once("error", () => resolve(undefined));
|
|
50
|
+
})
|
|
51
|
+
: undefined;
|
|
52
|
+
const child = socket
|
|
53
|
+
? undefined
|
|
54
|
+
: spawn(command, ["app-server"], {
|
|
55
|
+
cwd: input.cwd,
|
|
56
|
+
env,
|
|
57
|
+
detached: process.platform !== "win32",
|
|
58
|
+
stdio: ["pipe", "pipe", "ignore"],
|
|
59
|
+
});
|
|
38
60
|
const closed = Promise.withResolvers();
|
|
39
61
|
const completed = Promise.withResolvers();
|
|
40
|
-
|
|
62
|
+
/** 库管理请求关联和超时;Codex 线上消息省略 jsonrpc 字段。 */
|
|
63
|
+
const client = new JSONRPCClient(({ id, method, params }) => write({ id, method, params }));
|
|
41
64
|
const messages = new Map();
|
|
42
|
-
let serial = 0;
|
|
43
65
|
let buffer = "";
|
|
66
|
+
/** turn/start 响应前的事件暂存,收到当前 turn ID 后再处理,避免混入其他客户端事件。 */
|
|
67
|
+
let earlyMessages = "";
|
|
44
68
|
let sessionId;
|
|
45
69
|
let runId;
|
|
46
70
|
let dispatched = false;
|
|
@@ -53,9 +77,21 @@ export async function createCodexAgent(command = "codex") {
|
|
|
53
77
|
settled = true;
|
|
54
78
|
completed.resolve(result);
|
|
55
79
|
}
|
|
56
|
-
/**
|
|
80
|
+
/** 增量与完整消息共用输出上限;只推送回复文本,不推送思考或工具原始输出。 */
|
|
81
|
+
function publishText(text) {
|
|
82
|
+
if ([...messages.values()].reduce((sum, item) => sum + item.text.length, 0) > 256_000) {
|
|
83
|
+
fail("Codex output limit exceeded. Task interrupted; check the local session.");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
input.onText(text);
|
|
87
|
+
}
|
|
88
|
+
/** 共享后台仅断开自己的连接;独立进程按进程组清理。 */
|
|
57
89
|
function terminate(signal) {
|
|
58
|
-
if (
|
|
90
|
+
if (socket) {
|
|
91
|
+
socket.terminate();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (!child?.pid)
|
|
59
95
|
return;
|
|
60
96
|
try {
|
|
61
97
|
if (process.platform === "win32")
|
|
@@ -67,46 +103,68 @@ export async function createCodexAgent(command = "codex") {
|
|
|
67
103
|
if (!(error instanceof Error && "code" in error && error.code === "ESRCH")) {
|
|
68
104
|
finish({
|
|
69
105
|
status: "interrupted",
|
|
70
|
-
text: "
|
|
106
|
+
text: "Codex stop unconfirmed. Check local processes.",
|
|
71
107
|
});
|
|
72
108
|
}
|
|
73
109
|
}
|
|
74
110
|
}
|
|
75
|
-
/** 连接结束时释放所有 RPC 等待,取消初始化也不必等待请求超时。 */
|
|
76
|
-
function rejectPending(text) {
|
|
77
|
-
for (const item of pending.values()) {
|
|
78
|
-
clearTimeout(item.timer);
|
|
79
|
-
item.reject(new Error(text));
|
|
80
|
-
}
|
|
81
|
-
pending.clear();
|
|
82
|
-
}
|
|
83
111
|
/** 通信故障不等于执行失败;保留不确定状态并结束当前连接。 */
|
|
84
112
|
function fail(text) {
|
|
85
113
|
if (settled)
|
|
86
114
|
return;
|
|
87
115
|
finish({ status: "interrupted", text });
|
|
88
|
-
|
|
116
|
+
/** 共享服务不会随连接退出;仅中断已经确认归属本次任务的 turn。 */
|
|
117
|
+
if (socket?.readyState === WebSocket.OPEN && sessionId && runId)
|
|
118
|
+
void request("turn/interrupt", { threadId: sessionId, turnId: runId }).catch(() => { });
|
|
119
|
+
client.rejectAllPendingRequests(text);
|
|
89
120
|
controller.abort();
|
|
90
121
|
}
|
|
91
|
-
/**
|
|
92
|
-
function
|
|
122
|
+
/** 请求、通知和交互应答共用发送入口,适配 JSONL 与 WebSocket 帧。 */
|
|
123
|
+
function write(message) {
|
|
124
|
+
try {
|
|
125
|
+
if (socket)
|
|
126
|
+
socket.send(JSON.stringify(message), (error) => {
|
|
127
|
+
if (error)
|
|
128
|
+
fail("Codex connection write failed. Task status unknown.");
|
|
129
|
+
});
|
|
130
|
+
else
|
|
131
|
+
child?.stdin.write(`${JSON.stringify(message)}\n`, (error) => {
|
|
132
|
+
if (error)
|
|
133
|
+
fail("Codex connection write failed. Task status unknown.");
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
fail("Codex connection write failed. Task status unknown.");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** 超时仍终止任务;区分服务端拒绝与连接故障,保留补充输入的不确定状态。 */
|
|
141
|
+
async function request(method, params) {
|
|
93
142
|
if (controller.signal.aborted && method !== "turn/interrupt")
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
143
|
+
throw new Error("Task stopped.");
|
|
144
|
+
try {
|
|
145
|
+
return await client
|
|
146
|
+
.timeout(30_000, (id) => {
|
|
147
|
+
fail(`Codex ${method} timed out. Not retried.`);
|
|
148
|
+
return createJSONRPCErrorResponse(id, 0, "Codex request timed out.");
|
|
149
|
+
})
|
|
150
|
+
.request(method, params);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
/** 只识别已知占用错误,避免把可能含敏感信息的原始错误转发到 IM。 */
|
|
154
|
+
if (error instanceof JSONRPCErrorException && error.data === "codex")
|
|
155
|
+
throw new Error(method === "thread/resume" &&
|
|
156
|
+
error.code === -32600 &&
|
|
157
|
+
error.message.includes("already has an active writer")
|
|
158
|
+
? "Codex session locked by another process. Task not started; check local Codex connections."
|
|
159
|
+
: method === "turn/steer"
|
|
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
|
+
if (method === "turn/steer")
|
|
163
|
+
throw new Error("Codex input delivery unconfirmed. Not retried; check the session before resending.");
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
108
166
|
}
|
|
109
|
-
/**
|
|
167
|
+
/** 以 turn/start 响应确认本次任务的 run ID,其他客户端的事件不能改变归属。 */
|
|
110
168
|
function recordRun(id) {
|
|
111
169
|
if (runId && runId !== id)
|
|
112
170
|
return false;
|
|
@@ -119,31 +177,30 @@ export async function createCodexAgent(command = "codex") {
|
|
|
119
177
|
controller.signal.addEventListener("abort", () => {
|
|
120
178
|
if (settled)
|
|
121
179
|
return;
|
|
122
|
-
stopTimer = setTimeout(() => fail("
|
|
180
|
+
stopTimer = setTimeout(() => fail("Stop unconfirmed; Codex disconnected. Check the project before /resume."), 5_000);
|
|
123
181
|
if (sessionId && runId) {
|
|
124
182
|
void request("turn/interrupt", { threadId: sessionId, turnId: runId }).catch(() => terminate("SIGTERM"));
|
|
125
183
|
}
|
|
126
184
|
else
|
|
127
185
|
terminate("SIGTERM");
|
|
128
186
|
}, { once: true });
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
child.on("close", (code) => {
|
|
187
|
+
/** 两种传输共用关闭处理;连接中断不能当作共享后台中的任务已经停止。 */
|
|
188
|
+
function onClose(code) {
|
|
132
189
|
closed.resolve();
|
|
133
190
|
if (controller.signal.aborted && !dispatched)
|
|
134
|
-
finish({ status: "cancelled", text: "
|
|
191
|
+
finish({ status: "cancelled", text: "Stopped before starting." });
|
|
135
192
|
if (!settled)
|
|
136
|
-
fail(`Codex
|
|
193
|
+
fail(`Codex disconnected (${code ?? "signal"}). Check sign-in and local setup.`);
|
|
137
194
|
else
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
195
|
+
client.rejectAllPendingRequests("Codex connection closed.");
|
|
196
|
+
}
|
|
197
|
+
/** 两种传输与提前到达的通知共用协议处理,始终只消费当前任务的事件。 */
|
|
198
|
+
function onData(chunk) {
|
|
142
199
|
if (settled)
|
|
143
200
|
return;
|
|
144
201
|
buffer += chunk;
|
|
145
202
|
if (buffer.length > 8_000_000)
|
|
146
|
-
return fail("Codex
|
|
203
|
+
return fail("Codex buffer limit exceeded. Task interrupted.");
|
|
147
204
|
const lines = buffer.split("\n");
|
|
148
205
|
buffer = lines.pop() ?? "";
|
|
149
206
|
for (const line of lines) {
|
|
@@ -156,26 +213,59 @@ export async function createCodexAgent(command = "codex") {
|
|
|
156
213
|
method: z.string().optional(),
|
|
157
214
|
params: z.unknown().optional(),
|
|
158
215
|
result: z.unknown().optional(),
|
|
159
|
-
error: z.object({ code: z.number() }).optional(),
|
|
216
|
+
error: z.object({ code: z.number(), message: z.string().optional() }).optional(),
|
|
160
217
|
})
|
|
161
218
|
.parse(JSON.parse(line));
|
|
219
|
+
if (message.method && !runId) {
|
|
220
|
+
if (dispatched) {
|
|
221
|
+
earlyMessages += `${line}\n`;
|
|
222
|
+
if (earlyMessages.length > 8_000_000)
|
|
223
|
+
return fail("Codex event limit exceeded. Task interrupted.");
|
|
224
|
+
}
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
162
227
|
if (message.id !== undefined && message.method) {
|
|
228
|
+
/** 共享连接上的交互可能属于其他会话或轮次,不能替其他客户端拒绝。 */
|
|
229
|
+
const context = z
|
|
230
|
+
.object({ threadId: z.string(), turnId: z.string().optional() })
|
|
231
|
+
.safeParse(message.params);
|
|
232
|
+
if (!context.success ||
|
|
233
|
+
context.data.threadId !== sessionId ||
|
|
234
|
+
(context.data.turnId !== undefined && context.data.turnId !== runId))
|
|
235
|
+
continue;
|
|
163
236
|
/** 暂未接入审批与结构化提问界面,明确拒绝并停止,不能静默批准。 */
|
|
164
|
-
|
|
165
|
-
|
|
237
|
+
write({
|
|
238
|
+
id: message.id,
|
|
239
|
+
error: {
|
|
240
|
+
code: -32601,
|
|
241
|
+
message: "This client does not support interactive requests yet",
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
fail("Task interrupted: approvals and structured questions are unsupported. Handle locally, then /resume.");
|
|
166
245
|
}
|
|
167
246
|
else if (typeof message.id === "number") {
|
|
168
|
-
|
|
169
|
-
|
|
247
|
+
/** 补齐库需要的协议字段;错误来源标记仅用于本地处理,不信任服务端 data。 */
|
|
248
|
+
client.receive(message.error
|
|
249
|
+
? createJSONRPCErrorResponse(message.id, message.error.code, message.error.message ?? "", "codex")
|
|
250
|
+
: createJSONRPCSuccessResponse(message.id, message.result));
|
|
251
|
+
}
|
|
252
|
+
else if (message.method === "item/agentMessage/delta") {
|
|
253
|
+
const event = z
|
|
254
|
+
.object({
|
|
255
|
+
threadId: z.string(),
|
|
256
|
+
turnId: z.string(),
|
|
257
|
+
itemId: z.string(),
|
|
258
|
+
delta: z.string(),
|
|
259
|
+
})
|
|
260
|
+
.parse(message.params);
|
|
261
|
+
if (event.threadId !== sessionId || !recordRun(event.turnId))
|
|
170
262
|
continue;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
else
|
|
176
|
-
item.resolve(message.result);
|
|
263
|
+
const item = messages.get(event.itemId) ?? { text: "" };
|
|
264
|
+
item.text += event.delta;
|
|
265
|
+
messages.set(event.itemId, item);
|
|
266
|
+
publishText(item.text);
|
|
177
267
|
}
|
|
178
|
-
else if (message.method === "item/completed") {
|
|
268
|
+
else if (message.method === "item/started" || message.method === "item/completed") {
|
|
179
269
|
const event = z
|
|
180
270
|
.object({
|
|
181
271
|
threadId: z.string(),
|
|
@@ -192,9 +282,7 @@ export async function createCodexAgent(command = "codex") {
|
|
|
192
282
|
continue;
|
|
193
283
|
if (event.item.type === "agentMessage" && event.item.text !== undefined) {
|
|
194
284
|
messages.set(event.item.id, { text: event.item.text, phase: event.item.phase });
|
|
195
|
-
|
|
196
|
-
fail("Codex 文本输出超出限制,任务已中断;可在本机查看会话记录。");
|
|
197
|
-
}
|
|
285
|
+
publishText(event.item.text);
|
|
198
286
|
}
|
|
199
287
|
}
|
|
200
288
|
else if (message.method === "turn/started" || message.method === "turn/completed") {
|
|
@@ -217,35 +305,80 @@ export async function createCodexAgent(command = "codex") {
|
|
|
217
305
|
.map((item) => item.text)
|
|
218
306
|
.join("\n\n") ||
|
|
219
307
|
(event.turn.status === "completed"
|
|
220
|
-
? "Codex
|
|
308
|
+
? "Codex finished with no text output."
|
|
221
309
|
: event.turn.status === "failed"
|
|
222
|
-
? "Codex
|
|
223
|
-
: "
|
|
310
|
+
? "Codex task failed. Check sign-in, model access, and network."
|
|
311
|
+
: "Task interrupted. File changes were not reverted."),
|
|
224
312
|
});
|
|
225
313
|
}
|
|
226
314
|
}
|
|
227
315
|
}
|
|
228
316
|
catch {
|
|
229
|
-
fail("Codex
|
|
317
|
+
fail("Codex response or state save failed. Task interrupted; check CLI version and storage.");
|
|
230
318
|
}
|
|
231
319
|
}
|
|
232
|
-
}
|
|
320
|
+
}
|
|
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
|
+
child?.on("close", onClose);
|
|
324
|
+
child?.stdout.setEncoding("utf8");
|
|
325
|
+
child?.stdout.on("data", onData);
|
|
326
|
+
socket?.on("error", () => fail("Codex connection failed. Task status unknown."));
|
|
327
|
+
socket?.on("close", () => onClose(null));
|
|
328
|
+
socket?.on("message", (data) => onData(`${data.toString()}\n`));
|
|
329
|
+
steer = async (prompt) => {
|
|
330
|
+
if (!sessionId || !runId || settled || controller.signal.aborted)
|
|
331
|
+
throw new Error("Codex turn is not running. Input not sent; try again later.");
|
|
332
|
+
const response = z.object({ turnId: z.string() }).parse(await request("turn/steer", {
|
|
333
|
+
threadId: sessionId,
|
|
334
|
+
expectedTurnId: runId,
|
|
335
|
+
input: [{ type: "text", text: prompt, text_elements: [] }],
|
|
336
|
+
}));
|
|
337
|
+
if (response.turnId !== runId) {
|
|
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
|
+
}
|
|
341
|
+
};
|
|
233
342
|
try {
|
|
343
|
+
if (controller.signal.aborted)
|
|
344
|
+
return { status: "cancelled", text: "Stopped before starting." };
|
|
234
345
|
await request("initialize", {
|
|
235
|
-
clientInfo: {
|
|
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
|
+
},
|
|
236
352
|
capabilities: null,
|
|
237
353
|
});
|
|
238
|
-
|
|
239
|
-
|
|
354
|
+
write({ method: "initialized" });
|
|
355
|
+
if (socket && input.sessionId) {
|
|
356
|
+
/** 先查询共享会话,忙碌时不恢复配置、不追加输入,也不中断其他客户端任务。 */
|
|
357
|
+
const current = z
|
|
358
|
+
.object({ thread: z.object({ status: z.object({ type: z.string() }) }) })
|
|
359
|
+
.parse(await request("thread/read", { threadId: input.sessionId }));
|
|
360
|
+
if (!["idle", "notLoaded"].includes(current.thread.status.type))
|
|
361
|
+
throw new Error("Codex session busy or unavailable. Message not sent; wait until it is idle.");
|
|
362
|
+
}
|
|
363
|
+
const response = z
|
|
364
|
+
.object({
|
|
365
|
+
thread: z.object({
|
|
366
|
+
id: z.string().min(1),
|
|
367
|
+
status: z.object({ type: z.string() }).optional(),
|
|
368
|
+
}),
|
|
369
|
+
})
|
|
370
|
+
.parse(await request(input.sessionId ? "thread/resume" : "thread/start", {
|
|
240
371
|
...(input.sessionId ? { threadId: input.sessionId, excludeTurns: true } : {}),
|
|
241
372
|
cwd: input.cwd,
|
|
242
373
|
approvalPolicy: "on-request",
|
|
243
374
|
sandbox: "workspace-write",
|
|
244
375
|
}));
|
|
376
|
+
if (socket && response.thread.status?.type !== "idle")
|
|
377
|
+
throw new Error("Codex session busy. Message not sent; wait until it is idle.");
|
|
245
378
|
sessionId = response.thread.id;
|
|
246
379
|
input.onSession(sessionId);
|
|
247
380
|
if (controller.signal.aborted)
|
|
248
|
-
return { status: "cancelled", text: "
|
|
381
|
+
return { status: "cancelled", text: "Stopped before starting." };
|
|
249
382
|
dispatched = true;
|
|
250
383
|
const started = await Promise.race([
|
|
251
384
|
request("turn/start", {
|
|
@@ -254,8 +387,13 @@ export async function createCodexAgent(command = "codex") {
|
|
|
254
387
|
}),
|
|
255
388
|
completed.promise.then(() => null),
|
|
256
389
|
]);
|
|
257
|
-
if (started !== null)
|
|
390
|
+
if (started !== null && !settled) {
|
|
258
391
|
recordRun(z.object({ turn: turnSchema }).parse(started).turn.id);
|
|
392
|
+
earlyMessages += buffer;
|
|
393
|
+
buffer = "";
|
|
394
|
+
onData(earlyMessages);
|
|
395
|
+
earlyMessages = "";
|
|
396
|
+
}
|
|
259
397
|
return await completed.promise;
|
|
260
398
|
}
|
|
261
399
|
catch (error) {
|
|
@@ -264,16 +402,17 @@ export async function createCodexAgent(command = "codex") {
|
|
|
264
402
|
status: dispatched ? "interrupted" : controller.signal.aborted ? "cancelled" : "failed",
|
|
265
403
|
text: error instanceof Error && error.message.startsWith("Codex ")
|
|
266
404
|
? error.message
|
|
267
|
-
: "Codex
|
|
405
|
+
: "Codex task failed. Check the local setup.",
|
|
268
406
|
});
|
|
269
407
|
return await completed.promise;
|
|
270
408
|
}
|
|
271
409
|
finally {
|
|
410
|
+
steer = undefined;
|
|
272
411
|
clearTimeout(stopTimer);
|
|
273
|
-
|
|
412
|
+
client.rejectAllPendingRequests("Codex connection closed.");
|
|
274
413
|
terminate("SIGTERM");
|
|
275
414
|
const force = setTimeout(() => terminate("SIGKILL"), 3_000);
|
|
276
|
-
const deadline = setTimeout(() => closed.reject(new Error("
|
|
415
|
+
const deadline = setTimeout(() => closed.reject(new Error("Codex exit unconfirmed. Service must stop.")), 8_000);
|
|
277
416
|
try {
|
|
278
417
|
await closed.promise;
|
|
279
418
|
terminate("SIGKILL");
|
|
@@ -285,6 +424,12 @@ export async function createCodexAgent(command = "codex") {
|
|
|
285
424
|
}
|
|
286
425
|
}
|
|
287
426
|
},
|
|
427
|
+
/** 复用当前连接提交补充消息,由 expectedTurnId 防止误入其他轮次。 */
|
|
428
|
+
steer(prompt) {
|
|
429
|
+
if (!steer)
|
|
430
|
+
return Promise.reject(new Error("Codex has no active turn. Input not sent; resend to continue."));
|
|
431
|
+
return steer(prompt);
|
|
432
|
+
},
|
|
288
433
|
/** 中断当前任务;run 会等待终态或子进程退出后才返回。 */
|
|
289
434
|
stop() {
|
|
290
435
|
active?.abort();
|
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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"}
|