@excitedjs/dreamux 0.2.0 → 0.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 +155 -160
- package/bin/tm +30 -0
- package/dist/admin/client.js +98 -0
- package/dist/admin/client.js.map +1 -0
- package/dist/admin/methods.js +83 -38
- package/dist/admin/methods.js.map +1 -1
- package/dist/admin/socket.js +2 -2
- package/dist/admin/socket.js.map +1 -1
- package/dist/channel/feishu-gate.js +187 -18
- package/dist/channel/feishu-gate.js.map +1 -1
- package/dist/channel/feishu-message.js +92 -0
- package/dist/channel/feishu-message.js.map +1 -0
- package/dist/cli/doctor.js +53 -58
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/dreamux.js +33 -51
- package/dist/cli/dreamux.js.map +1 -1
- package/dist/cli/server-ctl.js +6 -8
- package/dist/cli/server-ctl.js.map +1 -1
- package/dist/cli/server.js +22 -32
- package/dist/cli/server.js.map +1 -1
- package/dist/codex/events.js +3 -2
- package/dist/codex/events.js.map +1 -1
- package/dist/codex/mcp-config.js +24 -0
- package/dist/codex/mcp-config.js.map +1 -0
- package/dist/codex/supervisor.js +16 -0
- package/dist/codex/supervisor.js.map +1 -1
- package/dist/dispatcher/approval.js +2 -3
- package/dist/dispatcher/approval.js.map +1 -1
- package/dist/dispatcher/runtime.js +193 -141
- package/dist/dispatcher/runtime.js.map +1 -1
- package/dist/dispatcher/turn-manager.js +78 -97
- package/dist/dispatcher/turn-manager.js.map +1 -1
- package/dist/feishu/bot.js +71 -9
- package/dist/feishu/bot.js.map +1 -1
- package/dist/mcp/feishu-mcp.js +269 -0
- package/dist/mcp/feishu-mcp.js.map +1 -0
- package/dist/onboard/config-files.js +52 -22
- package/dist/onboard/config-files.js.map +1 -1
- package/dist/onboard/dispatcher-skill.js +18 -0
- package/dist/onboard/dispatcher-skill.js.map +1 -0
- package/dist/onboard/run.js +17 -50
- package/dist/onboard/run.js.map +1 -1
- package/dist/onboard/service.js +4 -8
- package/dist/onboard/service.js.map +1 -1
- package/dist/onboard/uninstall.js +47 -13
- package/dist/onboard/uninstall.js.map +1 -1
- package/dist/onboard/wizard.js +3 -27
- package/dist/onboard/wizard.js.map +1 -1
- package/dist/runtime/config.js +158 -64
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/dispatcher-codex-home.js +14 -51
- package/dist/runtime/dispatcher-codex-home.js.map +1 -1
- package/dist/runtime/dispatcher-id.js +9 -0
- package/dist/runtime/dispatcher-id.js.map +1 -0
- package/dist/runtime/dispatcher-store.js +202 -0
- package/dist/runtime/dispatcher-store.js.map +1 -0
- package/dist/runtime/package-bin.js +41 -0
- package/dist/runtime/package-bin.js.map +1 -0
- package/dist/runtime/paths.js +82 -48
- package/dist/runtime/paths.js.map +1 -1
- package/dist/runtime/secrets.js +4 -3
- package/dist/runtime/secrets.js.map +1 -1
- package/dist/server.js +110 -36
- package/dist/server.js.map +1 -1
- package/package.json +6 -6
- package/skills/dispatcher/SKILL.md +107 -0
- package/db/migrations/0001_init.sql +0 -49
- package/dist/channel/outbound.js +0 -12
- package/dist/channel/outbound.js.map +0 -1
- package/dist/db/repository.js +0 -223
- package/dist/db/repository.js.map +0 -1
- package/dist/db/schema.js +0 -29
- package/dist/db/schema.js.map +0 -1
- package/dist/db/types.js +0 -2
- package/dist/db/types.js.map +0 -1
- package/dist/onboard/plugins.js +0 -202
- package/dist/onboard/plugins.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../src/codex/mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAS/C,MAAM,UAAU,kBAAkB,CAChC,IAA+B;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO;QACL,IAAI;QACJ,eAAe,sBAAsB,YAAY,UAAU,CAAC,OAAO,CAAC,EAAE;QACtE,IAAI;QACJ,eAAe,sBAAsB,SAAS,eAAe,CAAC;YAC5D,YAAY;YACZ,cAAc;YACd,IAAI,CAAC,YAAY;YACjB,gBAAgB;YAChB,IAAI,CAAC,eAAe;SACrB,CAAC,EAAE;KACL,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAgB;IACvC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/codex/supervisor.js
CHANGED
|
@@ -23,6 +23,7 @@ export class CodexProcess {
|
|
|
23
23
|
child = null;
|
|
24
24
|
_pid = null;
|
|
25
25
|
reaped = false;
|
|
26
|
+
exitHandlers = [];
|
|
26
27
|
constructor(opts) {
|
|
27
28
|
this.opts = opts;
|
|
28
29
|
this.socketPath = opts.socketPath;
|
|
@@ -31,6 +32,9 @@ export class CodexProcess {
|
|
|
31
32
|
get pid() {
|
|
32
33
|
return this._pid;
|
|
33
34
|
}
|
|
35
|
+
onExit(handler) {
|
|
36
|
+
this.exitHandlers.push(handler);
|
|
37
|
+
}
|
|
34
38
|
/** Spawn the daemon and resolve once its listen socket is bound. */
|
|
35
39
|
async start() {
|
|
36
40
|
if (this.child !== null) {
|
|
@@ -96,6 +100,18 @@ export class CodexProcess {
|
|
|
96
100
|
child.on('error', () => {
|
|
97
101
|
/* daemon-side error, can no longer affect this process */
|
|
98
102
|
});
|
|
103
|
+
child.once('exit', (code, signal) => {
|
|
104
|
+
if (this.reaped)
|
|
105
|
+
return;
|
|
106
|
+
for (const handler of this.exitHandlers) {
|
|
107
|
+
try {
|
|
108
|
+
handler({ code, signal });
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
/* exit observers must not poison process event dispatch */
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
99
115
|
try {
|
|
100
116
|
await waitForSocket(this.opts.socketPath, child.pid, this.opts.readyTimeoutMs ?? 10000);
|
|
101
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/codex/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,KAAK,IAAI,UAAU,GAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/codex/supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
* or codex escalates anyway), fail loudly — never return null. Silent null
|
|
8
8
|
* is the trap that hangs the daemon.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* mute timeout.
|
|
10
|
+
* `onReject` is an observer hook for logs or metrics. Feishu user-visible
|
|
11
|
+
* output is MCP reply-only, so this handler must not send channel messages.
|
|
13
12
|
*/
|
|
14
13
|
/** A method name like `exec_command_approval`, `apply_patch_approval`, etc. */
|
|
15
14
|
const APPROVAL_METHOD_HINTS = ['approval', 'approve', 'confirm', 'review'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/dispatcher/approval.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/dispatcher/approval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE3E,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA+B,EAAE;IAEjC,OAAO,KAAK,EAAE,GAAkB,EAAoB,EAAE;QACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;QACH,CAAC;QACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,aAAa,GAAG,CAAC,MAAM,wEAAwE,CAChG,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0CAA0C,GAAG,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,CACrE,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -6,27 +6,27 @@
|
|
|
6
6
|
* - CodexWsClient (WS connection)
|
|
7
7
|
* - thread_id (lazily created via thread/start or resumed)
|
|
8
8
|
* - TurnManager (FIFO worker for this dispatcher)
|
|
9
|
-
* - approval handler bound to the current "source chat" for hints
|
|
10
9
|
*
|
|
11
10
|
* Lifecycle: declared → starting → ready → (degraded) → stopping → stopped.
|
|
12
11
|
*
|
|
13
|
-
*
|
|
14
|
-
* -
|
|
15
|
-
* inbound — at-most-once.
|
|
12
|
+
* Current MVP:
|
|
13
|
+
* - accepted inbound work is process-local and is dropped on restart;
|
|
16
14
|
* - thread/resume failure does not degrade the whole dispatcher; we
|
|
17
15
|
* start a fresh thread, record the lost one in last_lost_thread_id,
|
|
18
16
|
* and post a visible warning to the next source chat.
|
|
19
17
|
*/
|
|
20
18
|
import { mkdirSync } from 'node:fs';
|
|
21
19
|
import { dirname } from 'node:path';
|
|
22
|
-
import { CodexProcess } from '../codex/supervisor.js';
|
|
20
|
+
import { CodexProcess, } from '../codex/supervisor.js';
|
|
23
21
|
import { CodexWsClient } from '../codex/rpc.js';
|
|
24
22
|
import { performInitializeHandshake } from '../codex/handshake.js';
|
|
25
23
|
import { TurnManager } from './turn-manager.js';
|
|
26
24
|
import { createFailFastApprovalHandler } from './approval.js';
|
|
27
25
|
import { dispatcherCodexCwd, dispatcherSocketPath, dispatcherStderrLog, dispatcherStdoutLog, } from '../runtime/paths.js';
|
|
28
26
|
import { dispatcherCodexHomeDoctorContext, } from '../runtime/dispatcher-codex-home.js';
|
|
29
|
-
import {
|
|
27
|
+
import { dispatcherProcessEnv } from '../runtime/package-bin.js';
|
|
28
|
+
const DEFAULT_RESTART_BACKOFF_BASE_MS = 1000;
|
|
29
|
+
const DEFAULT_RESTART_BACKOFF_MAX_MS = 30_000;
|
|
30
30
|
export class DispatcherRuntime {
|
|
31
31
|
row;
|
|
32
32
|
deps;
|
|
@@ -34,9 +34,12 @@ export class DispatcherRuntime {
|
|
|
34
34
|
client = null;
|
|
35
35
|
turnManager = null;
|
|
36
36
|
threadId = null;
|
|
37
|
-
currentInboundChatId = null;
|
|
38
37
|
status = 'declared';
|
|
39
38
|
log;
|
|
39
|
+
stopping = false;
|
|
40
|
+
restarting = false;
|
|
41
|
+
restartAttempts = 0;
|
|
42
|
+
restartTimer = null;
|
|
40
43
|
constructor(row, deps) {
|
|
41
44
|
this.row = row;
|
|
42
45
|
this.deps = deps;
|
|
@@ -55,107 +58,29 @@ export class DispatcherRuntime {
|
|
|
55
58
|
getStatus() {
|
|
56
59
|
return this.status;
|
|
57
60
|
}
|
|
58
|
-
/** Called by Feishu inbound right before enqueuing into inbound_buffer. */
|
|
59
|
-
setCurrentInboundChat(chatId) {
|
|
60
|
-
this.currentInboundChatId = chatId;
|
|
61
|
-
}
|
|
62
61
|
getThreadId() {
|
|
63
62
|
return this.threadId;
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
65
|
* Bring the dispatcher up. Order:
|
|
67
|
-
* 1.
|
|
68
|
-
* 2.
|
|
69
|
-
* 3.
|
|
70
|
-
* 4.
|
|
71
|
-
* 5.
|
|
72
|
-
* 6.
|
|
73
|
-
* 7. status = ready
|
|
66
|
+
* 1. spawn codex app-server child
|
|
67
|
+
* 2. open WS client
|
|
68
|
+
* 3. install fail-fast approval handler
|
|
69
|
+
* 4. thread/start (new) or thread/resume (existing)
|
|
70
|
+
* 5. install turn manager
|
|
71
|
+
* 6. status = ready
|
|
74
72
|
*/
|
|
75
73
|
async start() {
|
|
74
|
+
this.stopping = false;
|
|
75
|
+
this.restarting = false;
|
|
76
|
+
this.clearRestartTimer();
|
|
76
77
|
this.setStatus('starting');
|
|
77
78
|
this.deps.dispatchers.setStatus(this.dispatcherId, 'starting', {
|
|
78
79
|
last_started_at: Date.now(),
|
|
79
80
|
});
|
|
80
81
|
try {
|
|
81
|
-
await this.
|
|
82
|
-
|
|
83
|
-
const socketPath = dispatcherSocketPath(this.dispatcherId);
|
|
84
|
-
const extraArgs = this.deps.resolveExtraArgs?.(this.row) ?? [];
|
|
85
|
-
if (this.deps.codexHomeDoctor !== undefined) {
|
|
86
|
-
await this.deps.codexHomeDoctor(dispatcherCodexHomeDoctorContext(this.dispatcherId, {
|
|
87
|
-
codexCliArgs: extraArgs,
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
const factory = this.deps.codexProcessFactory ?? ((o) => new CodexProcess(o));
|
|
91
|
-
this.process = factory({
|
|
92
|
-
socketPath,
|
|
93
|
-
cwd,
|
|
94
|
-
stdoutLogPath: dispatcherStdoutLog(this.dispatcherId),
|
|
95
|
-
stderrLogPath: dispatcherStderrLog(this.dispatcherId),
|
|
96
|
-
binPath: this.deps.codexBinPath,
|
|
97
|
-
extraArgs,
|
|
98
|
-
env: { ...process.env },
|
|
99
|
-
});
|
|
100
|
-
mkdirSync(dirname(socketPath), { recursive: true });
|
|
101
|
-
await this.process.start();
|
|
102
|
-
const clientFactory = this.deps.codexClientFactory ?? ((sock) => new CodexWsClient({ socketPath: sock }));
|
|
103
|
-
this.client = clientFactory(socketPath);
|
|
104
|
-
await this.client.ready();
|
|
105
|
-
const approvalHandler = createFailFastApprovalHandler({
|
|
106
|
-
onReject: async (req) => {
|
|
107
|
-
// Best-effort hint to the user, only if we know who is asking.
|
|
108
|
-
const chatId = this.currentInboundChatId;
|
|
109
|
-
if (chatId === null)
|
|
110
|
-
return;
|
|
111
|
-
try {
|
|
112
|
-
await this.deps.outbound.send({ conversationId: chatId }, `Codex 请求了一次审批(${req.method}),但当前 dispatcher 不支持审批 —— 本轮将失败。`);
|
|
113
|
-
}
|
|
114
|
-
catch {
|
|
115
|
-
/* nothing useful to do */
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
});
|
|
119
|
-
this.client.setServerRequestHandler(approvalHandler);
|
|
120
|
-
// codex 0.134+ LSP-style handshake — must precede thread/start or
|
|
121
|
-
// any other RPC, otherwise codex answers everything with
|
|
122
|
-
// `Not initialized` (see src/codex/handshake.ts).
|
|
123
|
-
const initResponse = await performInitializeHandshake(this.client, {
|
|
124
|
-
...(this.deps.handshakeTimeoutMs !== undefined
|
|
125
|
-
? { timeoutMs: this.deps.handshakeTimeoutMs }
|
|
126
|
-
: {}),
|
|
127
|
-
});
|
|
128
|
-
this.log('info', `codex initialized: ${initResponse.userAgent} (home=${initResponse.codexHome}, ${initResponse.platformOs})`);
|
|
129
|
-
await this.resolveThread();
|
|
130
|
-
this.turnManager = new TurnManager({
|
|
131
|
-
dispatcherId: this.dispatcherId,
|
|
132
|
-
inbound: this.deps.inbound,
|
|
133
|
-
getThreadId: () => this.threadId,
|
|
134
|
-
client: this.client,
|
|
135
|
-
outbound: this.deps.outbound,
|
|
136
|
-
log: this.log,
|
|
137
|
-
...(this.deps.outboundRetries !== undefined
|
|
138
|
-
? { outboundRetries: this.deps.outboundRetries }
|
|
139
|
-
: {}),
|
|
140
|
-
...(this.deps.outboundRetryDelayMs !== undefined
|
|
141
|
-
? { outboundRetryDelayMs: this.deps.outboundRetryDelayMs }
|
|
142
|
-
: {}),
|
|
143
|
-
});
|
|
144
|
-
await this.turnManager.retryPendingOutbound();
|
|
145
|
-
this.setStatus('ready');
|
|
146
|
-
this.deps.dispatchers.setStatus(this.dispatcherId, 'ready', {
|
|
147
|
-
last_ready_at: Date.now(),
|
|
148
|
-
last_error: null,
|
|
149
|
-
});
|
|
150
|
-
// Issue #2 + PR #3 review #1: the durable inbound buffer's contract
|
|
151
|
-
// says nothing is dropped across a server crash. retryPendingOutbound
|
|
152
|
-
// covers awaiting_outbound / outbound_failed rows; recoverInboundOnStartup
|
|
153
|
-
// covers running → unknown. But rows persisted in 'queued' before the
|
|
154
|
-
// crash are only drained when notify() is invoked, and at startup no
|
|
155
|
-
// new inbound has arrived yet. Kick the worker once so any
|
|
156
|
-
// already-queued backlog drains immediately instead of stalling until
|
|
157
|
-
// the next live message lands.
|
|
158
|
-
this.turnManager.notify();
|
|
82
|
+
await this.startCodexRuntime();
|
|
83
|
+
this.markReady();
|
|
159
84
|
}
|
|
160
85
|
catch (err) {
|
|
161
86
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -168,10 +93,70 @@ export class DispatcherRuntime {
|
|
|
168
93
|
throw err;
|
|
169
94
|
}
|
|
170
95
|
}
|
|
96
|
+
async startCodexRuntime() {
|
|
97
|
+
const cwd = this.row.codex_cwd ?? dispatcherCodexCwd(this.dispatcherId);
|
|
98
|
+
const socketPath = dispatcherSocketPath(this.dispatcherId);
|
|
99
|
+
const extraArgs = this.deps.resolveExtraArgs?.(this.row) ?? [];
|
|
100
|
+
if (this.deps.codexHomeDoctor !== undefined) {
|
|
101
|
+
await this.deps.codexHomeDoctor(dispatcherCodexHomeDoctorContext(this.dispatcherId, {
|
|
102
|
+
codexCliArgs: extraArgs,
|
|
103
|
+
dispatcherCwd: cwd,
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
const factory = this.deps.codexProcessFactory ?? ((o) => new CodexProcess(o));
|
|
107
|
+
const process = factory({
|
|
108
|
+
socketPath,
|
|
109
|
+
cwd,
|
|
110
|
+
stdoutLogPath: dispatcherStdoutLog(this.dispatcherId),
|
|
111
|
+
stderrLogPath: dispatcherStderrLog(this.dispatcherId),
|
|
112
|
+
binPath: this.deps.codexBinPath,
|
|
113
|
+
extraArgs,
|
|
114
|
+
env: dispatcherProcessEnv(globalThis.process.env, this.deps.extraEnv ?? {}),
|
|
115
|
+
});
|
|
116
|
+
this.process = process;
|
|
117
|
+
process.onExit((exit) => {
|
|
118
|
+
if (this.process !== process)
|
|
119
|
+
return;
|
|
120
|
+
this.handleChildExit(exit);
|
|
121
|
+
});
|
|
122
|
+
mkdirSync(dirname(socketPath), { recursive: true });
|
|
123
|
+
await process.start();
|
|
124
|
+
const clientFactory = this.deps.codexClientFactory ?? ((sock) => new CodexWsClient({ socketPath: sock }));
|
|
125
|
+
const client = clientFactory(socketPath);
|
|
126
|
+
this.client = client;
|
|
127
|
+
client.onClose((reason) => {
|
|
128
|
+
if (this.client !== client)
|
|
129
|
+
return;
|
|
130
|
+
this.handleClientClose(reason);
|
|
131
|
+
});
|
|
132
|
+
await client.ready();
|
|
133
|
+
const approvalHandler = createFailFastApprovalHandler({
|
|
134
|
+
onReject: async (req) => {
|
|
135
|
+
this.log('warn', `rejected Codex approval request '${req.method}'; Feishu outbound is MCP reply-only`);
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
this.client.setServerRequestHandler(approvalHandler);
|
|
139
|
+
// codex 0.134+ LSP-style handshake — must precede thread/start or
|
|
140
|
+
// any other RPC, otherwise codex answers everything with
|
|
141
|
+
// `Not initialized` (see src/codex/handshake.ts).
|
|
142
|
+
const initResponse = await performInitializeHandshake(this.client, {
|
|
143
|
+
...(this.deps.handshakeTimeoutMs !== undefined
|
|
144
|
+
? { timeoutMs: this.deps.handshakeTimeoutMs }
|
|
145
|
+
: {}),
|
|
146
|
+
});
|
|
147
|
+
this.log('info', `codex initialized: ${initResponse.userAgent} (home=${initResponse.codexHome}, ${initResponse.platformOs})`);
|
|
148
|
+
await this.resolveThread();
|
|
149
|
+
this.turnManager = new TurnManager({
|
|
150
|
+
dispatcherId: this.dispatcherId,
|
|
151
|
+
getThreadId: () => this.threadId,
|
|
152
|
+
client: this.client,
|
|
153
|
+
log: this.log,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
171
156
|
async resolveThread() {
|
|
172
157
|
if (this.client === null)
|
|
173
158
|
throw new Error('client not initialized');
|
|
174
|
-
const existing = this.row.thread_id;
|
|
159
|
+
const existing = this.threadId ?? this.row.thread_id;
|
|
175
160
|
if (existing === null) {
|
|
176
161
|
// Fresh thread.
|
|
177
162
|
const res = await this.client.request('thread/start', {});
|
|
@@ -200,68 +185,135 @@ export class DispatcherRuntime {
|
|
|
200
185
|
}
|
|
201
186
|
}
|
|
202
187
|
/**
|
|
203
|
-
*
|
|
204
|
-
* Feishu inbound layer. Returns
|
|
205
|
-
*
|
|
188
|
+
* Queue any accepted inbound message arriving for this dispatcher. Called by
|
|
189
|
+
* the Feishu inbound layer. Returns false if this process already saw the
|
|
190
|
+
* message_id.
|
|
206
191
|
*/
|
|
207
192
|
enqueueInbound(input) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
});
|
|
212
|
-
if (row === null)
|
|
213
|
-
return null;
|
|
214
|
-
this.setCurrentInboundChat(input.source_chat_id);
|
|
215
|
-
this.turnManager?.notify();
|
|
216
|
-
return row.id;
|
|
217
|
-
}
|
|
218
|
-
async recoverInboundOnStartup() {
|
|
219
|
-
const stale = this.deps.inbound.markRunningAsUnknown(this.dispatcherId);
|
|
220
|
-
for (const row of stale) {
|
|
221
|
-
this.log('warn', `inbound ${row.id} was 'running' at restart — marked unknown (at-most-once); chat=${row.source_chat_id}`);
|
|
222
|
-
try {
|
|
223
|
-
await this.deps.outbound.send(outboundTargetForInbound(row), `上一次的执行结果未知(server 重启时正在进行)。请确认是否需要重新发送:\n> ${row.parsed_text.slice(0, 200)}`);
|
|
224
|
-
}
|
|
225
|
-
catch (err) {
|
|
226
|
-
this.log('warn', `failed to notify chat about unknown inbound`, err);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
193
|
+
if (this.turnManager === null)
|
|
194
|
+
return false;
|
|
195
|
+
return this.turnManager.enqueue(input);
|
|
229
196
|
}
|
|
230
197
|
/** Graceful stop: stop accepting work, reap codex child. */
|
|
231
198
|
async stop() {
|
|
199
|
+
this.stopping = true;
|
|
200
|
+
this.clearRestartTimer();
|
|
232
201
|
this.setStatus('stopping');
|
|
233
202
|
this.deps.dispatchers.setStatus(this.dispatcherId, 'stopping');
|
|
234
|
-
|
|
235
|
-
await this.turnManager.stop();
|
|
236
|
-
if (this.client !== null) {
|
|
237
|
-
try {
|
|
238
|
-
this.client.close();
|
|
239
|
-
}
|
|
240
|
-
catch {
|
|
241
|
-
/* best effort */
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
if (this.process !== null) {
|
|
245
|
-
await this.process.reap();
|
|
246
|
-
}
|
|
203
|
+
await this.teardownCodexRuntime();
|
|
247
204
|
this.setStatus('stopped');
|
|
248
205
|
this.deps.dispatchers.setStatus(this.dispatcherId, 'stopped');
|
|
249
206
|
}
|
|
250
207
|
async cleanupOnFailure() {
|
|
251
|
-
|
|
208
|
+
this.clearRestartTimer();
|
|
209
|
+
const wasStopping = this.stopping;
|
|
210
|
+
this.stopping = true;
|
|
211
|
+
try {
|
|
212
|
+
await this.teardownCodexRuntime();
|
|
213
|
+
}
|
|
214
|
+
finally {
|
|
215
|
+
this.stopping = wasStopping;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
async teardownCodexRuntime() {
|
|
219
|
+
const turnManager = this.turnManager;
|
|
220
|
+
this.turnManager = null;
|
|
221
|
+
if (turnManager !== null)
|
|
222
|
+
await turnManager.stop();
|
|
223
|
+
const client = this.client;
|
|
224
|
+
this.client = null;
|
|
225
|
+
if (client !== null) {
|
|
252
226
|
try {
|
|
253
|
-
|
|
227
|
+
client.close();
|
|
254
228
|
}
|
|
255
229
|
catch {
|
|
256
230
|
/* */
|
|
257
231
|
}
|
|
258
|
-
this.client = null;
|
|
259
232
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
233
|
+
const process = this.process;
|
|
234
|
+
this.process = null;
|
|
235
|
+
if (process !== null) {
|
|
236
|
+
await process.reap();
|
|
263
237
|
}
|
|
264
|
-
|
|
238
|
+
}
|
|
239
|
+
handleChildExit(exit) {
|
|
240
|
+
const details = exit.signal !== null ? `signal=${exit.signal}` : `code=${exit.code ?? 'null'}`;
|
|
241
|
+
this.scheduleRestart(`codex app-server child exited (${details})`);
|
|
242
|
+
}
|
|
243
|
+
handleClientClose(reason) {
|
|
244
|
+
this.scheduleRestart(`codex app-server websocket closed: ${reason.message}`);
|
|
245
|
+
}
|
|
246
|
+
scheduleRestart(reason) {
|
|
247
|
+
if (this.stopping || this.restartTimer !== null || this.restarting)
|
|
248
|
+
return;
|
|
249
|
+
const attempt = this.restartAttempts + 1;
|
|
250
|
+
this.restartAttempts = attempt;
|
|
251
|
+
const delay = this.restartDelayMs(attempt);
|
|
252
|
+
this.log('warn', `${reason}; restarting in ${delay}ms`);
|
|
253
|
+
this.setStatus('degraded');
|
|
254
|
+
this.deps.dispatchers.setStatus(this.dispatcherId, 'degraded', {
|
|
255
|
+
last_error: reason,
|
|
256
|
+
});
|
|
257
|
+
this.restartTimer = setTimeout(() => {
|
|
258
|
+
this.restartTimer = null;
|
|
259
|
+
void this.restartCodexRuntime(reason);
|
|
260
|
+
}, delay);
|
|
261
|
+
}
|
|
262
|
+
async restartCodexRuntime(reason) {
|
|
263
|
+
if (this.stopping)
|
|
264
|
+
return;
|
|
265
|
+
this.restarting = true;
|
|
266
|
+
let retryReason = null;
|
|
267
|
+
this.setStatus('starting');
|
|
268
|
+
this.deps.dispatchers.setStatus(this.dispatcherId, 'starting', {
|
|
269
|
+
last_started_at: Date.now(),
|
|
270
|
+
});
|
|
271
|
+
try {
|
|
272
|
+
await this.teardownCodexRuntime();
|
|
273
|
+
if (this.stopping)
|
|
274
|
+
return;
|
|
275
|
+
await this.startCodexRuntime();
|
|
276
|
+
if (this.stopping) {
|
|
277
|
+
await this.teardownCodexRuntime();
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
this.restartAttempts = 0;
|
|
281
|
+
this.markReady();
|
|
282
|
+
this.log('info', `restarted codex app-server after: ${reason}`);
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
286
|
+
this.log('error', `restart failed: ${msg}`, err);
|
|
287
|
+
this.setStatus('degraded');
|
|
288
|
+
this.deps.dispatchers.setStatus(this.dispatcherId, 'degraded', {
|
|
289
|
+
last_error: msg,
|
|
290
|
+
});
|
|
291
|
+
await this.teardownCodexRuntime();
|
|
292
|
+
retryReason = `codex app-server restart failed: ${msg}`;
|
|
293
|
+
}
|
|
294
|
+
finally {
|
|
295
|
+
this.restarting = false;
|
|
296
|
+
}
|
|
297
|
+
if (retryReason !== null)
|
|
298
|
+
this.scheduleRestart(retryReason);
|
|
299
|
+
}
|
|
300
|
+
restartDelayMs(attempt) {
|
|
301
|
+
const base = Math.max(0, this.deps.restartBackoffBaseMs ?? DEFAULT_RESTART_BACKOFF_BASE_MS);
|
|
302
|
+
const max = Math.max(base, this.deps.restartBackoffMaxMs ?? DEFAULT_RESTART_BACKOFF_MAX_MS);
|
|
303
|
+
return Math.min(max, base * 2 ** Math.max(0, attempt - 1));
|
|
304
|
+
}
|
|
305
|
+
clearRestartTimer() {
|
|
306
|
+
if (this.restartTimer === null)
|
|
307
|
+
return;
|
|
308
|
+
clearTimeout(this.restartTimer);
|
|
309
|
+
this.restartTimer = null;
|
|
310
|
+
}
|
|
311
|
+
markReady() {
|
|
312
|
+
this.setStatus('ready');
|
|
313
|
+
this.deps.dispatchers.setStatus(this.dispatcherId, 'ready', {
|
|
314
|
+
last_ready_at: Date.now(),
|
|
315
|
+
last_error: null,
|
|
316
|
+
});
|
|
265
317
|
}
|
|
266
318
|
setStatus(s) {
|
|
267
319
|
this.status = s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/dispatcher/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/dispatcher/runtime.ts"],"names":[],"mappings":"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"}
|