@moxt-ai/mobius 0.0.179 → 0.0.181

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 (36) hide show
  1. package/dist/acp/session-contracts.d.ts +4 -2
  2. package/dist/acp/session-contracts.d.ts.map +1 -1
  3. package/dist/acp/session-contracts.js.map +1 -1
  4. package/dist/acp/session-event-store-v2.d.ts +9 -8
  5. package/dist/acp/session-event-store-v2.d.ts.map +1 -1
  6. package/dist/acp/session-event-store-v2.js +59 -25
  7. package/dist/acp/session-event-store-v2.js.map +1 -1
  8. package/dist/acp/session-history.d.ts +3 -3
  9. package/dist/acp/session-history.d.ts.map +1 -1
  10. package/dist/acp/session-history.js +2 -1
  11. package/dist/acp/session-history.js.map +1 -1
  12. package/dist/acp/session-store.d.ts.map +1 -1
  13. package/dist/acp/session-store.js +2 -3
  14. package/dist/acp/session-store.js.map +1 -1
  15. package/dist/cli.js +99 -56
  16. package/dist/cli.js.map +4 -4
  17. package/dist/daemon-history-commands.d.ts.map +1 -1
  18. package/dist/daemon-history-commands.js +2 -2
  19. package/dist/daemon-history-commands.js.map +1 -1
  20. package/dist/daemon-observers.d.ts +3 -2
  21. package/dist/daemon-observers.d.ts.map +1 -1
  22. package/dist/daemon-observers.js.map +1 -1
  23. package/dist/index.js +96 -53
  24. package/dist/index.js.map +4 -4
  25. package/dist/relay-connection/session-event-publisher.d.ts +1 -1
  26. package/dist/relay-connection/session-event-publisher.js +1 -1
  27. package/dist/run-daemon.d.ts.map +1 -1
  28. package/dist/run-daemon.js +2 -3
  29. package/dist/run-daemon.js.map +1 -1
  30. package/dist/runtime.js +101 -58
  31. package/dist/runtime.js.map +4 -4
  32. package/dist/session-event-log-v2.d.ts +5 -5
  33. package/dist/session-event-log-v2.d.ts.map +1 -1
  34. package/dist/session-event-log-v2.js +6 -9
  35. package/dist/session-event-log-v2.js.map +1 -1
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-history-commands.d.ts","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,wBAAsB,mCAAmC,CACrD,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,EAC9D,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,0BAA0B,EACvC,QAAQ,EAAE,mBAAmB,EAC7B,UAAU,EAAE,uBAAuB,EACnC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAoEf"}
1
+ {"version":3,"file":"daemon-history-commands.d.ts","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,wBAAsB,mCAAmC,CACrD,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,EAC9D,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,0BAA0B,EACvC,QAAQ,EAAE,mBAAmB,EAC7B,UAAU,EAAE,uBAAuB,EACnC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
@@ -13,7 +13,7 @@ export async function executeSessionLiveHistoryV2PageLoad(socket, command, confi
13
13
  const recovery = eventLogV2.promptRequestRecovery(command.sessionId);
14
14
  const replay = await sessions.loadSessionEventsV2(loadOptions, command.eventLimit, command.cursor);
15
15
  signal.throwIfAborted();
16
- const events = replay.events.map((event, index) => eventLogV2.event(command.sessionId, replay.startPosition + index, event, "1970-01-01T00:00:00.000Z"));
16
+ const events = replay.events.map((event, index) => eventLogV2.event(command.sessionId, replay.sessionGenerationId, replay.startPosition + index, event, "1970-01-01T00:00:00.000Z"));
17
17
  const tailCursor = events.at(-1)?.eventId ?? "";
18
18
  audit.record({
19
19
  commandId: command.requestId,
@@ -23,9 +23,9 @@ export async function executeSessionLiveHistoryV2PageLoad(socket, command, confi
23
23
  send(socket, {
24
24
  events: {
25
25
  events: {
26
- daemonGenerationId: eventLogV2.daemonGenerationId,
27
26
  events,
28
27
  nextCursor: replay.nextCursor,
28
+ sessionGenerationId: replay.sessionGenerationId,
29
29
  tailCursor,
30
30
  truncated: replay.truncated,
31
31
  version: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-history-commands.js","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon-history-commands.js","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { type AgentContentEvent, type RecordedSessionEvent, type SessionCommandsUpdatedEvent, type SessionConfigUpdatedEvent, type SessionElicitationRequestedEvent, type SessionElicitationResolvedEvent, type SessionEventPayloadV2, type SessionInfoUpdatedEvent, type SessionPermissionRequestedEvent, type SessionPermissionResolvedEvent, type SessionUsageUpdatedEvent } from "@moxt-ai/mobius-protocol";
2
2
  import { WebSocket } from "undici";
3
3
  import type { AcpSessionObserver } from "./acp/agent-runtime-manager.ts";
4
+ import type { AcpSessionEventPositionV2 } from "./acp/session-event-store-v2.ts";
4
5
  import { type AgentInstallation, type InstallationAudit, type InstallationObserver } from "./agent-installation/agent-installation-manager.ts";
5
6
  import type { AuditStore } from "./audit/audit-store.ts";
6
7
  export declare class DaemonAcpObserver implements AcpSessionObserver {
7
8
  #private;
8
- constructor(record: (sessionId: string, event: RecordedSessionEvent) => void, recordV2?: (sessionId: string, event: SessionEventPayloadV2, position: number) => void);
9
- readonly onSessionEventV2: (sessionId: string, event: SessionEventPayloadV2, position: number) => Promise<void>;
9
+ constructor(record: (sessionId: string, event: RecordedSessionEvent) => void, recordV2?: (sessionId: string, event: SessionEventPayloadV2, position: AcpSessionEventPositionV2) => void);
10
+ readonly onSessionEventV2: (sessionId: string, event: SessionEventPayloadV2, position: AcpSessionEventPositionV2) => Promise<void>;
10
11
  readonly onCommands: (event: SessionCommandsUpdatedEvent) => Promise<void>;
11
12
  readonly onConfig: (event: SessionConfigUpdatedEvent) => Promise<void>;
12
13
  readonly onContent: (event: AgentContentEvent) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-observers.d.ts","sourceRoot":"","sources":["../src/daemon-observers.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACH,KAAK,iBAAiB,EAGtB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAI5B,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,qBAAa,iBAAkB,YAAW,kBAAkB;;IAIxD,YACI,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAChE,QAAQ,GAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAsB,EAI1G;IAED,QAAQ,CAAC,gBAAgB,cAAe,MAAM,SAAS,qBAAqB,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAG5G;IAEF,QAAQ,CAAC,UAAU,UAAW,2BAA2B,KAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;IAEF,QAAQ,CAAC,QAAQ,UAAW,yBAAyB,KAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;IAEF,QAAQ,CAAC,SAAS,UAAW,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;IAEF,QAAQ,CAAC,aAAa,UAAW,gCAAgC,KAAG,OAAO,CAAC,IAAI,CAAC,CAG/E;IAEF,QAAQ,CAAC,qBAAqB,UAAW,+BAA+B,KAAG,OAAO,CAAC,IAAI,CAAC,CAGtF;IAEF,QAAQ,CAAC,MAAM,UAAW,uBAAuB,KAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;IAEF,QAAQ,CAAC,YAAY,UAAW,+BAA+B,KAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;IAEF,QAAQ,CAAC,oBAAoB,UAAW,8BAA8B,KAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;IAEF,QAAQ,CAAC,OAAO,UAAW,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;CACL;AAED,qBAAa,uBAAwB,YAAW,iBAAiB;;IAG7D,YAAY,KAAK,EAAE,UAAU,EAE5B;IAED,QAAQ,CAAC,MAAM,UACJ,MAAM,aACF,MAAM,WACR,MAAM,YACN,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC1C,IAAI,CAOL;CACL;AAED,qBAAa,0BAA2B,YAAW,oBAAoB;;IAInE,QAAQ,CAAC,OAAO,WAAY,SAAS,KAAG,IAAI,CAE1C;IAEF,QAAQ,CAAC,UAAU,WAAY,SAAS,KAAG,IAAI,CAI7C;IAYF,QAAQ,CAAC,OAAO,UAAW,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC,CAqD1D;CACL"}
1
+ {"version":3,"file":"daemon-observers.d.ts","sourceRoot":"","sources":["../src/daemon-observers.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EACH,KAAK,iBAAiB,EAGtB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAI5B,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,qBAAa,iBAAkB,YAAW,kBAAkB;;IAIxD,YACI,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAChE,QAAQ,GAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yBAAyB,KAAK,IACvF,EAIhB;IAED,QAAQ,CAAC,gBAAgB,cACV,MAAM,SACV,qBAAqB,YAClB,yBAAyB,KACpC,OAAO,CAAC,IAAI,CAAC,CAGd;IAEF,QAAQ,CAAC,UAAU,UAAW,2BAA2B,KAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;IAEF,QAAQ,CAAC,QAAQ,UAAW,yBAAyB,KAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;IAEF,QAAQ,CAAC,SAAS,UAAW,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;IAEF,QAAQ,CAAC,aAAa,UAAW,gCAAgC,KAAG,OAAO,CAAC,IAAI,CAAC,CAG/E;IAEF,QAAQ,CAAC,qBAAqB,UAAW,+BAA+B,KAAG,OAAO,CAAC,IAAI,CAAC,CAGtF;IAEF,QAAQ,CAAC,MAAM,UAAW,uBAAuB,KAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;IAEF,QAAQ,CAAC,YAAY,UAAW,+BAA+B,KAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;IAEF,QAAQ,CAAC,oBAAoB,UAAW,8BAA8B,KAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;IAEF,QAAQ,CAAC,OAAO,UAAW,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;CACL;AAED,qBAAa,uBAAwB,YAAW,iBAAiB;;IAG7D,YAAY,KAAK,EAAE,UAAU,EAE5B;IAED,QAAQ,CAAC,MAAM,UACJ,MAAM,aACF,MAAM,WACR,MAAM,YACN,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC1C,IAAI,CAOL;CACL;AAED,qBAAa,0BAA2B,YAAW,oBAAoB;;IAInE,QAAQ,CAAC,OAAO,WAAY,SAAS,KAAG,IAAI,CAE1C;IAEF,QAAQ,CAAC,UAAU,WAAY,SAAS,KAAG,IAAI,CAI7C;IAYF,QAAQ,CAAC,OAAO,UAAW,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC,CAqD1D;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-observers.js","sourceRoot":"","sources":["../src/daemon-observers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon-observers.js","sourceRoot":"","sources":["../src/daemon-observers.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21316,6 +21316,7 @@ var sessionEventFieldsV2 = {
21316
21316
  position: positionSchema,
21317
21317
  provenance: provenanceSchema,
21318
21318
  recordedAt: external_exports.iso.datetime({ offset: true }),
21319
+ sessionGenerationId: identifierStringSchema,
21319
21320
  sessionId: identifierStringSchema
21320
21321
  };
21321
21322
  var sessionEventV2Schema = external_exports.discriminatedUnion("type", [
@@ -21371,9 +21372,9 @@ var mobiusSessionExportV2Schema = external_exports.object({
21371
21372
  }).readonly();
21372
21373
  var sessionEventEnvelopeV2Schema = external_exports.object({ events: sessionEventBatchV2Schema, kind: external_exports.literal(SESSION_EVENT_V2_KIND) }).readonly();
21373
21374
  var sessionEventLogPageV2Schema = external_exports.object({
21374
- daemonGenerationId: identifierStringSchema,
21375
21375
  events: external_exports.array(sessionEventV2Schema).max(MAX_EVENT_COUNT).readonly(),
21376
21376
  nextCursor: external_exports.string().min(1).max(512).nullable(),
21377
+ sessionGenerationId: identifierStringSchema,
21377
21378
  tailCursor: external_exports.string().max(512),
21378
21379
  truncated: external_exports.boolean(),
21379
21380
  version: external_exports.literal(2)
@@ -24244,7 +24245,8 @@ var AcpHistoryReplay = class {
24244
24245
  record = async (update, rawUpdate, onRecorded = () => Promise.resolve()) => {
24245
24246
  const position = this.#events.append(this.#sessionId, { payload: rawUpdate, type: "acp" });
24246
24247
  await onRecorded(position);
24247
- return await this.#applyUpdate(update, position);
24248
+ await this.#applyUpdate(update, position.position);
24249
+ return position.position;
24248
24250
  };
24249
24251
  #applyUpdate = async (update, position) => {
24250
24252
  if (update.sessionUpdate === "agent_thought_chunk") {
@@ -24983,9 +24985,6 @@ var AcpSessionInteractions = class {
24983
24985
  };
24984
24986
  };
24985
24987
 
24986
- // src/acp/session-store.ts
24987
- import { randomUUID } from "node:crypto";
24988
-
24989
24988
  // ../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@cloudflare+workers-types@5.20260918.1_@types+better-sqlite3@7.6_f872c171b7e1945bb1fa42180063dab2/node_modules/drizzle-orm/entity.js
24990
24989
  var entityKind = /* @__PURE__ */ Symbol.for("drizzle:entityKind");
24991
24990
  function is(value, type) {
@@ -29757,6 +29756,9 @@ var acpSession = sqliteTable("acp_session", {
29757
29756
  updatedAt: text("updated_at").notNull()
29758
29757
  });
29759
29758
 
29759
+ // src/acp/session-event-store-v2.ts
29760
+ import { randomUUID } from "node:crypto";
29761
+
29760
29762
  // src/schema/session-event-cache/session-event-v2.ts
29761
29763
  var sessionEventV2 = sqliteTable(
29762
29764
  "session_event_v2",
@@ -29779,7 +29781,7 @@ var sessionEventV2 = sqliteTable(
29779
29781
  // src/acp/session-event-store-v2.ts
29780
29782
  var HOT_EVENT_HIGH_WATER_MARK = 256;
29781
29783
  var HOT_EVENT_RETENTION = 128;
29782
- function eventPage(eventCount, eventLimit, cursor, read) {
29784
+ function eventPage(sessionGenerationId, eventCount, eventLimit, cursor, read) {
29783
29785
  const parsedCursor = cursor === null ? eventCount : Number(cursor);
29784
29786
  if (!Number.isSafeInteger(parsedCursor) || parsedCursor < 0 || parsedCursor > eventCount) {
29785
29787
  throw new Error("The native event cursor is invalid");
@@ -29789,36 +29791,46 @@ function eventPage(eventCount, eventLimit, cursor, read) {
29789
29791
  return {
29790
29792
  events: read(startPosition + 1, endPosition),
29791
29793
  nextCursor: startPosition === 0 ? null : startPosition.toString(),
29794
+ sessionGenerationId,
29792
29795
  startPosition: startPosition + 1,
29793
29796
  truncated: startPosition > 0
29794
29797
  };
29795
29798
  }
29796
29799
  var MemoryAcpSessionEventStoreV2 = class {
29797
- generationId;
29798
29800
  #events = /* @__PURE__ */ new Map();
29799
- constructor(generationId) {
29800
- this.generationId = generationId;
29801
- }
29801
+ #session = (sessionId) => {
29802
+ const session = this.#events.get(sessionId) ?? {
29803
+ hot: [],
29804
+ nextPosition: 1,
29805
+ sessionGenerationId: randomUUID()
29806
+ };
29807
+ this.#events.set(sessionId, session);
29808
+ return session;
29809
+ };
29802
29810
  append = (sessionId, event) => {
29803
- const events = this.#events.get(sessionId) ?? [];
29804
- events.push(event);
29805
- this.#events.set(sessionId, events);
29806
- return events.length;
29811
+ const session = this.#session(sessionId);
29812
+ const position = session.nextPosition;
29813
+ session.hot.push({ event, position });
29814
+ session.nextPosition += 1;
29815
+ return { position, sessionGenerationId: session.sessionGenerationId };
29807
29816
  };
29808
29817
  close = () => this.#events.clear();
29809
29818
  page = (sessionId, eventLimit, cursor) => {
29810
- const events = this.#events.get(sessionId) ?? [];
29819
+ const session = this.#session(sessionId);
29811
29820
  return eventPage(
29812
- events.length,
29821
+ session.sessionGenerationId,
29822
+ session.nextPosition - 1,
29813
29823
  eventLimit,
29814
29824
  cursor,
29815
- (startPosition, endPosition) => events.slice(startPosition - 1, endPosition)
29825
+ (start, end) => session.hot.slice(start - 1, end).map(({ event }) => event)
29816
29826
  );
29817
29827
  };
29818
29828
  remove = (sessionId) => {
29819
29829
  this.#events.delete(sessionId);
29820
29830
  };
29821
- reset = this.remove;
29831
+ reset = (sessionId) => {
29832
+ this.#events.set(sessionId, { hot: [], nextPosition: 1, sessionGenerationId: randomUUID() });
29833
+ };
29822
29834
  };
29823
29835
  var cachedEventRowSchema = external_exports.object({ eventJson: external_exports.string(), position: external_exports.number().int().positive() });
29824
29836
  function decodeCachedEvent(value) {
@@ -29829,20 +29841,19 @@ function decodeCachedEvent(value) {
29829
29841
  position: "1",
29830
29842
  provenance: { kind: "original" },
29831
29843
  recordedAt: "1970-01-01T00:00:00.000Z",
29844
+ sessionGenerationId: "cached-generation",
29832
29845
  sessionId: "cached-session"
29833
29846
  });
29834
29847
  return event.type === "acp" ? { payload: event.payload, type: event.type } : { payload: event.payload, type: event.type };
29835
29848
  }
29836
29849
  var CachedAcpSessionEventStoreV2 = class {
29837
- generationId;
29838
29850
  #database;
29839
29851
  #ignoredPersistedSessions = /* @__PURE__ */ new Set();
29840
29852
  #localDatabase;
29841
29853
  #sessions = /* @__PURE__ */ new Map();
29842
29854
  #flushSchedule = { kind: "idle" };
29843
29855
  #isLocalDBAvailable = true;
29844
- constructor(localDatabase, generationId) {
29845
- this.generationId = generationId;
29856
+ constructor(localDatabase) {
29846
29857
  this.#localDatabase = localDatabase;
29847
29858
  this.#database = localDatabase.orm;
29848
29859
  try {
@@ -29852,11 +29863,20 @@ var CachedAcpSessionEventStoreV2 = class {
29852
29863
  throw error62;
29853
29864
  }
29854
29865
  }
29866
+ #session = (sessionId) => {
29867
+ const session = this.#sessions.get(sessionId) ?? {
29868
+ hot: [],
29869
+ nextPosition: 1,
29870
+ sessionGenerationId: randomUUID()
29871
+ };
29872
+ this.#sessions.set(sessionId, session);
29873
+ return session;
29874
+ };
29855
29875
  append = (sessionId, event) => {
29856
29876
  if (this.#flushSchedule.kind === "closed") {
29857
29877
  throw new Error("The V2 Session event store is closed");
29858
29878
  }
29859
- const session = this.#sessions.get(sessionId) ?? { hot: [], nextPosition: 1 };
29879
+ const session = this.#session(sessionId);
29860
29880
  const position = session.nextPosition;
29861
29881
  session.hot.push({ event, position });
29862
29882
  session.nextPosition += 1;
@@ -29864,7 +29884,7 @@ var CachedAcpSessionEventStoreV2 = class {
29864
29884
  if (session.hot.length > HOT_EVENT_HIGH_WATER_MARK) {
29865
29885
  this.#scheduleFlush();
29866
29886
  }
29867
- return position;
29887
+ return { position, sessionGenerationId: session.sessionGenerationId };
29868
29888
  };
29869
29889
  #scheduleFlush = () => {
29870
29890
  if (!this.#isLocalDBAvailable || this.#flushSchedule.kind !== "idle") {
@@ -29885,12 +29905,19 @@ var CachedAcpSessionEventStoreV2 = class {
29885
29905
  }
29886
29906
  const batches = [...this.#sessions.entries()].flatMap(([sessionId, session]) => {
29887
29907
  const count = includeHotTail ? session.hot.length : Math.max(0, session.hot.length - HOT_EVENT_RETENTION);
29888
- return count === 0 ? [] : [{ count, events: session.hot.slice(0, count), sessionId }];
29908
+ return count === 0 ? [] : [
29909
+ {
29910
+ count,
29911
+ events: session.hot.slice(0, count),
29912
+ sessionGenerationId: session.sessionGenerationId,
29913
+ sessionId
29914
+ }
29915
+ ];
29889
29916
  });
29890
29917
  const values = batches.flatMap(
29891
29918
  (batch) => batch.events.map(({ event, position }) => ({
29892
29919
  eventJson: JSON.stringify(event),
29893
- generationId: this.generationId,
29920
+ generationId: batch.sessionGenerationId,
29894
29921
  position,
29895
29922
  sessionId: batch.sessionId
29896
29923
  }))
@@ -29914,11 +29941,12 @@ var CachedAcpSessionEventStoreV2 = class {
29914
29941
  };
29915
29942
  page = (sessionId, eventLimit, cursor) => {
29916
29943
  const session = this.#sessions.get(sessionId);
29917
- const eventCount = (session?.nextPosition ?? 1) - 1;
29918
- return eventPage(eventCount, eventLimit, cursor, (startPosition, endPosition) => {
29944
+ const current = session ?? this.#session(sessionId);
29945
+ const eventCount = current.nextPosition - 1;
29946
+ return eventPage(current.sessionGenerationId, eventCount, eventLimit, cursor, (startPosition, endPosition) => {
29919
29947
  const persisted = this.#ignoredPersistedSessions.has(sessionId) ? [] : this.#database.select({ eventJson: sessionEventV2.eventJson, position: sessionEventV2.position }).from(sessionEventV2).where(
29920
29948
  and(
29921
- eq(sessionEventV2.generationId, this.generationId),
29949
+ eq(sessionEventV2.generationId, current.sessionGenerationId),
29922
29950
  eq(sessionEventV2.sessionId, sessionId),
29923
29951
  gte(sessionEventV2.position, startPosition),
29924
29952
  lte(sessionEventV2.position, endPosition)
@@ -29933,13 +29961,18 @@ var CachedAcpSessionEventStoreV2 = class {
29933
29961
  return [...persisted, ...hot].toSorted((left, right) => left.position - right.position).map(({ event }) => event);
29934
29962
  });
29935
29963
  };
29936
- #deletePersisted = (sessionId) => {
29964
+ #deletePersisted = (sessionId, sessionGenerationId) => {
29937
29965
  if (!this.#isLocalDBAvailable) {
29938
29966
  this.#ignoredPersistedSessions.add(sessionId);
29939
29967
  return;
29940
29968
  }
29941
29969
  try {
29942
- this.#database.delete(sessionEventV2).where(and(eq(sessionEventV2.generationId, this.generationId), eq(sessionEventV2.sessionId, sessionId))).run();
29970
+ this.#database.delete(sessionEventV2).where(
29971
+ sessionGenerationId === void 0 ? eq(sessionEventV2.sessionId, sessionId) : and(
29972
+ eq(sessionEventV2.generationId, sessionGenerationId),
29973
+ eq(sessionEventV2.sessionId, sessionId)
29974
+ )
29975
+ ).run();
29943
29976
  this.#ignoredPersistedSessions.delete(sessionId);
29944
29977
  } catch (cause) {
29945
29978
  this.#isLocalDBAvailable = false;
@@ -29951,7 +29984,11 @@ var CachedAcpSessionEventStoreV2 = class {
29951
29984
  this.#deletePersisted(sessionId);
29952
29985
  this.#sessions.delete(sessionId);
29953
29986
  };
29954
- reset = this.remove;
29987
+ reset = (sessionId) => {
29988
+ const previous = this.#sessions.get(sessionId);
29989
+ this.#deletePersisted(sessionId, previous?.sessionGenerationId);
29990
+ this.#sessions.set(sessionId, { hot: [], nextPosition: 1, sessionGenerationId: randomUUID() });
29991
+ };
29955
29992
  close = () => {
29956
29993
  if (this.#flushSchedule.kind === "closed") {
29957
29994
  return;
@@ -30004,7 +30041,7 @@ var FoundAcpStoredSession = class extends AcpStoredSessionLookup {
30004
30041
  var MemoryAcpSessionStore = class {
30005
30042
  eventsV2;
30006
30043
  #sessions = /* @__PURE__ */ new Map();
30007
- constructor(eventsV2 = new MemoryAcpSessionEventStoreV2(randomUUID())) {
30044
+ constructor(eventsV2 = new MemoryAcpSessionEventStoreV2()) {
30008
30045
  this.eventsV2 = eventsV2;
30009
30046
  }
30010
30047
  close = () => {
@@ -30056,7 +30093,7 @@ var SqliteAcpSessionStore = class {
30056
30093
  eventsV2;
30057
30094
  #database;
30058
30095
  #localDatabase;
30059
- constructor(localDatabase, eventsV2 = new MemoryAcpSessionEventStoreV2(randomUUID())) {
30096
+ constructor(localDatabase, eventsV2 = new MemoryAcpSessionEventStoreV2()) {
30060
30097
  this.eventsV2 = eventsV2;
30061
30098
  this.#localDatabase = localDatabase;
30062
30099
  this.#database = localDatabase.orm;
@@ -37795,7 +37832,7 @@ function isRuntimeRelayRevocation(closeCode, closeReason) {
37795
37832
  }
37796
37833
 
37797
37834
  // src/run-daemon.ts
37798
- import { createHash as createHash8, randomUUID as randomUUID10 } from "node:crypto";
37835
+ import { createHash as createHash7, randomUUID as randomUUID9 } from "node:crypto";
37799
37836
  import { join as join19 } from "node:path";
37800
37837
  import { styleText } from "node:util";
37801
37838
 
@@ -41674,7 +41711,13 @@ async function executeSessionLiveHistoryV2PageLoad(socket, command, config2, dir
41674
41711
  const replay = await sessions.loadSessionEventsV2(loadOptions, command.eventLimit, command.cursor);
41675
41712
  signal.throwIfAborted();
41676
41713
  const events = replay.events.map(
41677
- (event, index2) => eventLogV2.event(command.sessionId, replay.startPosition + index2, event, "1970-01-01T00:00:00.000Z")
41714
+ (event, index2) => eventLogV2.event(
41715
+ command.sessionId,
41716
+ replay.sessionGenerationId,
41717
+ replay.startPosition + index2,
41718
+ event,
41719
+ "1970-01-01T00:00:00.000Z"
41720
+ )
41678
41721
  );
41679
41722
  const tailCursor = events.at(-1)?.eventId ?? "";
41680
41723
  audit.record({
@@ -41685,9 +41728,9 @@ async function executeSessionLiveHistoryV2PageLoad(socket, command, config2, dir
41685
41728
  send(socket, {
41686
41729
  events: {
41687
41730
  events: {
41688
- daemonGenerationId: eventLogV2.daemonGenerationId,
41689
41731
  events,
41690
41732
  nextCursor: replay.nextCursor,
41733
+ sessionGenerationId: replay.sessionGenerationId,
41691
41734
  tailCursor,
41692
41735
  truncated: replay.truncated,
41693
41736
  version: 2
@@ -43034,7 +43077,7 @@ async function runRelayConnection({
43034
43077
  // src/relay-connection/session-event-publisher.ts
43035
43078
  import { WebSocket as WebSocket8 } from "undici";
43036
43079
  var MAX_BUFFERED_BYTES = 32 * 1024 * 1024;
43037
- var SESSION_EVENT_V2_BATCH_WINDOW_MILLISECONDS = 200;
43080
+ var SESSION_EVENT_V2_BATCH_WINDOW_MILLISECONDS = 100;
43038
43081
  var DaemonSessionEventPublisher = class {
43039
43082
  #pendingV2Events = [];
43040
43083
  #pendingV2Task = null;
@@ -43126,7 +43169,6 @@ var SystemDaemonTimer = class {
43126
43169
  var systemDaemonTimer = new SystemDaemonTimer();
43127
43170
 
43128
43171
  // src/session-event-log-v2.ts
43129
- import { createHash as createHash7, randomUUID as randomUUID9 } from "node:crypto";
43130
43172
  function promptContent(command) {
43131
43173
  const content = [];
43132
43174
  if (command.prompt.length > 0) {
@@ -43150,28 +43192,26 @@ function promptContent(command) {
43150
43192
  }
43151
43193
  return content;
43152
43194
  }
43153
- function sessionEventV22(daemonGenerationId, sessionId, position, event, recordedAt) {
43154
- const sessionPrefix = createHash7("sha256").update(sessionId).digest("hex").slice(0, 16);
43195
+ function sessionEventV22(sessionGenerationId, sessionId, position, event, recordedAt) {
43155
43196
  return {
43156
- eventId: `event-${daemonGenerationId}-${sessionPrefix}-${position.toString().padStart(16, "0")}`,
43197
+ eventId: `event-${sessionGenerationId}-${position.toString().padStart(16, "0")}`,
43157
43198
  ...event,
43158
43199
  position: position.toString(),
43159
43200
  provenance: { kind: "original" },
43160
43201
  recordedAt,
43202
+ sessionGenerationId,
43161
43203
  sessionId
43162
43204
  };
43163
43205
  }
43164
43206
  var DaemonSessionEventLogV2 = class {
43165
- daemonGenerationId;
43166
43207
  #publisher;
43167
43208
  #terminal = /* @__PURE__ */ new Map();
43168
43209
  #publications = /* @__PURE__ */ new Map();
43169
43210
  #queued = /* @__PURE__ */ new Map();
43170
43211
  #recordLifecycle;
43171
- constructor(publisher, recordLifecycle, daemonGenerationId = randomUUID9()) {
43212
+ constructor(publisher, recordLifecycle) {
43172
43213
  this.#recordLifecycle = recordLifecycle;
43173
43214
  this.#publisher = publisher;
43174
- this.daemonGenerationId = daemonGenerationId;
43175
43215
  }
43176
43216
  requested = (command) => {
43177
43217
  this.#queued.set(command.commandId, {
@@ -43195,7 +43235,13 @@ var DaemonSessionEventLogV2 = class {
43195
43235
  throw new Error("The executing prompt was not registered in the V2 queue");
43196
43236
  };
43197
43237
  record = (sessionId, event, position) => {
43198
- const recorded = this.event(sessionId, position, event, (/* @__PURE__ */ new Date()).toISOString());
43238
+ const recorded = this.event(
43239
+ sessionId,
43240
+ position.sessionGenerationId,
43241
+ position.position,
43242
+ event,
43243
+ (/* @__PURE__ */ new Date()).toISOString()
43244
+ );
43199
43245
  if (event.type === "lifecycle-metadata" && (event.payload.kind === "prompt.completed" || event.payload.kind === "prompt.failed" || event.payload.kind === "prompt.failed-before-start")) {
43200
43246
  this.#terminal.set(event.payload.commandId, recorded);
43201
43247
  const pending2 = this.#publications.get(sessionId) ?? [];
@@ -43232,7 +43278,7 @@ var DaemonSessionEventLogV2 = class {
43232
43278
  }
43233
43279
  this.#queued.delete(commandId);
43234
43280
  };
43235
- event = (sessionId, position, event, recordedAt) => sessionEventV22(this.daemonGenerationId, sessionId, position, event, recordedAt);
43281
+ event = (sessionId, sessionGenerationId, position, event, recordedAt) => sessionEventV22(sessionGenerationId, sessionId, position, event, recordedAt);
43236
43282
  queueChanged = async (sessionId) => {
43237
43283
  await this.#recordLifecycle(sessionId, {
43238
43284
  type: "lifecycle-metadata",
@@ -43323,7 +43369,7 @@ async function installDetectedAgentIntegrations(config2, installations, signal)
43323
43369
  {
43324
43370
  agentId: agent.id,
43325
43371
  kind: AGENT_INSTALL_REQUEST_KIND,
43326
- requestId: `automatic-integration-${randomUUID10()}`
43372
+ requestId: `automatic-integration-${randomUUID9()}`
43327
43373
  },
43328
43374
  signal
43329
43375
  );
@@ -43341,14 +43387,12 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
43341
43387
  publishCatalog: async (installationSignal) => await publishAgentCatalog(config2, installationSignal),
43342
43388
  stateDirectory
43343
43389
  });
43344
- const channelHash = createHash8("sha256").update(config2.channelId).digest("hex");
43345
- const daemonGenerationId = randomUUID10();
43390
+ const channelHash = createHash7("sha256").update(config2.channelId).digest("hex");
43346
43391
  const sessionDatabase = openAcpSessionDatabase(join19(stateDirectory, "sessions", `${channelHash}.sqlite`));
43347
43392
  let eventsV2;
43348
43393
  try {
43349
43394
  eventsV2 = new CachedAcpSessionEventStoreV2(
43350
- openSessionEventCacheV2Database(join19(stateDirectory, "sessions", `${channelHash}.events.sqlite`)),
43351
- daemonGenerationId
43395
+ openSessionEventCacheV2Database(join19(stateDirectory, "sessions", `${channelHash}.events.sqlite`))
43352
43396
  );
43353
43397
  } catch (error62) {
43354
43398
  sessionDatabase.close();
@@ -43360,8 +43404,7 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
43360
43404
  const publisher = new DaemonSessionEventPublisher(timer);
43361
43405
  const eventLogV2 = new DaemonSessionEventLogV2(
43362
43406
  publisher,
43363
- (sessionId, event) => agentRuntime.recordLifecycleEventV2(sessionId, event),
43364
- daemonGenerationId
43407
+ (sessionId, event) => agentRuntime.recordLifecycleEventV2(sessionId, event)
43365
43408
  );
43366
43409
  const activeTurns = new DaemonTurnRegistry(operations);
43367
43410
  const agentRuntime = new AgentRuntimeManager(