@beeos-ai/device-agent 0.7.2 → 0.9.1

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 (56) hide show
  1. package/dist/app/fixed-session-id.d.ts +19 -0
  2. package/dist/app/fixed-session-id.js +26 -0
  3. package/dist/app/fixed-session-id.js.map +1 -0
  4. package/dist/app/jsonl-session-sweeper.d.ts +90 -0
  5. package/dist/app/jsonl-session-sweeper.js +162 -0
  6. package/dist/app/jsonl-session-sweeper.js.map +1 -0
  7. package/dist/app/jsonl-store.d.ts +10 -0
  8. package/dist/app/jsonl-store.js +10 -4
  9. package/dist/app/jsonl-store.js.map +1 -1
  10. package/dist/app/session-manager.d.ts +135 -1
  11. package/dist/app/session-manager.js +195 -12
  12. package/dist/app/session-manager.js.map +1 -1
  13. package/dist/bootstrap.js +157 -2
  14. package/dist/bootstrap.js.map +1 -1
  15. package/dist/config/loader.d.ts +4 -0
  16. package/dist/config/loader.js +20 -2
  17. package/dist/config/loader.js.map +1 -1
  18. package/dist/config/schema.d.ts +7 -0
  19. package/dist/config/schema.js +82 -0
  20. package/dist/config/schema.js.map +1 -1
  21. package/dist/fleet/domain/device.d.ts +17 -0
  22. package/dist/fleet/domain/device.js +1 -0
  23. package/dist/fleet/domain/device.js.map +1 -1
  24. package/dist/fleet/domain/fsm.d.ts +30 -1
  25. package/dist/fleet/domain/fsm.js +100 -4
  26. package/dist/fleet/domain/fsm.js.map +1 -1
  27. package/dist/fleet/supervisor.js +38 -18
  28. package/dist/fleet/supervisor.js.map +1 -1
  29. package/dist/inbound/cli/main.js +12 -0
  30. package/dist/inbound/cli/main.js.map +1 -1
  31. package/dist/messaging/token-provider.d.ts +43 -0
  32. package/dist/messaging/token-provider.js +65 -0
  33. package/dist/messaging/token-provider.js.map +1 -0
  34. package/dist/plugins/acp/index.d.ts +27 -30
  35. package/dist/plugins/acp/index.js +44 -137
  36. package/dist/plugins/acp/index.js.map +1 -1
  37. package/dist/plugins/message-bus/busy-reply.d.ts +39 -0
  38. package/dist/plugins/message-bus/busy-reply.js +30 -0
  39. package/dist/plugins/message-bus/busy-reply.js.map +1 -0
  40. package/dist/plugins/message-bus/cancel.d.ts +48 -0
  41. package/dist/plugins/message-bus/cancel.js +66 -0
  42. package/dist/plugins/message-bus/cancel.js.map +1 -0
  43. package/dist/plugins/message-bus/inbound.d.ts +71 -0
  44. package/dist/plugins/message-bus/inbound.js +180 -0
  45. package/dist/plugins/message-bus/inbound.js.map +1 -0
  46. package/dist/plugins/message-bus/index.d.ts +146 -0
  47. package/dist/plugins/message-bus/index.js +382 -0
  48. package/dist/plugins/message-bus/index.js.map +1 -0
  49. package/dist/plugins/message-bus/ms-channel-notifier.d.ts +101 -0
  50. package/dist/plugins/message-bus/ms-channel-notifier.js +181 -0
  51. package/dist/plugins/message-bus/ms-channel-notifier.js.map +1 -0
  52. package/dist/plugins/message-bus/ms-inflight-tracker.d.ts +36 -0
  53. package/dist/plugins/message-bus/ms-inflight-tracker.js +42 -0
  54. package/dist/plugins/message-bus/ms-inflight-tracker.js.map +1 -0
  55. package/dist/ports/plugin.d.ts +12 -0
  56. package/package.json +2 -1
