@jungjaehoon/mama-os 0.77.0 → 0.78.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 (124) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/README.md +25 -10
  3. package/dist/api/security-events.d.ts.map +1 -1
  4. package/dist/api/security-events.js +10 -1
  5. package/dist/api/security-events.js.map +1 -1
  6. package/dist/api/viewer-server.d.ts +1 -0
  7. package/dist/api/viewer-server.d.ts.map +1 -1
  8. package/dist/api/viewer-server.js +34 -0
  9. package/dist/api/viewer-server.js.map +1 -1
  10. package/dist/api/work-actions.d.ts.map +1 -1
  11. package/dist/api/work-actions.js +27 -2
  12. package/dist/api/work-actions.js.map +1 -1
  13. package/dist/cli/commands/backfill.d.ts.map +1 -1
  14. package/dist/cli/commands/backfill.js +1 -0
  15. package/dist/cli/commands/backfill.js.map +1 -1
  16. package/dist/cli/commands/backup.d.ts +13 -0
  17. package/dist/cli/commands/backup.d.ts.map +1 -0
  18. package/dist/cli/commands/backup.js +137 -0
  19. package/dist/cli/commands/backup.js.map +1 -0
  20. package/dist/cli/commands/control.d.ts +26 -0
  21. package/dist/cli/commands/control.d.ts.map +1 -0
  22. package/dist/cli/commands/control.js +193 -0
  23. package/dist/cli/commands/control.js.map +1 -0
  24. package/dist/cli/commands/daemon.d.ts +49 -3
  25. package/dist/cli/commands/daemon.d.ts.map +1 -1
  26. package/dist/cli/commands/daemon.js +244 -74
  27. package/dist/cli/commands/daemon.js.map +1 -1
  28. package/dist/cli/commands/doctor.d.ts +13 -0
  29. package/dist/cli/commands/doctor.d.ts.map +1 -0
  30. package/dist/cli/commands/doctor.js +216 -0
  31. package/dist/cli/commands/doctor.js.map +1 -0
  32. package/dist/cli/commands/init.d.ts.map +1 -1
  33. package/dist/cli/commands/init.js +3 -2
  34. package/dist/cli/commands/init.js.map +1 -1
  35. package/dist/cli/commands/logs.d.ts +9 -0
  36. package/dist/cli/commands/logs.d.ts.map +1 -0
  37. package/dist/cli/commands/logs.js +109 -0
  38. package/dist/cli/commands/logs.js.map +1 -0
  39. package/dist/cli/commands/register-owner.d.ts.map +1 -1
  40. package/dist/cli/commands/register-owner.js +12 -0
  41. package/dist/cli/commands/register-owner.js.map +1 -1
  42. package/dist/cli/commands/restore.d.ts +14 -0
  43. package/dist/cli/commands/restore.d.ts.map +1 -0
  44. package/dist/cli/commands/restore.js +130 -0
  45. package/dist/cli/commands/restore.js.map +1 -0
  46. package/dist/cli/commands/service.d.ts +28 -0
  47. package/dist/cli/commands/service.d.ts.map +1 -0
  48. package/dist/cli/commands/service.js +278 -0
  49. package/dist/cli/commands/service.js.map +1 -0
  50. package/dist/cli/commands/uninstall.d.ts +7 -0
  51. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  52. package/dist/cli/commands/uninstall.js +262 -0
  53. package/dist/cli/commands/uninstall.js.map +1 -0
  54. package/dist/cli/index.js +67 -20
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/cli/launch-files.d.ts +83 -0
  57. package/dist/cli/launch-files.d.ts.map +1 -1
  58. package/dist/cli/launch-files.js +231 -15
  59. package/dist/cli/launch-files.js.map +1 -1
  60. package/dist/cli/runtime/backend-probe.d.ts +34 -0
  61. package/dist/cli/runtime/backend-probe.d.ts.map +1 -0
  62. package/dist/cli/runtime/backend-probe.js +83 -0
  63. package/dist/cli/runtime/backend-probe.js.map +1 -0
  64. package/dist/cli/runtime/backup.d.ts +114 -0
  65. package/dist/cli/runtime/backup.d.ts.map +1 -0
  66. package/dist/cli/runtime/backup.js +564 -0
  67. package/dist/cli/runtime/backup.js.map +1 -0
  68. package/dist/cli/runtime/daemon-control.d.ts +84 -0
  69. package/dist/cli/runtime/daemon-control.d.ts.map +1 -0
  70. package/dist/cli/runtime/daemon-control.js +266 -0
  71. package/dist/cli/runtime/daemon-control.js.map +1 -0
  72. package/dist/cli/runtime/diagnostics.d.ts +43 -0
  73. package/dist/cli/runtime/diagnostics.d.ts.map +1 -0
  74. package/dist/cli/runtime/diagnostics.js +953 -0
  75. package/dist/cli/runtime/diagnostics.js.map +1 -0
  76. package/dist/cli/runtime/restore.d.ts +98 -0
  77. package/dist/cli/runtime/restore.d.ts.map +1 -0
  78. package/dist/cli/runtime/restore.js +756 -0
  79. package/dist/cli/runtime/restore.js.map +1 -0
  80. package/dist/cli/runtime/systemd-service.d.ts +13 -0
  81. package/dist/cli/runtime/systemd-service.d.ts.map +1 -0
  82. package/dist/cli/runtime/systemd-service.js +32 -0
  83. package/dist/cli/runtime/systemd-service.js.map +1 -0
  84. package/dist/connectors/chatwork/index.js +1 -1
  85. package/dist/connectors/chatwork/index.js.map +1 -1
  86. package/dist/connectors/config-loader.d.ts +2 -1
  87. package/dist/connectors/config-loader.d.ts.map +1 -1
  88. package/dist/connectors/config-loader.js +3 -2
  89. package/dist/connectors/config-loader.js.map +1 -1
  90. package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
  91. package/dist/connectors/framework/polling-scheduler.js +12 -11
  92. package/dist/connectors/framework/polling-scheduler.js.map +1 -1
  93. package/dist/connectors/imessage/index.d.ts.map +1 -1
  94. package/dist/connectors/imessage/index.js +2 -1
  95. package/dist/connectors/imessage/index.js.map +1 -1
  96. package/dist/connectors/slack/index.js +1 -1
  97. package/dist/connectors/slack/index.js.map +1 -1
  98. package/dist/runtime/backend-security.d.ts +3 -0
  99. package/dist/runtime/backend-security.d.ts.map +1 -1
  100. package/dist/runtime/backend-security.js +13 -5
  101. package/dist/runtime/backend-security.js.map +1 -1
  102. package/dist/runtime/config.d.ts +3 -0
  103. package/dist/runtime/config.d.ts.map +1 -1
  104. package/dist/runtime/config.js +4 -4
  105. package/dist/runtime/config.js.map +1 -1
  106. package/dist/runtime/connectors.d.ts +21 -1
  107. package/dist/runtime/connectors.d.ts.map +1 -1
  108. package/dist/runtime/connectors.js +28 -17
  109. package/dist/runtime/connectors.js.map +1 -1
  110. package/dist/runtime/core-db.d.ts.map +1 -1
  111. package/dist/runtime/core-db.js +2 -0
  112. package/dist/runtime/core-db.js.map +1 -1
  113. package/dist/runtime/owner-system-prompt.d.ts.map +1 -1
  114. package/dist/runtime/owner-system-prompt.js +7 -5
  115. package/dist/runtime/owner-system-prompt.js.map +1 -1
  116. package/dist/runtime/rotating-log.d.ts +44 -0
  117. package/dist/runtime/rotating-log.d.ts.map +1 -0
  118. package/dist/runtime/rotating-log.js +124 -0
  119. package/dist/runtime/rotating-log.js.map +1 -0
  120. package/dist/tools/document-toolkit.d.ts +2 -0
  121. package/dist/tools/document-toolkit.d.ts.map +1 -1
  122. package/dist/tools/document-toolkit.js +2 -0
  123. package/dist/tools/document-toolkit.js.map +1 -1
  124. package/package.json +4 -3
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OWNER_PRINCIPAL_ID = void 0;
3
+ exports.MESSENGER_SECRETS = exports.BOOT_STAGES = exports.StopDuringBootError = exports.OWNER_PRINCIPAL_ID = void 0;
4
+ exports.pathsOverlap = pathsOverlap;
4
5
  exports.validateDeliveryRoutes = validateDeliveryRoutes;
