@rubytech/create-maxy-code 0.1.200 → 0.1.203

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 (106) hide show
  1. package/package.json +2 -2
  2. package/payload/platform/scripts/check-no-esm-require.mjs +3 -0
  3. package/payload/platform/scripts/check-specialist-tool-surface.mjs +323 -0
  4. package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts.map +1 -1
  5. package/payload/platform/services/claude-session-manager/dist/fs-watcher.js +7 -7
  6. package/payload/platform/services/claude-session-manager/dist/fs-watcher.js.map +1 -1
  7. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +13 -0
  8. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  9. package/payload/platform/services/claude-session-manager/dist/http-server.js +73 -10
  10. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  11. package/payload/platform/services/claude-session-manager/dist/index.js +9 -1
  12. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  13. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts +2 -12
  14. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts.map +1 -1
  15. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js +14 -67
  16. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js.map +1 -1
  17. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts +6 -0
  18. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts.map +1 -1
  19. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js +30 -0
  20. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js.map +1 -1
  21. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  22. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +4 -0
  23. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  24. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +15 -3
  25. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
  26. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +66 -45
  27. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
  28. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts +19 -0
  29. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts.map +1 -1
  30. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js +42 -0
  31. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js.map +1 -1
  32. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts +62 -0
  33. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts.map +1 -0
  34. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js +173 -0
  35. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js.map +1 -0
  36. package/payload/platform/templates/specialists/agents/coding-assistant.md +73 -0
  37. package/payload/server/public/assets/{AdminShell-OJlDJakR.js → AdminShell-BcxEZnpu.js} +1 -1
  38. package/payload/server/public/assets/{Checkbox-DE_tsDq_.js → Checkbox-DL-HdT29.js} +1 -1
  39. package/payload/server/public/assets/{admin-DbQw1TyC.js → admin-DMo5DWKH.js} +1 -1
  40. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DfZVWJVr.js → architectureDiagram-Q4EWVU46-BoUw4oYz.js} +1 -1
  41. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-Cd9vcTYg.js → blockDiagram-DXYQGD6D-DOscnO3m.js} +1 -1
  42. package/payload/server/public/assets/{brand-Ed5R2W5J.css → brand-SZW-27T7.css} +1 -1
  43. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-zmNCfJ5F.js → c4Diagram-AHTNJAMY-aZ1IuZ_F.js} +1 -1
  44. package/payload/server/public/assets/channel-CzcSNxDm.js +1 -0
  45. package/payload/server/public/assets/{chunk-336JU56O-DvHeoV7B.js → chunk-336JU56O-DS3ksXBG.js} +2 -2
  46. package/payload/server/public/assets/{chunk-426QAEUC-IZknbXMM.js → chunk-426QAEUC-BLRn2STO.js} +1 -1
  47. package/payload/server/public/assets/{chunk-4TB4RGXK-DN_qw6Oi.js → chunk-4TB4RGXK-BrhOvJ01.js} +1 -1
  48. package/payload/server/public/assets/{chunk-5FUZZQ4R-tt-46Rcq.js → chunk-5FUZZQ4R-BZZwZX5Q.js} +1 -1
  49. package/payload/server/public/assets/{chunk-5PVQY5BW-Bl0mxmQP.js → chunk-5PVQY5BW-YXZKnPCz.js} +1 -1
  50. package/payload/server/public/assets/{chunk-EDXVE4YY-v31HwKDb.js → chunk-EDXVE4YY-DAMCJHKQ.js} +1 -1
  51. package/payload/server/public/assets/{chunk-ENJZ2VHE-D6T1RStj.js → chunk-ENJZ2VHE-DsD95Bqn.js} +1 -1
  52. package/payload/server/public/assets/{chunk-ICPOFSXX-DVnIs_5A.js → chunk-ICPOFSXX-DxtrRClx.js} +1 -1
  53. package/payload/server/public/assets/{chunk-OYMX7WX6-DiZNprr1.js → chunk-OYMX7WX6-CN4kLK-H.js} +1 -1
  54. package/payload/server/public/assets/{chunk-U2HBQHQK-Cy0qH3H0.js → chunk-U2HBQHQK-BPTv3Oj1.js} +1 -1
  55. package/payload/server/public/assets/{chunk-X2U36JSP-wR3wBPyu.js → chunk-X2U36JSP-DxBry33v.js} +1 -1
  56. package/payload/server/public/assets/{chunk-YZCP3GAM-BGOVJLky.js → chunk-YZCP3GAM-BZ4N75oy.js} +1 -1
  57. package/payload/server/public/assets/{chunk-ZZ45TVLE-14vtIjRh.js → chunk-ZZ45TVLE-Dqr161Q1.js} +1 -1
  58. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DFOM3vCn.js +1 -0
  59. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-HplDfaL1.js +1 -0
  60. package/payload/server/public/assets/clone-G-2rqnSR.js +1 -0
  61. package/payload/server/public/assets/{dagre-CG1l6rfK.js → dagre-DtZ0wKkH.js} +1 -1
  62. package/payload/server/public/assets/{dagre-KV5264BT-DKFDl1Nz.js → dagre-KV5264BT-BPKhT-ZX.js} +1 -1
  63. package/payload/server/public/assets/{data-b1v7Pjly.js → data-D6IQdm0R.js} +1 -1
  64. package/payload/server/public/assets/{diagram-5BDNPKRD-PJd29fkg.js → diagram-5BDNPKRD-CATnafi7.js} +1 -1
  65. package/payload/server/public/assets/{diagram-G4DWMVQ6-Bz7_SWJH.js → diagram-G4DWMVQ6-ChZYQfji.js} +1 -1
  66. package/payload/server/public/assets/{diagram-MMDJMWI5-CmWknm9v.js → diagram-MMDJMWI5-DHW6kYd3.js} +1 -1
  67. package/payload/server/public/assets/{diagram-TYMM5635-CLYRluM2.js → diagram-TYMM5635-CnS4Zci8.js} +1 -1
  68. package/payload/server/public/assets/{erDiagram-SMLLAGMA-EWVKGrgT.js → erDiagram-SMLLAGMA-DKYv2YWp.js} +1 -1
  69. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CNtfJIG7.js → flowDiagram-DWJPFMVM-BWvoZWlh.js} +1 -1
  70. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-SIlymJ6A.js → ganttDiagram-T4ZO3ILL-CpCb-xKy.js} +1 -1
  71. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-DWVl6CUl.js → gitGraphDiagram-UUTBAWPF-CvHrDKQ-.js} +1 -1
  72. package/payload/server/public/assets/{graph-BOcblKu9.js → graph-PkZKVkWD.js} +1 -1
  73. package/payload/server/public/assets/{graph-labels-CH-Tffon.js → graph-labels-CWJy0O4w.js} +1 -1
  74. package/payload/server/public/assets/{graphlib-i-qJjJM7.js → graphlib-DjnyHqGy.js} +1 -1
  75. package/payload/server/public/assets/{infoDiagram-42DDH7IO-D66Yr_7b.js → infoDiagram-42DDH7IO-D_MywcVn.js} +1 -1
  76. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-C4mQi7AB.js → ishikawaDiagram-UXIWVN3A-N9m-f-Eb.js} +1 -1
  77. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-7Vp2UBlF.js → journeyDiagram-VCZTEJTY-DE0q7uSM.js} +1 -1
  78. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-nEDANSe9.js → kanban-definition-6JOO6SKY-Dj5hb9Bq.js} +1 -1
  79. package/payload/server/public/assets/{line-BxGbTwly.js → line-C6ph0i4M.js} +1 -1
  80. package/payload/server/public/assets/{mermaid-parser.core-CAG4AdDd.js → mermaid-parser.core-BrfmEvCA.js} +1 -1
  81. package/payload/server/public/assets/{mermaid.core-prtUaAsI.js → mermaid.core-DYnHKfDv.js} +3 -3
  82. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-Dvcph8zi.js → mindmap-definition-QFDTVHPH-DaSaZfhR.js} +1 -1
  83. package/payload/server/public/assets/{pieDiagram-DEJITSTG-C4qHs6Vb.js → pieDiagram-DEJITSTG-BAu9Ezbv.js} +1 -1
  84. package/payload/server/public/assets/{public-DIyn-De4.js → public-UKgkJxKv.js} +3 -3
  85. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-I9Et2l2H.js → quadrantDiagram-34T5L4WZ-DRsbL1Xd.js} +1 -1
  86. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DLKlY81v.js → requirementDiagram-MS252O5E-B9QcsXV6.js} +1 -1
  87. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-dX3pgMv_.js → sankeyDiagram-XADWPNL6-DsZbvIlD.js} +1 -1
  88. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-C4qTAl3F.js → sequenceDiagram-FGHM5R23-BlT4O2N8.js} +1 -1
  89. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-DzA0NObk.js → stateDiagram-FHFEXIEX-JFgk1K3Y.js} +1 -1
  90. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-NXz27DaV.js +1 -0
  91. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-D-DPUQCU.js → timeline-definition-GMOUNBTQ-DOsHw1ip.js} +1 -1
  92. package/payload/server/public/assets/{useSelectionMode-C4HDuwDT.js → useSelectionMode-JDGvwvIk.js} +1 -1
  93. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-C_RwTsUi.js → vennDiagram-DHZGUBPP-CQWIhqZY.js} +1 -1
  94. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BAftlsC2.js → wardleyDiagram-NUSXRM2D-D5Fh7YVL.js} +1 -1
  95. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-C_tKMCMd.js → xychartDiagram-5P7HB3ND-C-tINQEs.js} +1 -1
  96. package/payload/server/public/data.html +5 -5
  97. package/payload/server/public/graph.html +6 -6
  98. package/payload/server/public/index.html +6 -6
  99. package/payload/server/public/public.html +5 -5
  100. package/payload/server/server.js +235 -79
  101. package/payload/server/public/assets/channel-DCJza6li.js +0 -1
  102. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DEo4goqG.js +0 -1
  103. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CoAVCeH7.js +0 -1
  104. package/payload/server/public/assets/clone-CLnBlH9n.js +0 -1
  105. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Dsgd5hEe.js +0 -1
  106. /package/payload/server/public/assets/{brand-CCOPpjM4.js → brand-SzZmKKjz.js} +0 -0
