@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.
Files changed (77) hide show
  1. package/README.md +155 -160
  2. package/bin/tm +30 -0
  3. package/dist/admin/client.js +98 -0
  4. package/dist/admin/client.js.map +1 -0
  5. package/dist/admin/methods.js +83 -38
  6. package/dist/admin/methods.js.map +1 -1
  7. package/dist/admin/socket.js +2 -2
  8. package/dist/admin/socket.js.map +1 -1
  9. package/dist/channel/feishu-gate.js +187 -18
  10. package/dist/channel/feishu-gate.js.map +1 -1
  11. package/dist/channel/feishu-message.js +92 -0
  12. package/dist/channel/feishu-message.js.map +1 -0
  13. package/dist/cli/doctor.js +53 -58
  14. package/dist/cli/doctor.js.map +1 -1
  15. package/dist/cli/dreamux.js +33 -51
  16. package/dist/cli/dreamux.js.map +1 -1
  17. package/dist/cli/server-ctl.js +6 -8
  18. package/dist/cli/server-ctl.js.map +1 -1
  19. package/dist/cli/server.js +22 -32
  20. package/dist/cli/server.js.map +1 -1
  21. package/dist/codex/events.js +3 -2
  22. package/dist/codex/events.js.map +1 -1
  23. package/dist/codex/mcp-config.js +24 -0
  24. package/dist/codex/mcp-config.js.map +1 -0
  25. package/dist/codex/supervisor.js +16 -0
  26. package/dist/codex/supervisor.js.map +1 -1
  27. package/dist/dispatcher/approval.js +2 -3
  28. package/dist/dispatcher/approval.js.map +1 -1
  29. package/dist/dispatcher/runtime.js +193 -141
  30. package/dist/dispatcher/runtime.js.map +1 -1
  31. package/dist/dispatcher/turn-manager.js +78 -97
  32. package/dist/dispatcher/turn-manager.js.map +1 -1
  33. package/dist/feishu/bot.js +71 -9
  34. package/dist/feishu/bot.js.map +1 -1
  35. package/dist/mcp/feishu-mcp.js +269 -0
  36. package/dist/mcp/feishu-mcp.js.map +1 -0
  37. package/dist/onboard/config-files.js +52 -22
  38. package/dist/onboard/config-files.js.map +1 -1
  39. package/dist/onboard/dispatcher-skill.js +18 -0
  40. package/dist/onboard/dispatcher-skill.js.map +1 -0
  41. package/dist/onboard/run.js +17 -50
  42. package/dist/onboard/run.js.map +1 -1
  43. package/dist/onboard/service.js +4 -8
  44. package/dist/onboard/service.js.map +1 -1
  45. package/dist/onboard/uninstall.js +47 -13
  46. package/dist/onboard/uninstall.js.map +1 -1
  47. package/dist/onboard/wizard.js +3 -27
  48. package/dist/onboard/wizard.js.map +1 -1
  49. package/dist/runtime/config.js +158 -64
  50. package/dist/runtime/config.js.map +1 -1
  51. package/dist/runtime/dispatcher-codex-home.js +14 -51
  52. package/dist/runtime/dispatcher-codex-home.js.map +1 -1
  53. package/dist/runtime/dispatcher-id.js +9 -0
  54. package/dist/runtime/dispatcher-id.js.map +1 -0
  55. package/dist/runtime/dispatcher-store.js +202 -0
  56. package/dist/runtime/dispatcher-store.js.map +1 -0
  57. package/dist/runtime/package-bin.js +41 -0
  58. package/dist/runtime/package-bin.js.map +1 -0
  59. package/dist/runtime/paths.js +82 -48
  60. package/dist/runtime/paths.js.map +1 -1
  61. package/dist/runtime/secrets.js +4 -3
  62. package/dist/runtime/secrets.js.map +1 -1
  63. package/dist/server.js +110 -36
  64. package/dist/server.js.map +1 -1
  65. package/package.json +6 -6
  66. package/skills/dispatcher/SKILL.md +107 -0
  67. package/db/migrations/0001_init.sql +0 -49
  68. package/dist/channel/outbound.js +0 -12
  69. package/dist/channel/outbound.js.map +0 -1
  70. package/dist/db/repository.js +0 -223
  71. package/dist/db/repository.js.map +0 -1
  72. package/dist/db/schema.js +0 -29
  73. package/dist/db/schema.js.map +0 -1
  74. package/dist/db/types.js +0 -2
  75. package/dist/db/types.js.map +0 -1
  76. package/dist/onboard/plugins.js +0 -202
  77. package/dist/onboard/plugins.js.map +0 -1