6
+ exports.pathsFor = pathsFor;
5
7
  exports.ensureDaemonIsolation = ensureDaemonIsolation;
6
8
  exports.loggedOwnerIntake = loggedOwnerIntake;
7
9
  exports.bootDaemon = bootDaemon;
8
10
  exports.runDaemon = runDaemon;
9
- exports.daemonStatus = daemonStatus;
10
- exports.requestDaemonStop = requestDaemonStop;
11
+ exports.installControlPaths = installControlPaths;
12
+ exports.askDaemon = askDaemon;
13
+ exports.launchdService = launchdService;
14
+ exports.bootoutLaunchdService = bootoutLaunchdService;
11
15
  const mama_core_1 = require("@jungjaehoon/mama-core");
12
16
  const document_toolkit_js_1 = require("../../tools/document-toolkit.js");
13
17
  const node_fs_1 = require("node:fs");
@@ -39,6 +43,7 @@ const wiki_read_js_1 = require("../../wiki/wiki-read.js");
39
43
  const timezone_js_1 = require("../../runtime/timezone.js");
40
44
  const security_events_js_1 = require("../../api/security-events.js");
41
45
  const egress_proxy_js_1 = require("../../runtime/egress-proxy.js");
46
+ const daemon_control_js_1 = require("../runtime/daemon-control.js");
42
47
  exports.OWNER_PRINCIPAL_ID = 'owner';