@@ -200,28 +200,41 @@ export function startRcDaemon(deps) {
200
200
  let backoffMs = BACKOFF_BASE_MS;
201
201
  let consecutiveFastFailures = 0;
202
202
  let permanentlyFailed = false;
203
- const spawnOnce = () => {
203
+ const spawnOnce = async () => {
204
204
  if (stopped || permanentlyFailed)
205
205
  return;
206
206
  const startedAt = now();
207
207
  let handle;
208
+ // Task 531 — unique unitToken per spawn attempt. A fixed token
209
+ // (`'rc-daemon'`) reused on a fast restart races systemd's cleanup of
210
+ // the prior transient scope: the next `systemd-run --user --scope
211
+ // --unit=claude-session-rc-daemon.scope` fails with "Unit … was
212
+ // already loaded or has a fragment file", the child exits at
213
+ // `ranMs=5-6`, and the supervisor counts it toward
214
+ // MAX_FAST_FAILURES. The `rc-daemon-` prefix is preserved so the
215
+ // boot-seed `claude-session-*.scope` reconciler and operator log
216
+ // greps still recognise the scope as the rc-daemon's.
217
+ const unitToken = `rc-daemon-${randomUUID()}`;
208
218
  try {
209
- // Task 531unique unitToken per spawn attempt. A fixed token
210
- // (`'rc-daemon'`) reused on a fast restart races systemd's cleanup of
211
- // the prior transient scope: the next `systemd-run --user --scope
212
- // --unit=claude-session-rc-daemon.scope` fails with "Unit … was
213
- // already loaded or has a fragment file", the child exits at
214
- // `ranMs=5-6`, and the supervisor counts it toward
215
- // MAX_FAST_FAILURES. The `rc-daemon-` prefix is preserved so the
216
- // boot-seed `claude-session-*.scope` reconciler and operator log
217
- // greps still recognise the scope as the rc-daemon's.
218
- const unitToken = `rc-daemon-${randomUUID()}`;
219
- handle = deps.spawnPty(deps.claudeBin,
220
- // --no-create-session-in-dir: do not pre-create the daemon's in-dir
221
- // session. The daemon starts at platform boot, ahead of any operator
222
- // intent, so a pre-created session would sit idle until composer
223
- // creates a real on-demand session anyway.
224
- ['rc', '--spawn', 'same-dir', '--no-create-session-in-dir', '--remote-control-session-name-prefix', deps.brandProductName], daemonEnv, unitToken);
219
+ // Task 552filter env to strings; systemdSpawn's contract is
220
+ // Record<string,string> and buildRcChildEnv may pass undefineds
221
+ // through from the spread of process.env.
222
+ const cleanEnv = {};
223
+ for (const [k, v] of Object.entries(daemonEnv)) {
224
+ if (typeof v === 'string')
225
+ cleanEnv[k] = v;
226
+ }
227
+ handle = await deps.systemdSpawn({
228
+ claudeBin: deps.claudeBin,
229
+ // --no-create-session-in-dir: do not pre-create the daemon's in-dir
230
+ // session. The daemon starts at platform boot, ahead of any operator
231
+ // intent, so a pre-created session would sit idle until composer
232
+ // creates a real on-demand session anyway.
233
+ claudeArgs: ['rc', '--spawn', 'same-dir', '--no-create-session-in-dir', '--remote-control-session-name-prefix', deps.brandProductName],
234
+ env: cleanEnv,
235
+ cwd: deps.spawnCwd,
236
+ unitToken,
237
+ });
225
238
  }
226
239
  catch (err) {
227
240
  deps.logger(`${TAG} rc-daemon spawn-failed err=${err instanceof Error ? err.message : String(err)}`);
@@ -229,34 +242,40 @@ export function startRcDaemon(deps) {
229
242
  return;
230
243
  }
231
244
  current = handle;
232
- deps.logger(`${TAG} rc-daemon start accountId=${deps.accountId} cwd=${deps.spawnCwd} pid=${handle.pid} model=${adminModel ?? 'default'} name-prefix=${deps.brandProductName}`);
233
- // Task 530buffer the child's PTY output (node-pty merges stderr into
234
- // the same stream as stdout, so this carries everything the child wrote
235
- // before exit) so a fast exit can be self-diagnosing. The ring keeps the
236
- // tail because the line preceding exit is the diagnostic; older boot
237
- // chatter is dropped.
238
- let outputRing = '';
239
- const dataSub = handle.onData((chunk) => {
240
- outputRing += chunk;
241
- if (outputRing.length > FAST_EXIT_OUTPUT_MAX_BYTES) {
242
- outputRing = outputRing.slice(outputRing.length - FAST_EXIT_OUTPUT_MAX_BYTES);
243
- }
244
- });
245
- handle.onExit((e) => {
246
- try {
247
- dataSub.dispose();
248
- }
249
- catch { /* already disposed */ }
245
+ deps.logger(`${TAG} rc-daemon start accountId=${deps.accountId} cwd=${deps.spawnCwd} pid=${handle.pid} model=${adminModel ?? 'default'} name-prefix=${deps.brandProductName} spawnMethod=systemd-scope`);
246
+ // Task 552exit detection via `handle.waitForExit()` polls
247
+ // `systemctl --user is-active` and reads Result/ExecMainStatus on
248
+ // exit. On fast-exit, `handle.readJournalTail` reads the scope's
249
+ // journal output for the self-diagnosing log line (was a node-pty
250
+ // onData ring buffer pre-552).
251
+ void handle.waitForExit()
252
+ .then(async (exit) => {
250
253
  if (current === handle)
251
254
  current = null;
252
255
  const ranMs = now() - startedAt;
253
- deps.logger(`${TAG} rc-daemon exit accountId=${deps.accountId} pid=${handle.pid} exitCode=${e.exitCode} signal=${e.signal ?? 'none'} ranMs=${ranMs}`);
256
+ deps.logger(`${TAG} rc-daemon exit accountId=${deps.accountId} pid=${handle.pid} result=${exit.result} exitCode=${exit.exitCode ?? 'null'} execCode=${exit.code ?? 'null'} ranMs=${ranMs}`);
254
257
  if (ranMs < FAST_EXIT_THRESHOLD_MS) {
255
- const bytes = outputRing.length;
256
- const body = bytes > 0 ? outputRing : '<no child output captured>';
258
+ let tail = '';
259
+ try {
260
+ tail = await handle.readJournalTail(FAST_EXIT_OUTPUT_MAX_BYTES);
261
+ }
262
+ catch (err) {
263
+ tail = `<readJournalTail failed: ${err instanceof Error ? err.message : String(err)}>`;
264
+ }
265
+ const bytes = tail.length;
266
+ const body = bytes > 0 ? tail : '<no child output captured>';
257
267
  deps.logger(`${TAG} rc-daemon fast-exit-output accountId=${deps.accountId} pid=${handle.pid} ranMs=${ranMs} bytes=${bytes} output<<<\n${body}\n>>>`);
258
268
  }
259
269
  scheduleRestart(startedAt);
270
+ })
271
+ .catch((err) => {
272
+ // waitForExit polls until inactive; the only way it throws is a
273
+ // systemctl runner that itself throws. Log and treat as exit so
274
+ // supervision continues.
275
+ if (current === handle)
276
+ current = null;
277
+ deps.logger(`${TAG} rc-daemon waitForExit-failed accountId=${deps.accountId} pid=${handle.pid} err=${err instanceof Error ? err.message : String(err)}`);
278
+ scheduleRestart(startedAt);
260
279
  });
261
280
  };
262
281
  const scheduleRestart = (startedAt) => {
@@ -279,7 +298,7 @@ export function startRcDaemon(deps) {
279
298
  const delay = backoffMs;
280
299
  deps.logger(`${TAG} rc-daemon restart-scheduled accountId=${deps.accountId} delayMs=${delay} fastFailures=${consecutiveFastFailures}`);
281
300
  backoffMs = Math.min(backoffMs * 2, BACKOFF_MAX_MS);
282
- setTimer(() => spawnOnce(), delay);
301
+ setTimer(() => { void spawnOnce(); }, delay);
283
302
  };
284
303
  // Task 523 — gate the eager first spawn on Neo4j readiness. On a host
285
304
  // reboot the session-manager (a systemd USER unit) restarts before
@@ -307,7 +326,7 @@ export function startRcDaemon(deps) {
307
326
  // guessed port (could falsely pass against another brand's Neo4j).
308
327
  if (!hostPort && !deps.checkNeo4jReady) {
309
328
  deps.logger(`${TAG} rc-daemon neo4j-readiness-skipped reason=unparseable-uri uri=${deps.brandedNeo4jUri} — spawning without gate`);
310
- spawnOnce();
329
+ void spawnOnce();
311
330
  return;
312
331
  }
313
332
  const target = hostPort ? `${hostPort.host}:${hostPort.port}` : deps.brandedNeo4jUri;
@@ -330,7 +349,7 @@ export function startRcDaemon(deps) {
330
349
  if (waited) {
331
350
  deps.logger(`${TAG} rc-daemon neo4j-ready target=${target} waitedMs=${now() - startedWait} — spawning`);
332
351
  }
333
- spawnOnce();
352
+ void spawnOnce();
334
353
  return;
335
354
  }
336
355
  waited = true;
@@ -352,10 +371,12 @@ export function startRcDaemon(deps) {
352
371
  stop() {
353
372
  stopped = true;
354
373
  if (current) {
355
- try {
356
- current.kill('SIGTERM');
357
- }
358
- catch { /* already gone */ }
374
+ // Task 552 — `handle.stop()` invokes `systemctl --user stop --no-block`
375
+ // and (when the pid was captured) runs the SIGTERM→SIGKILL escalation
376
+ // against the reparented pid if the scope was already collapsed. Fire
377
+ // and forget: the manager is shutting down; the scope's
378
+ // TimeoutStopSec=5 caps the in-cgroup escalation.
379
+ void current.stop().catch(() => { });
359
380
  current = null;
360
381
  }
361
382
  deps.logger(`${TAG} rc-daemon stopped accountId=${deps.accountId}`);
@@ -1 +1 @@
1
- {"version":3,"file":"rc-daemon.js","sourceRoot":"","sources":["../src/rc-daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rc-daemon.js","sourceRoot":"","sources":["../src/rc-daemon.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,14 @@ export interface SessionSidecar {
41
41
  * random UUID that does not match claude's intrinsic sessionId. Null
42
42
  * on pre-Task-451 sidecars and on any non-scope spawn path. */
43
43
  scopeUnitToken: string | null;
44
+ /** Task 550 — composer bridge ULIDs (suffix only, no "session_" prefix)
45
+ * that have been bound to this conversation across its lifetime. Every
46
+ * `/rc-spawn` resume against an existing JSONL learns a new bridge ULID
47
+ * from the PID file once claude registers with the composer; the
48
+ * http-server appends it here so a future composer-URL → row lookup is
49
+ * a direct match. Defaults to `[]` on pre-Task-550 sidecars (missing
50
+ * key). Append-only, duplicates suppressed. */
51
+ bridgeIds: string[];
44
52
  }
45
53
  export interface SidecarReadOutcome {
46
54
  sidecar: SessionSidecar | null;
@@ -69,4 +77,15 @@ export declare function writeSidecar(path: string, sidecar: SessionSidecar, logg
69
77
  * the other fields would be invented). Single-writer assumption applies
70
78
  * — concurrent updates may race and lose the latest value. */
71
79
  export declare function updateSidecar(path: string, patch: Partial<SessionSidecar>, logger: Logger): boolean;
80
+ /** Task 550 — append a bridge ULID suffix to `bridgeIds` on the sidecar.
81
+ * Read-modify-write; the atomic rename pattern matches the rest of this
82
+ * module. Returns `'ok'` when written, `'duplicate'` when the suffix was
83
+ * already present (no write performed), and `'no-sidecar'` when the
84
+ * sidecar is missing or unparseable (caller logs and skips — legacy
85
+ * rows without a sidecar are out of scope per the task brief).
86
+ * Single-writer assumption is shared with url-capture's updateSidecar:
87
+ * both are read-modify-write and could race, but they touch disjoint
88
+ * fields, so the rename-loses-write window is the existing limitation
89
+ * rather than a new one. */
90
+ export declare function appendBridgeId(path: string, bridgeSuffix: string, logger: Logger): 'ok' | 'duplicate' | 'no-sidecar';
72
91
  //# sourceMappingURL=session-sidecar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB;;;0BAGsB;IACtB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB;;;2CAGuC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;uCAMmC;IACnC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;yEAGqE;IACrE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;0DACsD;IACtD,MAAM,EAAE,OAAO,CAAA;IACf;4DACwD;IACxD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;oEAKgE;IAChE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B;;;sDAGkD;IAClD,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,cAAc,CAAA;IAC1C,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;6BAI6B;AAC7B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA+B5E;AAED;;;qCAGqC;AACrC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiBxF;AAED;;;;+DAI+D;AAC/D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAmBT"}
1
+ {"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB;;;0BAGsB;IACtB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB;;;2CAGuC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;uCAMmC;IACnC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;yEAGqE;IACrE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;0DACsD;IACtD,MAAM,EAAE,OAAO,CAAA;IACf;4DACwD;IACxD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;oEAKgE;IAChE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;oDAMgD;IAChD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B;;;sDAGkD;IAClD,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,cAAc,CAAA;IAC1C,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;6BAI6B;AAC7B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA+B5E;AAED;;;qCAGqC;AACrC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiBxF;AAED;;;;+DAI+D;AAC/D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAmBT;AAED;;;;;;;;;6BAS6B;AAC7B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,IAAI,GAAG,WAAW,GAAG,YAAY,CAmBnC"}
@@ -121,6 +121,41 @@ export function updateSidecar(path, patch, logger) {
121
121
  }
122
122
  return true;
123
123
  }
124
+ /** Task 550 — append a bridge ULID suffix to `bridgeIds` on the sidecar.
125
+ * Read-modify-write; the atomic rename pattern matches the rest of this
126
+ * module. Returns `'ok'` when written, `'duplicate'` when the suffix was
127
+ * already present (no write performed), and `'no-sidecar'` when the
128
+ * sidecar is missing or unparseable (caller logs and skips — legacy
129
+ * rows without a sidecar are out of scope per the task brief).
130
+ * Single-writer assumption is shared with url-capture's updateSidecar:
131
+ * both are read-modify-write and could race, but they touch disjoint
132
+ * fields, so the rename-loses-write window is the existing limitation
133
+ * rather than a new one. */
134
+ export function appendBridgeId(path, bridgeSuffix, logger) {
135
+ const { sidecar } = readSidecar(path, logger);
136
+ if (!sidecar)
137
+ return 'no-sidecar';
138
+ if (sidecar.bridgeIds.includes(bridgeSuffix))
139
+ return 'duplicate';
140
+ const next = { ...sidecar, bridgeIds: [...sidecar.bridgeIds, bridgeSuffix] };
141
+ const tmp = `${path}.tmp.${process.pid}.${Date.now()}`;
142
+ const json = JSON.stringify(next, null, 2);
143
+ const bytes = Buffer.byteLength(json, 'utf8');
144
+ try {
145
+ writeFileSync(tmp, json, 'utf8');
146
+ renameSync(tmp, path);
147
+ }
148
+ catch (err) {
149
+ try {
150
+ if (existsSync(tmp))
151
+ unlinkSync(tmp);
152
+ }
153
+ catch { /* ignore */ }
154
+ throw err;
155
+ }
156
+ logger(`[session-sidecar] append-bridge sessionId=${basenameShort(path)} bridgeId=${bridgeSuffix} count=${next.bridgeIds.length} bytes=${bytes}`);
157
+ return 'ok';
158
+ }
124
159
  const ROLES = ['admin', 'public'];
125
160
  const CHANNELS = ['browser', 'whatsapp', 'telegram', 'webchat', 'email'];
126
161
  function parseSidecar(raw) {
@@ -167,6 +202,12 @@ function parseSidecar(raw) {
167
202
  : typeof r.scopeUnitToken === 'string'
168
203
  ? r.scopeUnitToken
169
204
  : null;
205
+ // Task 550 — `bridgeIds` is optional on disk so pre-550 sidecars (no key)
206
+ // load with `[]`. Non-string entries are dropped silently; the file may
207
+ // have been hand-edited or pre-dates the strict-string contract.
208
+ const bridgeIds = Array.isArray(r.bridgeIds)
209
+ ? r.bridgeIds.filter((b) => typeof b === 'string' && b.length > 0)
210
+ : [];
170
211
  return {
171
212
  senderId: r.senderId,
172
213
  role: r.role,
@@ -179,6 +220,7 @@ function parseSidecar(raw) {
179
220
  hidden: r.hidden,
180
221
  specialist,
181
222
  scopeUnitToken,
223
+ bridgeIds,
182
224
  };
183
225
  }
184
226
  function basenameShort(path) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { type SystemctlRunner } from './systemd-scope.js';
2
+ export interface SystemdSpawnParams {
3
+ claudeBin: string;
4
+ claudeArgs: readonly string[];
5
+ /** Env stamped onto the scope via `--setenv=KEY=VAL` flags. Manager-side
6
+ * vars (XDG_RUNTIME_DIR, DBUS_SESSION_BUS_ADDRESS) needed to reach user
7
+ * systemd are read from process.env separately. */
8
+ env: Readonly<Record<string, string>>;
9
+ cwd: string;
10
+ unitToken: string;
11
+ /** systemctl runner — production uses spawnSync; tests inject a stub. */
12
+ runSystemctl?: SystemctlRunner;
13
+ /** Injected child-process spawner for tests. Production uses node:child_process spawn. */
14
+ spawnChild?: (cmd: string, args: readonly string[], opts: SpawnOpts) => SpawnedChild;
15
+ /** Maximum wait for the scope's MainPID to become non-zero. Default 5000. */
16
+ activationTimeoutMs?: number;
17
+ /** Inter-poll interval while resolving MainPID. Default 50. */
18
+ activationPollIntervalMs?: number;
19
+ }
20
+ export interface SpawnOpts {
21
+ cwd: string;
22
+ env: NodeJS.ProcessEnv;
23
+ stdio: 'ignore';
24
+ detached: boolean;
25
+ }
26
+ export interface SpawnedChild {
27
+ pid: number | undefined;
28
+ unref(): void;
29
+ on(event: 'error', cb: (err: Error) => void): void;
30
+ }
31
+ export interface ScopeExit {
32
+ /** systemd's Result string: "success", "exit-code", "signal", "timeout", "core-dump", "watchdog", "start-limit-hit", "resources". */
33
+ result: string;
34
+ /** ExecMainStatus — process exit code or signal number depending on `result`. */
35
+ exitCode: number | null;
36
+ /** ExecMainCode — "exited" / "killed" / "dumped", from systemd's process-exit classification. */
37
+ code: string | null;
38
+ }
39
+ export interface WaitForExitOpts {
40
+ pollIntervalMs?: number;
41
+ }
42
+ export interface SystemdScopeHandle {
43
+ pid: number;
44
+ unitToken: string;
45
+ /** Resolves once the scope unit's `ActiveState` is no longer in the
46
+ * set { 'active', 'activating', 'reloading' }. Reads the unit's
47
+ * `Result`, `ExecMainStatus`, and `ExecMainCode` to populate
48
+ * the returned `ScopeExit`. */
49
+ waitForExit(opts?: WaitForExitOpts): Promise<ScopeExit>;
50
+ /** Read the scope's journal tail (default `--output=cat`, last 200 lines).
51
+ * Trimmed to `maxBytes` from the end so the line preceding exit wins. */
52
+ readJournalTail(maxBytes: number): Promise<string>;
53
+ /** Stop the scope via `systemctl --user stop --no-block` (delegates to
54
+ * systemd-scope.stopScopeUnit so the existing escalation path applies). */
55
+ stop(): Promise<void>;
56
+ }
57
+ /** Spawn `systemd-run --user --scope ... <claudeBin> <claudeArgs>` so the
58
+ * manager holds no file descriptors for the resulting claude process.
59
+ * Returns once MainPID is available; on activation timeout, rejects with
60
+ * a deterministic Error so the caller can log / restart. */
61
+ export declare function systemdSpawn(p: SystemdSpawnParams): Promise<SystemdScopeHandle>;
62
+ //# sourceMappingURL=systemd-spawn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemd-spawn.d.ts","sourceRoot":"","sources":["../src/systemd-spawn.ts"],"names":[],"mappings":"AAwBA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B;;wDAEoD;IACpD,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,YAAY,CAAA;IACpF,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,+DAA+D;IAC/D,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,KAAK,EAAE,QAAQ,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,KAAK,IAAI,IAAI,CAAA;IACb,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,SAAS;IACxB,qIAAqI;IACrI,MAAM,EAAE,MAAM,CAAA;IACd,iFAAiF;IACjF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iGAAiG;IACjG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB;;;oCAGgC;IAChC,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACvD;8EAC0E;IAC1E,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD;gFAC4E;IAC5E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAID;;;6DAG6D;AAC7D,wBAAsB,YAAY,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmErF"}
@@ -0,0 +1,173 @@
1
+ // Task 552 — non-PTY spawn primitive for claude scope units.
2
+ //
3
+ // Wraps `child_process.spawn` around `systemd-run --user --scope ...` so
4
+ // the manager allocates ZERO file descriptors per spawn (stdio: 'ignore',
5
+ // detached + unref). The previous `spawnPty` adapter wrapped node-pty
6
+ // around the same systemd-run argv, which opened a master pty fd in the
7
+ // manager process — one fd leaked per /rc-spawn click and one per
8
+ // rc-daemon respawn until V8 GC fired.
9
+ //
10
+ // This primitive is for spawns the manager never talks to: `/rc-spawn`
11
+ // (fire-and-forget, the route never writes back to the child) and the
12
+ // rc-daemon supervisor (stdout via journal, exit detection via
13
+ // systemctl). Channel-bridge spawns (`/spawn`, `:sessionId/input`,
14
+ // WhatsApp / public-agent / channel-pty-bridge) keep node-pty because
15
+ // they genuinely need bidirectional IO with the manager.
16
+ //
17
+ // Argv composition reuses `buildSystemdRunArgv` from systemd-scope.ts so
18
+ // the SIGHUP wrap, per-spawn unit token, slice membership, and
19
+ // `--setenv=KEY=VAL` env block are byte-identical with the PTY spawn
20
+ // path. The pid is read back via `systemctl --user show -p MainPID`
21
+ // once the scope activates — authoritative even if a future systemd
22
+ // version forks before execve.
23
+ import { spawn } from 'node:child_process';
24
+ import { buildSystemdRunArgv, defaultSystemctlRunner, scopeUnitName, stopScopeUnit, } from './systemd-scope.js';
25
+ const ACTIVE_STATES = new Set(['active', 'activating', 'reloading']);
26
+ /** Spawn `systemd-run --user --scope ... <claudeBin> <claudeArgs>` so the
27
+ * manager holds no file descriptors for the resulting claude process.
28
+ * Returns once MainPID is available; on activation timeout, rejects with
29
+ * a deterministic Error so the caller can log / restart. */
30
+ export async function systemdSpawn(p) {
31
+ const run = p.runSystemctl ?? defaultSystemctlRunner;
32
+ const spawnChild = p.spawnChild ?? defaultSpawnChild;
33
+ const activationTimeoutMs = p.activationTimeoutMs ?? 5_000;
34
+ const pollIntervalMs = p.activationPollIntervalMs ?? 50;
35
+ const wrapped = buildSystemdRunArgv({
36
+ unitToken: p.unitToken,
37
+ claudeBin: p.claudeBin,
38
+ claudeArgs: p.claudeArgs,
39
+ env: p.env,
40
+ cwd: p.cwd,
41
+ });
42
+ // Spawn systemd-run as a detached child with stdio:'ignore'. The manager
43
+ // process holds zero fds to it; user systemd owns the scope cgroup's
44
+ // lifetime. `detached: true` puts the child in its own process group so
45
+ // it survives manager exit (systemd already owns it once registered, but
46
+ // the detach is belt-and-braces against PG signal forwarding).
47
+ let child;
48
+ const errorBox = { err: null };
49
+ try {
50
+ child = spawnChild(wrapped.cmd, wrapped.args, {
51
+ cwd: p.cwd,
52
+ env: process.env,
53
+ stdio: 'ignore',
54
+ detached: true,
55
+ });
56
+ }
57
+ catch (err) {
58
+ throw new Error(`[systemd-spawn] spawn-failed unitToken=${p.unitToken} err=${err instanceof Error ? err.message : String(err)}`);
59
+ }
60
+ child.on('error', (err) => {
61
+ errorBox.err = err;
62
+ });
63
+ child.unref();
64
+ // Poll `systemctl show -p MainPID --value <unit>` until non-zero or
65
+ // timeout. systemd-run --scope registers with PID1 before execve'ing
66
+ // into the wrapped command; MainPID is the canonical pid of the
67
+ // scope's runner (claude), authoritative across any fork the
68
+ // systemd-run binary may introduce.
69
+ const unit = scopeUnitName(p.unitToken);
70
+ const deadline = Date.now() + activationTimeoutMs;
71
+ while (Date.now() < deadline) {
72
+ if (errorBox.err) {
73
+ throw new Error(`[systemd-spawn] child-error unitToken=${p.unitToken} err=${errorBox.err.message}`);
74
+ }
75
+ const r = run(['--user', 'show', '-p', 'MainPID', '--value', unit]);
76
+ if (r.exitCode === 0) {
77
+ const raw = r.stdout.trim();
78
+ if (raw && raw !== '0') {
79
+ const n = Number.parseInt(raw, 10);
80
+ if (Number.isFinite(n) && n > 0) {
81
+ return buildHandle(n, p.unitToken, run);
82
+ }
83
+ }
84
+ }
85
+ await sleep(pollIntervalMs);
86
+ }
87
+ throw new Error(`[systemd-spawn] activation-timeout unitToken=${p.unitToken} timeoutMs=${activationTimeoutMs}`);
88
+ }
89
+ function buildHandle(pid, unitToken, run) {
90
+ const unit = scopeUnitName(unitToken);
91
+ return {
92
+ pid,
93
+ unitToken,
94
+ async waitForExit(opts) {
95
+ const interval = opts?.pollIntervalMs ?? 250;
96
+ while (true) {
97
+ const r = run(['--user', 'show', '-p', 'ActiveState', '--value', unit]);
98
+ const state = r.exitCode === 0 ? r.stdout.trim() : '';
99
+ // Empty state OR exit code 4 (unit not loaded) means the transient
100
+ // unit has been collected — treat as exited.
101
+ if (!state || !ACTIVE_STATES.has(state)) {
102
+ return readScopeExit(run, unit);
103
+ }
104
+ await sleep(interval);
105
+ }
106
+ },
107
+ async readJournalTail(maxBytes) {
108
+ return readJournal(unit, maxBytes);
109
+ },
110
+ async stop() {
111
+ await stopScopeUnit(run, unitToken, { pid });
112
+ },
113
+ };
114
+ }
115
+ function readScopeExit(run, unit) {
116
+ const r = run([
117
+ '--user',
118
+ 'show',
119
+ '-p', 'Result',
120
+ '-p', 'ExecMainStatus',
121
+ '-p', 'ExecMainCode',
122
+ unit,
123
+ ]);
124
+ if (r.exitCode !== 0) {
125
+ return { result: 'unknown', exitCode: null, code: null };
126
+ }
127
+ const fields = {};
128
+ for (const line of r.stdout.split('\n')) {
129
+ const eq = line.indexOf('=');
130
+ if (eq < 0)
131
+ continue;
132
+ fields[line.slice(0, eq)] = line.slice(eq + 1);
133
+ }
134
+ const statusRaw = fields.ExecMainStatus ?? '';
135
+ const status = statusRaw === '' ? null : Number.parseInt(statusRaw, 10);
136
+ return {
137
+ result: fields.Result || 'unknown',
138
+ exitCode: Number.isFinite(status) ? status : null,
139
+ code: fields.ExecMainCode || null,
140
+ };
141
+ }
142
+ async function readJournal(unit, maxBytes) {
143
+ return new Promise((resolve) => {
144
+ let buf = '';
145
+ try {
146
+ const child = spawn('journalctl', ['--user', '-u', unit, '-n', '200', '--no-pager', '--output=cat'], { stdio: ['ignore', 'pipe', 'pipe'] });
147
+ child.stdout?.on('data', (chunk) => {
148
+ buf += chunk.toString('utf8');
149
+ if (buf.length > maxBytes * 2)
150
+ buf = buf.slice(buf.length - maxBytes);
151
+ });
152
+ child.on('error', () => resolve(''));
153
+ child.on('close', () => {
154
+ resolve(buf.length > maxBytes ? buf.slice(buf.length - maxBytes) : buf);
155
+ });
156
+ }
157
+ catch {
158
+ resolve('');
159
+ }
160
+ });
161
+ }
162
+ function defaultSpawnChild(cmd, args, opts) {
163
+ const child = spawn(cmd, [...args], opts);
164
+ return {
165
+ pid: child.pid,
166
+ unref: () => child.unref(),
167
+ on: (event, cb) => { child.on(event, cb); },
168
+ };
169
+ }
170
+ function sleep(ms) {
171
+ return new Promise((resolve) => setTimeout(resolve, ms));
172
+ }
173
+ //# sourceMappingURL=systemd-spawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemd-spawn.js","sourceRoot":"","sources":["../src/systemd-spawn.ts"],"names":[],"mappings":"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"}