@excitedjs/dreamux 0.8.0 → 0.9.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.
@@ -1,5 +1,5 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
- import { homedir } from 'node:os';
2
+ import { homedir, userInfo } from 'node:os';
3
3
  import { parse as parsePlist } from 'plist';
4
4
  import { codexArgsToCli, parseCodexArgs } from '../runtime/codex-args.js';
5
5
  import { BUILT_IN_DEFAULTS, globalConfigDir, globalConfigFile, loadConfig, } from '../runtime/config.js';
@@ -36,6 +36,9 @@ export async function runDreamuxDoctor(options = {}) {
36
36
  ? `installed at ${service.unitPath}`
37
37
  : `not installed at ${service.unitPath}`,
38
38
  });
39
+ if (service.platform === 'systemd' && service.installed) {
40
+ checks.push(await systemdLingerCheck(runner, options.userName ?? userInfo().username));
41
+ }
39
42
  await addManagedServiceLaunchChecks(checks, service, runner, options.nodeProbe ?? defaultServiceNodeProbe);
40
43
  const dispatchers = readDispatchers(config, options.env ?? process.env, service);
41
44
  if (dispatchers.length === 0) {
@@ -216,6 +219,31 @@ async function systemdStatus(unitPath, runner) {
216
219
  execStart: unitFile.execStart,
217
220
  };
218
221
  }
222
+ async function systemdLingerCheck(runner, userName) {
223
+ const fix = 'enable it with `loginctl enable-linger` (or rerun `dreamux daemon install`)';
224
+ try {
225
+ const raw = await runner.capture('loginctl', [
226
+ 'show-user',
227
+ userName,
228
+ '--property=Linger',
229
+ ]);
230
+ const ok = /Linger=yes/.test(raw);
231
+ return {
232
+ name: 'systemd linger',
233
+ ok,
234
+ detail: ok
235
+ ? `enabled for ${userName}; the service starts at boot`
236
+ : `disabled for ${userName}; the service will not start at boot without an interactive login — ${fix}`,
237
+ };
238
+ }
239
+ catch (err) {
240
+ return {
241
+ name: 'systemd linger',
242
+ ok: false,
243
+ detail: `could not determine lingering for ${userName} (${err instanceof Error ? err.message : String(err)}) — ${fix}`,
244
+ };
245
+ }
246
+ }
219
247
  async function addManagedServiceLaunchChecks(checks, service, runner, probe) {
220
248
  if (!service.installed)
221
249
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,10 @@ import { validateDispatcherId } from '../runtime/dispatcher-id.js';
16
16
  import { runOnboard } from '../onboard/run.js';
17
17
  import { runUninstall, } from '../onboard/uninstall.js';
18
18
  import { collectOnboardAnswers, } from '../onboard/wizard.js';
19
+ import { runDaemonInstall, runDaemonUninstall, } from '../daemon/install.js';
20
+ import { controlUserService, } from '../daemon/service-control.js';
21
+ import { DEFAULT_RESTART_ANNOUNCE, notifyResumedRestart, } from '../daemon/restart-intent.js';
22
+ import { ExecaCommandRunner } from '../onboard/commands.js';
19
23
  import { printDoctorResult, runDreamuxDoctor } from './doctor.js';
20
24
  import { runFeishuMcp } from '../mcp/feishu-mcp.js';
21
25
  import { createLogger } from '../runtime/logger.js';
@@ -206,6 +210,7 @@ function printOnboardResult(result) {
206
210
  : `dreamux onboard doctor: failed (${result.doctor.errors.length} error(s))`);
207
211
  if (result.service !== null) {
208
212
  console.log(`dreamux onboard service: ${result.service.platform} ${result.service.unitPath}`);
213
+ printServiceWarnings(result.service.lingerEnabled, result.service.warnings);
209
214
  }
210
215
  }
211
216
  function printUninstallResult(result) {
@@ -218,6 +223,97 @@ function printUninstallResult(result) {
218
223
  }
219
224
  console.log(`dreamux uninstall service: ${result.service.platform} ${result.service.unitPath}`);
220
225
  }