@@ -46,13 +46,24 @@ import { InFlightTurnAggregator, } from "./in-flight-turn.js";
46
46
  export class SessionManager {
47
47
  host;
48
48
  store;
49
- notifier;
49
+ /**
50
+ * Default notifier — called when no per-session notifier is bound
51
+ * via `bindNotifier`. AcpPlugin in v0.9.0+ does NOT pass this; it
52
+ * binds its TransportSessionNotifier per-fixedSessionId instead.
53
+ * Kept for back-compat with single-notifier callers.
54
+ */
55
+ fallbackNotifier;
56
+ /** sid → notifier overrides for routing per-session updates. */
57
+ notifiers = new Map();
50
58
  onSetModel;
51
59
  fixedSessionId;
52
60
  maxSessions;
53
61
  sessionTtlMs;
54
62
  pluginCommands;
55
63
  onPluginCommandEvent;
64
+ historyEnabled;
65
+ historyMaxTurns;
66
+ historyMaxBytes;
56
67
  sessions = new Map();
57
68
  /** taskId → sessionId for routing host events to the right ACP session. */
58
69
  taskToSession = new Map();
@@ -64,7 +75,7 @@ export class SessionManager {
64
75
  constructor(opts) {
65
76
  this.host = opts.host;
66
77
  this.store = opts.messageStore ?? new MessageStore();
67
- this.notifier = opts.notifier;
78
+ this.fallbackNotifier = opts.notifier;
68
79
  this.onSetModel = opts.onSetModel;
69
80
  if (opts.fixedSessionId)
70
81
  this.fixedSessionId = opts.fixedSessionId;
@@ -72,6 +83,9 @@ export class SessionManager {
72
83
  this.sessionTtlMs = opts.sessionTtlMs ?? 60 * 60 * 1000;
73
84
  this.pluginCommands = opts.pluginCommands;
74
85
  this.onPluginCommandEvent = opts.onPluginCommandEvent;
86
+ this.historyEnabled = opts.historyEnabled ?? false;
87
+ this.historyMaxTurns = opts.historyMaxTurns ?? 5;
88
+ this.historyMaxBytes = opts.historyMaxBytes ?? 8192;
75
89
  this.unsubscribe = this.host.on((ev) => this.handleHostEvent(ev));
76
90
  // In single-session mode, eagerly materialise the fixed session so
77
91
  // listSessions / load behave deterministically even before the
@@ -80,6 +94,71 @@ export class SessionManager {
80
94
  this.ensureFixedSession();
81
95
  }
82
96
  }
97
+ // ── v0.9.0 multi-transport / multi-session API ──────────────────────────
98
+ /** True iff a turn is in flight (any session). Used by MS busy-reject. */
99
+ isTurnInFlight() {
100
+ return this.currentTask !== null;
101
+ }
102
+ /**
103
+ * Read-only access to the plugin command registry passed at
104
+ * construction. Plugins (e.g. AcpSkillsHandlers) consume this to
105
+ * surface registered commands without re-injecting the registry
106
+ * separately. Returns `undefined` when no registry was provided.
107
+ */
108
+ get pluginCommandRegistry() {
109
+ return this.pluginCommands;
110
+ }
111
+ /**
112
+ * Look up a session by exact sid, bypassing `fixedSessionId`. Creates
113
+ * an in-memory entry on first call (rehydrating from store if a
114
+ * previous instance wrote a JSONL with that sid). Used by the
115
+ * MessageBus path so per-channel sessions coexist with the
116
+ * operator's fixed ACP session.
117
+ *
118
+ * Opportunistically runs `evictExpired` before allocating so MS-only
119
+ * deployments (which never call `listSessions` / `newSession`) don't
120
+ * accumulate stale in-memory entries indefinitely. The eviction
121
+ * deliberately preserves `fixedSessionId`.
122
+ */
123
+ findOrCreateSession(sessionId) {
124
+ this.evictExpired();
125
+ if (this.sessions.has(sessionId)) {
126
+ const existing = this.sessions.get(sessionId);
127
+ existing.lastActive = Date.now();
128
+ return existing;
129
+ }
130
+ if (this.store.sessionExists(sessionId)) {
131
+ this.sessions.set(sessionId, newSession(sessionId));
132
+ return this.sessions.get(sessionId);
133
+ }
134
+ this.sessions.set(sessionId, newSession(sessionId));
135
+ this.store.upsertSession(sessionId);
136
+ return this.sessions.get(sessionId);
137
+ }
138
+ /**
139
+ * Run a prompt against a specific session id, bypassing the
140
+ * `fixedSessionId` ACP single-session aliasing. When `historyEnabled`
141
+ * is on, prepends a `[Conversation history ...]` preamble built from
142
+ * the prior `user_message` + `assistant_turn` records on the same
143
+ * sid so the LLM has multi-turn memory.
144
+ *
145
+ * Throws `Error("agent_busy")` if a turn is already running on any
146
+ * session — caller (MessageBus inbound) translates to a busy-reply.
147
+ */
148
+ async promptForSession(sessionId, prompt) {
149
+ if (!prompt)
150
+ throw new Error("prompt is required");
151
+ const session = this.findOrCreateSession(sessionId);
152
+ return this._executePrompt(session, prompt, { injectHistory: true });
153
+ }
154
+ /** Bind a notifier to a specific session id. Replaces any existing binding. */
155
+ bindNotifier(sessionId, notifier) {
156
+ this.notifiers.set(sessionId, notifier);
157
+ }
158
+ /** Remove the per-session notifier (subsequent updates fall back to the default). */
159
+ unbindNotifier(sessionId) {
160
+ this.notifiers.delete(sessionId);
161
+ }
83
162
  /** Detach from the host bus (used when shutting down the ACP plugin). */
84
163
  detach() {
85
164
  if (this.unsubscribe) {
@@ -87,6 +166,35 @@ export class SessionManager {
87
166
  this.unsubscribe = null;
88
167
  }
89
168
  }
169
+ /**
170
+ * Drop a session from in-memory state without touching the store.
171
+ * Used by `JsonlSessionSweeper` after it has already decided the
172
+ * session's JSONL on disk is stale — calling this keeps
173
+ * `this.sessions` from holding a phantom in-memory entry that
174
+ * would re-create the file on the next prompt.
175
+ *
176
+ * Returns:
177
+ * - `"dropped"` — the entry existed and was removed; caller is
178
+ * free to delete the JSONL on disk.
179
+ * - `"absent"` — no in-memory entry for this sid; caller is
180
+ * free to delete the JSONL on disk (a rehydrate
181
+ * would have re-loaded it).
182
+ * - `"in-flight"` — an in-flight task is using this sid; caller
183
+ * MUST skip the disk delete and try again on
184
+ * the next sweep pass.
185
+ */
186
+ dropFromMemory(sessionId) {
187
+ const s = this.sessions.get(sessionId);
188
+ if (!s)
189
+ return "absent";
190
+ if (s.currentTaskId)
191
+ return "in-flight";
192
+ this.sessions.delete(sessionId);
193
+ if (this.activeSessionId === sessionId)
194
+ this.activeSessionId = null;
195
+ this.notifiers.delete(sessionId);
196
+ return "dropped";
197
+ }
90
198
  // ── ACP semantics — name mirrors Python SessionHandler ───────────────────
91
199
  newSession() {
92
200
  if (this.fixedSessionId) {
@@ -208,9 +316,7 @@ export class SessionManager {
208
316
  if (!prompt)
209
317
  throw new Error("prompt is required");
210
318
  const session = this.resolveSession(sessionIdHint);
211
- session.lastActive = Date.now();
212
- session.history.push({ role: "user", content: prompt, createdAt: session.lastActive });
213
- this.activeSessionId = session.id;
319
+ session.history.push({ role: "user", content: prompt, createdAt: Date.now() });
214
320
  // Plugin command short-circuit: if the prompt is a /command match,
215
321
  // dispatch straight to the registered handler and skip the
216
322
  // AgentRunner entirely. Mirrors OpenClaw `matchPluginCommand` —
@@ -223,16 +329,44 @@ export class SessionManager {
223
329
  return this.handlePluginCommand(prompt, session.id, matched.command, matched.args);
224
330
  }
225
331
  }
332
+ // ACP path intentionally does NOT inject history — keeps v0.8.0
333
+ // operator-dashboard behaviour exactly. MS path uses
334
+ // promptForSession() which sets injectHistory: true.
335
+ return this._executePrompt(session, prompt, { injectHistory: false });
336
+ }
337
+ /**
338
+ * Shared turn dispatch. Both `prompt()` (ACP) and `promptForSession()`
339
+ * (MessageBus) funnel through here so the in-flight gate, persistence,
340
+ * notify-status, and submit-task paths can't drift between callers.
341
+ *
342
+ * - Throws `Error("agent_busy")` if another turn is in-flight (any
343
+ * session). Layer 3 device-physical-serial constraint.
344
+ * - When `injectHistory` is true, prepends a `[Conversation history ...]`
345
+ * preamble built from store records to the prompt. JSONL persists
346
+ * the ORIGINAL prompt — preamble is for the LLM only, never written
347
+ * to disk (otherwise next turn would re-include the preamble and
348
+ * recursively bloat).
349
+ */
350
+ async _executePrompt(session, originalPrompt, opts) {
351
+ if (this.currentTask !== null)
352
+ throw new Error("agent_busy");
353
+ session.lastActive = Date.now();
354
+ this.activeSessionId = session.id;
355
+ const augmentedPrompt = opts.injectHistory
356
+ ? this.buildHistoryPreamble(session.id) + originalPrompt
357
+ : originalPrompt;
226
358
  this.notify(session.id, { sessionUpdate: "agent_status", status: "running" });
227
- const submitted = this.host.submitTask(prompt, { correlationTag: session.id });
359
+ const submitted = this.host.submitTask(augmentedPrompt, {
360
+ correlationTag: session.id,
361
+ });
228
362
  this.taskToSession.set(submitted.taskId, session.id);
229
363
  this.currentTask = submitted;
230
364
  session.currentTaskId = submitted.taskId;
231
- // Persist the user message AFTER taskToSession is wired so a
232
- // concurrent loadSession from another connection can see this row
233
- // alongside the upcoming in-flight assistant snapshot.
365
+ // Persist the ORIGINAL user message (not augmented) AFTER
366
+ // taskToSession is wired so a concurrent loadSession can see the
367
+ // row alongside the upcoming in-flight assistant snapshot.
234
368
  // turnId mirrors agent-host's convention (turnId === taskId).
235
- this.store.appendUserMessage(session.id, prompt, {
369
+ this.store.appendUserMessage(session.id, originalPrompt, {
236
370
  turnId: submitted.taskId,
237
371
  });
238
372
  let result;
@@ -251,6 +385,54 @@ export class SessionManager {
251
385
  }
252
386
  return { stopReason: result.cancelled ? "cancelled" : "end_turn" };
253
387
  }
388
+ /**
389
+ * Build a `[Conversation history ...]` preamble from prior store
390
+ * records on `sessionId`. Returns "" when:
391
+ * - history injection is disabled
392
+ * - no prior records exist
393
+ * - all records are empty after filtering
394
+ *
395
+ * Truncates from the OLDEST end when the body would exceed
396
+ * `historyMaxBytes`. Caps at `historyMaxTurns * 2` lines (each
397
+ * "turn" ≈ one user line + one assistant line).
398
+ *
399
+ * Returns the formatted string ending with two newlines so the new
400
+ * user prompt naturally appears after a blank line.
401
+ */
402
+ buildHistoryPreamble(sessionId) {
403
+ if (!this.historyEnabled)
404
+ return "";
405
+ const records = this.store.getTurns(sessionId);
406
+ if (records.length === 0)
407
+ return "";
408
+ const lines = [];
409
+ for (const rec of records) {
410
+ if (rec.type === "user_message" && rec.content) {
411
+ lines.push(`User: ${rec.content}`);
412
+ }
413
+ else if (rec.type === "assistant_turn" && rec.text) {
414
+ lines.push(`Assistant: ${rec.text}`);
415
+ }
416
+ }
417
+ if (lines.length === 0)
418
+ return "";
419
+ // Each turn ≈ 1 user line + 1 assistant line, so 2x the cap.
420
+ const wanted = lines.slice(-this.historyMaxTurns * 2);
421
+ let body = wanted.join("\n");
422
+ while (body.length > this.historyMaxBytes && wanted.length > 0) {
423
+ wanted.shift();
424
+ body = wanted.join("\n");
425
+ }
426
+ if (!body)
427
+ return "";
428
+ return [
429
+ "[Conversation history for this thread — read for context, do NOT re-execute]",
430
+ body,
431
+ "[End of history]",
432
+ "",
433
+ "",
434
+ ].join("\n");
435
+ }
254
436
  /** Cancel the in-flight task for the active session, if any. */
255
437
  async cancel() {
256
438
  if (!this.currentTask)
@@ -747,9 +929,10 @@ export class SessionManager {
747
929
  // signal the client uses to recognise a still-generating turn.
748
930
  }
749
931
  notify(sessionId, update) {
750
- if (!this.notifier)
932
+ const target = this.notifiers.get(sessionId) ?? this.fallbackNotifier;
933
+ if (!target)
751
934
  return;
752
- this.notifier.send(sessionId, update);
935
+ target.send(sessionId, update);
753
936
  }
754
937
  evictExpired() {
755
938
  if (this.fixedSessionId)
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/app/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/app/session-manager.ts"],"names":[],"mappings":"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"}
package/dist/bootstrap.js CHANGED
@@ -45,6 +45,15 @@ import { fetchBridgeConfig, } from "./adapters/agent-gateway-client.js";
45
45
  import { AgentGatewayFileClient, DataUrlTransport, FallbackTransport, HttpUrlTransport, } from "./model/image/transport.js";
46
46
  import { DeviceManager } from "./app/device-manager.js";
47
47
  import { AgentHostImpl } from "./app/agent-host.js";
48
+ import { JsonlMessageStore, safeFilename } from "./app/jsonl-store.js";
49
+ import { JsonlSessionSweeper } from "./app/jsonl-session-sweeper.js";
50
+ import { SessionManager } from "./app/session-manager.js";
51
+ import { deriveFixedSessionId } from "./app/fixed-session-id.js";
52
+ import { PluginCommandRegistry } from "./app/plugin-commands/registry.js";
53
+ import { ScreenshotCommandHandler } from "./app/plugin-commands/screenshot-command.js";
54
+ import { ScreenshotService } from "./app/screenshot-service.js";
55
+ import { AgentGatewayUserFileUploader } from "./adapters/user-file-uploader.js";
56
+ import { getDeviceAgentSessionsDir } from "./config/paths.js";
48
57
  import { ResourceResolutionCache, ResourceResolverRegistry, UrlResolver, BeeosFileResolver, defaultParsers, FsDiskPressureGuard, FsResourceLifecycleManager, FsResourceLifecycleSweeper, } from "./resources/index.js";
49
58
  import { ShortcutRegistry, ShortcutRouter, registerBuiltinShortcuts, } from "./shortcuts/index.js";
50
59
  import { BootstrapShortcutResourceFacade } from "./resources/shortcut-facade.js";
@@ -52,6 +61,7 @@ import { FsShortcutMemoryStore, InMemoryShortcutMemoryStore, } from "./agent-run
52
61
  import { AcpPlugin } from "./plugins/acp/index.js";
53
62
  import { HttpDebugPlugin } from "./plugins/http-debug/index.js";
54
63
  import { AgentSyncPlugin } from "./plugins/agent-sync/index.js";
64
+ import { MessageBusPlugin } from "./plugins/message-bus/index.js";
55
65
  import { HTTPGrounder } from "./grounding/grounder.js";
56
66
  import { formatUiXmlToolOutput } from "./device/ui-xml.js";
57
67
  import { McpClient, InProcMcpClient, autospawnMcpServer, } from "./mcp-client/index.js";
@@ -343,6 +353,120 @@ export async function bootstrap(opts = {}) {
343
353
  lifecycle: lifecycleManager,
344
354
  diskPressure: diskPressureGuard,
345
355
  });
356
+ // ── Session persistence + manager (shared by ACP + MessageBus plugins) ──
357
+ // v0.9.0 — bootstrap owns the SessionManager / JsonlMessageStore /
358
+ // JsonlSessionSweeper / PluginCommandRegistry lifecycles. Plugins
359
+ // attach to the SessionManager via `ctx.sessionManager` and bind
360
+ // their per-sid notifiers via `bindNotifier(sid, notifier)` — they
361
+ // MUST NOT construct their own SessionManager (the in-flight gate
362
+ // / Layer 3 device-physical-serial constraint depends on a single
363
+ // instance per process).
364
+ const fixedSessionId = deriveFixedSessionId(kp?.publicKey);
365
+ const sessionsDir = getDeviceAgentSessionsDir();
366
+ const messageStore = await JsonlMessageStore.open({
367
+ sessionsDir,
368
+ preloadSids: [fixedSessionId],
369
+ logger: { warn: (...args) => log.warn(...args) },
370
+ });
371
+ log.info({ fixedSessionId, sessionsDir }, "session store: jsonl ready");
372
+ // PluginCommandRegistry — `/screenshot` etc. Only registered when
373
+ // both the agent gateway URL AND a keypair are available (need to
374
+ // sign presign requests). Standalone / lab mode boots without it
375
+ // and `skills/list` returns an empty list — graceful degradation.
376
+ const pluginCommands = new PluginCommandRegistry();
377
+ if (kp && config.agentGatewayUrl && !config.standalone) {
378
+ const uploader = new AgentGatewayUserFileUploader({
379
+ agentGatewayUrl: config.agentGatewayUrl,
380
+ identity: { publicKey: kp.publicKey, privateKey: kp.privateKey },
381
+ });
382
+ const lazyMcp = {
383
+ screenshot: () => mcpProvider().screenshot(),
384
+ uiDump: (o) => mcpProvider().uiDump(o),
385
+ act: (a) => mcpProvider().act(a),
386
+ };
387
+ const screenshotService = new ScreenshotService(lazyMcp, uploader);
388
+ pluginCommands.register(new ScreenshotCommandHandler(screenshotService));
389
+ log.info({ commands: pluginCommands.list().map((c) => c.name) }, "plugin commands registered");
390
+ }
391
+ else {
392
+ log.info("plugin commands: skipping `/screenshot` etc. (no agentGatewayUrl / keypair / standalone mode)");
393
+ }
394
+ // History injection is opt-in via messageBus.historyEnabled. Forced
395
+ // OFF for `pi=true` because the PiOrchestratorAgent's outer prompt
396
+ // is treated as a brand-new task spec and would mis-read prior
397
+ // turns as new instructions. ACP path is unaffected — only MS-path
398
+ // `promptForSession` consults `historyEnabled`.
399
+ const historyEnabled = !!(config.messageBus?.historyEnabled ?? true) && !config.pi;
400
+ const sessionManager = new SessionManager({
401
+ host,
402
+ messageStore,
403
+ fixedSessionId,
404
+ pluginCommands,
405
+ sessionTtlMs: config.sessionTimeoutMs > 0 ? config.sessionTimeoutMs : undefined,
406
+ historyEnabled,
407
+ onSetModel: async (provider, model) => {
408
+ try {
409
+ await host.agent.setModel(provider, model);
410
+ log.info({ provider, model }, "agent model switched");
411
+ }
412
+ catch (e) {
413
+ log.warn({ err: e.message, provider, model }, "setModel failed");
414
+ }
415
+ },
416
+ onPluginCommandEvent: (ev) => {
417
+ if (ev.kind === "begin") {
418
+ log.info({
419
+ command: ev.name,
420
+ sessionId: ev.sessionId,
421
+ turnId: ev.turnId,
422
+ args: ev.args,
423
+ }, "plugin command begin");
424
+ }
425
+ else if (ev.kind === "end") {
426
+ log.info({
427
+ command: ev.name,
428
+ sessionId: ev.sessionId,
429
+ turnId: ev.turnId,
430
+ durationMs: ev.durationMs,
431
+ }, "plugin command end");
432
+ }
433
+ else {
434
+ log.warn({
435
+ command: ev.name,
436
+ sessionId: ev.sessionId,
437
+ turnId: ev.turnId,
438
+ durationMs: ev.durationMs,
439
+ err: ev.error.message,
440
+ stack: ev.error.stack,
441
+ }, "plugin command failed");
442
+ }
443
+ },
444
+ });
445
+ // Background sweeper for per-channel JSONL session files. The fixed
446
+ // sid (operator dashboard chat) is filtered out — it must never be
447
+ // reaped. `sessionTtlHours = 0` disables sweeping entirely (kiosk
448
+ // deployments that want forever-persisted history).
449
+ const sessionTtlHours = config.messageBus?.sessionTtlHours ?? 24;
450
+ const sweeper = sessionTtlHours > 0
451
+ ? new JsonlSessionSweeper({
452
+ sessionsDir,
453
+ ttlMs: sessionTtlHours * 60 * 60 * 1000,
454
+ intervalMs: 60 * 60 * 1000,
455
+ fixedSessionFilename: safeFilename(fixedSessionId),
456
+ logger: log,
457
+ })
458
+ : null;
459
+ if (sweeper) {
460
+ sweeper.start();
461
+ log.info({
462
+ sessionsDir,
463
+ ttlHours: sessionTtlHours,
464
+ fixedSessionFilename: safeFilename(fixedSessionId),
465
+ }, "session sweeper started");
466
+ }
467
+ else {
468
+ log.info("session sweeper disabled (sessionTtlHours=0)");
469
+ }
346
470
  // ── Plugins ──────────────────────────────────────────────────────────────
347
471
  const plugins = opts.pluginsOverride ??
348
472
  buildDefaultPlugins({
@@ -354,7 +478,7 @@ export async function bootstrap(opts = {}) {
354
478
  buildDeclarations: opts.buildDeclarations,
355
479
  mcpProvider,
356
480
  });
357
- const ctx = { host, config, log };
481
+ const ctx = { host, config, log, sessionManager };
358
482
  for (const p of plugins) {
359
483
  if (p.init)
360
484
  await p.init(ctx);
@@ -379,6 +503,28 @@ export async function bootstrap(opts = {}) {
379
503
  log.warn({ err: e.message, plugin: p.name }, "plugin stop failed");
380
504
  }
381
505
  }
506
+ // Detach SessionManager from the host event bus before we tear
507
+ // down the host below. Order matters: detach() unsubscribes the
508
+ // event listener, so subsequent host.cancelAll → task:end fan-out
509
+ // won't try to notify a half-disposed manager.
510
+ try {
511
+ sessionManager.detach();
512
+ }
513
+ catch {
514
+ /* ignore */
515
+ }
516
+ try {
517
+ sweeper?.stop();
518
+ }
519
+ catch {
520
+ /* ignore */
521
+ }
522
+ try {
523
+ await messageStore.close();
524
+ }
525
+ catch (e) {
526
+ log.warn({ err: e.message }, "session store: close failed");
527
+ }
382
528
  try {
383
529
  await host.cancelAll();
384
530
  }
@@ -439,12 +585,21 @@ function buildDefaultPlugins(opts) {
439
585
  if (opts.config.httpEnabled && !opts.config.disableHttp) {
440
586
  plugins.push(new HttpDebugPlugin({ devices: opts.devices }));
441
587
  }
588
+ // message-bus — BeeOS Message Service (chat_message inbound + agent_reply outbound).
589
+ // Started BEFORE acp so the SDK is connected by the time the bridge
590
+ // subscription opens — this avoids a window where an L0 invocation
591
+ // could land while we're still negotiating the messaging-token.
592
+ if (opts.config.messageBus?.enabled &&
593
+ opts.keypair &&
594
+ opts.config.agentGatewayUrl &&
595
+ !opts.config.standalone) {
596
+ plugins.push(new MessageBusPlugin({ keypair: opts.keypair }));
597
+ }
442
598
  // acp — Bridge WS + ACP JSON-RPC.
443
599
  if (!opts.config.standalone && !opts.config.disableAcp && opts.keypair) {
444
600
  plugins.push(new AcpPlugin({
445
601
  mcpProvider: opts.mcpProvider,
446
602
  keypair: opts.keypair,
447
- agentGatewayUrl: opts.config.agentGatewayUrl,
448
603
  }));
449
604
  }
450
605
  return plugins;