@@ -3,16 +3,22 @@ import { homedir } from 'node:os';
3
3
  import { basename, join, resolve, sep } from 'node:path';
4
4
  import { ExecaCommandRunner } from './commands.js';
5
5
  import { LAUNCHD_LABEL, serviceUnitPath, SYSTEMD_UNIT, } from './service.js';
6
- import { assertNoLegacyTomlOnly, BUILT_IN_DEFAULTS, expandHome, globalConfigDir, globalConfigFile, loadConfig, } from '../runtime/config.js';
6
+ import { assertNoLegacyTomlOnly, expandHome, globalConfigDir, globalConfigFile, loadConfig, } from '../runtime/config.js';
7
+ import { dispatcherWorkspaceSkillPath, logsRoot, stateRoot, } from '../runtime/paths.js';
7
8
  export async function runUninstall(options = {}) {
8
9
  const runner = options.runner ?? new ExecaCommandRunner();
9
10
  const dryRun = options.dryRun ?? false;
10
11
  const configDir = normalizePath(options.configDir ?? globalConfigDir());
11
- const runtimeDir = normalizePath(resolveRuntimeDir(configDir, options.runtimeDir));
12
12
  const entries = [];
13
+ const warnings = [];
13
14
  const unit = serviceUnitPath(options.platform, options.homeDir ?? homedir());
14
- assertSafeOwnedDirectory(runtimeDir, 'dreamux runtime directory');
15
+ warnIfConfigIsNotReadable(configDir, warnings);
16
+ const stateDir = normalizePath(stateRoot());
17
+ const logDir = normalizePath(logsRoot());
18
+ assertSafeOwnedDirectory(stateDir, 'dreamux state directory');
19
+ assertSafeOwnedDirectory(logDir, 'dreamux logs directory');
15
20
  assertSafeOwnedDirectory(configDir, 'dreamux config directory');
21
+ const workspaceSkillPaths = collectWorkspaceSkillPaths(configDir);
16
22
  await unregisterService({
17
23
  unitPath: unit.path,
18
24
  platform: unit.platform,
@@ -24,24 +30,54 @@ export async function runUninstall(options = {}) {
24
30
  if (unit.platform === 'systemd') {
25
31
  await runBestEffort(runner, 'systemctl', ['--user', 'daemon-reload'], dryRun);
26
32
  }
27
- removeOwnedDirectory(runtimeDir, entries, 'dreamux runtime directory', dryRun);
33
+ reportWorkspaceSkills(workspaceSkillPaths, entries);
34
+ removeOwnedDirectory(stateDir, entries, 'dreamux state directory', dryRun);
35
+ removeOwnedDirectory(logDir, entries, 'dreamux logs directory', dryRun);
28
36
  removeOwnedDirectory(configDir, entries, 'dreamux config directory', dryRun);
29
37
  return {
30
38
  entries: entries.sort((a, b) => a.path.localeCompare(b.path)),
39
+ warnings,
31
40
  service: {
32
41
  platform: unit.platform,
33
42
  unitPath: unit.path,
34
43
  },
35
44
  };
36
45
  }
37
- function resolveRuntimeDir(configDir, explicit) {
38
- if (explicit !== undefined && explicit !== '')
39
- return explicit;
40
- assertNoLegacyTomlOnly({ configDir });
41
- if (!existsSync(globalConfigFile({ configDir }))) {
42
- return BUILT_IN_DEFAULTS.runtime_dir;
46
+ function warnIfConfigIsNotReadable(configDir, warnings) {
47
+ try {
48
+ assertNoLegacyTomlOnly({ configDir });
49
+ if (!existsSync(globalConfigFile({ configDir })))
50
+ return;
51
+ loadConfig({ configDir });
52
+ }
53
+ catch (err) {
54
+ const message = err instanceof Error ? err.message : String(err);
55
+ warnings.push(`could not validate dreamux config before uninstall; continuing with fixed state/log paths: ${message}`);
56
+ }
57
+ }
58
+ function collectWorkspaceSkillPaths(configDir) {
59
+ try {
60
+ return loadConfig({ configDir }).config.dispatchers
61
+ .map(dispatcherWorkspaceSkillPathFromConfig)
62
+ .filter((path) => path !== null);
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ }
68
+ function dispatcherWorkspaceSkillPathFromConfig(dispatcher) {
69
+ if (dispatcher.cwd === null || dispatcher.cwd.trim() === '')
70
+ return null;
71
+ return dispatcherWorkspaceSkillPath(dispatcher.cwd);
72
+ }
73
+ function reportWorkspaceSkills(paths, entries) {
74
+ for (const path of uniquePaths(paths)) {
75
+ entries.push({
76
+ path,
77
+ status: existsSync(path) ? 'skipped' : 'missing',
78
+ reason: 'workspace-local dispatcher skill (not removed)',
79
+ });
43
80
  }
44
- return loadConfig({ configDir }).config.runtime_dir;
45
81
  }
46
82
  async function unregisterService(options) {
47
83
  if (options.platform === 'launchd') {
@@ -104,9 +140,7 @@ function normalizePath(path) {
104
140
  function operatorStateRoots() {
105
141
  return uniquePaths([
106
142
  joinHome('.codex'),
107
- process.env['CODEX_HOME'],
108
143
  joinHome('.claude'),
109
- process.env['CLAUDE_CONFIG_DIR'],
110
144
  ]);
111
145
  }
112
146
  function joinHome(child) {
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/onboard/uninstall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/onboard/uninstall.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,8 @@ import { homedir } from 'node:os';
2
2
  import { join, resolve } from 'node:path';
3
3
  import { cancel, confirm, intro, isCancel, outro, text, } from '@clack/prompts';
4
4
  import { expandHome } from '../runtime/config.js';
5
+ import { validateDispatcherId } from '../runtime/dispatcher-id.js';
5
6
  const DEFAULT_DISPATCHER_ID = 'dispatcher';
6
- const DEFAULT_CODEX_MARKETPLACE_SOURCE = 'excitedjs/dreamux';
7
- const DEFAULT_CODEX_MARKETPLACE_SPARSE = [
8
- '.agents/plugins',
9
- 'codex-marketplace/plugins/codexmux',
10
- ];
11
- const DEFAULT_CODEX_MARKETPLACE_NAME = 'dreamux';
12
- const DEFAULT_CODEX_PLUGIN_REF = 'codexmux@dreamux';
13
- const DEFAULT_CLAUDE_MARKETPLACE_SOURCE = 'excitedjs/claudemux';
14
- const DEFAULT_CLAUDE_MARKETPLACE_NAME = 'claudemux';
15
- const DEFAULT_CLAUDE_PLUGIN_REF = 'claudemux@claudemux';
16
7
  export async function collectOnboardAnswers(options) {
17
8
  const interactive = process.stdin.isTTY === true && options.yes !== true;
18
9
  if (!interactive)
@@ -50,19 +41,9 @@ export function answersFromOptions(options, fromInteractive) {
50
41
  return {
51
42
  configDir: normalizePath(options.configDir ?? defaultConfigDir(options)),
52
43
  runtimeDir: normalizePath(options.runtimeDir ?? defaultRuntimeDir(options)),
53
- dispatcherId: options.dispatcherId ?? DEFAULT_DISPATCHER_ID,
44
+ dispatcherId: validateDispatcherId(options.dispatcherId ?? DEFAULT_DISPATCHER_ID),
54
45
  dispatcherCwd: normalizePath(dispatcherCwd),
55
46
  codexBin: options.codexBin ?? 'codex',
56
- codexMarketplaceSource: options.codexMarketplaceSource ?? DEFAULT_CODEX_MARKETPLACE_SOURCE,
57
- codexMarketplaceSparse: normalizeStringArray(options.codexMarketplaceSparse, DEFAULT_CODEX_MARKETPLACE_SPARSE),
58
- codexMarketplaceName: options.codexMarketplaceName ?? DEFAULT_CODEX_MARKETPLACE_NAME,
59
- codexPluginRef: options.codexPluginRef ?? DEFAULT_CODEX_PLUGIN_REF,
60
- claudeBin: options.claudeBin ?? 'claude',
61
- claudeConfigDir: normalizePath(options.claudeConfigDir ?? join(homedir(), '.claude')),
62
- claudeMarketplaceSource: options.claudeMarketplaceSource ?? DEFAULT_CLAUDE_MARKETPLACE_SOURCE,
63
- claudeMarketplaceSparse: normalizeStringArray(options.claudeMarketplaceSparse, []),
64
- claudeMarketplaceName: options.claudeMarketplaceName ?? DEFAULT_CLAUDE_MARKETPLACE_NAME,
65
- claudePluginRef: options.claudePluginRef ?? DEFAULT_CLAUDE_PLUGIN_REF,
66
47
  botAppId,
67
48
  botAppSecret,
68
49
  registerService: options.registerService ?? true,
@@ -75,7 +56,7 @@ function defaultConfigDir(options) {
75
56
  return options.configDir ?? join(homedir(), '.dreamux');
76
57
  }
77
58
  function defaultRuntimeDir(options) {
78
- return options.runtimeDir ?? join(homedir(), '.codex-host');
59
+ return options.runtimeDir ?? join(homedir(), '.dreamux', 'runtime');
79
60
  }
80
61
  async function promptText(label, initialValue) {
81
62
  const value = await text({
@@ -108,9 +89,4 @@ function requiredOption(value, name, fromInteractive) {
108
89
  function normalizePath(path) {
109
90
  return resolve(expandHome(path));
110
91
  }
111
- function normalizeStringArray(value, fallback) {
112
- if (value === undefined)
113
- return fallback;
114
- return (Array.isArray(value) ? value : [value]).filter((item) => item !== '');
115
- }
116
92
  //# sourceMappingURL=wizard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/onboard/wizard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/onboard/wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,GACL,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAkBnE,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA0B;IAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC;IACzE,IAAI,CAAC,WAAW;QAAE,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5D,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,MAAM,UAAU,CAChC,0BAA0B,EAC1B,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,UAAU,CACjC,2BAA2B,EAC3B,iBAAiB,CAAC,OAAO,CAAC,CAC3B,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,UAAU,CACnC,eAAe,EACf,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAC9C,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,UAAU,CACpC,gBAAgB,EAChB,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CACvC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,MAAM,UAAU,CACnC,wBAAwB,EACxB,OAAO,CAAC,YAAY,CACrB,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,aAAa,CACzC,sCAAsC,EACtC,OAAO,CAAC,eAAe,IAAI,IAAI,CAChC,CAAC;IACF,MAAM,YAAY,GAAG,eAAe;QAClC,CAAC,CAAC,MAAM,aAAa,CACjB,uCAAuC,EACvC,OAAO,CAAC,YAAY,IAAI,IAAI,CAC7B;QACH,CAAC,CAAC,KAAK,CAAC;IAEV,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtC,OAAO,kBAAkB,CACvB;QACE,GAAG,OAAO;QACV,SAAS;QACT,UAAU;QACV,YAAY;QACZ,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,eAAe;QACf,YAAY;KACb,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,eAAwB;IAExB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,cAAc,CACjC,OAAO,CAAC,YAAY,EACpB,gBAAgB,EAChB,eAAe,CAChB,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7D,OAAO;QACL,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxE,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,YAAY,EAAE,oBAAoB,CAChC,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAC9C;QACD,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC;QAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO;QACrC,QAAQ;QACR,YAAY;QACZ,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;QAChD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;QAC1C,UAAU,EAAE,aAAa,CACvB,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACpE;QACD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA0B;IACnD,OAAO,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,YAAqB;IAC5D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,KAAK;QACd,YAAY;QACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACtE,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,KAAa,EACb,YAAqB;IAErB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;QAC1B,OAAO,EAAE,KAAK;QACd,YAAY;KACb,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAI,KAAiB;IACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CACrB,KAAyB,EACzB,IAAY,EACZ,eAAwB;IAExB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC;IACpE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,eAAe,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC"}
@@ -2,17 +2,15 @@
2
2
  * Global dreamux configuration loaded from `~/.dreamux/config.json`.
3
3
  *
4
4
  * Layout:
5
- * ~/.dreamux/ user-editable dreamux configuration and channel secrets
6
- * ~/.codex-host/ runtime data (SQLite, sockets, dispatcher logs)
5
+ * ~/.dreamux/config.json dreamux configuration and local channel secrets
7
6
  *
8
7
  * Format: JSON. dreamux does not write TOML files.
9
8
  */
10
9
  import { homedir } from 'node:os';
11
10
  import { dirname, isAbsolute, join } from 'node:path';
12
- import { closeSync, existsSync, mkdirSync, openSync, readFileSync, writeSync, } from 'node:fs';
11
+ import { closeSync, existsSync, mkdirSync, openSync, readFileSync, statSync, writeSync, } from 'node:fs';
12
+ import { validateDispatcherId } from './dispatcher-id.js';
13
13
  export const BUILT_IN_DEFAULTS = {
14
- runtime_dir: '~/.codex-host',
15
- admin_socket: null,
16
14
  codex: {
17
15
  bin: 'codex',
18
16
  approval_policy: 'never',
@@ -20,13 +18,7 @@ export const BUILT_IN_DEFAULTS = {
20
18
  extra_args: [],
21
19
  initialize_timeout_ms: 10_000,
22
20
  },
23
- outbound: {
24
- retries: 3,
25
- retry_delay_ms: 1000,
26
- },
27
- feishu: {
28
- bots: {},
29
- },
21
+ dispatchers: [],
30
22
  };
31
23
  export const ALLOWED_SANDBOX_MODES = new Set([
32
24
  'read-only',
@@ -69,12 +61,17 @@ export function redactConfigForDisplay(raw, file) {
69
61
  catch (err) {
70
62
  const msg = err instanceof Error ? err.message : String(err);
71
63
  throw new Error(`dreamux config parse error in ${file}: ${msg}\n` +
72
- `Use 'dreamux config show --raw' to print the file without redaction.`);
64
+ 'Fix the JSON syntax before running `dreamux config show`.');
73
65
  }
74
66
  redactFeishuSecrets(parsed);
75
67
  return `${JSON.stringify(parsed, null, 2)}\n`;
76
68
  }
77
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);
78
75
  const raw = readFileSync(file, 'utf8');
79
76
  let parsed;
80
77
  try {
@@ -83,7 +80,7 @@ function readConfigFile(file) {
83
80
  catch (err) {
84
81
  const msg = err instanceof Error ? err.message : String(err);
85
82
  throw new Error(`dreamux config parse error in ${file}: ${msg}\n` +
86
- `Fix the JSON syntax in ${file} and restart, or delete the file to regenerate defaults.`);
83
+ `Fix the JSON syntax in ${file}, then restart. Run \`dreamux onboard\` if you need to recreate the config.`);
87
84
  }
88
85
  return mergeWithDefaults(parsed, file);
89
86
  }
@@ -93,8 +90,8 @@ export function assertNoLegacyTomlOnly(overrides = {}) {
93
90
  if (existsSync(jsonFile) || !existsSync(tomlFile))
94
91
  return;
95
92
  throw new Error(`legacy dreamux config detected at ${tomlFile}, but ${jsonFile} does not exist.\n` +
96
- 'dreamux no longer reads TOML config and will not create default JSON over an existing install, because that can hide the old runtime_dir and dispatcher database.\n' +
97
- `Create ${jsonFile} manually from ${tomlFile}, then move ${tomlFile} aside. Preserve runtime_dir/admin_socket/codex/outbound settings and add feishu.bots entries for configured dispatchers.`);
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.`);
98
95
  }
99
96
  function atomicWriteIfAbsent(file, content) {
100
97
  let fd;
@@ -114,18 +111,27 @@ function atomicWriteIfAbsent(file, content) {
114
111
  }
115
112
  return true;
116
113
  }
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)}`);
121
+ }
117
122
  function mergeWithDefaults(raw, file) {
118
123
  if (!isPlainObject(raw)) {
119
124
  throw new Error(`dreamux config error in ${file}: top-level must be an object`);
120
125
  }
126
+ rejectUnknownKeys(raw, new Set(['codex', 'dispatchers']), file, '');
121
127
  const codexIn = isPlainObject(raw['codex']) ? raw['codex'] : {};
122
- const outboundIn = isPlainObject(raw['outbound']) ? raw['outbound'] : {};
123
- const feishuIn = isPlainObject(raw['feishu']) ? raw['feishu'] : {};
124
- const runtime_dir = expandHome(requireString(raw, 'runtime_dir', BUILT_IN_DEFAULTS.runtime_dir, file));
125
- const admin_socket_raw = raw['admin_socket'];
126
- const admin_socket = admin_socket_raw === undefined || admin_socket_raw === null
127
- ? null
128
- : expandHome(ensureString(admin_socket_raw, 'admin_socket', file));
128
+ rejectUnknownKeys(codexIn, new Set([
129
+ 'bin',
130
+ 'approval_policy',
131
+ 'sandbox_mode',
132
+ 'extra_args',
133
+ 'initialize_timeout_ms',
134
+ ]), file, 'codex.');
129
135
  const approval_policy = requireString(codexIn, 'approval_policy', BUILT_IN_DEFAULTS.codex.approval_policy, file, 'codex.');
130
136
  const ALLOWED_POLICIES = new Set([
131
137
  'never',
@@ -143,8 +149,6 @@ function mergeWithDefaults(raw, file) {
143
149
  `is not one of ${Array.from(ALLOWED_SANDBOX_MODES).join(' | ')}`);
144
150
  }
145
151
  return {
146
- runtime_dir,
147
- admin_socket,
148
152
  codex: {
149
153
  bin: requireString(codexIn, 'bin', BUILT_IN_DEFAULTS.codex.bin, file, 'codex.'),
150
154
  approval_policy,
@@ -152,33 +156,95 @@ function mergeWithDefaults(raw, file) {
152
156
  extra_args: requireStringArray(codexIn, 'extra_args', BUILT_IN_DEFAULTS.codex.extra_args, file, 'codex.'),
153
157
  initialize_timeout_ms: requirePositiveInt(codexIn, 'initialize_timeout_ms', BUILT_IN_DEFAULTS.codex.initialize_timeout_ms, file, 'codex.'),
154
158
  },
155
- outbound: {
156
- retries: requireNonNegativeInt(outboundIn, 'retries', BUILT_IN_DEFAULTS.outbound.retries, file, 'outbound.'),
157
- retry_delay_ms: requireNonNegativeInt(outboundIn, 'retry_delay_ms', BUILT_IN_DEFAULTS.outbound.retry_delay_ms, file, 'outbound.'),
158
- },
159
- feishu: {
160
- bots: readFeishuBots(feishuIn, file),
161
- },
159
+ dispatchers: readDispatchers(raw['dispatchers'], file),
162
160
  };
163
161
  }
164
- function readFeishuBots(feishuIn, file) {
165
- const rawBots = feishuIn['bots'];
166
- if (rawBots === undefined)
167
- return {};
168
- if (!isPlainObject(rawBots)) {
169
- throw new Error(`dreamux config error in ${file}: feishu.bots must be an object (got ${describeType(rawBots)})`);
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)})`);
170
167
  }
171
- const bots = {};
172
- for (const [id, rawBot] of Object.entries(rawBots)) {
173
- if (!isPlainObject(rawBot)) {
174
- throw new Error(`dreamux config error in ${file}: feishu.bots.${id} must be an object (got ${describeType(rawBot)})`);
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}'`);
175
188
  }
176
- bots[id] = {
177
- app_id: requireString(rawBot, 'app_id', '', file, `feishu.bots.${id}.`),
178
- app_secret: requireString(rawBot, 'app_secret', '', file, `feishu.bots.${id}.`),
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: {},
179
220
  };
180
221
  }
181
- return bots;
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
+ }
182
248
  }
183
249
  function isPlainObject(v) {
184
250
  return v !== null && typeof v === 'object' && !Array.isArray(v);
@@ -189,6 +255,26 @@ function requireString(obj, key, fallback, file, prefix = '') {
189
255
  return fallback;
190
256
  return ensureString(v, `${prefix}${key}`, file);
191
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
+ }
192
278
  function ensureString(v, key, file) {
193
279
  if (typeof v !== 'string') {
194
280
  throw new Error(`dreamux config error in ${file}: ${key} must be a string (got ${describeType(v)})`);
@@ -209,6 +295,22 @@ function requireStringArray(obj, key, fallback, file, prefix = '') {
209
295
  return item;
210
296
  });
211
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
+ }
212
314
  function requirePositiveInt(obj, key, fallback, file, prefix = '') {
213
315
  const n = readInt(obj, key, file, prefix);
214
316
  if (n === null)
@@ -218,15 +320,6 @@ function requirePositiveInt(obj, key, fallback, file, prefix = '') {
218
320
  }
219
321
  return n;
220
322
  }
221
- function requireNonNegativeInt(obj, key, fallback, file, prefix = '') {
222
- const n = readInt(obj, key, file, prefix);
223
- if (n === null)
224
- return fallback;
225
- if (n < 0) {
226
- throw new Error(`dreamux config error in ${file}: ${prefix}${key} must be >= 0 (got ${n})`);
227
- }
228
- return n;
229
- }
230
323
  function readInt(obj, key, file, prefix) {
231
324
  const v = obj[key];
232
325
  if (v === undefined)
@@ -243,18 +336,19 @@ function describeType(v) {
243
336
  return typeof v;
244
337
  }
245
338
  function redactFeishuSecrets(value) {
246
- if (!isPlainObject(value))
339
+ if (Array.isArray(value)) {
340
+ for (const item of value)
341
+ redactFeishuSecrets(item);
247
342
  return;
248
- const feishu = value['feishu'];
249
- if (!isPlainObject(feishu))
250
- return;
251
- const bots = feishu['bots'];
252
- if (!isPlainObject(bots))
343
+ }
344
+ if (!isPlainObject(value))
253
345
  return;
254
- for (const bot of Object.values(bots)) {
255
- if (isPlainObject(bot) && typeof bot['app_secret'] === 'string') {
256
- bot['app_secret'] = '<redacted>';
346
+ for (const [key, child] of Object.entries(value)) {
347
+ if (key === 'app_secret' && typeof child === 'string') {
348
+ value[key] = '<redacted>';
349
+ continue;
257
350
  }
351
+ redactFeishuSecrets(child);
258
352
  }
259
353
  }
260
354
  export function expandHome(path) {
@@ -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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"}