@moxt-ai/mobius 0.0.156 → 0.0.157

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.
@@ -94,7 +94,7 @@ export async function runDaemon(config, audit, signal, timer = systemDaemonTimer
94
94
  const recordSessionEvent = (sessionId, event) => {
95
95
  publisher.publish(sessionId, activeTurns.recordEvent(event));
96
96
  };
97
- const agentRuntime = new AgentRuntimeManager(new DaemonAcpObserver(recordSessionEvent, eventLogV2.acpUpdate), sessionStore, {
97
+ const agentRuntime = new AgentRuntimeManager(new DaemonAcpObserver(recordSessionEvent, eventLogV2.record), sessionStore, {
98
98
  read: async (options, nativeSessionId, nativeTurn) => options.agent.id === "codex"
99
99
  ? (await readCodexFullHistory(options.agent, options.cwd, nativeSessionId, options.signal, nativeTurn)).history
100
100
  : null,
@@ -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
@@ -21489,8 +21489,15 @@ var acpSessionUpdateV2Schema = external_exports.discriminatedUnion("sessionUpdat
21489
21489
  }).readonly()
21490
21490
  ]);
21491
21491
  var lifecycleBase = { commandId: identifierStringSchema };
21492
- var sessionEventPayloadV2Schema = external_exports.discriminatedUnion("kind", [
21493
- external_exports.strictObject({ kind: external_exports.literal("acp.session.update"), update: acpSessionUpdateV2Schema }).readonly(),
21492
+ var lifecycleMetadataV2Schema = external_exports.discriminatedUnion("kind", [
21493
+ external_exports.strictObject({ kind: external_exports.literal("session.queue.changed") }).readonly(),
21494
+ external_exports.strictObject({ event: sessionPermissionRequestedEventSchema, kind: external_exports.literal("session.permission.requested") }).readonly(),
21495
+ external_exports.strictObject({ event: sessionPermissionResolvedEventSchema, kind: external_exports.literal("session.permission.resolved") }).readonly(),
21496
+ external_exports.strictObject({
21497
+ event: sessionElicitationRequestedEventSchema,
21498
+ kind: external_exports.literal("session.elicitation.requested")
21499
+ }).readonly(),
21500
+ external_exports.strictObject({ event: sessionElicitationResolvedEventSchema, kind: external_exports.literal("session.elicitation.resolved") }).readonly(),
21494
21501
  external_exports.strictObject({
21495
21502
  ...lifecycleBase,
21496
21503
  content: external_exports.array(contentBlockV2Schema).min(1).max(100).readonly(),
@@ -21512,6 +21519,10 @@ var sessionEventPayloadV2Schema = external_exports.discriminatedUnion("kind", [
21512
21519
  message: external_exports.string().min(1).max(500)
21513
21520
  }).readonly()
21514
21521
  ]);
21522
+ var sessionEventPayloadV2Schema = external_exports.discriminatedUnion("type", [
21523
+ external_exports.strictObject({ payload: acpSessionUpdateV2Schema, type: external_exports.literal("acp") }).readonly(),
21524
+ external_exports.strictObject({ payload: lifecycleMetadataV2Schema, type: external_exports.literal("lifecycle-metadata") }).readonly()
21525
+ ]);
21515
21526
  var positionSchema = external_exports.string().regex(/^(0|[1-9][0-9]*)$/);
21516
21527
  var provenanceSchema = external_exports.discriminatedUnion("kind", [
21517
21528
  external_exports.strictObject({ kind: external_exports.literal("original") }).readonly(),
@@ -21528,13 +21539,62 @@ var provenanceSchema = external_exports.discriminatedUnion("kind", [
21528
21539
  sourceSessionId: identifierStringSchema
21529
21540
  }).readonly()
21530
21541
  ]);
21531
- var sessionEventV2Schema = external_exports.strictObject({
21542
+ var sessionEventFieldsV2 = {
21532
21543
  eventId: identifierStringSchema,
21533
- payload: sessionEventPayloadV2Schema,
21534
21544
  position: positionSchema,
21535
21545
  provenance: provenanceSchema,
21536
21546
  recordedAt: external_exports.iso.datetime({ offset: true }),
21537
21547
  sessionId: identifierStringSchema
21548
+ };
21549
+ var sessionEventV2Schema = external_exports.discriminatedUnion("type", [
21550
+ external_exports.strictObject({ ...sessionEventFieldsV2, payload: acpSessionUpdateV2Schema, type: external_exports.literal("acp") }).readonly(),
21551
+ external_exports.strictObject({
21552
+ ...sessionEventFieldsV2,
21553
+ payload: lifecycleMetadataV2Schema,
21554
+ type: external_exports.literal("lifecycle-metadata")
21555
+ }).readonly()
21556
+ ]);
21557
+ var sessionExportV2Schema = external_exports.strictObject({
21558
+ binding: external_exports.strictObject({
21559
+ bindingId: identifierStringSchema,
21560
+ runtimeId: identifierStringSchema
21561
+ }).readonly(),
21562
+ events: external_exports.array(sessionEventV2Schema).max(MAX_EVENT_COUNT).readonly(),
21563
+ sessionId: identifierStringSchema,
21564
+ truncated: external_exports.boolean()
21565
+ }).readonly().superRefine((session, context) => {
21566
+ let previousPosition = 0n;
21567
+ const eventIds = /* @__PURE__ */ new Set();
21568
+ for (const [index2, event] of session.events.entries()) {
21569
+ if (event.sessionId !== session.sessionId) {
21570
+ context.addIssue({
21571
+ code: "custom",
21572
+ message: "Exported event belongs to a different Session",
21573
+ path: ["events", index2, "sessionId"]
21574
+ });
21575
+ }
21576
+ const position = BigInt(event.position);
21577
+ if (position <= previousPosition) {
21578
+ context.addIssue({
21579
+ code: "custom",
21580
+ message: "Exported events are not in increasing position order",
21581
+ path: ["events", index2, "position"]
21582
+ });
21583
+ }
21584
+ if (eventIds.has(event.eventId)) {
21585
+ context.addIssue({
21586
+ code: "custom",
21587
+ message: "Exported event identities are not unique",
21588
+ path: ["events", index2, "eventId"]
21589
+ });
21590
+ }
21591
+ previousPosition = position;
21592
+ eventIds.add(event.eventId);
21593
+ }
21594
+ });
21595
+ var mobiusSessionExportV2Schema = external_exports.strictObject({
21596
+ formatVersion: external_exports.literal("2"),
21597
+ session: sessionExportV2Schema
21538
21598
  }).readonly();
21539
21599
  var sessionEventEnvelopeV2Schema = external_exports.strictObject({ event: sessionEventV2Schema, kind: external_exports.literal(SESSION_EVENT_V2_KIND) }).readonly();
21540
21600
  var sessionEventLogPageV2Schema = external_exports.strictObject({
@@ -35036,8 +35096,15 @@ var MemoryAcpSessionStore = class {
35036
35096
  #sessions = /* @__PURE__ */ new Map();
35037
35097
  #deleted = /* @__PURE__ */ new Set();
35038
35098
  #eventsV2 = /* @__PURE__ */ new Map();
35039
- appendEventV2 = (event) => {
35040
- this.#eventsV2.set(event.sessionId, [...this.#eventsV2.get(event.sessionId) ?? [], event]);
35099
+ appendExecutingPromptEventV2 = (event) => {
35100
+ const events = this.#eventsV2.get(event.sessionId);
35101
+ if (events === void 0) {
35102
+ throw new Error("The executing prompt event log has not started");
35103
+ }
35104
+ events.push(event);
35105
+ };
35106
+ clearExecutingPromptEventsV2 = (sessionId) => {
35107
+ this.#eventsV2.delete(sessionId);
35041
35108
  };
35042
35109
  close = () => {
35043
35110
  this.#sessions.clear();
@@ -35068,7 +35135,12 @@ var MemoryAcpSessionStore = class {
35068
35135
  this.#sessions.delete(sessionId);
35069
35136
  this.#eventsV2.delete(sessionId);
35070
35137
  };
35071
- readEventsV2 = (sessionId) => this.#eventsV2.get(sessionId) ?? [];
35138
+ readExecutingPromptEventsV2 = (sessionId) => [
35139
+ ...this.#eventsV2.get(sessionId) ?? []
35140
+ ];
35141
+ startExecutingPromptEventsV2 = (sessionId, events) => {
35142
+ this.#eventsV2.set(sessionId, [...events]);
35143
+ };
35072
35144
  write = (session) => {
35073
35145
  this.#sessions.set(session.sessionId, session);
35074
35146
  };
@@ -35136,7 +35208,7 @@ var SqliteAcpSessionStore = class {
35136
35208
  close = () => {
35137
35209
  this.#sqliteDatabase.close();
35138
35210
  };
35139
- appendEventV2 = (event) => {
35211
+ appendExecutingPromptEventV2 = (event) => {
35140
35212
  this.#database.insert(sessionEventV2).values({
35141
35213
  eventId: event.eventId,
35142
35214
  eventJson: JSON.stringify(event),
@@ -35144,6 +35216,22 @@ var SqliteAcpSessionStore = class {
35144
35216
  sessionId: event.sessionId
35145
35217
  }).run();
35146
35218
  };
35219
+ clearExecutingPromptEventsV2 = (sessionId) => {
35220
+ this.#database.delete(sessionEventV2).where(eq(sessionEventV2.sessionId, sessionId)).run();
35221
+ };
35222
+ startExecutingPromptEventsV2 = (sessionId, events) => {
35223
+ this.#database.transaction((transaction) => {
35224
+ transaction.delete(sessionEventV2).where(eq(sessionEventV2.sessionId, sessionId)).run();
35225
+ for (const event of events) {
35226
+ transaction.insert(sessionEventV2).values({
35227
+ eventId: event.eventId,
35228
+ eventJson: JSON.stringify(event),
35229
+ position: Number(event.position),
35230
+ sessionId: event.sessionId
35231
+ }).run();
35232
+ }
35233
+ });
35234
+ };
35147
35235
  findNative = (agentId, nativeSessionId) => this.#database.select().from(acpSession).where(and(eq(acpSession.agentId, agentId), eq(acpSession.nativeSessionId, nativeSessionId))).all().map(decodeStoredSession);
35148
35236
  list = () => this.#database.select().from(acpSession).orderBy(desc(acpSession.updatedAt)).all().map(decodeStoredSession);
35149
35237
  markDeleted = (agentId, nativeSessionId) => {
@@ -35166,7 +35254,7 @@ var SqliteAcpSessionStore = class {
35166
35254
  const row = this.#database.select().from(acpSession).where(eq(acpSession.sessionId, sessionId)).get();
35167
35255
  return row === void 0 ? new MissingAcpStoredSession() : new FoundAcpStoredSession(decodeStoredSession(row));
35168
35256
  };
35169
- readEventsV2 = (sessionId) => this.#database.select({ eventJson: sessionEventV2.eventJson }).from(sessionEventV2).where(eq(sessionEventV2.sessionId, sessionId)).orderBy(asc(sessionEventV2.position)).all().map((row) => decodeSessionEventV2(row.eventJson));
35257
+ readExecutingPromptEventsV2 = (sessionId) => this.#database.select({ eventJson: sessionEventV2.eventJson }).from(sessionEventV2).where(eq(sessionEventV2.sessionId, sessionId)).orderBy(asc(sessionEventV2.position)).all().map((row) => decodeSessionEventV2(row.eventJson));
35170
35258
  remove = (sessionId) => {
35171
35259
  this.#database.transaction((transaction) => {
35172
35260
  transaction.delete(acpSession).where(eq(acpSession.sessionId, sessionId)).run();
@@ -35844,6 +35932,19 @@ var AgentSession = class _AgentSession {
35844
35932
  if (this.#turn.running) {
35845
35933
  throw new AcpExecutionError("Another prompt is already running in this conversation", {}, "session_busy");
35846
35934
  }
35935
+ switch (this.#sessionLoad.kind) {
35936
+ case "not-requested":
35937
+ break;
35938
+ case "loaded":
35939
+ this.#sessionLoad = { kind: "not-requested" };
35940
+ break;
35941
+ case "capturing":
35942
+ throw new AcpExecutionError("Session history is still loading", {}, "session_busy");
35943
+ default: {
35944
+ const unexpected = this.#sessionLoad;
35945
+ throw new Error(`Unexpected Session load state: ${JSON.stringify(unexpected)}`);
35946
+ }
35947
+ }
35847
35948
  const prompt = this.buildPrompt(options);
35848
35949
  if (this.#sessionTitle === null || this.#sessionTitle.length === 0) {
35849
35950
  this.#sessionTitle = truncate(options.prompt, 500);
@@ -36009,7 +36110,7 @@ var AgentSession = class _AgentSession {
36009
36110
  this.assertNativeSession(notification.sessionId);
36010
36111
  const update = notification.update;
36011
36112
  const rawUpdate = decodeAcpSessionUpdateV2(JSON.stringify(update));
36012
- if (this.#sessionLoad.kind !== "not-requested") {
36113
+ if (this.#sessionLoad.kind === "capturing") {
36013
36114
  await this.#sessionLoad.history.record(update, rawUpdate);
36014
36115
  } else {
36015
36116
  const onAcpUpdate = this.#getObserver().onAcpUpdate;
@@ -38360,7 +38461,7 @@ var DaemonAcpObserver = class {
38360
38461
  this.#recordV2 = recordV2;
38361
38462
  }
38362
38463
  onAcpUpdate = (sessionId, update) => {
38363
- this.#recordV2(sessionId, update);
38464
+ this.#recordV2(sessionId, { payload: update, type: "acp" });
38364
38465
  return Promise.resolve();
38365
38466
  };
38366
38467
  onCommands = (event) => {
@@ -38377,10 +38478,18 @@ var DaemonAcpObserver = class {
38377
38478
  };
38378
38479
  onElicitation = (event) => {
38379
38480
  this.#record(event.sessionId, event);
38481
+ this.#recordV2(event.sessionId, {
38482
+ payload: { event, kind: "session.elicitation.requested" },
38483
+ type: "lifecycle-metadata"
38484
+ });
38380
38485
  return Promise.resolve();
38381
38486
  };
38382
38487
  onElicitationResolved = (event) => {
38383
38488
  this.#record(event.sessionId, event);
38489
+ this.#recordV2(event.sessionId, {
38490
+ payload: { event, kind: "session.elicitation.resolved" },
38491
+ type: "lifecycle-metadata"
38492
+ });
38384
38493
  return Promise.resolve();
38385
38494
  };
38386
38495
  onInfo = (event) => {
@@ -38389,10 +38498,18 @@ var DaemonAcpObserver = class {
38389
38498
  };
38390
38499
  onPermission = (event) => {
38391
38500
  this.#record(event.sessionId, event);
38501
+ this.#recordV2(event.sessionId, {
38502
+ payload: { event, kind: "session.permission.requested" },
38503
+ type: "lifecycle-metadata"
38504
+ });
38392
38505
  return Promise.resolve();
38393
38506
  };
38394
38507
  onPermissionResolved = (event) => {
38395
38508
  this.#record(event.sessionId, event);
38509
+ this.#recordV2(event.sessionId, {
38510
+ payload: { event, kind: "session.permission.resolved" },
38511
+ type: "lifecycle-metadata"
38512
+ });
38396
38513
  return Promise.resolve();
38397
38514
  };
38398
38515
  onUsage = (event) => {
@@ -41633,25 +41750,16 @@ function replayEvent(sessionId, position, update) {
41633
41750
  const eventId = `native-${createHash5("sha256").update(sessionId).update(":").update(position.toString()).update(":").update(encoded).digest("hex")}`;
41634
41751
  return {
41635
41752
  eventId,
41636
- payload: { kind: "acp.session.update", update },
41753
+ payload: update,
41637
41754
  position: position.toString(),
41638
41755
  provenance: { kind: "original" },
41639
41756
  recordedAt: "1970-01-01T00:00:00.000Z",
41640
- sessionId
41757
+ sessionId,
41758
+ type: "acp"
41641
41759
  };
41642
41760
  }
41643
- async function executeSessionLiveHistoryV2PageLoad(socket, command, config2, directories, audit, sessions, localRecovery, executingPromptRequest, signal) {
41761
+ async function executeSessionLiveHistoryV2PageLoad(socket, command, config2, directories, audit, sessions, executingPromptRequest, signal) {
41644
41762
  try {
41645
- const local = localRecovery(command.sessionId, command.eventLimit, command.cursor);
41646
- if (local !== null) {
41647
- send(socket, {
41648
- events: local,
41649
- kind: "session.live-history.v2.page.loaded",
41650
- requestId: command.requestId,
41651
- sessionId: command.sessionId
41652
- });
41653
- return;
41654
- }
41655
41763
  const resolved = await resolveSessionDirectories(
41656
41764
  directories,
41657
41765
  config2.bindingId,
@@ -42535,7 +42643,10 @@ function createDaemonCommandHandler({
42535
42643
  timer,
42536
42644
  resolveEnvironment: resolveAgentCatalogEnvironment
42537
42645
  });
42538
- const queueChanged = (sessionId) => publisher.publish(sessionId, { kind: "session.queue.changed", sessionId });
42646
+ const queueChanged = (sessionId) => {
42647
+ publisher.publish(sessionId, { kind: "session.queue.changed", sessionId });
42648
+ eventLogV2.queueChanged(sessionId);
42649
+ };
42539
42650
  const activeTurnRecovery = (sessionId) => activeTurns.recovery((command) => command.sessionId === sessionId);
42540
42651
  const nativeRequestHandler = createNativeSessionRequestHandler({
42541
42652
  audit,
@@ -42585,7 +42696,6 @@ function createDaemonCommandHandler({
42585
42696
  directories,
42586
42697
  audit,
42587
42698
  sessions,
42588
- eventLogV2.recovery,
42589
42699
  eventLogV2.executingPromptRequest,
42590
42700
  signal
42591
42701
  );
@@ -43301,6 +43411,15 @@ var systemDaemonTimer = new SystemDaemonTimer();
43301
43411
 
43302
43412
  // src/session-event-log-v2.ts
43303
43413
  var EXECUTING_PROMPT_EVENT_LIMIT = 1e4;
43414
+ function eventArray(tail) {
43415
+ const reversed = [];
43416
+ let node2 = tail;
43417
+ while (node2 !== null) {
43418
+ reversed.push(node2.event);
43419
+ node2 = node2.previous;
43420
+ }
43421
+ return reversed.reverse();
43422
+ }
43304
43423
  function promptContent(command) {
43305
43424
  const content = [];
43306
43425
  if (command.prompt.length > 0) {
@@ -43324,27 +43443,8 @@ function promptContent(command) {
43324
43443
  }
43325
43444
  return content;
43326
43445
  }
43327
- function encodeLocalEventCursor(cursor) {
43328
- return Buffer.from(JSON.stringify(cursor), "utf8").toString("base64url");
43329
- }
43330
- function decodeLocalEventCursor(sessionId, cursor) {
43331
- try {
43332
- const value = JSON.parse(Buffer.from(cursor, "base64url").toString("utf8"));
43333
- if (typeof value !== "object" || value === null || Array.isArray(value) || Object.keys(value).sort().join(",") !== "endEvent,sessionId" || Reflect.get(value, "sessionId") !== sessionId) {
43334
- throw new Error("Invalid V2 event cursor target");
43335
- }
43336
- const endEvent = Reflect.get(value, "endEvent");
43337
- if (typeof endEvent !== "number" || !Number.isSafeInteger(endEvent) || endEvent < 0) {
43338
- throw new Error("Invalid V2 event cursor boundary");
43339
- }
43340
- return { endEvent, sessionId };
43341
- } catch (cause) {
43342
- throw new AcpExecutionError("The native Session event cursor is invalid", { cause }, "invalid_cursor");
43343
- }
43344
- }
43345
43446
  var DaemonSessionEventLogV2 = class {
43346
43447
  #positions = /* @__PURE__ */ new Map();
43347
- #events = /* @__PURE__ */ new Map();
43348
43448
  #requests = /* @__PURE__ */ new Map();
43349
43449
  #loadedRequestSessions = /* @__PURE__ */ new Set();
43350
43450
  #publisher;
@@ -43353,13 +43453,8 @@ var DaemonSessionEventLogV2 = class {
43353
43453
  this.#publisher = publisher;
43354
43454
  this.#store = store;
43355
43455
  }
43356
- #eventsFor = (sessionId) => {
43357
- const cached2 = this.#events.get(sessionId);
43358
- if (cached2 !== void 0) {
43359
- return cached2;
43360
- }
43361
- const stored = this.#store.readEventsV2(sessionId);
43362
- this.#events.set(sessionId, stored);
43456
+ #loadStoredEvents = (sessionId) => {
43457
+ const stored = this.#store.readExecutingPromptEventsV2(sessionId);
43363
43458
  const lastPosition = stored.at(-1)?.position;
43364
43459
  if (lastPosition !== void 0) {
43365
43460
  this.#positions.set(sessionId, Number(lastPosition));
@@ -43370,25 +43465,37 @@ var DaemonSessionEventLogV2 = class {
43370
43465
  if (this.#loadedRequestSessions.has(sessionId)) {
43371
43466
  return;
43372
43467
  }
43373
- for (const event of this.#eventsFor(sessionId)) {
43468
+ for (const event of this.#loadStoredEvents(sessionId)) {
43469
+ if (event.type === "acp") {
43470
+ const executing = [...this.#requests.values()].find(
43471
+ (request) => request.sessionId === sessionId && request.kind === "executing"
43472
+ );
43473
+ if (executing !== void 0) {
43474
+ this.#requests.set(executing.commandId, {
43475
+ ...executing,
43476
+ eventTail: { event, previous: executing.eventTail }
43477
+ });
43478
+ }
43479
+ continue;
43480
+ }
43374
43481
  const payload = event.payload;
43375
43482
  if (payload.kind === "prompt.requested") {
43376
43483
  this.#requests.set(payload.commandId, {
43377
43484
  commandId: payload.commandId,
43378
- events: [event],
43485
+ eventTail: { event, previous: null },
43379
43486
  kind: "requested",
43380
43487
  sessionId
43381
43488
  });
43382
43489
  continue;
43383
43490
  }
43384
- if (payload.kind === "acp.session.update") {
43491
+ if ("event" in payload) {
43385
43492
  const executing = [...this.#requests.values()].find(
43386
43493
  (request) => request.sessionId === sessionId && request.kind === "executing"
43387
43494
  );
43388
43495
  if (executing !== void 0) {
43389
43496
  this.#requests.set(executing.commandId, {
43390
43497
  ...executing,
43391
- events: [...executing.events, event]
43498
+ eventTail: { event, previous: executing.eventTail }
43392
43499
  });
43393
43500
  }
43394
43501
  continue;
@@ -43400,13 +43507,12 @@ var DaemonSessionEventLogV2 = class {
43400
43507
  if (state === void 0) {
43401
43508
  continue;
43402
43509
  }
43403
- const events = [...state.events, event];
43404
43510
  if (payload.kind === "prompt.started") {
43405
43511
  this.#requests.set(payload.commandId, {
43406
43512
  attemptId: payload.attemptId,
43407
43513
  commandId: payload.commandId,
43408
43514
  epoch: payload.epoch,
43409
- events,
43515
+ eventTail: { event, previous: state.eventTail },
43410
43516
  kind: "executing",
43411
43517
  sessionId
43412
43518
  });
@@ -43417,31 +43523,41 @@ var DaemonSessionEventLogV2 = class {
43417
43523
  this.#loadedRequestSessions.add(sessionId);
43418
43524
  };
43419
43525
  #append = (sessionId, payload) => {
43420
- this.#eventsFor(sessionId);
43526
+ this.#loadRequests(sessionId);
43421
43527
  const position = (this.#positions.get(sessionId) ?? 0) + 1;
43422
43528
  const event = {
43423
43529
  eventId: `event-${crypto.randomUUID()}`,
43424
- payload,
43530
+ ...payload,
43425
43531
  position: position.toString(),
43426
43532
  provenance: { kind: "original" },
43427
43533
  recordedAt: (/* @__PURE__ */ new Date()).toISOString(),
43428
43534
  sessionId
43429
43535
  };
43430
- this.#store.appendEventV2(event);
43431
43536
  this.#positions.set(sessionId, position);
43432
- this.#events.set(sessionId, [...this.#eventsFor(sessionId), event]);
43433
43537
  this.#publisher.publishV2(event);
43434
43538
  return event;
43435
43539
  };
43436
43540
  requested = (command) => {
43541
+ const content = promptContent(command);
43437
43542
  const event = this.#append(command.sessionId, {
43438
- commandId: command.commandId,
43439
- content: promptContent(command),
43440
- kind: "prompt.requested"
43543
+ payload: { commandId: command.commandId, content, kind: "prompt.requested" },
43544
+ type: "lifecycle-metadata"
43441
43545
  });
43546
+ let eventTail = { event, previous: null };
43547
+ for (const block of content) {
43548
+ const userMessageEvent = this.#append(command.sessionId, {
43549
+ payload: {
43550
+ content: block,
43551
+ messageId: command.commandId,
43552
+ sessionUpdate: "user_message_chunk"
43553
+ },
43554
+ type: "acp"
43555
+ });
43556
+ eventTail = { event: userMessageEvent, previous: eventTail };
43557
+ }
43442
43558
  this.#requests.set(command.commandId, {
43443
43559
  commandId: command.commandId,
43444
- events: [event],
43560
+ eventTail,
43445
43561
  kind: "requested",
43446
43562
  sessionId: command.sessionId
43447
43563
  });
@@ -43452,39 +43568,85 @@ var DaemonSessionEventLogV2 = class {
43452
43568
  if (request?.sessionId !== sessionId) {
43453
43569
  return;
43454
43570
  }
43455
- const event = this.#append(sessionId, { attemptId, commandId, epoch, kind: "prompt.started" });
43571
+ const event = this.#append(sessionId, {
43572
+ payload: { attemptId, commandId, epoch, kind: "prompt.started" },
43573
+ type: "lifecycle-metadata"
43574
+ });
43456
43575
  this.#requests.set(commandId, {
43457
43576
  attemptId,
43458
43577
  commandId,
43459
43578
  epoch,
43460
- events: [...request.events, event],
43579
+ eventTail: { event, previous: request.eventTail },
43461
43580
  kind: "executing",
43462
43581
  sessionId
43463
43582
  });
43583
+ this.#store.startExecutingPromptEventsV2(sessionId, eventArray({ event, previous: request.eventTail }));
43464
43584
  };
43465
- acpUpdate = (sessionId, update) => {
43585
+ record = (sessionId, payload) => {
43466
43586
  this.#loadRequests(sessionId);
43467
- const event = this.#append(sessionId, { kind: "acp.session.update", update });
43587
+ const event = this.#append(sessionId, payload);
43588
+ this.#appendToExecutingRequest(sessionId, event);
43589
+ };
43590
+ #appendToExecutingRequest = (sessionId, event) => {
43468
43591
  const executing = [...this.#requests.values()].find(
43469
43592
  (request) => request.sessionId === sessionId && request.kind === "executing"
43470
43593
  );
43471
43594
  if (executing !== void 0) {
43472
- this.#requests.set(executing.commandId, { ...executing, events: [...executing.events, event] });
43595
+ this.#requests.set(executing.commandId, {
43596
+ ...executing,
43597
+ eventTail: { event, previous: executing.eventTail }
43598
+ });
43599
+ this.#store.appendExecutingPromptEventV2(event);
43473
43600
  }
43474
43601
  };
43602
+ queueChanged = (sessionId) => {
43603
+ const event = this.#append(sessionId, {
43604
+ payload: { kind: "session.queue.changed" },
43605
+ type: "lifecycle-metadata"
43606
+ });
43607
+ this.#appendToExecutingRequest(sessionId, event);
43608
+ };
43475
43609
  completed = (sessionId, commandId, stopReason) => {
43476
- this.#append(sessionId, { commandId, kind: "prompt.completed", stopReason });
43610
+ this.#loadRequests(sessionId);
43611
+ const request = this.#requests.get(commandId);
43612
+ const event = this.#append(sessionId, {
43613
+ payload: { commandId, kind: "prompt.completed", stopReason },
43614
+ type: "lifecycle-metadata"
43615
+ });
43477
43616
  this.#requests.delete(commandId);
43617
+ if (request?.kind === "executing" && request.sessionId === sessionId) {
43618
+ this.#store.clearExecutingPromptEventsV2(sessionId);
43619
+ } else {
43620
+ this.#appendToExecutingRequest(sessionId, event);
43621
+ }
43478
43622
  };
43479
43623
  failed = (sessionId, commandId, code, message) => {
43480
43624
  this.#loadRequests(sessionId);
43481
43625
  const request = this.#requests.get(commandId);
43626
+ let event;
43482
43627
  if (request?.kind === "executing" && request.commandId === commandId) {
43483
- this.#append(sessionId, { attemptId: request.attemptId, code, commandId, kind: "prompt.failed", message });
43628
+ event = this.#append(sessionId, {
43629
+ payload: {
43630
+ attemptId: request.attemptId,
43631
+ code,
43632
+ commandId,
43633
+ kind: "prompt.failed",
43634
+ message
43635
+ },
43636
+ type: "lifecycle-metadata"
43637
+ });
43484
43638
  } else {
43485
- this.#append(sessionId, { code, commandId, kind: "prompt.failed-before-start", message });
43639
+ event = this.#append(sessionId, {
43640
+ payload: { code, commandId, kind: "prompt.failed-before-start", message },
43641
+ type: "lifecycle-metadata"
43642
+ });
43486
43643
  }
43487
43644
  this.#requests.delete(commandId);
43645
+ if (request?.kind === "executing" && request.sessionId === sessionId) {
43646
+ this.#store.clearExecutingPromptEventsV2(sessionId);
43647
+ } else {
43648
+ this.#appendToExecutingRequest(sessionId, event);
43649
+ }
43488
43650
  };
43489
43651
  executingPromptRequest = (sessionId) => {
43490
43652
  this.#loadRequests(sessionId);
@@ -43494,42 +43656,15 @@ var DaemonSessionEventLogV2 = class {
43494
43656
  if (request?.kind !== "executing") {
43495
43657
  return null;
43496
43658
  }
43497
- const events = request.events.slice(-EXECUTING_PROMPT_EVENT_LIMIT);
43659
+ const requestEvents = eventArray(request.eventTail);
43660
+ const events = requestEvents.slice(-EXECUTING_PROMPT_EVENT_LIMIT);
43498
43661
  return {
43499
43662
  attemptId: request.attemptId,
43500
43663
  commandId: request.commandId,
43501
43664
  epoch: request.epoch,
43502
43665
  events,
43503
43666
  tailCursor: events.at(-1)?.eventId ?? "",
43504
- truncated: events.length < request.events.length
43505
- };
43506
- };
43507
- recovery = (sessionId, eventLimit, cursor) => {
43508
- const events = this.#eventsFor(sessionId);
43509
- if (events.length === 0) {
43510
- return null;
43511
- }
43512
- const executingPromptRequest = this.executingPromptRequest(sessionId);
43513
- const executingRequestState = [...this.#requests.values()].find(
43514
- (request) => request.sessionId === sessionId && request.kind === "executing"
43515
- );
43516
- const firstExecutingPosition = executingRequestState?.events[0]?.position;
43517
- const historyEvents = firstExecutingPosition === void 0 ? events : events.filter((event) => BigInt(event.position) < BigInt(firstExecutingPosition));
43518
- const endEvent = cursor === null ? historyEvents.length : decodeLocalEventCursor(sessionId, cursor).endEvent;
43519
- if (endEvent > historyEvents.length) {
43520
- throw new AcpExecutionError("The native Session event cursor is invalid", {}, "invalid_cursor");
43521
- }
43522
- const startEvent = Math.max(0, endEvent - eventLimit);
43523
- const pageEvents = historyEvents.slice(startEvent, endEvent);
43524
- return {
43525
- executingPromptRequest,
43526
- history: {
43527
- events: pageEvents,
43528
- nextCursor: startEvent === 0 ? null : encodeLocalEventCursor({ endEvent: startEvent, sessionId }),
43529
- tailCursor: pageEvents.at(-1)?.eventId ?? "",
43530
- truncated: startEvent > 0,
43531
- version: 2
43532
- }
43667
+ truncated: events.length < requestEvents.length
43533
43668
  };
43534
43669
  };
43535
43670
  };
@@ -43611,7 +43746,7 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
43611
43746
  publisher.publish(sessionId, activeTurns.recordEvent(event));
43612
43747
  };
43613
43748
  const agentRuntime = new AgentRuntimeManager(
43614
- new DaemonAcpObserver(recordSessionEvent, eventLogV2.acpUpdate),
43749
+ new DaemonAcpObserver(recordSessionEvent, eventLogV2.record),
43615
43750
  sessionStore,
43616
43751
  {
43617
43752
  read: async (options2, nativeSessionId, nativeTurn) => options2.agent.id === "codex" ? (await readCodexFullHistory(