@excitedjs/dreamux 0.1.2 → 0.1.3

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 (46) hide show
  1. package/README.md +25 -29
  2. package/bin/dreamux +3 -2
  3. package/dist/admin/socket.js +1 -1
  4. package/dist/admin/socket.js.map +1 -1
  5. package/dist/cli/doctor.js +273 -0
  6. package/dist/cli/doctor.js.map +1 -0
  7. package/dist/cli/dreamux.js +257 -78
  8. package/dist/cli/dreamux.js.map +1 -1
  9. package/dist/cli/server-ctl.js +15 -13
  10. package/dist/cli/server-ctl.js.map +1 -1
  11. package/dist/cli/server.js +7 -7
  12. package/dist/codex/handshake.js +1 -1
  13. package/dist/codex/handshake.js.map +1 -1
  14. package/dist/db/repository.js +16 -0
  15. package/dist/db/repository.js.map +1 -1
  16. package/dist/dispatcher/runtime.js +8 -1
  17. package/dist/dispatcher/runtime.js.map +1 -1
  18. package/dist/feishu/bot.js +3 -3
  19. package/dist/feishu/bot.js.map +1 -1
  20. package/dist/onboard/commands.js +34 -0
  21. package/dist/onboard/commands.js.map +1 -0
  22. package/dist/onboard/config-files.js +113 -0
  23. package/dist/onboard/config-files.js.map +1 -0
  24. package/dist/onboard/ledger.js +113 -0
  25. package/dist/onboard/ledger.js.map +1 -0
  26. package/dist/onboard/plugins.js +202 -0
  27. package/dist/onboard/plugins.js.map +1 -0
  28. package/dist/onboard/run.js +150 -0
  29. package/dist/onboard/run.js.map +1 -0
  30. package/dist/onboard/service.js +138 -0
  31. package/dist/onboard/service.js.map +1 -0
  32. package/dist/onboard/types.js +2 -0
  33. package/dist/onboard/types.js.map +1 -0
  34. package/dist/onboard/wizard.js +146 -0
  35. package/dist/onboard/wizard.js.map +1 -0
  36. package/dist/runtime/config.js +14 -2
  37. package/dist/runtime/config.js.map +1 -1
  38. package/dist/runtime/dispatcher-codex-home.js +266 -0
  39. package/dist/runtime/dispatcher-codex-home.js.map +1 -0
  40. package/dist/runtime/paths.js +17 -2
  41. package/dist/runtime/paths.js.map +1 -1
  42. package/dist/server.js +1 -0
  43. package/dist/server.js.map +1 -1
  44. package/package.json +17 -15
  45. package/bin/server +0 -35
  46. package/bin/server-ctl +0 -28
@@ -1,102 +1,281 @@
1
1
  /**
2
- * `dreamux` — the unified top-level CLI (issue #4).
2
+ * `dreamux` — the single public CLI entry point.
3
3
  *
4
- * Subcommands:
5
- * dreamux server start # start the long-running server
6
- * dreamux server status # admin-socket query
7
- * dreamux dispatcher add ... # configure a dispatcher
8
- * dreamux dispatcher remove --id X
9
- * dreamux dispatcher list
10
- * dreamux dispatcher status --id X
11
- * dreamux dispatcher start --id X
12
- * dreamux dispatcher stop --id X
13
- *
14
- * Implementation note: this binary is a thin router. `server start` delegates
15
- * to the same entrypoint as the legacy `dreamux-server` (`./server.js`);
16
- * everything else is forwarded to the legacy `server-ctl` flow
17
- * (`./server-ctl.js`). Both legacy binaries are kept as aliases for users
18
- * with stale PATH entries (PR #6 shipped them; reverting would break local
19
- * setups).
4
+ * Issue #18 replaces the old package-global aliases with one bin. This file
5
+ * owns the command tree and delegates implementation slices to focused
6
+ * modules where the runtime already exists.
20
7
  */
21
8
  import { spawn } from 'node:child_process';
9
+ import { existsSync, readFileSync } from 'node:fs';
22
10
  import { dirname, join } from 'node:path';
23
11
  import { fileURLToPath } from 'node:url';