226
+ function buildDaemonCommands(y) {
227
+ return y
228
+ .command('install', 'Register (or re-register) the user-level service from config', (yy) => yy
229
+ .option('start', {
230
+ type: 'boolean',
231
+ default: true,
232
+ describe: 'Start the service after registration',
233
+ })
234
+ .option('dry-run', {
235
+ type: 'boolean',
236
+ describe: 'Print the planned actions without writing or registering',
237
+ }), async (argv) => {
238
+ const result = await runDaemonInstall({
239
+ startService: argv.start !== false,
240
+ dryRun: argv.dryRun === true,
241
+ });
242
+ printDaemonInstallResult(result);
243
+ })
244
+ .command('uninstall', 'Remove the user-level service unit only (keeps config, state, logs)', (yy) => yy.option('dry-run', {
245
+ type: 'boolean',
246
+ describe: 'Print the planned removal without unregistering',
247
+ }), async (argv) => {
248
+ const result = await runDaemonUninstall({ dryRun: argv.dryRun === true });
249
+ console.log(`dreamux daemon uninstall: ${result.platform} unit ${result.removed ? 'removed' : 'absent'} at ${result.unitPath}`);
250
+ })
251
+ .command('start', 'Start the user-level service', (yy) => yy, async () => runDaemonControl('start'))
252
+ .command('stop', 'Stop the user-level service', (yy) => yy, async () => runDaemonControl('stop'))
253
+ .command('restart', 'Restart the user-level service', (yy) => yy
254
+ .option('notify-resumed', {
255
+ type: 'boolean',
256
+ describe: 'After the restart, inject a one-shot notice into the named resumed dispatcher(s)',
257
+ })
258
+ .option('dispatcher', {
259
+ type: 'string',
260
+ array: true,
261
+ describe: 'Dispatcher id to notify (required with --notify-resumed; repeatable)',
262
+ })
263
+ .option('announce', {
264
+ type: 'string',
265
+ describe: `Notice text to inject (default: "${DEFAULT_RESTART_ANNOUNCE}")`,
266
+ }), async (argv) => {
267
+ await handleDaemonRestart(argv);
268
+ })
269
+ .demandCommand(1, 'Choose a daemon command')
270
+ .strict();
271
+ }
272
+ async function runDaemonControl(verb) {
273
+ const result = await controlUserService(verb, {
274
+ runner: new ExecaCommandRunner(),
275
+ });
276
+ const issued = result.commands
277
+ .map((cmd) => `${cmd.command} ${cmd.args.join(' ')}`)
278
+ .join('; ');
279
+ console.log(`dreamux daemon ${verb}: ${result.platform}${issued === '' ? ' (no-op)' : ` (${issued})`}`);
280
+ }
281
+ async function handleDaemonRestart(argv) {
282
+ const args = argv;
283
+ if (args.notifyResumed !== true) {
284
+ await runDaemonControl('restart');
285
+ return;
286
+ }
287
+ const targets = (args.dispatcher ?? []).map((id) => validateDispatcherId(id));
288
+ if (targets.length === 0) {
289
+ throw new Error('--notify-resumed requires at least one --dispatcher <id>');
290
+ }
291
+ console.log(`dreamux daemon restart: will notify resumed dispatcher(s) ${targets.join(', ')}`);
292
+ // Marker first (durable across a self-update reap), restart second, and roll
293
+ // the marker back if the restart command fails while we are still alive.
294
+ await notifyResumedRestart({
295
+ targets,
296
+ ...(args.announce !== undefined ? { announce: args.announce } : {}),
297
+ now: Date.now(),
298
+ runControl: () => runDaemonControl('restart'),
299
+ });
300
+ }
301
+ function printDaemonInstallResult(result) {
302
+ console.log('dreamux daemon install file ledger:');
303
+ for (const entry of result.files) {
304
+ console.log(`${entry.status}\t${entry.path}\t${entry.reason}`);
305
+ }
306
+ console.log(`dreamux daemon install service: ${result.service.platform} ${result.service.unitPath}`);
307
+ printServiceWarnings(result.service.lingerEnabled, result.service.warnings);
308
+ }
309
+ function printServiceWarnings(lingerEnabled, warnings) {
310
+ if (lingerEnabled === true) {
311
+ console.log('dreamux service: systemd lingering enabled (starts at boot)');
312
+ }
313
+ for (const warning of warnings) {
314
+ console.error(`warning: ${warning}`);
315
+ }
316
+ }
221
317
  function buildConfigCommands(y) {
222
318
  return y
223
319
  .command('path', 'Print the dreamux global config path', (yy) => yy, () => {
@@ -269,6 +365,7 @@ async function main() {
269
365
  if (!result.ok)
270
366
  process.exitCode = 1;
271
367
  })
368
+ .command('daemon <command>', 'Manage the dreamux user-level service', buildDaemonCommands)
272
369
  .command('dispatcher <command>', 'Manage dispatchers', buildDispatcherCommands)
273
370
  .command('feishu-mcp', 'Run the dispatcher-scoped Feishu MCP stdio shim', buildFeishuMcpCommand, async (argv) => {
274
371
  const dispatcherId = validateDispatcherId(argv.dispatcher);
@@ -1 +1 @@
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,EACL,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,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,oBAAoB,CAAC,KAAc;IAC1C,OAAO,oBAAoB,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,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,kDAAkD;KAC7D,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,oBAAoB,CAAC,IAAI,CAAC,EAAE,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,oBAAoB,CAAC,IAAI,CAAC,EAAE,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,gBAAgB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,sEAAsE;KACjF,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,mCAAmC;KAC9C,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,kDAAkD;KAC7D,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,qBAAqB,CAAC,CAAO;IACpC,OAAO,CAAC;SACL,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,kEAAkE;KAC7E,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAa;IAC1C,MAAM,IAAI,GAAG,IAIZ,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;IACH,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC/B,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,oBAAoB,CAAC,MAA0B;IACtD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,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,8BAA8B,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CACnF,CAAC;AACJ,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,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC,CACF;SACA,aAAa,CAAC,CAAC,EAAE,yBAAyB,CAAC;SAC3C,MAAM,EAAE,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,CAAO;IAEP,OAAO,CAAC;SACL,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,0CAA0C;KACrD,CAAC;SACD,MAAM,CAAC,cAAc,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iCAAiC;KAC5C,CAAuD,CAAC;AAC7D,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,WAAW,EACX,kDAAkD,EAClD,qBAAqB,EACrB,eAAe,CAChB;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,CACN,YAAY,EACZ,iDAAiD,EACjD,qBAAqB,EACrB,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,uEAAuE;QACvE,qDAAqD;QACrD,MAAM,GAAG,GAAG,YAAY,CAAC;YACvB,IAAI,EAAE,cAAc,YAAY,EAAE;YAClC,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC;YACjB,YAAY;YACZ,eAAe,EAAE,IAAI,CAAC,WAAW;YACjC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SACpC,CAAC,CAAC;IACL,CAAC,CACF;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"}
1
+ {"version":3,"file":"dreamux.js","sourceRoot":"","sources":["../../src/cli/dreamux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * `dreamux daemon install` / `daemon uninstall`.
3
+ *
4
+ * `install` re-registers the user-level service from the already-written
5
+ * dreamux config (it does not collect onboarding answers). It reuses the exact
6
+ * service slice onboard uses — `installUserService` — so linger handling and
7
+ * the unit contents stay single-sourced. `uninstall` removes only the service
8
+ * unit (never config / state / logs); that is the boundary against the
9
+ * top-level `dreamux uninstall`.
10
+ */
11
+ import { ExecaCommandRunner } from '../onboard/commands.js';
12
+ import { installUserService, removeUserService, resolveServiceExecutable, selectServiceNodeBin, validateManagedServiceLaunch, } from '../onboard/service.js';
13
+ import { TransparentFileLedger } from '../onboard/ledger.js';
14
+ import { globalConfigDir, loadConfig } from '../runtime/config.js';
15
+ import { dreamuxBinPath } from '../runtime/package-bin.js';
16
+ import { setRuntimeConfig, stateRoot } from '../runtime/paths.js';
17
+ export async function runDaemonInstall(options = {}) {
18
+ const runner = options.runner ?? new ExecaCommandRunner();
19
+ const env = options.env ?? process.env;
20
+ const dryRun = options.dryRun ?? false;
21
+ const startService = options.startService ?? true;
22
+ // Fail loudly when the operator has not run onboard yet — daemon install
23
+ // re-registers an existing setup, it does not create one.
24
+ const { config } = loadConfig({ configDir: globalConfigDir() });
25
+ setRuntimeConfig(config);
26
+ const codexBin = dryRun
27
+ ? config.codex.bin
28
+ : resolveServiceExecutable(config.codex.bin, env);
29
+ // Pin the managed service to a stable system Node (issue #83) rather than the
30
+ // current process Node — otherwise running `daemon install` from a
31
+ // version-manager Node would re-pin the service to that unstable Node.
32
+ const nodeBin = dryRun
33
+ ? process.execPath
34
+ : await selectServiceNodeBin({
35
+ platform: options.platform ?? process.platform,
36
+ currentNodeBin: process.execPath,
37
+ runner,
38
+ ...(options.nodeProbe !== undefined ? { probe: options.nodeProbe } : {}),
39
+ });
40
+ const answers = {
41
+ configDir: globalConfigDir(),
42
+ runtimeDir: stateRoot(),
43
+ codexBin,
44
+ dreamuxBin: dreamuxBinPath(env),
45
+ nodeBin,
46
+ startService,
47
+ dryRun,
48
+ };
49
+ if (!dryRun) {
50
+ const launch = await validateManagedServiceLaunch(answers, runner);
51
+ if (!launch.ok) {
52
+ throw new Error([
53
+ 'dreamux managed service launch environment is not ready',
54
+ ...launch.errors.map((error) => `- ${error}`),
55
+ '- rerun dreamux onboard from the desired Node/Codex install',
56
+ ].join('\n'));
57
+ }
58
+ }
59
+ const ledger = new TransparentFileLedger();
60
+ const service = await installUserService({
61
+ answers,
62
+ ledger,
63
+ runner,
64
+ platform: options.platform,
65
+ homeDir: options.homeDir,
66
+ uid: options.uid,
67
+ });
68
+ return { service, files: ledger.entries() };
69
+ }
70
+ export async function runDaemonUninstall(options = {}) {
71
+ const runner = options.runner ?? new ExecaCommandRunner();
72
+ return removeUserService({
73
+ runner,
74
+ platform: options.platform,
75
+ homeDir: options.homeDir,
76
+ uid: options.uid,
77
+ dryRun: options.dryRun ?? false,
78
+ });
79
+ }
80
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/daemon/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Restart-notice marker — the one-shot signal that turns a plain service
3
+ * restart into "after you come back up, tell these resumed dispatchers the
4
+ * restart finished".
5
+ *
6
+ * Contract (issue #78):
7
+ * - `dreamux daemon restart --notify-resumed --dispatcher <id>` writes the
8
+ * marker to dreamux state *before* it asks the service manager to restart.
9
+ * Writing first means the marker survives even when the calling CLI is a
10
+ * child of the Codex process group that the restart reaps (the dispatcher
11
+ * self-update case): the caller may be killed before `systemctl` returns,
12
+ * so it must not depend on observing an exit code.
13
+ * - The freshly started server loads the marker exactly once, deletes it
14
+ * immediately (snapshot-in-memory semantics), then hands the announce text
15
+ * to each named dispatcher as it comes up resumed. Deleting on load is what
16
+ * stops a later cold boot / crash auto-heal from replaying the notice.
17
+ * - A TTL bounds staleness: a marker older than its TTL is ignored (and the
18
+ * file removed). The TTL is re-checked at claim time too, so a dispatcher
19
+ * that only starts long after boot (e.g. via a later admin `dispatcher
20
+ * start`) does not claim a stale notice.
21
+ */
22
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync, } from 'node:fs';
23
+ import { dirname } from 'node:path';
24
+ import { restartIntentPath } from '../runtime/paths.js';
25
+ /** Default English notice injected into a resumed dispatcher after restart. */
26
+ export const DEFAULT_RESTART_ANNOUNCE = 'Restart completed.';
27
+ /**
28
+ * How long a restart marker stays valid. A `daemon restart` is a service
29
+ * restart (seconds), not a machine reboot, so ten minutes is comfortably
30
+ * longer than any healthy restart+resume while still bounding a stale marker
31
+ * left behind by a crash mid-restart.
32
+ */
33
+ export const DEFAULT_RESTART_INTENT_TTL_MS = 10 * 60_000;
34
+ /**
35
+ * Persist the restart marker. Must be called *before* triggering the service
36
+ * manager restart so the marker is durable if the caller is killed.
37
+ */
38
+ export function writeRestartIntent(options) {
39
+ const path = options.path ?? restartIntentPath();
40
+ const file = {
41
+ version: 1,
42
+ created_at_ms: options.now,
43
+ ttl_ms: options.ttlMs ?? DEFAULT_RESTART_INTENT_TTL_MS,
44
+ announce: options.announce !== undefined && options.announce.trim() !== ''
45
+ ? options.announce
46
+ : DEFAULT_RESTART_ANNOUNCE,
47
+ targets: dedupeNonEmpty(options.targets),
48
+ };
49
+ mkdirSync(dirname(path), { recursive: true });
50
+ writeFileSync(path, `${JSON.stringify(file, null, 2)}\n`, { mode: 0o600 });
51
+ return path;
52
+ }
53
+ /**
54
+ * Best-effort removal of the restart marker. Used to roll back a marker after
55
+ * the restart command itself fails synchronously while this process is still
56
+ * alive — leaving it would let the next ordinary `serve` start (within the TTL)
57
+ * falsely consume it and inject a notice for a restart that never happened. The
58
+ * self-update path where the caller is reaped before reaching here keeps the
59
+ * marker (durability), which is the intended behaviour (issue #78).
60
+ */
61
+ export function clearRestartIntent(path = restartIntentPath()) {
62
+ try {
63
+ rmSync(path, { force: true });
64
+ }
65
+ catch {
66
+ /* best effort */
67
+ }
68
+ }
69
+ /**
70
+ * Drop the restart marker, then trigger the restart. The marker is written
71
+ * first so it survives a self-update restart that reaps the caller. If the
72
+ * restart command instead fails synchronously (caller still alive), roll the
73
+ * marker back so a later ordinary `serve` start cannot falsely consume it
74
+ * within the TTL. See issue #78.
75
+ */
76
+ export async function notifyResumedRestart(options) {
77
+ const path = writeRestartIntent({
78
+ targets: options.targets,
79
+ ...(options.announce !== undefined ? { announce: options.announce } : {}),
80
+ now: options.now,
81
+ ...(options.path !== undefined ? { path: options.path } : {}),
82
+ });
83
+ try {
84
+ await options.runControl();
85
+ }
86
+ catch (err) {
87
+ clearRestartIntent(path);
88
+ throw err;
89
+ }
90
+ }
91
+ /**
92
+ * In-memory snapshot of the restart marker. Constructed once at server start;
93
+ * `claim` hands out the announce text per target exactly once.
94
+ */
95
+ export class RestartIntentConsumer {
96
+ announce;
97
+ expiresAtMs;
98
+ remaining;
99
+ constructor(announce, expiresAtMs, remaining) {
100
+ this.announce = announce;
101
+ this.expiresAtMs = expiresAtMs;
102
+ this.remaining = remaining;
103
+ }
104
+ /**
105
+ * Read the marker (if any), delete it from disk, and return a consumer. A
106
+ * missing / malformed / expired marker yields an empty consumer (and the
107
+ * stale file is removed). This is the only reader of the marker file.
108
+ */
109
+ static load(options = { now: 0 }) {
110
+ const path = options.path ?? restartIntentPath();
111
+ const empty = new RestartIntentConsumer('', 0, new Set());
112
+ if (!existsSync(path))
113
+ return empty;
114
+ let parsed = null;
115
+ try {
116
+ parsed = JSON.parse(readFileSync(path, 'utf8'));
117
+ }
118
+ catch {
119
+ parsed = null;
120
+ }
121
+ // Single reader: drop the file regardless of validity so it never replays.
122
+ try {
123
+ rmSync(path, { force: true });
124
+ }
125
+ catch {
126
+ /* best effort */
127
+ }
128
+ if (parsed === null || parsed.version !== 1)
129
+ return empty;
130
+ const expiresAtMs = parsed.created_at_ms + parsed.ttl_ms;
131
+ if (options.now > expiresAtMs)
132
+ return empty;
133
+ const announce = typeof parsed.announce === 'string' && parsed.announce.trim() !== ''
134
+ ? parsed.announce
135
+ : DEFAULT_RESTART_ANNOUNCE;
136
+ return new RestartIntentConsumer(announce, expiresAtMs, new Set(dedupeNonEmpty(parsed.targets ?? [])));
137
+ }
138
+ /**
139
+ * Claim the notice for one dispatcher. Returns the announce text the first
140
+ * time a still-valid target is seen, then null forever after (single
141
+ * consume). Re-checks the TTL so a late starter cannot claim a stale notice.
142
+ */
143
+ claim(dispatcherId, now) {
144
+ if (!this.remaining.has(dispatcherId))
145
+ return null;
146
+ if (now > this.expiresAtMs) {
147
+ this.remaining.delete(dispatcherId);
148
+ return null;
149
+ }
150
+ this.remaining.delete(dispatcherId);
151
+ return this.announce;
152
+ }
153
+ }
154
+ function dedupeNonEmpty(values) {
155
+ const out = [];
156
+ const seen = new Set();
157
+ for (const value of values) {
158
+ if (typeof value !== 'string')
159
+ continue;
160
+ const trimmed = value.trim();
161
+ if (trimmed === '' || seen.has(trimmed))
162
+ continue;
163
+ seen.add(trimmed);
164
+ out.push(trimmed);
165
+ }
166
+ return out;
167
+ }
168
+ //# sourceMappingURL=restart-intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart-intent.js","sourceRoot":"","sources":["../../src/daemon/restart-intent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Service-manager lifecycle wrappers for the `dreamux daemon` command group.
3
+ *
4
+ * These talk to the native user-level service manager directly (Linux
5
+ * `systemctl --user`, macOS `launchctl`) — not the admin socket — so they work
6
+ * even when the server is down. Each verb maps to the platform's idiom:
7
+ *
8
+ * verb | systemd --user | launchd (gui/<uid>/<label>)
9
+ * ---------|--------------------------------------|----------------------------
10
+ * start | start dreamux.service | kickstart (bootstrap if unloaded)
11
+ * stop | stop dreamux.service | bootout (KeepAlive would relaunch a kill)
12
+ * restart | restart dreamux.service | kickstart -k (bootstrap if unloaded)
13
+ *
14
+ * launchd's KeepAlive=true relaunches a plain `kill`, so a stop that *stays*
15
+ * stopped is a `bootout`; start/restart then re-bootstrap when needed.
16
+ */
17
+ import { homedir } from 'node:os';
18
+ import { LAUNCHD_LABEL, serviceUnitPath, SYSTEMD_UNIT } from '../onboard/service.js';
19
+ export async function controlUserService(verb, options) {
20
+ const homeDir = options.homeDir ?? homedir();
21
+ const unit = serviceUnitPath(options.platform, homeDir);
22
+ const dryRun = options.dryRun ?? false;
23
+ const commands = [];
24
+ if (unit.platform === 'systemd') {
25
+ const args = ['--user', verb, SYSTEMD_UNIT];
26
+ await options.runner.run('systemctl', args, { dryRun });
27
+ commands.push({ command: 'systemctl', args });
28
+ return { platform: 'systemd', verb, commands };
29
+ }
30
+ const uid = options.uid ?? process.getuid?.();
31
+ if (uid === undefined) {
32
+ throw new Error('launchd user service control requires a numeric uid');
33
+ }
34
+ const target = `gui/${uid}/${LAUNCHD_LABEL}`;
35
+ const loaded = await options.runner.check('launchctl', ['print', target], { dryRun });
36
+ if (verb === 'stop') {
37
+ if (loaded) {
38
+ const args = ['bootout', target];
39
+ await options.runner.run('launchctl', args, { dryRun });
40
+ commands.push({ command: 'launchctl', args });
41
+ }
42
+ return { platform: 'launchd', verb, commands };
43
+ }
44
+ if (!loaded) {
45
+ const args = ['bootstrap', `gui/${uid}`, unit.path];
46
+ await options.runner.run('launchctl', args, { dryRun });
47
+ commands.push({ command: 'launchctl', args });
48
+ if (verb === 'start')
49
+ return { platform: 'launchd', verb, commands };
50
+ }
51
+ const args = verb === 'restart' ? ['kickstart', '-k', target] : ['kickstart', target];
52
+ await options.runner.run('launchctl', args, { dryRun });
53
+ commands.push({ command: 'launchctl', args });
54
+ return { platform: 'launchd', verb, commands };
55
+ }
56
+ //# sourceMappingURL=service-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-control.js","sourceRoot":"","sources":["../../src/daemon/service-control.ts"],"names":[],"mappings":"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"}