@moxt-ai/mobius 0.0.149 → 0.0.150

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"run-daemon.js","sourceRoot":"","sources":["../src/run-daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-daemon.js","sourceRoot":"","sources":["../src/run-daemon.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -20740,9 +20740,17 @@ function decodeSessionQueuedEvent(encoded) {
20740
20740
  }
20741
20741
  function decodeRuntimeLivenessReadyEvent(encoded) {
20742
20742
  const value = parseJson2(encoded);
20743
- assertExactKeys(value, ["kind"]);
20744
20743
  assertKind(value, RUNTIME_LIVENESS_READY_KIND);
20745
- return { kind: RUNTIME_LIVENESS_READY_KIND };
20744
+ if (value["sessionEventDelivery"] === void 0) {
20745
+ assertExactKeys(value, ["kind"]);
20746
+ return { kind: RUNTIME_LIVENESS_READY_KIND };
20747
+ }
20748
+ assertExactKeys(value, ["kind", "sessionEventDelivery"]);
20749
+ const sessionEventDelivery = readString(value, "sessionEventDelivery", 32);
20750
+ if (sessionEventDelivery !== "reliable-v1") {
20751
+ throw new ProtocolMessageError("Unsupported Session event delivery mode");
20752
+ }
20753
+ return { kind: RUNTIME_LIVENESS_READY_KIND, sessionEventDelivery };
20746
20754
  }
20747
20755
  function decodeRuntimeHeartbeatEvent(encoded) {
20748
20756
  const value = parseJson2(encoded);
@@ -21192,12 +21200,59 @@ var encodeNativeSessionCancel = (value) => JSON.stringify(nativeSessionCancelSch
21192
21200
 
21193
21201
  // ../protocol/src/session-events.ts
21194
21202
  var SESSION_EVENT_KIND = "session.event";
21203
+ var SESSION_EVENT_ACK_KIND = "session.event.ack";
21204
+ var SESSION_EVENT_DEFERRED_KIND = "session.event.deferred";
21205
+ var SESSION_EVENT_REJECTED_KIND = "session.event.rejected";
21206
+ var SessionEventRejectionCode = {
21207
+ IdempotencyConflict: "idempotency_conflict",
21208
+ InvalidEvent: "invalid_event",
21209
+ RecordingRejected: "recording_rejected"
21210
+ };
21195
21211
  var MAX_RECORDED_EVENT_LENGTH = 8 * 1024 * 1024;
21196
- var eventEnvelopeSchema = external_exports.strictObject({
21212
+ var ephemeralEventEnvelopeSchema = external_exports.strictObject({
21197
21213
  kind: external_exports.literal(SESSION_EVENT_KIND),
21198
21214
  payload: external_exports.string().min(2).max(MAX_RECORDED_EVENT_LENGTH),
21199
21215
  sessionId: identifierStringSchema
21200
21216
  }).readonly();
21217
+ var reliableDeliverySchema = external_exports.strictObject({
21218
+ eventId: identifierStringSchema,
21219
+ kind: external_exports.literal("reliable"),
21220
+ sourceSeq: external_exports.string().regex(/^(?:0|[1-9][0-9]*)$/u).max(40),
21221
+ streamId: identifierStringSchema
21222
+ }).readonly();
21223
+ var reliableEventEnvelopeSchema = external_exports.strictObject({
21224
+ delivery: reliableDeliverySchema,
21225
+ kind: external_exports.literal(SESSION_EVENT_KIND),
21226
+ payload: external_exports.string().min(2).max(MAX_RECORDED_EVENT_LENGTH),
21227
+ sessionId: identifierStringSchema
21228
+ }).readonly();
21229
+ var eventEnvelopeSchema = external_exports.union([ephemeralEventEnvelopeSchema, reliableEventEnvelopeSchema]).readonly();
21230
+ var acknowledgementOutcomeSchema = external_exports.discriminatedUnion("kind", [
21231
+ external_exports.strictObject({ kind: external_exports.literal("relayed") }).readonly(),
21232
+ external_exports.strictObject({
21233
+ kind: external_exports.literal("recorded"),
21234
+ providerId: identifierStringSchema,
21235
+ recordingEpoch: identifierStringSchema
21236
+ }).readonly()
21237
+ ]);
21238
+ var eventAcknowledgementSchema = external_exports.strictObject({
21239
+ eventId: identifierStringSchema,
21240
+ kind: external_exports.literal(SESSION_EVENT_ACK_KIND),
21241
+ outcome: acknowledgementOutcomeSchema,
21242
+ sessionId: identifierStringSchema
21243
+ }).readonly();
21244
+ var eventDeferredSchema = external_exports.strictObject({
21245
+ eventId: identifierStringSchema,
21246
+ kind: external_exports.literal(SESSION_EVENT_DEFERRED_KIND),
21247
+ retryAfterMilliseconds: external_exports.number().int().min(100).max(6e4),
21248
+ sessionId: identifierStringSchema
21249
+ }).readonly();
21250
+ var eventRejectedSchema = external_exports.strictObject({
21251
+ code: external_exports.enum(SessionEventRejectionCode),
21252
+ eventId: identifierStringSchema,
21253
+ kind: external_exports.literal(SESSION_EVENT_REJECTED_KIND),
21254
+ sessionId: identifierStringSchema
21255
+ }).readonly();
21201
21256
  var SESSION_QUEUE_CHANGED_KIND = "session.queue.changed";
21202
21257
  var sessionQueueChangedSchema = external_exports.strictObject({ kind: external_exports.literal(SESSION_QUEUE_CHANGED_KIND), sessionId: identifierStringSchema }).readonly();
21203
21258
  function decode5(encoded, schema) {
@@ -21226,6 +21281,12 @@ var encode4 = (message, schema) => {
21226
21281
  };
21227
21282
  var decodeSessionEventEnvelope = (encoded) => decode5(encoded, eventEnvelopeSchema);
21228
21283
  var encodeSessionEventEnvelope = (message) => encode4(message, eventEnvelopeSchema);
21284
+ var decodeSessionEventAcknowledgement = (encoded) => decode5(encoded, eventAcknowledgementSchema);
21285
+ var encodeSessionEventAcknowledgement = (message) => encode4(message, eventAcknowledgementSchema);
21286
+ var decodeSessionEventDeferred = (encoded) => decode5(encoded, eventDeferredSchema);
21287
+ var encodeSessionEventDeferred = (message) => encode4(message, eventDeferredSchema);
21288
+ var decodeSessionEventRejected = (encoded) => decode5(encoded, eventRejectedSchema);
21289
+ var encodeSessionEventRejected = (message) => encode4(message, eventRejectedSchema);
21229
21290
  function decodeRecordedSessionEvent(encoded) {
21230
21291
  const kind = decodeMessageKind(encoded);
21231
21292
  switch (kind) {
@@ -21397,6 +21458,21 @@ var serviceToDaemonSignatures = {
21397
21458
  encodeSessionElicitationRespondCommand,
21398
21459
  decodeSessionElicitationRespondCommand
21399
21460
  ),
21461
+ [SESSION_EVENT_ACK_KIND]: defineMessageSignature(
21462
+ SESSION_EVENT_ACK_KIND,
21463
+ encodeSessionEventAcknowledgement,
21464
+ decodeSessionEventAcknowledgement
21465
+ ),
21466
+ [SESSION_EVENT_DEFERRED_KIND]: defineMessageSignature(
21467
+ SESSION_EVENT_DEFERRED_KIND,
21468
+ encodeSessionEventDeferred,
21469
+ decodeSessionEventDeferred
21470
+ ),
21471
+ [SESSION_EVENT_REJECTED_KIND]: defineMessageSignature(
21472
+ SESSION_EVENT_REJECTED_KIND,
21473
+ encodeSessionEventRejected,
21474
+ decodeSessionEventRejected
21475
+ ),
21400
21476
  [SESSION_LIVE_HISTORY_LOAD_KIND]: defineMessageSignature(
21401
21477
  SESSION_LIVE_HISTORY_LOAD_KIND,
21402
21478
  encodeSessionLiveHistoryLoad,
@@ -26691,7 +26767,7 @@ function createDaemonConfig(connection, agents = [], installableAgents = [], loc
26691
26767
  }
26692
26768
 
26693
26769
  // src/run-daemon.ts
26694
- import { createHash as createHash5, randomUUID as randomUUID6 } from "node:crypto";
26770
+ import { createHash as createHash5, randomUUID as randomUUID7 } from "node:crypto";
26695
26771
  import { join as join17 } from "node:path";
26696
26772
  import { styleText } from "node:util";
26697
26773
 
@@ -42240,6 +42316,7 @@ async function runRelayConnection({
42240
42316
  }) {
42241
42317
  const relayUrl = new URL(config2.relayUrl);
42242
42318
  relayUrl.searchParams.set("liveness", "1");
42319
+ relayUrl.searchParams.set("sessionEventDelivery", "reliable-v1");
42243
42320
  const socket = await connectRelay(relayUrl, signal);
42244
42321
  diagnostics.connectionOpened(connectionEpoch);
42245
42322
  const connectionController = new AbortController();
@@ -42359,6 +42436,10 @@ async function runRelayConnection({
42359
42436
  const message = decodeServiceToDaemonMessage(encoded);
42360
42437
  const kind = message.kind;
42361
42438
  if (kind === RUNTIME_LIVENESS_READY_KIND) {
42439
+ publisher.connect(
42440
+ socket,
42441
+ message.sessionEventDelivery === "reliable-v1" ? "reliable" : "ephemeral"
42442
+ );
42362
42443
  connectionLiveness.start();
42363
42444
  return;
42364
42445
  }
@@ -42366,6 +42447,18 @@ async function runRelayConnection({
42366
42447
  connectionLiveness.acknowledge(message);
42367
42448
  return;
42368
42449
  }
42450
+ if (kind === SESSION_EVENT_ACK_KIND) {
42451
+ publisher.acknowledge(message);
42452
+ return;
42453
+ }
42454
+ if (kind === SESSION_EVENT_DEFERRED_KIND) {
42455
+ publisher.defer(message);
42456
+ return;
42457
+ }
42458
+ if (kind === SESSION_EVENT_REJECTED_KIND) {
42459
+ publisher.quarantine(message);
42460
+ return;
42461
+ }
42369
42462
  commands.handle(message);
42370
42463
  } catch (error62) {
42371
42464
  console.error("Mobius daemon rejected a message", error62);
@@ -42380,7 +42473,6 @@ async function runRelayConnection({
42380
42473
  socket.addEventListener("close", handleClose);
42381
42474
  socket.addEventListener("error", handleError);
42382
42475
  socket.addEventListener("message", handleMessage);
42383
- publisher.connect(socket);
42384
42476
  if (signal.aborted) {
42385
42477
  stop();
42386
42478
  }
@@ -42391,54 +42483,377 @@ async function runRelayConnection({
42391
42483
  }
42392
42484
  }
42393
42485
 
42486
+ // src/relay-connection/session-event-outbox.ts
42487
+ import { randomUUID as randomUUID6 } from "node:crypto";
42488
+ import { mkdirSync as mkdirSync3 } from "node:fs";
42489
+ import { dirname as dirname5 } from "node:path";
42490
+ import { DatabaseSync } from "node:sqlite";
42491
+ var DEFAULT_STANDARD_EVENT_BYTES = 96 * 1024 * 1024;
42492
+ var DEFAULT_CRITICAL_EVENT_BYTES = 128 * 1024 * 1024;
42493
+ var MAX_DEAD_LETTERS = 1024;
42494
+ var DEFAULT_LIMITS = {
42495
+ criticalEventBytes: DEFAULT_CRITICAL_EVENT_BYTES,
42496
+ standardEventBytes: DEFAULT_STANDARD_EVENT_BYTES
42497
+ };
42498
+ var SessionEventOutboxCapacityError = class extends Error {
42499
+ code = "session_event_outbox_full";
42500
+ constructor() {
42501
+ super("The persistent Session event outbox is full");
42502
+ this.name = "SessionEventOutboxCapacityError";
42503
+ }
42504
+ };
42505
+ function rowNumber(row, field) {
42506
+ const value = typeof row === "object" && row !== null ? Reflect.get(row, field) : void 0;
42507
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) {
42508
+ throw new Error(`SQLite returned an invalid ${field} value`);
42509
+ }
42510
+ return value;
42511
+ }
42512
+ function rowString(row, field) {
42513
+ const value = typeof row === "object" && row !== null ? Reflect.get(row, field) : void 0;
42514
+ if (typeof value !== "string" || value.length === 0) {
42515
+ throw new Error(`SQLite returned an invalid ${field} value`);
42516
+ }
42517
+ return value;
42518
+ }
42519
+ function validateLimits(limits) {
42520
+ if (!Number.isSafeInteger(limits.standardEventBytes) || limits.standardEventBytes < 1 || !Number.isSafeInteger(limits.criticalEventBytes) || limits.criticalEventBytes < limits.standardEventBytes) {
42521
+ throw new Error("Session event outbox limits are invalid");
42522
+ }
42523
+ }
42524
+ var SessionEventOutbox = class {
42525
+ #database;
42526
+ #limits;
42527
+ constructor(path2, limits = DEFAULT_LIMITS) {
42528
+ validateLimits(limits);
42529
+ mkdirSync3(dirname5(path2), { mode: 448, recursive: true });
42530
+ this.#limits = limits;
42531
+ this.#database = new DatabaseSync(path2);
42532
+ this.#database.exec("PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL; PRAGMA busy_timeout = 5000;");
42533
+ this.#database.exec(`
42534
+ CREATE TABLE IF NOT EXISTS relay_session_event_outbox (
42535
+ ordinal INTEGER PRIMARY KEY AUTOINCREMENT,
42536
+ event_id TEXT NOT NULL UNIQUE,
42537
+ session_id TEXT NOT NULL,
42538
+ source_seq INTEGER NOT NULL UNIQUE,
42539
+ byte_length INTEGER NOT NULL,
42540
+ envelope_json TEXT NOT NULL
42541
+ ) STRICT;
42542
+ CREATE INDEX IF NOT EXISTS relay_session_event_outbox_order
42543
+ ON relay_session_event_outbox(source_seq);
42544
+ CREATE TABLE IF NOT EXISTS relay_session_event_outbox_state (
42545
+ singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
42546
+ stream_id TEXT NOT NULL,
42547
+ next_source_seq INTEGER NOT NULL,
42548
+ total_bytes INTEGER NOT NULL
42549
+ ) STRICT;
42550
+ CREATE TABLE IF NOT EXISTS relay_session_event_dead_letters (
42551
+ ordinal INTEGER PRIMARY KEY AUTOINCREMENT,
42552
+ event_id TEXT NOT NULL UNIQUE,
42553
+ session_id TEXT NOT NULL,
42554
+ rejection_code TEXT NOT NULL,
42555
+ envelope_json TEXT NOT NULL
42556
+ ) STRICT;
42557
+ `);
42558
+ this.#database.prepare(
42559
+ `INSERT OR IGNORE INTO relay_session_event_outbox_state (
42560
+ singleton, stream_id, next_source_seq, total_bytes
42561
+ ) VALUES (1, ?, 1, 0)`
42562
+ ).run(randomUUID6());
42563
+ }
42564
+ acknowledge = (acknowledgement) => this.#remove(acknowledgement.eventId, acknowledgement.sessionId);
42565
+ close = () => {
42566
+ this.#database.close();
42567
+ };
42568
+ enqueue = (sessionId, payload, critical) => {
42569
+ this.#database.exec("BEGIN IMMEDIATE");
42570
+ try {
42571
+ const state = this.#database.prepare(
42572
+ `SELECT stream_id, next_source_seq, total_bytes
42573
+ FROM relay_session_event_outbox_state
42574
+ WHERE singleton = 1`
42575
+ ).get();
42576
+ const sourceSeq = rowNumber(state, "next_source_seq");
42577
+ if (sourceSeq < 1 || !Number.isSafeInteger(sourceSeq + 1)) {
42578
+ throw new Error("The Session event source sequence is exhausted");
42579
+ }
42580
+ const envelope2 = {
42581
+ delivery: {
42582
+ eventId: randomUUID6(),
42583
+ kind: "reliable",
42584
+ sourceSeq: sourceSeq.toString(),
42585
+ streamId: rowString(state, "stream_id")
42586
+ },
42587
+ kind: SESSION_EVENT_KIND,
42588
+ payload,
42589
+ sessionId
42590
+ };
42591
+ const encoded = encodeSessionEventEnvelope(envelope2);
42592
+ const byteLength = Buffer.byteLength(encoded, "utf8");
42593
+ const maximumBytes = critical ? this.#limits.criticalEventBytes : this.#limits.standardEventBytes;
42594
+ if (rowNumber(state, "total_bytes") + byteLength > maximumBytes) {
42595
+ throw new SessionEventOutboxCapacityError();
42596
+ }
42597
+ this.#database.prepare(
42598
+ `INSERT INTO relay_session_event_outbox (
42599
+ event_id, session_id, source_seq, byte_length, envelope_json
42600
+ ) VALUES (?, ?, ?, ?, ?)`
42601
+ ).run(envelope2.delivery.eventId, sessionId, sourceSeq, byteLength, encoded);
42602
+ this.#database.prepare(
42603
+ `UPDATE relay_session_event_outbox_state
42604
+ SET next_source_seq = next_source_seq + 1,
42605
+ total_bytes = total_bytes + ?
42606
+ WHERE singleton = 1`
42607
+ ).run(byteLength);
42608
+ this.#database.exec("COMMIT");
42609
+ return envelope2;
42610
+ } catch (error62) {
42611
+ this.#database.exec("ROLLBACK");
42612
+ throw error62;
42613
+ }
42614
+ };
42615
+ pending = (limit, excludedEventIds) => {
42616
+ if (!Number.isSafeInteger(limit) || limit < 1) {
42617
+ throw new Error("Session event replay limit must be a positive integer");
42618
+ }
42619
+ const exclusion = excludedEventIds.length === 0 ? "" : `WHERE event_id NOT IN (${excludedEventIds.map(() => "?").join(", ")})`;
42620
+ return this.#database.prepare(
42621
+ `SELECT envelope_json
42622
+ FROM relay_session_event_outbox
42623
+ ${exclusion}
42624
+ ORDER BY source_seq
42625
+ LIMIT ?`
42626
+ ).all(...excludedEventIds, limit).map((row) => {
42627
+ const envelope2 = decodeSessionEventEnvelope(rowString(row, "envelope_json"));
42628
+ if (!("delivery" in envelope2)) {
42629
+ throw new Error("SQLite returned an invalid reliable Session event envelope");
42630
+ }
42631
+ return envelope2;
42632
+ });
42633
+ };
42634
+ quarantine = (rejection) => {
42635
+ this.#database.exec("BEGIN IMMEDIATE");
42636
+ try {
42637
+ const stored = this.#database.prepare(
42638
+ `SELECT byte_length, envelope_json
42639
+ FROM relay_session_event_outbox
42640
+ WHERE event_id = ? AND session_id = ?`
42641
+ ).get(rejection.eventId, rejection.sessionId);
42642
+ if (stored === void 0) {
42643
+ this.#database.exec("COMMIT");
42644
+ return false;
42645
+ }
42646
+ this.#database.prepare(
42647
+ `INSERT INTO relay_session_event_dead_letters (
42648
+ event_id, session_id, rejection_code, envelope_json
42649
+ ) VALUES (?, ?, ?, ?)`
42650
+ ).run(rejection.eventId, rejection.sessionId, rejection.code, rowString(stored, "envelope_json"));
42651
+ this.#deleteStored(rejection.eventId, rejection.sessionId, rowNumber(stored, "byte_length"));
42652
+ this.#database.prepare(
42653
+ `DELETE FROM relay_session_event_dead_letters
42654
+ WHERE ordinal NOT IN (
42655
+ SELECT ordinal FROM relay_session_event_dead_letters
42656
+ ORDER BY ordinal DESC LIMIT ?
42657
+ )`
42658
+ ).run(MAX_DEAD_LETTERS);
42659
+ this.#database.exec("COMMIT");
42660
+ return true;
42661
+ } catch (error62) {
42662
+ this.#database.exec("ROLLBACK");
42663
+ throw error62;
42664
+ }
42665
+ };
42666
+ #deleteStored = (eventId, sessionId, byteLength) => {
42667
+ const deletion = this.#database.prepare(
42668
+ `DELETE FROM relay_session_event_outbox
42669
+ WHERE event_id = ? AND session_id = ?`
42670
+ ).run(eventId, sessionId);
42671
+ if (deletion.changes !== 1) {
42672
+ throw new Error("The Session event could not be removed from the outbox");
42673
+ }
42674
+ const state = this.#database.prepare(
42675
+ `UPDATE relay_session_event_outbox_state
42676
+ SET total_bytes = total_bytes - ?
42677
+ WHERE singleton = 1 AND total_bytes >= ?`
42678
+ ).run(byteLength, byteLength);
42679
+ if (state.changes !== 1) {
42680
+ throw new Error("The Session event outbox capacity state is inconsistent");
42681
+ }
42682
+ };
42683
+ #remove = (eventId, sessionId) => {
42684
+ this.#database.exec("BEGIN IMMEDIATE");
42685
+ try {
42686
+ const stored = this.#database.prepare(
42687
+ `SELECT byte_length
42688
+ FROM relay_session_event_outbox
42689
+ WHERE event_id = ? AND session_id = ?`
42690
+ ).get(eventId, sessionId);
42691
+ if (stored === void 0) {
42692
+ this.#database.exec("COMMIT");
42693
+ return false;
42694
+ }
42695
+ this.#deleteStored(eventId, sessionId, rowNumber(stored, "byte_length"));
42696
+ this.#database.exec("COMMIT");
42697
+ return true;
42698
+ } catch (error62) {
42699
+ this.#database.exec("ROLLBACK");
42700
+ throw error62;
42701
+ }
42702
+ };
42703
+ };
42704
+
42394
42705
  // src/relay-connection/session-event-publisher.ts
42395
42706
  import { WebSocket as WebSocket9 } from "undici";
42396
- var MAX_LIVE_EVENT_BUFFERED_BYTES = 16 * 1024 * 1024;
42707
+ var SESSION_EVENT_REPLAY_WINDOW = 16;
42708
+ var SESSION_EVENT_REPLAY_BYTE_LIMIT = 32 * 1024 * 1024;
42709
+ function reservesSessionEventCapacity(event) {
42710
+ if (event.kind === SESSION_COMPLETED_KIND || event.kind === SESSION_FAILED_KIND) {
42711
+ return true;
42712
+ }
42713
+ return event.kind === AGENT_ACTIVITY_KIND && (event.activityType === "progress" || event.activityType === "reasoning") && (event.status === "completed" || event.status === "failed");
42714
+ }
42397
42715
  var DaemonSessionEventPublisher = class {
42398
- #socket = null;
42399
- #reportedDrop = false;
42400
- connect = (socket) => {
42401
- this.#socket = socket;
42402
- this.#reportedDrop = false;
42716
+ #inFlight = /* @__PURE__ */ new Map();
42717
+ #outbox;
42718
+ #reportedCapacityKinds = /* @__PURE__ */ new Set();
42719
+ #timer;
42720
+ #connection = { kind: "disconnected" };
42721
+ #deferredReplay = null;
42722
+ #inFlightBytes = 0;
42723
+ constructor(outbox, timer) {
42724
+ this.#outbox = outbox;
42725
+ this.#timer = timer;
42726
+ }
42727
+ acknowledge = (acknowledgement) => {
42728
+ if (!this.#outbox.acknowledge(acknowledgement)) {
42729
+ return;
42730
+ }
42731
+ this.#removeInFlight(acknowledgement.eventId);
42732
+ this.#publishNextBatch();
42733
+ };
42734
+ close = () => {
42735
+ this.#deferredReplay?.cancel();
42736
+ this.#deferredReplay = null;
42737
+ this.#connection = { kind: "disconnected" };
42738
+ this.#clearInFlight();
42739
+ this.#outbox.close();
42740
+ };
42741
+ connect = (socket, delivery) => {
42742
+ this.#connection = { delivery, kind: "connected", socket };
42743
+ this.#clearInFlight();
42744
+ this.#publishNextBatch();
42745
+ };
42746
+ defer = (deferred) => {
42747
+ if (!this.#inFlight.has(deferred.eventId)) {
42748
+ return;
42749
+ }
42750
+ this.#clearInFlight();
42751
+ if (this.#deferredReplay !== null) {
42752
+ return;
42753
+ }
42754
+ this.#deferredReplay = this.#timer.schedule(() => {
42755
+ this.#deferredReplay = null;
42756
+ this.#publishNextBatch();
42757
+ }, deferred.retryAfterMilliseconds);
42403
42758
  };
42404
42759
  disconnect = (socket) => {
42405
- if (this.#socket === socket) {
42406
- this.#socket = null;
42760
+ if (this.#connection.kind !== "connected" || this.#connection.socket !== socket) {
42761
+ return;
42407
42762
  }
42763
+ this.#connection = { kind: "disconnected" };
42764
+ this.#clearInFlight();
42408
42765
  };
42409
42766
  publish = (sessionId, event) => {
42410
- const socket = this.#socket;
42411
- if (socket === null || socket.readyState !== WebSocket9.OPEN) {
42412
- this.#reportDrop();
42767
+ try {
42768
+ this.#outbox.enqueue(sessionId, encodeRecordedSessionEvent(event), reservesSessionEventCapacity(event));
42769
+ } catch (error62) {
42770
+ if (!(error62 instanceof SessionEventOutboxCapacityError)) {
42771
+ throw error62;
42772
+ }
42773
+ if (!this.#reportedCapacityKinds.has(event.kind)) {
42774
+ this.#reportedCapacityKinds.add(event.kind);
42775
+ console.warn(
42776
+ `Mobius daemon could not persist "${event.kind}" because the Session event outbox is full`
42777
+ );
42778
+ }
42413
42779
  return;
42414
42780
  }
42415
- if (socket.bufferedAmount >= MAX_LIVE_EVENT_BUFFERED_BYTES) {
42416
- this.#socket = null;
42417
- socket.close(1013, "Live event backpressure");
42418
- this.#reportDrop();
42781
+ this.#publishNextBatch();
42782
+ };
42783
+ quarantine = (rejection) => {
42784
+ if (!this.#outbox.quarantine(rejection)) {
42419
42785
  return;
42420
42786
  }
42421
- try {
42422
- socket.send(
42423
- encodeDaemonToServiceMessage({
42424
- kind: SESSION_EVENT_KIND,
42425
- payload: encodeRecordedSessionEvent(event),
42426
- sessionId
42427
- })
42428
- );
42429
- } catch {
42430
- this.#reportDrop();
42431
- }
42787
+ this.#removeInFlight(rejection.eventId);
42788
+ console.error(`Mobius Relay rejected Session event ${rejection.eventId} with code ${rejection.code}`);
42789
+ this.#publishNextBatch();
42432
42790
  };
42433
- close = () => {
42434
- this.#socket = null;
42791
+ #clearInFlight = () => {
42792
+ this.#inFlight.clear();
42793
+ this.#inFlightBytes = 0;
42794
+ };
42795
+ #publishNextBatch = () => {
42796
+ if (this.#deferredReplay !== null || this.#connection.kind !== "connected") {
42797
+ return;
42798
+ }
42799
+ while (this.#inFlight.size < SESSION_EVENT_REPLAY_WINDOW) {
42800
+ const batch = this.#outbox.pending(SESSION_EVENT_REPLAY_WINDOW - this.#inFlight.size, [
42801
+ ...this.#inFlight.keys()
42802
+ ]);
42803
+ let sent = 0;
42804
+ for (const envelope2 of batch) {
42805
+ const encoded = encodeDaemonToServiceMessage(
42806
+ this.#connection.delivery === "reliable" ? envelope2 : {
42807
+ kind: envelope2.kind,
42808
+ payload: envelope2.payload,
42809
+ sessionId: envelope2.sessionId
42810
+ }
42811
+ );
42812
+ const byteLength = Buffer.byteLength(encoded, "utf8");
42813
+ if (this.#inFlightBytes + byteLength > SESSION_EVENT_REPLAY_BYTE_LIMIT) {
42814
+ return;
42815
+ }
42816
+ if (!this.#send(encoded)) {
42817
+ this.#clearInFlight();
42818
+ return;
42819
+ }
42820
+ if (this.#connection.delivery === "ephemeral") {
42821
+ this.#outbox.acknowledge({
42822
+ eventId: envelope2.delivery.eventId,
42823
+ kind: "session.event.ack",
42824
+ outcome: { kind: "relayed" },
42825
+ sessionId: envelope2.sessionId
42826
+ });
42827
+ sent += 1;
42828
+ continue;
42829
+ }
42830
+ this.#inFlight.set(envelope2.delivery.eventId, { byteLength });
42831
+ this.#inFlightBytes += byteLength;
42832
+ sent += 1;
42833
+ }
42834
+ if (sent === 0) {
42835
+ return;
42836
+ }
42837
+ }
42435
42838
  };
42436
- #reportDrop = () => {
42437
- if (this.#reportedDrop) {
42839
+ #removeInFlight = (eventId) => {
42840
+ const inFlight = this.#inFlight.get(eventId);
42841
+ if (inFlight === void 0) {
42438
42842
  return;
42439
42843
  }
42440
- this.#reportedDrop = true;
42441
- console.warn("Mobius daemon dropped live Session events while the Relay was unavailable");
42844
+ this.#inFlight.delete(eventId);
42845
+ this.#inFlightBytes -= inFlight.byteLength;
42846
+ };
42847
+ #send = (encoded) => {
42848
+ if (this.#connection.kind !== "connected" || this.#connection.socket.readyState !== WebSocket9.OPEN) {
42849
+ return false;
42850
+ }
42851
+ try {
42852
+ this.#connection.socket.send(encoded);
42853
+ return true;
42854
+ } catch {
42855
+ return false;
42856
+ }
42442
42857
  };
42443
42858
  };
42444
42859
 
@@ -42499,7 +42914,7 @@ async function installDetectedAgentIntegrations(config2, installations, signal)
42499
42914
  {
42500
42915
  agentId: agent.id,
42501
42916
  kind: AGENT_INSTALL_REQUEST_KIND,
42502
- requestId: `automatic-integration-${randomUUID6()}`
42917
+ requestId: `automatic-integration-${randomUUID7()}`
42503
42918
  },
42504
42919
  signal
42505
42920
  );
@@ -42521,7 +42936,11 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
42521
42936
  join17(stateDirectory, "sessions", `${createHash5("sha256").update(config2.channelId).digest("hex")}.sqlite`)
42522
42937
  );
42523
42938
  const operations = new DaemonOperationState();
42524
- const publisher = new DaemonSessionEventPublisher();
42939
+ const channelHash = createHash5("sha256").update(config2.channelId).digest("hex");
42940
+ const publisher = new DaemonSessionEventPublisher(
42941
+ new SessionEventOutbox(join17(stateDirectory, "events", `${channelHash}.sqlite`)),
42942
+ timer
42943
+ );
42525
42944
  const activeTurns = new DaemonTurnRegistry(operations);
42526
42945
  const recordSessionEvent = (sessionId, event) => {
42527
42946
  publisher.publish(sessionId, activeTurns.recordEvent(event));
@@ -42713,9 +43132,9 @@ import { basename as basename6, resolve as resolve7 } from "node:path";
42713
43132
  import { fetch as fetch4 } from "undici";
42714
43133
 
42715
43134
  // src/storage/runtime-installation-store.ts
42716
- import { createHash as createHash6, randomUUID as randomUUID7 } from "node:crypto";
43135
+ import { createHash as createHash6, randomUUID as randomUUID8 } from "node:crypto";
42717
43136
  import { mkdir as mkdir4, open as open5, readdir as readdir3, rename as rename3, unlink, writeFile as writeFile3 } from "node:fs/promises";
42718
- import { dirname as dirname5, join as join18, resolve as resolve6 } from "node:path";
43137
+ import { dirname as dirname6, join as join18, resolve as resolve6 } from "node:path";
42719
43138
  var APPLICATION_ID_PATTERN = /^[a-z][a-z0-9]*(?:[.-][a-z0-9]+){1,31}$/;
42720
43139
  var CONNECTION_ID_PATTERN = /^mcn_[a-f0-9]{32}$/;
42721
43140
  var INSTALLATION_ID_PATTERN = /^min_[a-f0-9]{32}$/;
@@ -42843,10 +43262,10 @@ function parseRelayOrigin(value) {
42843
43262
  return origin;
42844
43263
  }
42845
43264
  function connectionId() {
42846
- return `mcn_${randomUUID7().replaceAll("-", "")}`;
43265
+ return `mcn_${randomUUID8().replaceAll("-", "")}`;
42847
43266
  }
42848
43267
  function installationId() {
42849
- return `min_${randomUUID7().replaceAll("-", "")}`;
43268
+ return `min_${randomUUID8().replaceAll("-", "")}`;
42850
43269
  }
42851
43270
  function channelIndexFileName(channelId) {
42852
43271
  return `mci_${createHash6("sha256").update(channelId).digest("hex")}.json`;
@@ -42957,8 +43376,8 @@ async function readJsonFile(path2, signal, missingCode) {
42957
43376
  }
42958
43377
  async function writeJsonAtomically(path2, value, signal) {
42959
43378
  signal.throwIfAborted();
42960
- const directory = dirname5(path2);
42961
- const temporaryPath = join18(directory, `.${randomUUID7()}.tmp`);
43379
+ const directory = dirname6(path2);
43380
+ const temporaryPath = join18(directory, `.${randomUUID8()}.tmp`);
42962
43381
  try {
42963
43382
  await mkdir4(directory, { mode: 448, recursive: true });
42964
43383
  signal.throwIfAborted();