12
+ import yargs from 'yargs';
13
+ import { hideBin } from 'yargs/helpers';
14
+ import { globalConfigFile } from '../runtime/config.js';
15
+ import { runOnboard } from '../onboard/run.js';
16
+ import { collectOnboardAnswers, } from '../onboard/wizard.js';
17
+ import { printDoctorResult, runDreamuxDoctor } from './doctor.js';
24
18
  const HERE = dirname(fileURLToPath(import.meta.url));
25
19
  const SERVER_ENTRY = join(HERE, 'server.js');
26
20
  const SERVER_CTL_ENTRY = join(HERE, 'server-ctl.js');
27
- function printRootHelp() {
28
- console.log(`dreamux — Codex-host MVP unified CLI (excitedjs/dreamux#4)
29
-
30
- Usage:
31
- dreamux server start
32
- dreamux server status
33
- dreamux dispatcher list
34
- dreamux dispatcher add --id <ID> --bot-app-id <APP_ID> \\
35
- --bot-secret-ref env:<VAR> [--codex-args-json <JSON>] [--codex-cwd <PATH>]
36
- dreamux dispatcher status --id <ID>
37
- dreamux dispatcher start --id <ID>
38
- dreamux dispatcher stop --id <ID>
39
- dreamux dispatcher remove --id <ID>
40
-
41
- Environment:
42
- CODEX_HOST_RUNTIME_DIR Root dir (default: ~/.codex-host)
43
- CODEX_HOST_ADMIN_SOCKET Admin Unix socket path
44
- CODEX_HOST_CODEX_BIN Codex binary (default: 'codex' on PATH)
45
- BOT_SECRET_<NAME> Each dispatcher's bot secret (referenced via
46
- bot_secret_ref=env:BOT_SECRET_<NAME>)
47
-
48
- The legacy 'dreamux-server' and 'server-ctl' binaries remain available as
49
- aliases for compatibility; new tooling should call 'dreamux'.
50
- `);
51
- }
52
- function fail(msg, code = 2) {
53
- console.error(`dreamux: ${msg}\n`);
54
- printRootHelp();
55
- process.exit(code);
56
- }
57
- async function execEntry(entry, argv) {
58
- // Re-exec node on the target so each subcommand keeps its own argv / process
59
- // environment; no shared state to leak between subcommands.
21
+ async function execEntry(entry, argv, env = process.env) {
60
22
  const child = spawn(process.execPath, [entry, ...argv], {
23
+ env,
61
24
  stdio: 'inherit',
62
25
  });
63
- await new Promise((res, rej) => {
64
- child.once('error', rej);
26
+ await new Promise((_resolve, reject) => {
27
+ child.once('error', reject);
65
28
  child.once('exit', (code, signal) => {
66
- if (signal !== null)
29
+ if (signal !== null) {
67
30
  process.kill(process.pid, signal);
31
+ return;
32
+ }
68
33
  process.exit(code ?? 0);
69
- res();
70
34
  });
71
35
  });
72
- process.exit(0); // unreachable; satisfies TS never
36
+ process.exit(0);
73
37
  }
74
- async function main() {
75
- const argv = process.argv.slice(2);
76
- if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
77
- printRootHelp();
78
- return;
79
- }
80
- const [topic, sub, ...rest] = argv;
81
- if (topic === 'server') {
82
- if (sub === 'start') {
83
- await execEntry(SERVER_ENTRY, rest);
84
- return;
85
- }
86
- if (sub === 'status') {
87
- // server status is an admin-socket query (server-ctl `server status`).
88
- await execEntry(SERVER_CTL_ENTRY, ['server', 'status', ...rest]);
89
- return;
38
+ function adminEnv() {
39
+ return { ...process.env, DREAMUX_ADMIN_CLI_NAME: 'dreamux' };
40
+ }
41
+ function requiredString(value, name) {
42
+ if (typeof value === 'string' && value.trim() !== '')
43
+ return value;
44
+ throw new Error(`missing required option --${name}`);
45
+ }
46
+ function optionalString(value) {
47
+ if (typeof value !== 'string' || value === '')
48
+ return null;
49
+ return value;
50
+ }
51
+ function withRequiredDispatcherId(y) {
52
+ return y.option('id', {
53
+ type: 'string',
54
+ demandOption: true,
55
+ describe: 'Dispatcher id',
56
+ });
57
+ }
58
+ function buildDispatcherCommands(y) {
59
+ return y
60
+ .command('list', 'List configured dispatchers', (yy) => yy, async () => execEntry(SERVER_CTL_ENTRY, ['dispatcher', 'list'], adminEnv()))
61
+ .command('add', 'Add a dispatcher', (yy) => yy
62
+ .option('id', {
63
+ type: 'string',
64
+ demandOption: true,
65
+ describe: 'Dispatcher id',
66
+ })
67
+ .option('bot-app-id', {
68
+ type: 'string',
69
+ demandOption: true,
70
+ describe: 'Channel bot app id',
71
+ })
72
+ .option('bot-secret-ref', {
73
+ type: 'string',
74
+ demandOption: true,
75
+ describe: 'Secret reference, for example env:BOT_SECRET_NAME',
76
+ })
77
+ .option('codex-args-json', {
78
+ type: 'string',
79
+ describe: 'Dispatcher-specific Codex argument JSON',
80
+ })
81
+ .option('codex-cwd', {
82
+ type: 'string',
83
+ describe: 'Override dispatcher app-server cwd',
84
+ }), async (argv) => {
85
+ const args = [
86
+ 'dispatcher',
87
+ 'add',
88
+ '--id',
89
+ requiredString(argv.id, 'id'),
90
+ '--bot-app-id',
91
+ requiredString(argv.botAppId, 'bot-app-id'),
92
+ '--bot-secret-ref',
93
+ requiredString(argv.botSecretRef, 'bot-secret-ref'),
94
+ ];
95
+ const codexArgsJson = optionalString(argv.codexArgsJson);
96
+ if (codexArgsJson !== null) {
97
+ args.push('--codex-args-json', codexArgsJson);
90
98
  }
91
- fail(`unknown 'server' subcommand: ${sub ?? '(missing)'}`);
99
+ const codexCwd = optionalString(argv.codexCwd);
100
+ if (codexCwd !== null)
101
+ args.push('--codex-cwd', codexCwd);
102
+ await execEntry(SERVER_CTL_ENTRY, args, adminEnv());
103
+ })
104
+ .command(['remove', 'status', 'start', 'stop'], 'Manage one dispatcher', withRequiredDispatcherId, async (argv) => {
105
+ const verb = requiredString(argv._[1], 'dispatcher verb');
106
+ await execEntry(SERVER_CTL_ENTRY, ['dispatcher', verb, '--id', requiredString(argv.id, 'id')], adminEnv());
107
+ })
108
+ .demandCommand(1, 'Choose a dispatcher command')
109
+ .strict();
110
+ }
111
+ function buildOnboardCommand(y) {
112
+ return y
113
+ .option('yes', {
114
+ type: 'boolean',
115
+ describe: 'Accept defaults and require non-default values via options',
116
+ })
117
+ .option('dry-run', {
118
+ type: 'boolean',
119
+ describe: 'Print the planned file ledger without writing or registering',
120
+ })
121
+ .option('config-dir', {
122
+ type: 'string',
123
+ describe: 'dreamux global config directory',
124
+ })
125
+ .option('runtime-dir', {
126
+ type: 'string',
127
+ describe: 'dreamux runtime directory',
128
+ })
129
+ .option('dispatcher-id', {
130
+ type: 'string',
131
+ describe: 'Dispatcher id to create or update',
132
+ })
133
+ .option('codex-bin', {
134
+ type: 'string',
135
+ describe: 'Codex CLI binary or absolute path',
136
+ })
137
+ .option('codex-model', {
138
+ type: 'string',
139
+ describe: 'Model written to dispatcher private CODEX_HOME/config.toml',
140
+ })
141
+ .option('codex-provider', {
142
+ type: 'string',
143
+ describe: 'Provider label used for onboarding prompts and auth guidance',
144
+ })
145
+ .option('auth-env-var', {
146
+ type: 'string',
147
+ describe: 'Auth env var passed to dispatcher Codex runtime',
148
+ })
149
+ .option('codex-marketplace-source', {
150
+ type: 'string',
151
+ describe: 'Codex plugin marketplace source',
152
+ })
153
+ .option('codex-marketplace-sparse', {
154
+ type: 'array',
155
+ string: true,
156
+ describe: 'Sparse checkout path for the Codex marketplace source',
157
+ })
158
+ .option('codex-marketplace-name', {
159
+ type: 'string',
160
+ describe: 'Codex marketplace name',
161
+ })
162
+ .option('codex-plugin-ref', {
163
+ type: 'string',
164
+ describe: 'Codex plugin ref, e.g. codexmux@dreamux',
165
+ })
166
+ .option('claude-bin', {
167
+ type: 'string',
168
+ describe: 'Claude CLI binary or absolute path',
169
+ })
170
+ .option('claude-config-dir', {
171
+ type: 'string',
172
+ describe: 'Claude config directory used for plugin installation',
173
+ })
174
+ .option('claude-marketplace-source', {
175
+ type: 'string',
176
+ describe: 'Claude plugin marketplace source',
177
+ })
178
+ .option('claude-marketplace-sparse', {
179
+ type: 'array',
180
+ string: true,
181
+ describe: 'Sparse checkout path for the Claude marketplace source',
182
+ })
183
+ .option('claude-marketplace-name', {
184
+ type: 'string',
185
+ describe: 'Claude marketplace name',
186
+ })
187
+ .option('claude-plugin-ref', {
188
+ type: 'string',
189
+ describe: 'Claude plugin ref, e.g. claudemux@claudemux',
190
+ })
191
+ .option('bot-app-id', {
192
+ type: 'string',
193
+ describe: 'Channel bot app id',
194
+ })
195
+ .option('bot-secret-ref', {
196
+ type: 'string',
197
+ describe: 'Secret reference, for example env:BOT_SECRET_NAME',
198
+ })
199
+ .option('register-service', {
200
+ type: 'boolean',
201
+ describe: 'Write and register the user-level service',
202
+ })
203
+ .option('start-service', {
204
+ type: 'boolean',
205
+ describe: 'Start the service after registration',
206
+ })
207
+ .option('dreamux-bin', {
208
+ type: 'string',
209
+ describe: 'Absolute dreamux bin path used by the service unit',
210
+ });
211
+ }
212
+ async function handleOnboard(argv) {
213
+ const answers = await collectOnboardAnswers(argv);
214
+ const result = await runOnboard({ answers });
215
+ printOnboardResult(result);
216
+ }
217
+ function printOnboardResult(result) {
218
+ console.log('dreamux onboard file ledger:');
219
+ for (const entry of result.files) {
220
+ console.log(`${entry.status}\t${entry.path}\t${entry.reason}`);
92
221
  }
93
- if (topic === 'dispatcher') {
94
- if (sub === undefined)
95
- fail("missing 'dispatcher' subcommand");
96
- await execEntry(SERVER_CTL_ENTRY, ['dispatcher', sub, ...rest]);
97
- return;
222
+ console.log(result.doctor.ok
223
+ ? 'dreamux onboard doctor: ok'
224
+ : `dreamux onboard doctor: failed (${result.doctor.errors.length} error(s))`);
225
+ if (result.service !== null) {
226
+ console.log(`dreamux onboard service: ${result.service.platform} ${result.service.unitPath}`);
98
227
  }
99
- fail(`unknown command: ${topic ?? ''}`);
228
+ }
229
+ function buildConfigCommands(y) {
230
+ return y
231
+ .command('path', 'Print the dreamux global config path', (yy) => yy, () => {
232
+ console.log(globalConfigFile());
233
+ })
234
+ .command('show', 'Print the dreamux global config file', (yy) => yy, () => {
235
+ const file = globalConfigFile();
236
+ if (!existsSync(file)) {
237
+ throw new Error(`config file does not exist: ${file}`);
238
+ }
239
+ process.stdout.write(readFileSync(file, 'utf8'));
240
+ })
241
+ .demandCommand(1, 'Choose a config command')
242
+ .strict();
243
+ }
244
+ async function main() {
245
+ await yargs(hideBin(process.argv))
246
+ .scriptName('dreamux')
247
+ .usage('$0 <command> [options]')
248
+ .command('onboard', 'Run first-time setup', buildOnboardCommand, handleOnboard)
249
+ .command('serve', 'Run the local server in the foreground', (yy) => yy, async () => execEntry(SERVER_ENTRY, []))
250
+ .command('status', 'Show running server status', (yy) => yy, async () => execEntry(SERVER_CTL_ENTRY, ['server', 'status'], adminEnv()))
251
+ .command('doctor', 'Run setup diagnostics', (yy) => yy.option('json', {
252
+ type: 'boolean',
253
+ describe: 'Print machine-readable JSON',
254
+ }), async (argv) => {
255
+ const result = await runDreamuxDoctor();
256
+ if (argv.json === true) {
257
+ console.log(JSON.stringify(result, null, 2));
258
+ }
259
+ else {
260
+ printDoctorResult(result);
261
+ }
262
+ if (!result.ok)
263
+ process.exitCode = 1;
264
+ })
265
+ .command('dispatcher <command>', 'Manage dispatchers', buildDispatcherCommands)
266
+ .command('config <command>', 'Inspect config', buildConfigCommands)
267
+ .demandCommand(1, 'Choose a command')
268
+ .strict()
269
+ .help()
270
+ .alias('h', 'help')
271
+ .fail((msg, err) => {
272
+ const message = err instanceof Error ? err.message : msg;
273
+ if (message !== undefined && message !== '') {
274
+ console.error(`dreamux: ${message}`);
275
+ }
276
+ process.exit(err instanceof Error ? 1 : 2);
277
+ })
278
+ .parseAsync();
100
279
  }
101
280
  main().catch((err) => {
102
281
  console.error(`dreamux: ${err instanceof Error ? err.message : err}`);
@@ -1 +1 @@
1
- {"version":3,"file":"dreamux.js","sourceRoot":"","sources":["../../src/cli/dreamux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dreamux.js","sourceRoot":"","sources":["../../src/cli/dreamux.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAIrD,KAAK,UAAU,SAAS,CACtB,KAAa,EACb,IAAc,EACd,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE;QACtD,GAAG;QACH,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACnE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAI,CAAU;IAC7C,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,eAAe;KAC1B,CAA6B,CAAC;AACjC,CAAC;AAED,SAAS,uBAAuB,CAAC,CAAO;IACtC,OAAO,CAAC;SACL,OAAO,CACN,MAAM,EACN,6BAA6B,EAC7B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EACV,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAC5E;SACA,OAAO,CACN,KAAK,EACL,kBAAkB,EAClB,CAAC,EAAE,EAAE,EAAE,CACL,EAAE;SACC,MAAM,CAAC,IAAI,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,eAAe;KAC1B,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;SACD,MAAM,CAAC,gBAAgB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,mDAAmD;KAC9D,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,yCAAyC;KACpD,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,oCAAoC;KAC/C,CAAC,EACN,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,IAAI,GAAG;YACX,YAAY;YACZ,KAAK;YACL,MAAM;YACN,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;YAC7B,cAAc;YACd,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;YAC3C,kBAAkB;YAClB,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC;SACpD,CAAC;QACF,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC,CACF;SACA,OAAO,CACN,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EACrC,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAmB,CAAC;QAC5E,MAAM,SAAS,CACb,gBAAgB,EAChB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAC3D,QAAQ,EAAE,CACX,CAAC;IACJ,CAAC,CACF;SACA,aAAa,CAAC,CAAC,EAAE,6BAA6B,CAAC;SAC/C,MAAM,EAAE,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAO;IAClC,OAAO,CAAC;SACL,MAAM,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,4DAA4D;KACvE,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,8DAA8D;KACzE,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iCAAiC;KAC5C,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,2BAA2B;KACtC,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,mCAAmC;KAC9C,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,mCAAmC;KAC9C,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,4DAA4D;KACvE,CAAC;SACD,MAAM,CAAC,gBAAgB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,8DAA8D;KACzE,CAAC;SACD,MAAM,CAAC,cAAc,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iDAAiD;KAC5D,CAAC;SACD,MAAM,CAAC,0BAA0B,EAAE;QAClC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iCAAiC;KAC5C,CAAC;SACD,MAAM,CAAC,0BAA0B,EAAE;QAClC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,uDAAuD;KAClE,CAAC;SACD,MAAM,CAAC,wBAAwB,EAAE;QAChC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,wBAAwB;KACnC,CAAC;SACD,MAAM,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,yCAAyC;KACpD,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,oCAAoC;KAC/C,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,sDAAsD;KACjE,CAAC;SACD,MAAM,CAAC,2BAA2B,EAAE;QACnC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,kCAAkC;KAC7C,CAAC;SACD,MAAM,CAAC,2BAA2B,EAAE;QACnC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,wDAAwD;KACnE,CAAC;SACD,MAAM,CAAC,yBAAyB,EAAE;QACjC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,yBAAyB;KACpC,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,6CAA6C;KACxD,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;SACD,MAAM,CAAC,gBAAgB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,mDAAmD;KAC9D,CAAC;SACD,MAAM,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,2CAA2C;KACtD,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,sCAAsC;KACjD,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,oDAAoD;KAC/D,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAa;IACxC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAyB,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAwB;IAClD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,MAAM,CAAC,EAAE;QACd,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,mCAAmC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,YAAY,CAC/E,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CACT,4BAA4B,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CACjF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAO;IAClC,OAAO,CAAC;SACL,OAAO,CACN,MAAM,EACN,sCAAsC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EACV,GAAG,EAAE;QACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClC,CAAC,CACF;SACA,OAAO,CACN,MAAM,EACN,sCAAsC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EACV,GAAG,EAAE;QACH,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC,CACF;SACA,aAAa,CAAC,CAAC,EAAE,yBAAyB,CAAC;SAC3C,MAAM,EAAE,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/B,UAAU,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,wBAAwB,CAAC;SAC/B,OAAO,CACN,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,CACd;SACA,OAAO,CACN,OAAO,EACP,wCAAwC,EACxC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EACV,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CACxC;SACA,OAAO,CACN,QAAQ,EACR,4BAA4B,EAC5B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EACV,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAC1E;SACA,OAAO,CACN,QAAQ,EACR,uBAAuB,EACvB,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,6BAA6B;KACxC,CAAC,EACJ,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvC,CAAC,CACF;SACA,OAAO,CACN,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,CACxB;SACA,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;SAClE,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC;SACpC,MAAM,EAAE;SACR,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACzD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;SACD,UAAU,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * Usage:
8
8
  * server-ctl server status
9
9
  * server-ctl dispatcher list
10
- * server-ctl dispatcher add --id flow --bot-app-id cli_aaa --bot-secret-ref env:BOT_SECRET_FLOW
10
+ * server-ctl dispatcher add --id flow --bot-app-id <APP_ID> --bot-secret-ref env:BOT_SECRET_FLOW
11
11
  * server-ctl dispatcher status --id flow
12
12
  * server-ctl dispatcher start --id flow
13
13
  * server-ctl dispatcher stop --id flow
@@ -38,9 +38,10 @@ function parseArgs(argv) {
38
38
  return { flags, positional };
39
39
  }
40
40
  async function main() {
41
+ const programName = process.env['DREAMUX_ADMIN_CLI_NAME'] || 'server-ctl';
41
42
  const argv = process.argv.slice(2);
42
43
  if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
43
- printHelp();
44
+ printHelp(programName);
44
45
  return;
45
46
  }
46
47
  const { flags, positional } = parseArgs(argv);
@@ -48,7 +49,7 @@ async function main() {
48
49
  const method = resolveMethod(obj, verb);
49
50
  if (method === null) {
50
51
  console.error(`unknown command: ${obj ?? ''} ${verb ?? ''}\n`);
51
- printHelp();
52
+ printHelp(programName);
52
53
  process.exit(2);
53
54
  }
54
55
  const params = flagsToParams(method, flags);
@@ -148,25 +149,26 @@ function sendOne(socketPath, request) {
148
149
  function cryptoRandomId() {
149
150
  return `cli-${Date.now()}-${Math.floor(Math.random() * 1e6)}`;
150
151
  }
151
- function printHelp() {
152
- console.log(`server-ctl — admin CLI for the dreamux server
152
+ function printHelp(programName = 'server-ctl') {
153
+ console.log(`${programName} — admin CLI for the dreamux server
153
154
 
154
155
  Usage:
155
- server-ctl server status
156
- server-ctl dispatcher list
157
- server-ctl dispatcher add --id <ID> --bot-app-id <APP_ID> \\
156
+ ${programName} server status
157
+ ${programName} dispatcher list
158
+ ${programName} dispatcher add --id <ID> --bot-app-id <APP_ID> \\
158
159
  --bot-secret-ref env:<VAR> [--codex-args-json <JSON>] [--codex-cwd <PATH>]
159
- server-ctl dispatcher status --id <ID>
160
- server-ctl dispatcher start --id <ID>
161
- server-ctl dispatcher stop --id <ID>
162
- server-ctl dispatcher remove --id <ID>
160
+ ${programName} dispatcher status --id <ID>
161
+ ${programName} dispatcher start --id <ID>
162
+ ${programName} dispatcher stop --id <ID>
163
+ ${programName} dispatcher remove --id <ID>
163
164
 
164
165
  Environment:
165
166
  CODEX_HOST_ADMIN_SOCKET override the admin socket path (default: ~/.codex-host/admin.sock)
166
167
  `);
167
168
  }
168
169
  main().catch((err) => {
169
- console.error(`server-ctl: ${err instanceof Error ? err.message : err}`);
170
+ const programName = process.env['DREAMUX_ADMIN_CLI_NAME'] || 'server-ctl';
171
+ console.error(`${programName}: ${err instanceof Error ? err.message : err}`);
170
172
  process.exit(1);
171
173
  });
172
174
  //# sourceMappingURL=server-ctl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-ctl.js","sourceRoot":"","sources":["../../src/cli/server-ctl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-ctl.js","sourceRoot":"","sources":["../../src/cli/server-ctl.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * `dreamux-server` the long-running server entry point.
2
+ * Internal server entry point for `dreamux serve`.
3
3
  *
4
4
  * Usage:
5
- * dreamux-server # run in foreground; logs to stderr
6
- * dreamux-server --help
5
+ * dreamux serve # run in foreground; logs to stderr
6
+ * dreamux serve --help
7
7
  *
8
8
  * Configuration sources (highest precedence first):
9
9
  * 1. environment variables (CODEX_HOST_RUNTIME_DIR, CODEX_HOST_ADMIN_SOCKET,
@@ -51,10 +51,10 @@ async function main() {
51
51
  process.on('SIGINT', () => void shutdown('SIGINT'));
52
52
  }
53
53
  function printHelp() {
54
- console.log(`dreamux-serverCodex-host MVP server (excitedjs/dreamux#2)
54
+ console.log(`dreamux serve local dreamux server
55
55
 
56
56
  Usage:
57
- dreamux-server [--help]
57
+ dreamux serve [--help]
58
58
 
59
59
  Global config:
60
60
  ~/.dreamux/config.toml Auto-created on first boot. Override with the
@@ -76,8 +76,8 @@ Environment overrides (highest precedence):
76
76
  BOT_SECRET_<NAME> Each dispatcher's bot secret (referenced via
77
77
  bot_secret_ref=env:BOT_SECRET_<NAME>)
78
78
 
79
- Add dispatchers via server-ctl:
80
- dreamux dispatcher add --id flow --bot-app-id cli_aaa \\
79
+ Add dispatchers:
80
+ dreamux dispatcher add --id flow --bot-app-id <APP_ID> \\
81
81
  --bot-secret-ref env:BOT_SECRET_FLOW
82
82
  `);
83
83
  }
@@ -19,7 +19,7 @@
19
19
  * have to be threaded through every call site. Keep in sync with package.json.
20
20
  */
21
21
  const DREAMUX_CLIENT_INFO = {
22
- name: 'dreamux-server',
22
+ name: 'dreamux',
23
23
  title: 'dreamux Codex-host server',
24
24
  version: '0.1.0',
25
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/codex/handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH;;;GAGG;AACH,MAAM,mBAAmB,GAAe;IACtC,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,oBAAoB,GAA2B;IACnD,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAC1E,qEAAqE;IACrE,6CAA6C;IAC7C,eAAe,EAAE,IAAI;IACrB,6DAA6D;IAC7D,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAgBF;;;;GAIG;AACH,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAqB,EACrB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAqB;QAC/B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,mBAAmB;QACrD,YAAY,EACV,OAAO,CAAC,YAAY,KAAK,SAAS;YAChC,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,OAAO,CAAC,YAAY;KAC3B,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,4BAA4B,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,MAAM,CAAC,OAAO,CAAqB,YAAY,EAAE,MAAM,CAAC,EACxD,SAAS,EACT,qDAAqD,SAAS,yFAAyF,CACxJ,CAAC;IACF,uEAAuE;IACvE,gFAAgF;IAChF,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,CAAa,EACb,EAAU,EACV,GAAW;IAEX,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,EAAE,EAAE;YACJ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/codex/handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH;;;GAGG;AACH,MAAM,mBAAmB,GAAe;IACtC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,oBAAoB,GAA2B;IACnD,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAC1E,qEAAqE;IACrE,6CAA6C;IAC7C,eAAe,EAAE,IAAI;IACrB,6DAA6D;IAC7D,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAgBF;;;;GAIG;AACH,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAqB,EACrB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAqB;QAC/B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,mBAAmB;QACrD,YAAY,EACV,OAAO,CAAC,YAAY,KAAK,SAAS;YAChC,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,OAAO,CAAC,YAAY;KAC3B,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,4BAA4B,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,MAAM,CAAC,OAAO,CAAqB,YAAY,EAAE,MAAM,CAAC,EACxD,SAAS,EACT,qDAAqD,SAAS,yFAAyF,CACxJ,CAAC;IACF,uEAAuE;IACvE,gFAAgF;IAChF,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,CAAa,EACb,EAAU,EACV,GAAW;IAEX,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,EAAE,EAAE;YACJ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -24,6 +24,22 @@ export class DispatcherRepo {
24
24
  .run(input.dispatcher_id, input.bot_app_id, input.bot_secret_ref, input.codex_args_json ?? '{}', input.codex_cwd ?? null, now, now);
25
25
  return this.get(input.dispatcher_id);
26
26
  }
27
+ upsert(input) {
28
+ const existing = this.get(input.dispatcher_id);
29
+ if (existing === null)
30
+ return this.create(input);
31
+ this.db
32
+ .prepare(`UPDATE dispatchers
33
+ SET bot_app_id = ?,
34
+ bot_secret_ref = ?,
35
+ codex_args_json = ?,
36
+ codex_cwd = ?,
37
+ enabled = 1,
38
+ updated_at = ?
39
+ WHERE dispatcher_id = ?`)
40
+ .run(input.bot_app_id, input.bot_secret_ref, input.codex_args_json ?? '{}', input.codex_cwd ?? null, Date.now(), input.dispatcher_id);
41
+ return this.get(input.dispatcher_id);
42
+ }
27
43
  get(id) {
28
44
  const row = this.db
29
45
  .prepare(`SELECT ${DISPATCHER_COLUMNS} FROM dispatchers WHERE dispatcher_id = ?`)
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/db/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/db/repository.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ import { CodexWsClient } from '../codex/rpc.js';
24
24
  import { performInitializeHandshake } from '../codex/handshake.js';
25
25
  import { TurnManager } from './turn-manager.js';
26
26
  import { createFailFastApprovalHandler } from './approval.js';
27
- import { dispatcherCodexCwd, dispatcherStdoutLog, dispatcherStderrLog, dispatcherSocketPath } from '../runtime/paths.js';
27
+ import { dispatcherCodexCwd, dispatcherCodexHome, dispatcherSocketPath, dispatcherStderrLog, dispatcherStdoutLog, } from '../runtime/paths.js';
28
+ import { assertDispatcherCodexHomeReady, dispatcherCodexHomeDoctorContext, } from '../runtime/dispatcher-codex-home.js';
28
29
  import { outboundTargetForInbound } from '../channel/outbound.js';
29
30
  export class DispatcherRuntime {
30
31
  row;
@@ -79,8 +80,13 @@ export class DispatcherRuntime {
79
80
  try {
80
81
  await this.recoverInboundOnStartup();
81
82
  const cwd = this.row.codex_cwd ?? dispatcherCodexCwd(this.dispatcherId);
83
+ const codexHome = dispatcherCodexHome(this.dispatcherId);
82
84
  const socketPath = dispatcherSocketPath(this.dispatcherId);
83
85
  const extraArgs = this.deps.resolveExtraArgs?.(this.row) ?? [];
86
+ const doctor = this.deps.codexHomeDoctor ?? assertDispatcherCodexHomeReady;
87
+ await doctor(dispatcherCodexHomeDoctorContext(this.dispatcherId, {
88
+ codexCliArgs: extraArgs,
89
+ }));
84
90
  const factory = this.deps.codexProcessFactory ?? ((o) => new CodexProcess(o));
85
91
  this.process = factory({
86
92
  socketPath,
@@ -89,6 +95,7 @@ export class DispatcherRuntime {
89
95
  stderrLogPath: dispatcherStderrLog(this.dispatcherId),
90
96
  binPath: this.deps.codexBinPath,
91
97
  extraArgs,
98
+ env: { ...process.env, CODEX_HOME: codexHome },
92
99
  });
93
100
  mkdirSync(dirname(socketPath), { recursive: true });
94
101
  await this.process.start();