@excitedjs/dreamux 0.1.4 → 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 +170 -154
- 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 +72 -61
- 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 +25 -38
- 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 +195 -143
- 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 +60 -87
- 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 +40 -79
- package/dist/onboard/run.js.map +1 -1
- package/dist/onboard/service.js +6 -5
- package/dist/onboard/service.js.map +1 -1
- package/dist/onboard/uninstall.js +161 -0
- package/dist/onboard/uninstall.js.map +1 -0
- package/dist/onboard/wizard.js +12 -69
- package/dist/onboard/wizard.js.map +1 -1
- package/dist/runtime/codex-args.js +1 -1
- package/dist/runtime/config.js +213 -213
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/dispatcher-codex-home.js +21 -185
- 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 +87 -48
- package/dist/runtime/paths.js.map +1 -1
- package/dist/runtime/secrets.js +17 -14
- package/dist/runtime/secrets.js.map +1 -1
- package/dist/server.js +112 -38
- 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
package/dist/runtime/paths.js
CHANGED
|
@@ -1,38 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Filesystem layout for
|
|
2
|
+
* Filesystem layout for dreamux-owned runtime state and logs.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* stderr.log Codex stderr (load-bearing for debug)
|
|
4
|
+
* Effective MVP layout:
|
|
5
|
+
* ~/.dreamux/
|
|
6
|
+
* state/
|
|
7
|
+
* server.json
|
|
8
|
+
* admin.sock
|
|
9
|
+
* <dispatcher-id>/
|
|
10
|
+
* status.json
|
|
11
|
+
* access.json
|
|
12
|
+
* codex.sock Codex app-server Unix socket
|
|
13
|
+
* logs/
|
|
14
|
+
* dreamux-server.log
|
|
15
|
+
* codex-app-server/
|
|
16
|
+
* <dispatcher-id>.log
|
|
18
17
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* Issue ~/.dreamux/ config (feat/global-config-dir): paths.* functions
|
|
24
|
-
* read an optionally-injected `DreamuxConfig` snapshot for non-env
|
|
25
|
-
* defaults. Server.start() calls setRuntimeConfig() once at boot; bare
|
|
26
|
-
* tests / standalone callers fall back to the built-in defaults.
|
|
18
|
+
* `runtime_dir` is not an effective runtime contract. The legacy runtimeRoot()
|
|
19
|
+
* function remains as a compatibility alias for stateRoot() while older call
|
|
20
|
+
* sites are retired.
|
|
27
21
|
*/
|
|
28
22
|
import { homedir } from 'node:os';
|
|
29
23
|
import { join } from 'node:path';
|
|
30
|
-
import { BUILT_IN_DEFAULTS,
|
|
24
|
+
import { BUILT_IN_DEFAULTS, } from './config.js';
|
|
25
|
+
import { validateDispatcherId } from './dispatcher-id.js';
|
|
26
|
+
export const DREAMUX_UNIX_SOCKET_PATH_MAX_BYTES = 103;
|
|
31
27
|
let currentConfig = BUILT_IN_DEFAULTS;
|
|
32
28
|
/**
|
|
33
29
|
* Set the active configuration snapshot. Called once by Server.start() with
|
|
34
|
-
* the result of
|
|
35
|
-
*
|
|
30
|
+
* the result of loadConfig(); tests can call it to inject a custom snapshot.
|
|
31
|
+
* Idempotent.
|
|
36
32
|
*/
|
|
37
33
|
export function setRuntimeConfig(config) {
|
|
38
34
|
currentConfig = config;
|
|
@@ -44,49 +40,92 @@ export function resetRuntimeConfig() {
|
|
|
44
40
|
export function getRuntimeConfig() {
|
|
45
41
|
return currentConfig;
|
|
46
42
|
}
|
|
47
|
-
export function
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return
|
|
43
|
+
export function dreamuxRoot() {
|
|
44
|
+
return join(homedir(), '.dreamux');
|
|
45
|
+
}
|
|
46
|
+
export function stateRoot() {
|
|
47
|
+
return join(dreamuxRoot(), 'state');
|
|
48
|
+
}
|
|
49
|
+
export function serverJsonPath() {
|
|
50
|
+
return join(stateRoot(), 'server.json');
|
|
51
|
+
}
|
|
52
|
+
export function logsRoot() {
|
|
53
|
+
return join(dreamuxRoot(), 'logs');
|
|
52
54
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Legacy compatibility alias. New code should call stateRoot().
|
|
57
|
+
*/
|
|
58
|
+
export function runtimeRoot() {
|
|
59
|
+
return stateRoot();
|
|
55
60
|
}
|
|
56
61
|
export function adminSocketPath() {
|
|
57
|
-
|
|
58
|
-
if (fromEnv !== undefined && fromEnv !== '')
|
|
59
|
-
return fromEnv;
|
|
60
|
-
if (currentConfig.admin_socket !== null) {
|
|
61
|
-
return expandHome(currentConfig.admin_socket);
|
|
62
|
-
}
|
|
63
|
-
return join(runtimeRoot(), 'admin.sock');
|
|
62
|
+
return assertUnixSocketPathBudget(join(stateRoot(), 'admin.sock'), 'admin socket path');
|
|
64
63
|
}
|
|
65
64
|
export function dispatcherDir(id) {
|
|
66
|
-
return join(
|
|
65
|
+
return join(stateRoot(), dispatcherPathSegment(id));
|
|
67
66
|
}
|
|
68
67
|
export function dispatcherCodexCwd(id) {
|
|
69
68
|
return join(dispatcherDir(id), 'cwd');
|
|
70
69
|
}
|
|
70
|
+
export function operatorCodexHome() {
|
|
71
|
+
return join(homedir(), '.codex');
|
|
72
|
+
}
|
|
71
73
|
export function dispatcherCodexHome(id) {
|
|
72
|
-
|
|
74
|
+
void id;
|
|
75
|
+
return operatorCodexHome();
|
|
73
76
|
}
|
|
74
77
|
export function dispatcherCodexConfigPath(id) {
|
|
75
78
|
return join(dispatcherCodexHome(id), 'config.toml');
|
|
76
79
|
}
|
|
77
|
-
export function
|
|
78
|
-
return join(
|
|
80
|
+
export function dispatcherWorkspaceCodexSkillsDir(cwd) {
|
|
81
|
+
return join(cwd, '.codex', 'skills');
|
|
82
|
+
}
|
|
83
|
+
export function dispatcherWorkspaceSkillPath(cwd) {
|
|
84
|
+
return join(dispatcherWorkspaceCodexSkillsDir(cwd), 'dispatcher', 'SKILL.md');
|
|
79
85
|
}
|
|
80
86
|
export function dispatcherAppServerControlDir(id) {
|
|
81
|
-
return
|
|
87
|
+
return dispatcherDir(id);
|
|
82
88
|
}
|
|
83
89
|
export function dispatcherSocketPath(id) {
|
|
84
|
-
return join(
|
|
90
|
+
return assertUnixSocketPathBudget(join(dispatcherDir(id), 'codex.sock'), `dispatcher '${id}' Codex socket path`);
|
|
85
91
|
}
|
|
86
92
|
export function dispatcherStdoutLog(id) {
|
|
87
|
-
return
|
|
93
|
+
return dispatcherCodexAppServerLogPath(id);
|
|
88
94
|
}
|
|
89
95
|
export function dispatcherStderrLog(id) {
|
|
90
|
-
return
|
|
96
|
+
return dispatcherCodexAppServerErrorLogPath(id);
|
|
97
|
+
}
|
|
98
|
+
export function serverLogPath() {
|
|
99
|
+
return join(logsRoot(), 'dreamux-server.log');
|
|
100
|
+
}
|
|
101
|
+
export function codexAppServerLogDir() {
|
|
102
|
+
return join(logsRoot(), 'codex-app-server');
|
|
103
|
+
}
|
|
104
|
+
export function feishuChannelLogDir() {
|
|
105
|
+
return join(logsRoot(), 'feishu-channel');
|
|
106
|
+
}
|
|
107
|
+
export function dispatcherCodexAppServerLogPath(id) {
|
|
108
|
+
return join(codexAppServerLogDir(), `${dispatcherPathSegment(id)}.log`);
|
|
109
|
+
}
|
|
110
|
+
export function dispatcherCodexAppServerErrorLogPath(id) {
|
|
111
|
+
return join(codexAppServerLogDir(), `${dispatcherPathSegment(id)}.stderr.log`);
|
|
112
|
+
}
|
|
113
|
+
export function dispatcherStatusPath(id) {
|
|
114
|
+
return join(dispatcherDir(id), 'status.json');
|
|
115
|
+
}
|
|
116
|
+
export function dispatcherAccessPath(id) {
|
|
117
|
+
return join(dispatcherDir(id), 'access.json');
|
|
118
|
+
}
|
|
119
|
+
export function unixSocketPathFitsBudget(path) {
|
|
120
|
+
return Buffer.byteLength(path, 'utf8') <= DREAMUX_UNIX_SOCKET_PATH_MAX_BYTES;
|
|
121
|
+
}
|
|
122
|
+
export function assertUnixSocketPathBudget(path, label) {
|
|
123
|
+
if (unixSocketPathFitsBudget(path))
|
|
124
|
+
return path;
|
|
125
|
+
const bytes = Buffer.byteLength(path, 'utf8');
|
|
126
|
+
throw new Error(`${label} is too long for Unix sockets (${bytes} bytes > ${DREAMUX_UNIX_SOCKET_PATH_MAX_BYTES} safe bytes): ${path}`);
|
|
127
|
+
}
|
|
128
|
+
export function dispatcherPathSegment(id) {
|
|
129
|
+
return validateDispatcherId(id);
|
|
91
130
|
}
|
|
92
131
|
//# sourceMappingURL=paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/runtime/paths.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/runtime/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/secrets.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
export function resolveBotSecret(ref, config) {
|
|
2
|
+
if (ref.startsWith('config:')) {
|
|
3
|
+
const dispatcherId = ref.slice('config:'.length);
|
|
4
|
+
const dispatcher = config.dispatchers.find((item) => item.id === dispatcherId);
|
|
5
|
+
if (dispatcher === undefined ||
|
|
6
|
+
dispatcher.feishu.app_secret.trim() === '') {
|
|
7
|
+
throw new Error(`missing Feishu app_secret in dreamux config for bot_secret_ref=${ref}`);
|
|
8
|
+
}
|
|
9
|
+
return dispatcher.feishu.app_secret;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
if (ref.startsWith('env:')) {
|
|
12
|
+
const varName = ref.slice('env:'.length);
|
|
13
|
+
const value = process.env[varName];
|
|
14
|
+
if (value === undefined || value === '') {
|
|
15
|
+
throw new Error(`bot secret env var '${varName}' is not set (referenced by bot_secret_ref=${ref})`);
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
15
18
|
}
|
|
16
|
-
|
|
19
|
+
throw new Error(`unsupported bot_secret_ref scheme: ${ref}. Use config:<dispatcherId>.`);
|
|
17
20
|
}
|
|
18
21
|
//# sourceMappingURL=secrets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/runtime/secrets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/runtime/secrets.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAAqB;IACjE,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;QAC/E,IACE,UAAU,KAAK,SAAS;YACxB,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAC1C,CAAC;YACD,MAAM,IAAI,KAAK,CACb,kEAAkE,GAAG,EAAE,CACxE,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,uBAAuB,OAAO,8CAA8C,GAAG,GAAG,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,8BAA8B,CACxE,CAAC;AACJ,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
* The dreamux Server — the long-running Node process that hosts N dispatchers.
|
|
3
3
|
*
|
|
4
4
|
* Lifecycle:
|
|
5
|
-
* 1.
|
|
5
|
+
* 1. load dispatcher declarations from config
|
|
6
6
|
* 2. open admin Unix socket (so server-ctl can talk to us even if a
|
|
7
7
|
* dispatcher fails to come up)
|
|
8
8
|
* 3. for each enabled dispatcher: spawn codex, open feishu, start turn worker
|
|
9
9
|
* 4. install SIGTERM/SIGINT handlers for graceful drain
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* Feishu inbound is opened, so the user gets a visible prompt instead of a
|
|
14
|
-
* silent duplicate turn.
|
|
11
|
+
* Current MVP: accepted inbound work is process-local. Restarting the server
|
|
12
|
+
* drops queued and in-flight inbound messages instead of replaying them.
|
|
15
13
|
*/
|
|
16
|
-
import { openDatabase } from './db/schema.js';
|
|
17
|
-
import { DispatcherRepo, InboundRepo } from './db/repository.js';
|
|
18
14
|
import { DispatcherRuntime } from './dispatcher/runtime.js';
|
|
19
15
|
import { channelOutboundToFeishuTarget, createFeishuBot, } from './feishu/bot.js';
|
|
20
|
-
import {
|
|
16
|
+
import { dreamuxFeishuGate, loadDispatcherAccess, saveDispatcherAccess, } from './channel/feishu-gate.js';
|
|
17
|
+
import { formatFeishuMessageForCodex } from './channel/feishu-message.js';
|
|
21
18
|
import { parseCodexArgs, codexArgsToCli } from './runtime/codex-args.js';
|
|
19
|
+
import { feishuMcpCodexArgs } from './codex/mcp-config.js';
|
|
22
20
|
import { resolveBotSecret } from './runtime/secrets.js';
|
|
23
21
|
import { BUILT_IN_DEFAULTS } from './runtime/config.js';
|
|
24
|
-
import {
|
|
22
|
+
import { DispatcherStore, } from './runtime/dispatcher-store.js';
|
|
23
|
+
import { adminSocketPath, dispatcherCodexCwd, setRuntimeConfig, } from './runtime/paths.js';
|
|
25
24
|
import { createAdminSocketServer } from './admin/socket.js';
|
|
25
|
+
export const RECEIVED_REACTION_EMOJI = 'GLANCE';
|
|
26
|
+
const MAX_PENDING_RECEIVED_REACTION_CLEARS = 1024;
|
|
26
27
|
export class Server {
|
|
27
28
|
repos;
|
|
28
|
-
db;
|
|
29
29
|
slots = new Map();
|
|
30
30
|
/**
|
|
31
31
|
* PR #3 review #4: in-flight startDispatcher promises, keyed by id.
|
|
@@ -42,10 +42,8 @@ export class Server {
|
|
|
42
42
|
// happens. paths.runtimeRoot / adminSocketPath / etc. consult this
|
|
43
43
|
// snapshot for non-env defaults (env vars still win).
|
|
44
44
|
setRuntimeConfig(opts.config ?? BUILT_IN_DEFAULTS);
|
|
45
|
-
this.db = openDatabase({ path: opts.databasePath ?? databasePath() });
|
|
46
45
|
this.repos = {
|
|
47
|
-
dispatchers: new
|
|
48
|
-
inbound: new InboundRepo(this.db),
|
|
46
|
+
dispatchers: new DispatcherStore(opts.config ?? BUILT_IN_DEFAULTS),
|
|
49
47
|
};
|
|
50
48
|
}
|
|
51
49
|
/** Effective config (caller-supplied or built-in defaults). */
|
|
@@ -56,7 +54,7 @@ export class Server {
|
|
|
56
54
|
* Final codex binary path. Precedence:
|
|
57
55
|
* 1. ServerOptions.codexBinPath (test seam)
|
|
58
56
|
* 2. CODEX_HOST_CODEX_BIN env (CI / debug escape hatch)
|
|
59
|
-
* 3. config.codex.bin (~/.dreamux/config.
|
|
57
|
+
* 3. config.codex.bin (~/.dreamux/config.json)
|
|
60
58
|
* 4. 'codex' (PATH lookup)
|
|
61
59
|
*/
|
|
62
60
|
resolveCodexBinPath() {
|
|
@@ -111,52 +109,70 @@ export class Server {
|
|
|
111
109
|
if (this.slots.has(id))
|
|
112
110
|
return;
|
|
113
111
|
const cfg = this.effectiveConfig();
|
|
112
|
+
const dispatcherConfig = cfg.dispatchers.find((dispatcher) => dispatcher.id === id);
|
|
114
113
|
const codexArgs = parseCodexArgs(row.codex_args_json, {
|
|
115
114
|
approvalPolicy: cfg.codex.approval_policy,
|
|
116
115
|
sandboxMode: cfg.codex.sandbox_mode,
|
|
117
116
|
extraArgs: cfg.codex.extra_args,
|
|
118
117
|
});
|
|
118
|
+
const codexCliArgs = [
|
|
119
|
+
...codexArgsToCli(codexArgs),
|
|
120
|
+
...feishuMcpCodexArgs({
|
|
121
|
+
dispatcherId: id,
|
|
122
|
+
adminSocketPath: this.opts.adminSocketPath ?? adminSocketPath(),
|
|
123
|
+
}),
|
|
124
|
+
];
|
|
119
125
|
const botSecret = this.opts.skipBotSecret
|
|
120
126
|
? ''
|
|
121
|
-
: resolveBotSecret(row.bot_secret_ref);
|
|
127
|
+
: resolveBotSecret(row.bot_secret_ref, cfg);
|
|
122
128
|
const bot = this.opts.botFactory
|
|
123
129
|
? this.opts.botFactory(row, botSecret)
|
|
124
130
|
: createFeishuBot({ appId: row.bot_app_id, appSecret: botSecret });
|
|
131
|
+
const channelState = {
|
|
132
|
+
receivedReactions: new Map(),
|
|
133
|
+
pendingReceivedReactionClears: new Set(),
|
|
134
|
+
};
|
|
125
135
|
const runtime = new DispatcherRuntime(row, {
|
|
126
136
|
dispatchers: this.repos.dispatchers,
|
|
127
|
-
inbound: this.repos.inbound,
|
|
128
|
-
outbound: {
|
|
129
|
-
send: async (target, text) => (await bot.send(channelOutboundToFeishuTarget(target), text)).messageIds,
|
|
130
|
-
},
|
|
131
137
|
codexBinPath: this.resolveCodexBinPath(),
|
|
132
138
|
codexProcessFactory: this.opts.codexProcessFactory,
|
|
133
139
|
codexClientFactory: this.opts.codexClientFactory,
|
|
134
140
|
codexHomeDoctor: this.opts.codexHomeDoctor,
|
|
135
|
-
resolveExtraArgs: () =>
|
|
141
|
+
resolveExtraArgs: () => codexCliArgs,
|
|
136
142
|
handshakeTimeoutMs: cfg.codex.initialize_timeout_ms,
|
|
137
|
-
|
|
138
|
-
|
|
143
|
+
extraEnv: dispatcherConfig?.codex.extra_env ?? {},
|
|
144
|
+
restartBackoffBaseMs: this.opts.codexRestartBackoffBaseMs,
|
|
145
|
+
restartBackoffMaxMs: this.opts.codexRestartBackoffMaxMs,
|
|
139
146
|
});
|
|
140
147
|
try {
|
|
141
148
|
await runtime.start();
|
|
142
149
|
await bot.start(async (event) => {
|
|
143
|
-
const
|
|
150
|
+
const access = loadDispatcherAccess(id);
|
|
151
|
+
const gate = dreamuxFeishuGate({
|
|
144
152
|
senderId: event.senderId,
|
|
145
153
|
senderType: event.senderType,
|
|
154
|
+
chatId: event.chatId,
|
|
146
155
|
chatType: event.chatType,
|
|
156
|
+
mentions: event.mentions,
|
|
147
157
|
botOpenId: bot.botOpenId,
|
|
148
|
-
});
|
|
158
|
+
}, access);
|
|
159
|
+
saveDispatcherAccess(id, gate.access);
|
|
160
|
+
if (gate.warning !== null) {
|
|
161
|
+
console.error(`[server] trust-domain warning for dispatcher '${id}': ${gate.warning}`);
|
|
162
|
+
}
|
|
149
163
|
if (gate.action === 'drop') {
|
|
150
164
|
console.error(`[server] dropped feishu inbound for dispatcher '${id}': ${gate.reason}`);
|
|
151
165
|
return;
|
|
152
166
|
}
|
|
153
|
-
runtime.enqueueInbound({
|
|
167
|
+
const queued = runtime.enqueueInbound({
|
|
154
168
|
source_chat_id: event.chatId,
|
|
155
169
|
source_message_id: event.messageId,
|
|
156
170
|
sender_id: event.senderId,
|
|
157
|
-
|
|
158
|
-
parsed_text: event.parsedText,
|
|
171
|
+
parsed_text: formatFeishuMessageForCodex(event),
|
|
159
172
|
});
|
|
173
|
+
if (queued) {
|
|
174
|
+
await addReceivedReaction(id, bot, channelState, event);
|
|
175
|
+
}
|
|
160
176
|
});
|
|
161
177
|
}
|
|
162
178
|
catch (err) {
|
|
@@ -176,7 +192,7 @@ export class Server {
|
|
|
176
192
|
}
|
|
177
193
|
throw err;
|
|
178
194
|
}
|
|
179
|
-
this.slots.set(id, { row, runtime, bot });
|
|
195
|
+
this.slots.set(id, { row, runtime, bot, channelState });
|
|
180
196
|
console.error(`[server] dispatcher '${id}' is ready (bot=${row.bot_app_id} cwd=${row.codex_cwd ?? dispatcherCodexCwd(id)})`);
|
|
181
197
|
}
|
|
182
198
|
/** Gracefully stop one dispatcher. Idempotent. */
|
|
@@ -201,7 +217,33 @@ export class Server {
|
|
|
201
217
|
getRuntime(id) {
|
|
202
218
|
return this.slots.get(id)?.runtime ?? null;
|
|
203
219
|
}
|
|
204
|
-
|
|
220
|
+
async replyFromMcp(input) {
|
|
221
|
+
const slot = this.mustRunningSlot(input.dispatcherId);
|
|
222
|
+
const result = await slot.bot.send(channelOutboundToFeishuTarget({
|
|
223
|
+
conversationId: input.chatId,
|
|
224
|
+
...(input.messageId !== undefined ? { replyTo: input.messageId } : {}),
|
|
225
|
+
...(input.mentionUserIds !== undefined
|
|
226
|
+
? { mentionUsers: input.mentionUserIds }
|
|
227
|
+
: {}),
|
|
228
|
+
}), input.text);
|
|
229
|
+
if (input.messageId !== undefined) {
|
|
230
|
+
await clearReceivedReaction(input.dispatcherId, slot.bot, slot.channelState, input.messageId);
|
|
231
|
+
}
|
|
232
|
+
return { message_ids: result.messageIds };
|
|
233
|
+
}
|
|
234
|
+
async reactFromMcp(input) {
|
|
235
|
+
const slot = this.mustRunningSlot(input.dispatcherId);
|
|
236
|
+
const reactionId = await slot.bot.addReaction(input.messageId, input.emoji);
|
|
237
|
+
return { reaction_id: reactionId };
|
|
238
|
+
}
|
|
239
|
+
mustRunningSlot(id) {
|
|
240
|
+
const slot = this.slots.get(id);
|
|
241
|
+
if (slot === undefined) {
|
|
242
|
+
throw new Error(`dispatcher '${id}' is not running`);
|
|
243
|
+
}
|
|
244
|
+
return slot;
|
|
245
|
+
}
|
|
246
|
+
/** Summary of every declared dispatcher (config-backed, includes stopped). */
|
|
205
247
|
summarize() {
|
|
206
248
|
return this.repos.dispatchers.list().map((row) => {
|
|
207
249
|
const runtime = this.slots.get(row.dispatcher_id)?.runtime;
|
|
@@ -214,7 +256,7 @@ export class Server {
|
|
|
214
256
|
};
|
|
215
257
|
});
|
|
216
258
|
}
|
|
217
|
-
/** Graceful shutdown — drain dispatchers
|
|
259
|
+
/** Graceful shutdown — drain dispatchers and close the admin socket. */
|
|
218
260
|
async shutdown() {
|
|
219
261
|
if (this.shuttingDown)
|
|
220
262
|
return;
|
|
@@ -227,20 +269,52 @@ export class Server {
|
|
|
227
269
|
await this.admin.close();
|
|
228
270
|
this.admin = null;
|
|
229
271
|
}
|
|
230
|
-
|
|
231
|
-
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
async function addReceivedReaction(dispatcherId, bot, channelState, event) {
|
|
275
|
+
try {
|
|
276
|
+
const reactionId = await bot.addReaction(event.messageId, RECEIVED_REACTION_EMOJI);
|
|
277
|
+
if (reactionId === '') {
|
|
278
|
+
console.error(`[server] Feishu returned no reaction_id for the received reaction in dispatcher '${dispatcherId}'`);
|
|
279
|
+
channelState.pendingReceivedReactionClears.delete(event.messageId);
|
|
280
|
+
return;
|
|
232
281
|
}
|
|
233
|
-
|
|
234
|
-
|
|
282
|
+
channelState.receivedReactions.set(event.messageId, {
|
|
283
|
+
chatId: event.chatId,
|
|
284
|
+
reactionId,
|
|
285
|
+
});
|
|
286
|
+
if (channelState.pendingReceivedReactionClears.has(event.messageId)) {
|
|
287
|
+
await clearReceivedReaction(dispatcherId, bot, channelState, event.messageId);
|
|
235
288
|
}
|
|
236
289
|
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
channelState.pendingReceivedReactionClears.delete(event.messageId);
|
|
292
|
+
console.error(`[server] failed to add the received reaction for dispatcher '${dispatcherId}':`, err);
|
|
293
|
+
}
|
|
237
294
|
}
|
|
238
|
-
function
|
|
295
|
+
async function clearReceivedReaction(dispatcherId, bot, channelState, messageId) {
|
|
296
|
+
const reaction = channelState.receivedReactions.get(messageId);
|
|
297
|
+
if (reaction === undefined) {
|
|
298
|
+
rememberPendingReceivedReactionClear(channelState, messageId);
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
239
301
|
try {
|
|
240
|
-
|
|
302
|
+
await bot.removeReaction(messageId, reaction.reactionId);
|
|
303
|
+
channelState.receivedReactions.delete(messageId);
|
|
304
|
+
channelState.pendingReceivedReactionClears.delete(messageId);
|
|
305
|
+
}
|
|
306
|
+
catch (err) {
|
|
307
|
+
console.error(`[server] failed to clear the received reaction for dispatcher '${dispatcherId}' message '${messageId}':`, err);
|
|
241
308
|
}
|
|
242
|
-
|
|
243
|
-
|
|
309
|
+
}
|
|
310
|
+
function rememberPendingReceivedReactionClear(channelState, messageId) {
|
|
311
|
+
channelState.pendingReceivedReactionClears.add(messageId);
|
|
312
|
+
while (channelState.pendingReceivedReactionClears.size >
|
|
313
|
+
MAX_PENDING_RECEIVED_REACTION_CLEARS) {
|
|
314
|
+
const oldest = channelState.pendingReceivedReactionClears.values().next().value;
|
|
315
|
+
if (typeof oldest !== 'string')
|
|
316
|
+
return;
|
|
317
|
+
channelState.pendingReceivedReactionClears.delete(oldest);
|
|
244
318
|
}
|
|
245
319
|
}
|
|
246
320
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@excitedjs/dreamux",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Codex-host server — single-session MVP. One node process hosts N dispatchers, each binding 1 Feishu bot + 1 Codex thread.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,27 +14,27 @@
|
|
|
14
14
|
"node": ">=22.7"
|
|
15
15
|
},
|
|
16
16
|
"bin": {
|
|
17
|
-
"dreamux": "./bin/dreamux"
|
|
17
|
+
"dreamux": "./bin/dreamux",
|
|
18
|
+
"tm": "./bin/tm"
|
|
18
19
|
},
|
|
19
20
|
"files": [
|
|
20
21
|
"bin",
|
|
21
22
|
"dist",
|
|
22
|
-
"
|
|
23
|
+
"skills",
|
|
23
24
|
"README.md",
|
|
24
25
|
"LICENSE"
|
|
25
26
|
],
|
|
26
27
|
"dependencies": {
|
|
27
|
-
"
|
|
28
|
+
"@excitedjs/tm": "2.2.1",
|
|
28
29
|
"smol-toml": "^1.6.1",
|
|
29
30
|
"ws": "^8.18.0",
|
|
30
31
|
"yargs": "^17.7.2",
|
|
31
32
|
"@clack/prompts": "^1.5.0",
|
|
32
33
|
"execa": "^9.6.1",
|
|
33
34
|
"plist": "^5.0.0",
|
|
34
|
-
"@excitedjs/feishu-transport": "0.0
|
|
35
|
+
"@excitedjs/feishu-transport": "0.1.0"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
|
-
"@types/better-sqlite3": "^7.6.12",
|
|
38
38
|
"@types/node": "^22.10.0",
|
|
39
39
|
"@types/ws": "^8.5.13",
|
|
40
40
|
"@types/yargs": "^17.0.35",
|