43
48
  const OWNER_AGENT_ID = 'owner-agent';
44
49
  const OWNER_MEMORY_SCOPES = (0, action_surface_js_1.ownerMemoryScopes)(exports.OWNER_PRINCIPAL_ID, index_js_1.LOADABLE_CONNECTORS);
@@ -56,9 +61,49 @@ function errorName(error) {
56
61
  const name = error.name.trim() !== '' ? error.name : 'Error';
57
62
  return `${name}: ${error.message}`;
58
63
  }
59
- function stage(logger, name) {
64
+ class StopDuringBootError extends Error {
65
+ constructor() {
66
+ super('Stopped during boot');
67
+ this.name = 'StopDuringBootError';
68
+ }
69
+ }
70
+ exports.StopDuringBootError = StopDuringBootError;
71
+ /** Every stage boot logs as `boot stage=<name>`; `mama doctor` reports only these names. */
72
+ exports.BOOT_STAGES = [
73
+ 'config',
74
+ 'isolation',
75
+ 'owner_runtime',
76
+ 'viewer',
77
+ 'replay',
78
+ 'connectors',
79
+ 'messengers',
80
+ 'telegram',
81
+ 'telegram:disabled',
82
+ 'discord',
83
+ 'slack',
84
+ 'report_scheduler',
85
+ 'report_scheduler:route_unavailable',
86
+ 'personal_job_scheduler',
87
+ ];
88
+ function stage(logger, name, signal) {
89
+ if (signal?.aborted)
90
+ throw new StopDuringBootError();
60
91
  logger.info(`boot stage=${name}`);
61
92
  }
93
+ /** The auth.env names each messenger needs before it starts; `mama doctor` checks the same. */
94
+ exports.MESSENGER_SECRETS = {
95
+ telegram: ['MAMA_TELEGRAM_TOKEN'],
96
+ discord: ['MAMA_DISCORD_TOKEN'],
97
+ slack: ['MAMA_SLACK_TOKEN', 'MAMA_SLACK_APP_TOKEN'],
98
+ };
99
+ function messengerSecrets(messenger) {
100
+ return exports.MESSENGER_SECRETS[messenger].map((name) => {
101
+ const value = process.env[name];
102
+ if (!value?.trim())
103
+ throw new Error(`${name} is required`);
104
+ return value;
105
+ });
106
+ }
62
107
  function stageFailed(logger, name, error) {
63
108
  logger.error(`boot stage=${name} failed error=${errorName(error)}`);
64
109
  }
@@ -129,6 +174,11 @@ function pathsFor(configPath, config) {
129
174
  if (pathsOverlap(workspaceDir, runtimeRoot)) {
130
175
  throw new Error(`agent.codex_cwd must not contain or sit inside ${runtimeRoot}`);
131
176
  }
177
+ // Backups are denied to the agents; a workspace there could not be read by its own agent.
178
+ const backupsRoot = (0, node_path_1.join)(mamaRoot, 'backups');
179
+ if (pathsOverlap(workspaceDir, backupsRoot)) {
180
+ throw new Error(`agent.codex_cwd must not contain or sit inside ${backupsRoot}`);
181
+ }
132
182
  return {
133
183
  mamaRoot,
134
184
  runtimeRoot,
@@ -196,7 +246,15 @@ async function stopOne(logger, name, stop, errors) {
196
246
  }
197
247
  /** Open the W1 owner subject, then activate producers in their dependency order. */
198
248
  async function bootDaemon(options = {}) {
199
- const logger = options.logger ?? defaultLogger;
249
+ const baseLogger = options.logger ?? defaultLogger;
250
+ let lastError = null;
251
+ const logger = {
252
+ info: (line) => baseLogger.info(line),
253
+ error: (line) => {
254
+ lastError = { at: Date.now(), line: line.slice(0, 500) };
255
+ baseLogger.error(line);
256
+ },
257
+ };
200
258
  const dependencies = options.dependencies ?? {};
201
259
  const configPath = options.configPath ?? (0, config_js_1.defaultConfigPath)(options.home ?? (0, node_os_1.homedir)());
202
260
  let config;
@@ -213,10 +271,49 @@ async function bootDaemon(options = {}) {
213
271
  let deliveryReady = options.mode === 'replay';
214
272
  const startedAt = Date.now();
215
273
  let currentStage = 'config';
216
- const stopResources = async () => {
274
+ let booted = false;
275
+ const command = options.command ?? (options.mode === 'replay' ? 'replay' : 'daemon');
276
+ // The install's one process: taken before anything opens the database or rewrites settings.
277
+ const control = (0, daemon_control_js_1.daemonControlPaths)((0, node_path_1.dirname)(configPath));
278
+ const lock = (0, daemon_control_js_1.acquireInstallLock)(control, command);
279
+ let controlServer = null;
280
+ const statusReport = async () => {
281
+ const report = {
282
+ pid: process.pid,
283
+ command,
284
+ version: (0, package_version_js_1.resolvePackageVersion)(),
285
+ startedAt,
286
+ stage: stopped ? 'stopping' : booted ? 'running' : currentStage,
287
+ lastError,
288
+ };
289
+ // Stores close during a stop; what it reports then is that it is stopping.
217
290
  if (stopped)
218
- return;
219
- stopped = true;
291
+ return report;
292
+ if (owner) {
293
+ const adapter = owner.database.adapter;
294
+ report.runningTurns = adapter
295
+ .prepare(`SELECT COALESCE(json_extract(input_refs_json, '$.sessionKey'), 'unknown') AS session,
296
+ COUNT(*) AS count
297
+ FROM model_runs WHERE status = 'running' AND created_at >= ? GROUP BY 1 ORDER BY 1`)
298
+ .all(startedAt);
299
+ report.inputs = adapter
300
+ .prepare(`SELECT status, COUNT(*) AS count FROM mailbox_inputs
301
+ WHERE status IN ('pending', 'claimed') GROUP BY status ORDER BY status`)
302
+ .all();
303
+ }
304
+ if (connectors) {
305
+ const connectorRuntime = connectors;
306
+ const health = await connectorRuntime.registry.healthCheckAll();
307
+ report.connectors = connectorRuntime.enabledConnectorNames.map((name) => ({
308
+ name,
309
+ healthy: health[name]?.healthy === true,
310
+ lastPoll: health[name]?.lastPollTime?.toISOString() ?? null,
311
+ error: health[name]?.error ?? null,
312
+ }));
313
+ }
314
+ return report;
315
+ };
316
+ const stopOwned = async () => {
220
317
  const errors = [];
221
318
  owner?.beginStop?.();
222
319
  // Quiesce every producer before awaiting any one of them. Transports and the database
@@ -243,22 +340,50 @@ async function bootDaemon(options = {}) {
243
340
  if (errors.length > 0)
244
341
  throw new AggregateError(errors, 'Daemon shutdown failed');
245
342
  };
343
+ const stopResources = async () => {
344
+ if (stopped)
345
+ return;
346
+ stopped = true;
347
+ let closed = false;
348
+ try {
349
+ await stopOwned();
350
+ closed = true;
351
+ }
352
+ finally {
353
+ if (controlServer) {
354
+ await controlServer
355
+ .close()
356
+ .catch((error) => logger.error(`shutdown stage=control failed error=${errorName(error)}`));
357
+ }
358
+ // Released only once every store closed: after a failed stop something may still run, so
359
+ // the install stays held until this process ends and the operating system lets it go.
360
+ if (closed)
361
+ lock.release();
362
+ }
363
+ };
246
364
  try {
247
365
  currentStage = 'config';
248
- stage(logger, 'config');
366
+ // A half-switched install is neither the old one nor the restored one.
367
+ (0, daemon_control_js_1.refuseWhileRestoring)((0, node_path_1.dirname)(configPath));
368
+ controlServer = await (0, daemon_control_js_1.startDaemonControl)(control, {
369
+ status: statusReport,
370
+ stop: () => {
371
+ if (!options.requestStop)
372
+ throw new Error(`${command} stops when it finishes`);
373
+ options.requestStop();
374
+ },
375
+ });
376
+ if (options.signal?.aborted)
377
+ throw new StopDuringBootError();
249
378
  config = options.config ?? (0, config_js_1.loadConfig)({ path: configPath, home: options.home });
379
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(config.logging.file), { recursive: true });
380
+ // The service manager redirects only what comes before this point, to the crash log. From here
381
+ // on the daemon's own log holds everything, from the first boot stage on.
382
+ options.captureOutput?.(config.logging.file);
383
+ stage(logger, 'config', options.signal);
250
384
  logger.info(`document toolkit: ${(0, document_toolkit_js_1.readDocumentToolkit)(config.tools_root, (error) => logger.error(error.message)) ? 'present' : 'absent (run mama tools install)'}`);
251
385
  const timeZone = (0, timezone_js_1.createTimeZoneSetting)(config.timezone);
252
386
  validateDeliveryRoutes(config);
253
- // launchd may have created the redirected log already; preserve its contents and tighten it.
254
- (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(config.logging.file), { recursive: true });
255
- const logDescriptor = (0, node_fs_1.openSync)(config.logging.file, 'a', 0o600);
256
- try {
257
- (0, node_fs_1.fchmodSync)(logDescriptor, 0o600);
258
- }
259
- finally {
260
- (0, node_fs_1.closeSync)(logDescriptor);
261
- }
262
387
  (0, model_cache_js_1.declareModelCache)();
263
388
  paths = pathsFor(configPath, config);
264
389
  currentStage = 'isolation';
@@ -268,7 +393,7 @@ async function bootDaemon(options = {}) {
268
393
  paths,
269
394
  ...(options.mcpServerPath ? { mcpServerPath: options.mcpServerPath } : {}),
270
395
  });
271
- stage(logger, 'isolation');
396
+ stage(logger, 'isolation', options.signal);
272
397
  currentStage = 'owner_runtime';
273
398
  const ownerPolicyProvider = (0, owner_policy_js_1.createOwnerPolicyProvider)(paths.mamaRoot);
274
399
  const ownerPolicy = ownerPolicyProvider();
@@ -494,7 +619,7 @@ async function bootDaemon(options = {}) {
494
619
  onStimulusDelivered: (row, modelRunId) => stimulusDelivered(logger, row, modelRunId),
495
620
  onStimulusFailed: (row, reason, modelRunId) => stimulusFailed(logger, row.kind ?? 'unknown', row.stimulusId, reason, modelRunId),
496
621
  });
497
- stage(logger, 'owner_runtime');
622
+ stage(logger, 'owner_runtime', options.signal);
498
623
  currentStage = 'viewer';
499
624
  const viewerFactory = dependencies.createViewerServer ?? viewer_server_js_1.createViewerServer;
500
625
  viewer = viewerFactory({
@@ -545,14 +670,14 @@ async function bootDaemon(options = {}) {
545
670
  });
546
671
  await viewer.start();
547
672
  logger.info(`viewer server listening on port=${String(viewer.port)}`);
548
- stage(logger, 'viewer');
673
+ stage(logger, 'viewer', options.signal);
549
674
  if (options.mode === 'replay') {
550
675
  logger.info('replay collectors: disabled');
551
676
  currentStage = 'replay';
552
677
  if (!options.replay)
553
678
  throw new Error('Replay mode requires a replay feeder');
554
679
  await options.replay({ config, paths, owner, logger, timeZone });
555
- stage(logger, 'replay');
680
+ stage(logger, 'replay', options.signal);
556
681
  return {
557
682
  config,
558
683
  paths,
@@ -589,16 +714,14 @@ async function bootDaemon(options = {}) {
589
714
  coreAdapter: owner.database?.adapter,
590
715
  acceptSourceDelta,
591
716
  });
592
- stage(logger, 'connectors');
717
+ stage(logger, 'connectors', options.signal);
593
718
  currentStage = 'messengers';
594
719
  const intake = loggedOwnerIntake(owner.intake, logger);
595
720
  const ledgerPath = paths.ownerMessageLedgerPath;
596
721
  messageLedger = new telegram_message_ledger_js_1.OwnerMessageLedger(ledgerPath, { log: (line) => logger.info(line) });
597
722
  const filesRoot = (0, node_path_1.join)(paths.workspaceDir, 'files');
598
723
  if (config.telegram.enabled) {
599
- const token = process.env.MAMA_TELEGRAM_TOKEN;
600
- if (!token?.trim())
601
- throw new Error('MAMA_TELEGRAM_TOKEN is required');
724
+ const [token] = messengerSecrets('telegram');
602
725
  const factory = dependencies.createTelegramGateway ?? ((options) => new telegram_js_1.TelegramGateway(options));
603
726
  gateway = factory({
604
727
  token,
@@ -633,14 +756,12 @@ async function bootDaemon(options = {}) {
633
756
  });
634
757
  gateways.set('telegram', gateway);
635
758
  await gateway.start();
636
- stage(logger, 'telegram');
759
+ stage(logger, 'telegram', options.signal);
637
760
  }
638
761
  else
639
- stage(logger, 'telegram:disabled');
762
+ stage(logger, 'telegram:disabled', options.signal);
640
763
  if (config.discord?.enabled) {
641
- const token = process.env.MAMA_DISCORD_TOKEN;
642
- if (!token?.trim())
643
- throw new Error('MAMA_DISCORD_TOKEN is required');
764
+ const [token] = messengerSecrets('discord');
644
765
  const factory = dependencies.createDiscordGateway ?? ((options) => new discord_js_1.DiscordGateway(options));
645
766
  const active = factory({
646
767
  token,
@@ -662,15 +783,10 @@ async function bootDaemon(options = {}) {
662
783
  });
663
784
  gateways.set('discord', active);
664
785
  await active.start();
665
- stage(logger, 'discord');
786
+ stage(logger, 'discord', options.signal);
666
787
  }
667
788
  if (config.slack?.enabled) {
668
- const token = process.env.MAMA_SLACK_TOKEN;
669
- const appToken = process.env.MAMA_SLACK_APP_TOKEN;
670
- if (!token?.trim())
671
- throw new Error('MAMA_SLACK_TOKEN is required');
672
- if (!appToken?.trim())
673
- throw new Error('MAMA_SLACK_APP_TOKEN is required');
789
+ const [token, appToken] = messengerSecrets('slack');
674
790
  const factory = dependencies.createSlackGateway ?? ((options) => new slack_js_1.SlackGateway(options));
675
791
  const active = factory({
676
792
  token,
@@ -693,7 +809,7 @@ async function bootDaemon(options = {}) {
693
809
  });
694
810
  gateways.set('slack', active);
695
811
  await active.start();
696
- stage(logger, 'slack');
812
+ stage(logger, 'slack', options.signal);
697
813
  }
698
814
  const reportRoute = config.delivery?.reports ?? 'telegram';
699
815
  if (gateways.has(reportRoute)) {
@@ -724,18 +840,19 @@ async function bootDaemon(options = {}) {
724
840
  onError: (error) => logger.error(`report scheduler failed reason=${(0, stimulus_delivery_js_1.stimulusFailureReason)(error)}`),
725
841
  });
726
842
  reportScheduler.start();
727
- stage(logger, 'report_scheduler');
843
+ stage(logger, 'report_scheduler', options.signal);
728
844
  }
729
845
  else
730
- stage(logger, 'report_scheduler:route_unavailable');
846
+ stage(logger, 'report_scheduler:route_unavailable', options.signal);
731
847
  if (gateway?.sendMemberText) {
732
848
  owner.personalJobs.start();
733
849
  await owner.personalJobs
734
850
  .tick()
735
851
  .catch((error) => logger.error(`personal job scheduler failed reason=${(0, stimulus_delivery_js_1.stimulusFailureReason)(error)}`));
736
- stage(logger, 'personal_job_scheduler');
852
+ stage(logger, 'personal_job_scheduler', options.signal);
737
853
  }
738
854
  deliveryReady = true;
855
+ booted = true;
739
856
  return {
740
857
  config,
741
858
  paths,
@@ -748,7 +865,16 @@ async function bootDaemon(options = {}) {
748
865
  };
749
866
  }
750
867
  catch (error) {
751
- stageFailed(logger, currentStage, error);
868
+ if (error instanceof StopDuringBootError) {
869
+ logger.info(`boot stopped before stage=${currentStage}`);
870
+ }
871
+ else {
872
+ stageFailed(logger, currentStage, error);
873
+ // A frozen error keeps its own shape; the stage is still in the log line above.
874
+ if (error !== null && typeof error === 'object' && Object.isExtensible(error)) {
875
+ Object.defineProperty(error, 'bootStage', { value: currentStage, enumerable: false });
876
+ }
877
+ }
752
878
  try {
753
879
  await stopResources();
754
880
  }
@@ -758,48 +884,92 @@ async function bootDaemon(options = {}) {
758
884
  throw error;
759
885
  }
760
886
  }
761
- /** Foreground launchd entry: wait until SIGTERM/SIGINT, then close reverse-order stages. */
887
+ /**
888
+ * Foreground entry for launchd, systemd, Docker or a terminal. Signals are taken before boot, so a
889
+ * stop during boot unwinds what has started; `mama stop` asks through the control socket.
890
+ */
762
891
  async function runDaemon(options = {}) {
763
- const daemon = await bootDaemon(options);
764
- await new Promise((resolve, reject) => {
765
- let finished = false;
766
- const finish = async () => {
767
- if (finished)
892
+ const controller = new AbortController();
893
+ // A stop asked for through `mama stop` exits 0; one by a signal exits 128 + its number, as an
894
+ // unhandled signal would, so a service that restarts only after a failure brings back a daemon
895
+ // that was killed (a service manager's own stop does not restart it whatever the code).
896
+ let signalExit;
897
+ const requestStop = () => controller.abort();
898
+ const onSigterm = () => {
899
+ signalExit = 143;
900
+ controller.abort();
901
+ };
902
+ const onSigint = () => {
903
+ signalExit = 130;
904
+ controller.abort();
905
+ };
906
+ // Once each: a second signal falls to Node's default and ends the process at once, a force stop;
907
+ // the operating system releases the install lock with it.
908
+ process.once('SIGTERM', onSigterm);
909
+ process.once('SIGINT', onSigint);
910
+ try {
911
+ let daemon;
912
+ try {
913
+ daemon = await bootDaemon({ ...options, signal: controller.signal, requestStop });
914
+ }
915
+ catch (error) {
916
+ if (error instanceof StopDuringBootError) {
917
+ if (signalExit !== undefined)
918
+ process.exitCode = signalExit;
768
919
  return;
769
- finished = true;
770
- try {
771
- await daemon.stop();
772
- resolve();
773
920
  }
774
- catch (error) {
775
- reject(error);
776
- }
777
- };
778
- process.once('SIGTERM', () => void finish());
779
- process.once('SIGINT', () => void finish());
780
- });
921
+ throw error;
922
+ }
923
+ if (!controller.signal.aborted) {
924
+ await new Promise((resolve) => controller.signal.addEventListener('abort', () => resolve(), { once: true }));
925
+ }
926
+ await daemon.stop();
927
+ if (signalExit !== undefined)
928
+ process.exitCode = signalExit;
929
+ }
930
+ finally {
931
+ process.off('SIGTERM', onSigterm);
932
+ process.off('SIGINT', onSigint);
933
+ }
781
934
  }
782
- function launchdService(command) {
783
- const result = (0, node_child_process_1.spawnSync)('launchctl', [command, `gui/${process.getuid()}/com.mama.server`], {
935
+ /** The install's control paths from its config path, as boot derives them. */
936
+ function installControlPaths(options = {}) {
937
+ const configPath = options.configPath ?? (0, config_js_1.defaultConfigPath)(options.home ?? (0, node_os_1.homedir)());
938
+ return (0, daemon_control_js_1.daemonControlPaths)((0, node_path_1.dirname)(configPath));
939
+ }
940
+ async function askDaemon(op, options = {}) {
941
+ return await (0, daemon_control_js_1.requestDaemonControl)(installControlPaths(options), op);
942
+ }
943
+ /** macOS only: this user's LaunchAgent (`launchctl print` exits 113 when it is not loaded). */
944
+ function launchdService() {
945
+ if (process.platform !== 'darwin')
946
+ return { loaded: false, pid: null };
947
+ const result = (0, node_child_process_1.spawnSync)('launchctl', ['print', `gui/${process.getuid()}/com.mama.server`], {
784
948
  encoding: 'utf8',
785
949
  });
786
950
  if (result.error)
787
951
  throw result.error;
788
- // launchctl print exits 113 when this user's service is not registered.
789
- if (result.status !== 0 && !(command === 'print' && result.status === 113)) {
790
- throw Object.assign(new Error(`launchctl ${command} failed`), {
952
+ if (result.status === 113)
953
+ return { loaded: false, pid: null };
954
+ if (result.status !== 0) {
955
+ throw Object.assign(new Error('launchctl print failed'), {
791
956
  code: `LAUNCHCTL_${result.status ?? result.signal ?? 'UNKNOWN'}`,
792
957
  });
793
958
  }
794
- return result;
795
- }
796
- function daemonStatus() {
797
- const result = launchdService('print');
798
- return result.status === 0 && /^\s*state = running\s*$/m.test(result.stdout)
799
- ? 'running'
800
- : 'stopped';
959
+ const pid = /^\s*pid = (\d+)\s*$/m.exec(result.stdout)?.[1];
960
+ return { loaded: true, pid: pid === undefined ? null : Number(pid) };
801
961
  }
802
- function requestDaemonStop() {
803
- launchdService('bootout');
962
+ /** Unload the LaunchAgent so KeepAlive cannot restart it; launchd sends the stop signal. */
963
+ function bootoutLaunchdService() {
964
+ const result = (0, node_child_process_1.spawnSync)('launchctl', ['bootout', `gui/${process.getuid()}/com.mama.server`], {
965
+ encoding: 'utf8',
966
+ });
967
+ if (result.error)
968
+ throw result.error;
969
+ if (result.status !== 0) {
970
+ throw Object.assign(new Error('launchctl bootout failed'), {
971
+ code: `LAUNCHCTL_${result.status ?? result.signal ?? 'UNKNOWN'}`,
972
+ });
973
+ }
804
974
  }
805
975
  //# sourceMappingURL=daemon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"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"}