@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/config.js
CHANGED
|
@@ -1,36 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Global dreamux configuration loaded from `~/.dreamux/config.
|
|
2
|
+
* Global dreamux configuration loaded from `~/.dreamux/config.json`.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `CODEX_HOST_CODEX_BIN`, every retry/timeout tuning was buried in
|
|
7
|
-
* source-level constants. This file is the user-editable surface for
|
|
8
|
-
* machine-wide defaults; per-dispatcher settings still override it, and
|
|
9
|
-
* the existing env vars still override everything (escape hatch for CI
|
|
10
|
-
* and one-off debug runs).
|
|
4
|
+
* Layout:
|
|
5
|
+
* ~/.dreamux/config.json dreamux configuration and local channel secrets
|
|
11
6
|
*
|
|
12
|
-
*
|
|
13
|
-
* ~/.dreamux/ user-editable configuration (this module)
|
|
14
|
-
* ~/.codex-host/ runtime data (SQLite, sockets, dispatcher logs)
|
|
15
|
-
* Mixing them was the original sin; keeping them apart is what makes a
|
|
16
|
-
* `rm -rf ~/.codex-host` recovery safe.
|
|
17
|
-
*
|
|
18
|
-
* Format: TOML (matches codex's own `~/.codex/config.toml`).
|
|
19
|
-
* Parse failures fail-fast with the offending line.
|
|
7
|
+
* Format: JSON. dreamux does not write TOML files.
|
|
20
8
|
*/
|
|
21
9
|
import { homedir } from 'node:os';
|
|
22
10
|
import { dirname, isAbsolute, join } from 'node:path';
|
|
23
|
-
import { closeSync, mkdirSync, openSync, readFileSync, writeSync, } from 'node:fs';
|
|
24
|
-
import {
|
|
25
|
-
/**
|
|
26
|
-
* Built-in defaults — identical to what individual modules used before this
|
|
27
|
-
* config existed. Anything you change here is a behavior change for fresh
|
|
28
|
-
* installs (and only fresh installs; existing `~/.dreamux/config.toml`
|
|
29
|
-
* files are not touched on upgrade).
|
|
30
|
-
*/
|
|
11
|
+
import { closeSync, existsSync, mkdirSync, openSync, readFileSync, statSync, writeSync, } from 'node:fs';
|
|
12
|
+
import { validateDispatcherId } from './dispatcher-id.js';
|
|
31
13
|
export const BUILT_IN_DEFAULTS = {
|
|
32
|
-
runtime_dir: '~/.codex-host',
|
|
33
|
-
admin_socket: null,
|
|
34
14
|
codex: {
|
|
35
15
|
bin: 'codex',
|
|
36
16
|
approval_policy: 'never',
|
|
@@ -38,154 +18,81 @@ export const BUILT_IN_DEFAULTS = {
|
|
|
38
18
|
extra_args: [],
|
|
39
19
|
initialize_timeout_ms: 10_000,
|
|
40
20
|
},
|
|
41
|
-
|
|
42
|
-
retries: 3,
|
|
43
|
-
retry_delay_ms: 1000,
|
|
44
|
-
},
|
|
21
|
+
dispatchers: [],
|
|
45
22
|
};
|
|
46
|
-
/**
|
|
47
|
-
* Codex 0.134 sandbox modes (from `codex --help`'s `-s, --sandbox` choices).
|
|
48
|
-
* Kept in sync with `codex-args.ts` (same allowlist enforced at the
|
|
49
|
-
* per-dispatcher level).
|
|
50
|
-
*/
|
|
51
23
|
export const ALLOWED_SANDBOX_MODES = new Set([
|
|
52
24
|
'read-only',
|
|
53
25
|
'workspace-write',
|
|
54
26
|
'danger-full-access',
|
|
55
27
|
]);
|
|
56
|
-
|
|
57
|
-
* The literal TOML text written on first boot. Comments are part of the
|
|
58
|
-
* UX — they tell an operator opening the file for the first time what
|
|
59
|
-
* each key means and where to read more.
|
|
60
|
-
*/
|
|
61
|
-
export const DEFAULT_CONFIG_TOML = `# dreamux global configuration (~/.dreamux/config.toml)
|
|
62
|
-
#
|
|
63
|
-
# Edit this file and restart \`dreamux serve\` to apply changes.
|
|
64
|
-
# Runtime data (SQLite, sockets, dispatcher logs) lives separately in
|
|
65
|
-
# \`runtime_dir\` below — this file holds only user-editable settings.
|
|
66
|
-
# See .agents/decisions/global-config-dir.md for the design rationale.
|
|
67
|
-
#
|
|
68
|
-
# Precedence (highest wins):
|
|
69
|
-
# 1. environment variables (CODEX_HOST_RUNTIME_DIR, CODEX_HOST_ADMIN_SOCKET,
|
|
70
|
-
# CODEX_HOST_CODEX_BIN) — escape hatch for CI and one-off debug runs
|
|
71
|
-
# 2. per-dispatcher fields (codex_args_json: approvalPolicy, extraArgs)
|
|
72
|
-
# 3. this file
|
|
73
|
-
# 4. built-in defaults baked into the binary
|
|
74
|
-
|
|
75
|
-
# Where dreamux stores runtime state (SQLite database, admin Unix socket,
|
|
76
|
-
# per-dispatcher Codex sockets and logs).
|
|
77
|
-
#
|
|
78
|
-
# \`~/\` is expanded to your home directory. Relative paths are not supported.
|
|
79
|
-
runtime_dir = "~/.codex-host"
|
|
80
|
-
|
|
81
|
-
# Admin Unix socket path. Leave commented to derive as <runtime_dir>/admin.sock.
|
|
82
|
-
# admin_socket = "~/.codex-host/admin.sock"
|
|
83
|
-
|
|
84
|
-
[codex]
|
|
85
|
-
# Path to the codex CLI. Bare name (\`codex\`) resolves via $PATH; an
|
|
86
|
-
# absolute path (\`/opt/codex/bin/codex\`) skips the lookup.
|
|
87
|
-
bin = "codex"
|
|
88
|
-
|
|
89
|
-
# Default approval policy applied to every dispatcher. A per-dispatcher
|
|
90
|
-
# \`codex_args_json\` (set via \`dreamux dispatcher add --codex-args-json ...\`)
|
|
91
|
-
# overrides this when present. Must be one of:
|
|
92
|
-
# never | auto | auto-approve | on-failure
|
|
93
|
-
# See issue #2 §"信任模型" for the trust-model implications of \`never\`.
|
|
94
|
-
approval_policy = "never"
|
|
95
|
-
|
|
96
|
-
# Default sandbox mode codex executes shell commands under. Per-dispatcher
|
|
97
|
-
# \`codex_args_json.sandboxMode\` overrides this when present.
|
|
98
|
-
# Must be one of:
|
|
99
|
-
# read-only — codex cannot write any files
|
|
100
|
-
# workspace-write — codex can write inside its cwd; recommended
|
|
101
|
-
# baseline for trusted-local
|
|
102
|
-
# danger-full-access — no sandbox; pair with approval_policy="never"
|
|
103
|
-
# only when codex must spawn helpers that chdir
|
|
104
|
-
# out of its cwd (e.g. tm dispatching into other
|
|
105
|
-
# worktrees). Trust model becomes equivalent to
|
|
106
|
-
# giving any allowed bot user shell access.
|
|
107
|
-
sandbox_mode = "workspace-write"
|
|
108
|
-
|
|
109
|
-
# Extra args appended to every codex app-server invocation. Per-dispatcher
|
|
110
|
-
# extra_args (in codex_args_json) are appended *after* these.
|
|
111
|
-
extra_args = []
|
|
112
|
-
|
|
113
|
-
# Handshake timeout. Without this, dreamux would hang forever on a codex
|
|
114
|
-
# that accepts the WebSocket upgrade but never replies to \`initialize\`
|
|
115
|
-
# (PR #5). 0 is not a valid value — set to a positive integer.
|
|
116
|
-
initialize_timeout_ms = 10000
|
|
117
|
-
|
|
118
|
-
[outbound]
|
|
119
|
-
# How many times to retry a failed Feishu send before parking the inbound
|
|
120
|
-
# row in \`outbound_failed\`. The Codex turn never re-runs on retry — only
|
|
121
|
-
# the outbound delivery is retried (PR #3 review #1).
|
|
122
|
-
retries = 3
|
|
123
|
-
|
|
124
|
-
# Initial delay between outbound retries (ms).
|
|
125
|
-
retry_delay_ms = 1000
|
|
126
|
-
`;
|
|
28
|
+
export const DEFAULT_CONFIG_JSON = `${JSON.stringify(BUILT_IN_DEFAULTS, null, 2)}\n`;
|
|
127
29
|
export function globalConfigDir(overrides = {}) {
|
|
128
30
|
if (overrides.configDir !== undefined)
|
|
129
31
|
return overrides.configDir;
|
|
130
32
|
return process.env['DREAMUX_CONFIG_DIR'] || join(homedir(), '.dreamux');
|
|
131
33
|
}
|
|
132
34
|
export function globalConfigFile(overrides = {}) {
|
|
35
|
+
return join(globalConfigDir(overrides), 'config.json');
|
|
36
|
+
}
|
|
37
|
+
export function legacyGlobalConfigFile(overrides = {}) {
|
|
133
38
|
return join(globalConfigDir(overrides), 'config.toml');
|
|
134
39
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Load `<configDir>/config.toml`, creating it with default content on
|
|
137
|
-
* first boot. Throws with a file-line-pointing message when TOML parsing
|
|
138
|
-
* fails so the operator can fix the file without spelunking through
|
|
139
|
-
* libraries.
|
|
140
|
-
*
|
|
141
|
-
* Safe to call from `dreamux serve` on every boot — first call ensures
|
|
142
|
-
* the directory and file exist with sensible defaults; subsequent calls
|
|
143
|
-
* just read.
|
|
144
|
-
*
|
|
145
|
-
* PR #8 review #1: create the file with the atomic `wx` (O_CREAT|O_EXCL)
|
|
146
|
-
* flag, not check-then-write. Two server processes booting concurrently
|
|
147
|
-
* against the same `~/.dreamux/` would otherwise both see "file absent"
|
|
148
|
-
* and one would overwrite what the other wrote. Posix guarantees only
|
|
149
|
-
* one `wx` open wins; the loser gets EEXIST and falls through to the
|
|
150
|
-
* read path.
|
|
151
|
-
*/
|
|
152
40
|
export function loadOrInitConfig(overrides = {}) {
|
|
153
41
|
const file = globalConfigFile(overrides);
|
|
154
|
-
|
|
155
|
-
// but it can still legitimately fail (e.g. parent is unwritable). Let
|
|
156
|
-
// the EACCES propagate — the user needs to see it.
|
|
42
|
+
assertNoLegacyTomlOnly(overrides);
|
|
157
43
|
mkdirSync(dirname(file), { recursive: true });
|
|
158
|
-
const createdOnThisBoot = atomicWriteIfAbsent(file,
|
|
159
|
-
const
|
|
44
|
+
const createdOnThisBoot = atomicWriteIfAbsent(file, DEFAULT_CONFIG_JSON);
|
|
45
|
+
const config = readConfigFile(file);
|
|
46
|
+
return { config, configFile: file, createdOnThisBoot };
|
|
47
|
+
}
|
|
48
|
+
export function loadConfig(overrides = {}) {
|
|
49
|
+
const file = globalConfigFile(overrides);
|
|
50
|
+
assertNoLegacyTomlOnly(overrides);
|
|
51
|
+
return { config: readConfigFile(file), configFile: file };
|
|
52
|
+
}
|
|
53
|
+
export function stringifyConfig(config) {
|
|
54
|
+
return `${JSON.stringify(config, null, 2)}\n`;
|
|
55
|
+
}
|
|
56
|
+
export function redactConfigForDisplay(raw, file) {
|
|
160
57
|
let parsed;
|
|
161
58
|
try {
|
|
162
|
-
parsed =
|
|
59
|
+
parsed = JSON.parse(raw);
|
|
163
60
|
}
|
|
164
61
|
catch (err) {
|
|
165
|
-
|
|
62
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
63
|
+
throw new Error(`dreamux config parse error in ${file}: ${msg}\n` +
|
|
64
|
+
'Fix the JSON syntax before running `dreamux config show`.');
|
|
166
65
|
}
|
|
167
|
-
|
|
168
|
-
return {
|
|
66
|
+
redactFeishuSecrets(parsed);
|
|
67
|
+
return `${JSON.stringify(parsed, null, 2)}\n`;
|
|
169
68
|
}
|
|
170
|
-
|
|
171
|
-
|
|
69
|
+
function readConfigFile(file) {
|
|
70
|
+
if (!existsSync(file)) {
|
|
71
|
+
throw new Error(`dreamux config is missing at ${file}.\n` +
|
|
72
|
+
'Run `dreamux onboard` to create it before starting the server.');
|
|
73
|
+
}
|
|
74
|
+
assertConfigFileMode(file);
|
|
172
75
|
const raw = readFileSync(file, 'utf8');
|
|
173
76
|
let parsed;
|
|
174
77
|
try {
|
|
175
|
-
parsed =
|
|
78
|
+
parsed = JSON.parse(raw);
|
|
176
79
|
}
|
|
177
80
|
catch (err) {
|
|
178
|
-
|
|
81
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
82
|
+
throw new Error(`dreamux config parse error in ${file}: ${msg}\n` +
|
|
83
|
+
`Fix the JSON syntax in ${file}, then restart. Run \`dreamux onboard\` if you need to recreate the config.`);
|
|
179
84
|
}
|
|
180
|
-
return
|
|
85
|
+
return mergeWithDefaults(parsed, file);
|
|
86
|
+
}
|
|
87
|
+
export function assertNoLegacyTomlOnly(overrides = {}) {
|
|
88
|
+
const jsonFile = globalConfigFile(overrides);
|
|
89
|
+
const tomlFile = legacyGlobalConfigFile(overrides);
|
|
90
|
+
if (existsSync(jsonFile) || !existsSync(tomlFile))
|
|
91
|
+
return;
|
|
92
|
+
throw new Error(`legacy dreamux config detected at ${tomlFile}, but ${jsonFile} does not exist.\n` +
|
|
93
|
+
'dreamux no longer reads TOML config and will not create default JSON over an existing install.\n' +
|
|
94
|
+
`Create ${jsonFile} manually with a dispatchers array, then move ${tomlFile} aside.`);
|
|
181
95
|
}
|
|
182
|
-
/**
|
|
183
|
-
* Atomic create-if-absent. Returns true if this call created the file.
|
|
184
|
-
*
|
|
185
|
-
* Uses Node's `wx` flag, which maps to POSIX `open(O_CREAT | O_EXCL)`.
|
|
186
|
-
* Two processes racing the same path see exactly one EEXIST and exactly
|
|
187
|
-
* one success — no torn writes, no overwriting each other.
|
|
188
|
-
*/
|
|
189
96
|
function atomicWriteIfAbsent(file, content) {
|
|
190
97
|
let fd;
|
|
191
98
|
try {
|
|
@@ -204,38 +111,28 @@ function atomicWriteIfAbsent(file, content) {
|
|
|
204
111
|
}
|
|
205
112
|
return true;
|
|
206
113
|
}
|
|
207
|
-
function
|
|
208
|
-
if (
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
216
|
-
return new Error(`dreamux config parse error in ${file}: ${msg}\n` +
|
|
217
|
-
`Fix the TOML syntax in ${file} and restart, or delete the file to regenerate defaults.`);
|
|
114
|
+
export function assertConfigFileMode(file) {
|
|
115
|
+
if (process.platform === 'win32')
|
|
116
|
+
return;
|
|
117
|
+
const mode = statSync(file).mode & 0o777;
|
|
118
|
+
if (mode === 0o600)
|
|
119
|
+
return;
|
|
120
|
+
throw new Error(`dreamux config file must be mode 0600: ${file} has mode 0${mode.toString(8)}`);
|
|
218
121
|
}
|
|
219
|
-
/**
|
|
220
|
-
* Merge user-supplied TOML object with built-in defaults. Unknown top-level
|
|
221
|
-
* keys are tolerated (forward-compat with newer config files); known keys
|
|
222
|
-
* are validated for type and (where relevant) value membership.
|
|
223
|
-
*/
|
|
224
122
|
function mergeWithDefaults(raw, file) {
|
|
225
|
-
if (
|
|
226
|
-
throw new Error(`dreamux config error in ${file}: top-level must be
|
|
123
|
+
if (!isPlainObject(raw)) {
|
|
124
|
+
throw new Error(`dreamux config error in ${file}: top-level must be an object`);
|
|
227
125
|
}
|
|
228
|
-
|
|
229
|
-
const codexIn = isPlainObject(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
126
|
+
rejectUnknownKeys(raw, new Set(['codex', 'dispatchers']), file, '');
|
|
127
|
+
const codexIn = isPlainObject(raw['codex']) ? raw['codex'] : {};
|
|
128
|
+
rejectUnknownKeys(codexIn, new Set([
|
|
129
|
+
'bin',
|
|
130
|
+
'approval_policy',
|
|
131
|
+
'sandbox_mode',
|
|
132
|
+
'extra_args',
|
|
133
|
+
'initialize_timeout_ms',
|
|
134
|
+
]), file, 'codex.');
|
|
236
135
|
const approval_policy = requireString(codexIn, 'approval_policy', BUILT_IN_DEFAULTS.codex.approval_policy, file, 'codex.');
|
|
237
|
-
// Validate approval_policy against the same allowlist as codex-args.ts.
|
|
238
|
-
// Keep the two in sync — see the Rush + pnpm decision / issue #2 §"信任模型".
|
|
239
136
|
const ALLOWED_POLICIES = new Set([
|
|
240
137
|
'never',
|
|
241
138
|
'auto',
|
|
@@ -251,23 +148,104 @@ function mergeWithDefaults(raw, file) {
|
|
|
251
148
|
throw new Error(`dreamux config error in ${file}: codex.sandbox_mode='${sandbox_mode}' ` +
|
|
252
149
|
`is not one of ${Array.from(ALLOWED_SANDBOX_MODES).join(' | ')}`);
|
|
253
150
|
}
|
|
254
|
-
const extra_args = requireStringArray(codexIn, 'extra_args', BUILT_IN_DEFAULTS.codex.extra_args, file, 'codex.');
|
|
255
|
-
const initialize_timeout_ms = requirePositiveInt(codexIn, 'initialize_timeout_ms', BUILT_IN_DEFAULTS.codex.initialize_timeout_ms, file, 'codex.');
|
|
256
|
-
const retries = requireNonNegativeInt(outboundIn, 'retries', BUILT_IN_DEFAULTS.outbound.retries, file, 'outbound.');
|
|
257
|
-
const retry_delay_ms = requireNonNegativeInt(outboundIn, 'retry_delay_ms', BUILT_IN_DEFAULTS.outbound.retry_delay_ms, file, 'outbound.');
|
|
258
151
|
return {
|
|
259
|
-
runtime_dir,
|
|
260
|
-
admin_socket,
|
|
261
152
|
codex: {
|
|
262
153
|
bin: requireString(codexIn, 'bin', BUILT_IN_DEFAULTS.codex.bin, file, 'codex.'),
|
|
263
154
|
approval_policy,
|
|
264
155
|
sandbox_mode,
|
|
265
|
-
extra_args,
|
|
266
|
-
initialize_timeout_ms,
|
|
156
|
+
extra_args: requireStringArray(codexIn, 'extra_args', BUILT_IN_DEFAULTS.codex.extra_args, file, 'codex.'),
|
|
157
|
+
initialize_timeout_ms: requirePositiveInt(codexIn, 'initialize_timeout_ms', BUILT_IN_DEFAULTS.codex.initialize_timeout_ms, file, 'codex.'),
|
|
267
158
|
},
|
|
268
|
-
|
|
159
|
+
dispatchers: readDispatchers(raw['dispatchers'], file),
|
|
269
160
|
};
|
|
270
161
|
}
|
|
162
|
+
function readDispatchers(rawDispatchers, file) {
|
|
163
|
+
if (rawDispatchers === undefined)
|
|
164
|
+
return [];
|
|
165
|
+
if (!Array.isArray(rawDispatchers)) {
|
|
166
|
+
throw new Error(`dreamux config error in ${file}: dispatchers must be an array (got ${describeType(rawDispatchers)})`);
|
|
167
|
+
}
|
|
168
|
+
const out = [];
|
|
169
|
+
const ids = new Set();
|
|
170
|
+
const appIdToDispatcher = new Map();
|
|
171
|
+
for (let index = 0; index < rawDispatchers.length; index++) {
|
|
172
|
+
const raw = rawDispatchers[index];
|
|
173
|
+
const prefix = `dispatchers[${index}].`;
|
|
174
|
+
if (!isPlainObject(raw)) {
|
|
175
|
+
throw new Error(`dreamux config error in ${file}: dispatchers[${index}] must be an object (got ${describeType(raw)})`);
|
|
176
|
+
}
|
|
177
|
+
rejectUnknownKeys(raw, new Set(['id', 'cwd', 'enabled', 'feishu', 'codex']), file, prefix);
|
|
178
|
+
const id = validateDispatcherId(requireNonEmptyString(raw, 'id', file, prefix), `${prefix}id`);
|
|
179
|
+
if (ids.has(id)) {
|
|
180
|
+
throw new Error(`dreamux config error in ${file}: dispatchers[${index}].id duplicates dispatcher '${id}'`);
|
|
181
|
+
}
|
|
182
|
+
ids.add(id);
|
|
183
|
+
const feishu = readDispatcherFeishu(raw['feishu'], file, prefix);
|
|
184
|
+
const app_id = feishu.app_id;
|
|
185
|
+
const existing = appIdToDispatcher.get(app_id);
|
|
186
|
+
if (existing !== undefined) {
|
|
187
|
+
throw new Error(`dreamux config error in ${file}: dispatchers[${index}].feishu.app_id duplicates dispatcher '${existing}'`);
|
|
188
|
+
}
|
|
189
|
+
appIdToDispatcher.set(app_id, id);
|
|
190
|
+
const cwd = readOptionalString(raw, 'cwd', file, prefix);
|
|
191
|
+
out.push({
|
|
192
|
+
id,
|
|
193
|
+
cwd: cwd === null ? null : expandHome(cwd),
|
|
194
|
+
enabled: readOptionalBoolean(raw, 'enabled', true, file, prefix),
|
|
195
|
+
feishu,
|
|
196
|
+
codex: readDispatcherCodex(raw['codex'], file, prefix),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
function readDispatcherFeishu(rawFeishu, file, dispatcherPrefix) {
|
|
202
|
+
const prefix = `${dispatcherPrefix}feishu.`;
|
|
203
|
+
if (!isPlainObject(rawFeishu)) {
|
|
204
|
+
throw new Error(`dreamux config error in ${file}: ${dispatcherPrefix}feishu must be an object (got ${describeType(rawFeishu)})`);
|
|
205
|
+
}
|
|
206
|
+
rejectUnknownKeys(rawFeishu, new Set(['app_id', 'app_secret']), file, prefix);
|
|
207
|
+
return {
|
|
208
|
+
app_id: requireNonEmptyString(rawFeishu, 'app_id', file, prefix),
|
|
209
|
+
app_secret: requireNonEmptyString(rawFeishu, 'app_secret', file, prefix),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function readDispatcherCodex(rawCodex, file, dispatcherPrefix) {
|
|
213
|
+
const prefix = `${dispatcherPrefix}codex.`;
|
|
214
|
+
if (rawCodex === undefined) {
|
|
215
|
+
return {
|
|
216
|
+
approval_policy: null,
|
|
217
|
+
sandbox_mode: null,
|
|
218
|
+
extra_args: [],
|
|
219
|
+
extra_env: {},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
if (!isPlainObject(rawCodex)) {
|
|
223
|
+
throw new Error(`dreamux config error in ${file}: ${dispatcherPrefix}codex must be an object (got ${describeType(rawCodex)})`);
|
|
224
|
+
}
|
|
225
|
+
rejectUnknownKeys(rawCodex, new Set(['approval_policy', 'sandbox_mode', 'extra_args', 'extra_env']), file, prefix);
|
|
226
|
+
const approvalPolicy = readOptionalString(rawCodex, 'approval_policy', file, prefix);
|
|
227
|
+
if (approvalPolicy !== null && !new Set(['never', 'auto', 'auto-approve', 'on-failure']).has(approvalPolicy)) {
|
|
228
|
+
throw new Error(`dreamux config error in ${file}: ${prefix}approval_policy='${approvalPolicy}' is not one of never | auto | auto-approve | on-failure`);
|
|
229
|
+
}
|
|
230
|
+
const sandboxMode = readOptionalString(rawCodex, 'sandbox_mode', file, prefix);
|
|
231
|
+
if (sandboxMode !== null && !ALLOWED_SANDBOX_MODES.has(sandboxMode)) {
|
|
232
|
+
throw new Error(`dreamux config error in ${file}: ${prefix}sandbox_mode='${sandboxMode}' is not one of ${Array.from(ALLOWED_SANDBOX_MODES).join(' | ')}`);
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
approval_policy: approvalPolicy,
|
|
236
|
+
sandbox_mode: sandboxMode,
|
|
237
|
+
extra_args: requireStringArray(rawCodex, 'extra_args', [], file, prefix),
|
|
238
|
+
extra_env: requireStringRecord(rawCodex, 'extra_env', {}, file, prefix),
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
function rejectUnknownKeys(obj, allowed, file, prefix) {
|
|
242
|
+
for (const key of Object.keys(obj)) {
|
|
243
|
+
if (allowed.has(key))
|
|
244
|
+
continue;
|
|
245
|
+
const name = `${prefix}${key}`;
|
|
246
|
+
throw new Error(`dreamux config error in ${file}: ${name} is not supported by the MVP config schema`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
271
249
|
function isPlainObject(v) {
|
|
272
250
|
return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
273
251
|
}
|
|
@@ -277,6 +255,26 @@ function requireString(obj, key, fallback, file, prefix = '') {
|
|
|
277
255
|
return fallback;
|
|
278
256
|
return ensureString(v, `${prefix}${key}`, file);
|
|
279
257
|
}
|
|
258
|
+
function requireNonEmptyString(obj, key, file, prefix = '') {
|
|
259
|
+
const value = requireString(obj, key, '', file, prefix);
|
|
260
|
+
if (value.trim() !== '')
|
|
261
|
+
return value;
|
|
262
|
+
throw new Error(`dreamux config error in ${file}: ${prefix}${key} must be a non-empty string`);
|
|
263
|
+
}
|
|
264
|
+
function readOptionalString(obj, key, file, prefix = '') {
|
|
265
|
+
const v = obj[key];
|
|
266
|
+
if (v === undefined || v === null)
|
|
267
|
+
return null;
|
|
268
|
+
return ensureString(v, `${prefix}${key}`, file);
|
|
269
|
+
}
|
|
270
|
+
function readOptionalBoolean(obj, key, fallback, file, prefix = '') {
|
|
271
|
+
const v = obj[key];
|
|
272
|
+
if (v === undefined)
|
|
273
|
+
return fallback;
|
|
274
|
+
if (typeof v === 'boolean')
|
|
275
|
+
return v;
|
|
276
|
+
throw new Error(`dreamux config error in ${file}: ${prefix}${key} must be a boolean (got ${describeType(v)})`);
|
|
277
|
+
}
|
|
280
278
|
function ensureString(v, key, file) {
|
|
281
279
|
if (typeof v !== 'string') {
|
|
282
280
|
throw new Error(`dreamux config error in ${file}: ${key} must be a string (got ${describeType(v)})`);
|
|
@@ -297,6 +295,22 @@ function requireStringArray(obj, key, fallback, file, prefix = '') {
|
|
|
297
295
|
return item;
|
|
298
296
|
});
|
|
299
297
|
}
|
|
298
|
+
function requireStringRecord(obj, key, fallback, file, prefix = '') {
|
|
299
|
+
const v = obj[key];
|
|
300
|
+
if (v === undefined)
|
|
301
|
+
return { ...fallback };
|
|
302
|
+
if (!isPlainObject(v)) {
|
|
303
|
+
throw new Error(`dreamux config error in ${file}: ${prefix}${key} must be an object of strings (got ${describeType(v)})`);
|
|
304
|
+
}
|
|
305
|
+
const out = {};
|
|
306
|
+
for (const [entryKey, entryValue] of Object.entries(v)) {
|
|
307
|
+
if (typeof entryValue !== 'string') {
|
|
308
|
+
throw new Error(`dreamux config error in ${file}: ${prefix}${key}.${entryKey} must be a string (got ${describeType(entryValue)})`);
|
|
309
|
+
}
|
|
310
|
+
out[entryKey] = entryValue;
|
|
311
|
+
}
|
|
312
|
+
return out;
|
|
313
|
+
}
|
|
300
314
|
function requirePositiveInt(obj, key, fallback, file, prefix = '') {
|
|
301
315
|
const n = readInt(obj, key, file, prefix);
|
|
302
316
|
if (n === null)
|
|
@@ -306,32 +320,12 @@ function requirePositiveInt(obj, key, fallback, file, prefix = '') {
|
|
|
306
320
|
}
|
|
307
321
|
return n;
|
|
308
322
|
}
|
|
309
|
-
function requireNonNegativeInt(obj, key, fallback, file, prefix = '') {
|
|
310
|
-
const n = readInt(obj, key, file, prefix);
|
|
311
|
-
if (n === null)
|
|
312
|
-
return fallback;
|
|
313
|
-
if (n < 0) {
|
|
314
|
-
throw new Error(`dreamux config error in ${file}: ${prefix}${key} must be >= 0 (got ${n})`);
|
|
315
|
-
}
|
|
316
|
-
return n;
|
|
317
|
-
}
|
|
318
323
|
function readInt(obj, key, file, prefix) {
|
|
319
324
|
const v = obj[key];
|
|
320
325
|
if (v === undefined)
|
|
321
326
|
return null;
|
|
322
|
-
|
|
323
|
-
if (typeof v === 'bigint') {
|
|
324
|
-
if (v < BigInt(Number.MIN_SAFE_INTEGER) || v > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
325
|
-
throw new Error(`dreamux config error in ${file}: ${prefix}${key}=${v} is outside safe integer range`);
|
|
326
|
-
}
|
|
327
|
-
return Number(v);
|
|
328
|
-
}
|
|
329
|
-
if (typeof v === 'number') {
|
|
330
|
-
if (!Number.isInteger(v)) {
|
|
331
|
-
throw new Error(`dreamux config error in ${file}: ${prefix}${key} must be an integer (got ${v})`);
|
|
332
|
-
}
|
|
327
|
+
if (typeof v === 'number' && Number.isInteger(v))
|
|
333
328
|
return v;
|
|
334
|
-
}
|
|
335
329
|
throw new Error(`dreamux config error in ${file}: ${prefix}${key} must be an integer (got ${describeType(v)})`);
|
|
336
330
|
}
|
|
337
331
|
function describeType(v) {
|
|
@@ -341,23 +335,29 @@ function describeType(v) {
|
|
|
341
335
|
return 'array';
|
|
342
336
|
return typeof v;
|
|
343
337
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
338
|
+
function redactFeishuSecrets(value) {
|
|
339
|
+
if (Array.isArray(value)) {
|
|
340
|
+
for (const item of value)
|
|
341
|
+
redactFeishuSecrets(item);
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
if (!isPlainObject(value))
|
|
345
|
+
return;
|
|
346
|
+
for (const [key, child] of Object.entries(value)) {
|
|
347
|
+
if (key === 'app_secret' && typeof child === 'string') {
|
|
348
|
+
value[key] = '<redacted>';
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
redactFeishuSecrets(child);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
350
354
|
export function expandHome(path) {
|
|
351
355
|
if (path === '~')
|
|
352
356
|
return homedir();
|
|
353
357
|
if (path.startsWith('~/'))
|
|
354
358
|
return join(homedir(), path.slice(2));
|
|
355
|
-
if (!isAbsolute(path))
|
|
356
|
-
// Pass through; downstream consumers will error if they need an
|
|
357
|
-
// absolute path. (We considered erroring here, but bash-style configs
|
|
358
|
-
// sometimes use bare names that get resolved later.)
|
|
359
|
+
if (!isAbsolute(path))
|
|
359
360
|
return path;
|
|
360
|
-
}
|
|
361
361
|
return path;
|
|
362
362
|
}
|
|
363
363
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/runtime/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/runtime/config.ts"],"names":[],"mappings":"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"}
|