@moxt-ai/mobius 0.0.162 → 0.0.164

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.
package/dist/index.js CHANGED
@@ -36532,17 +36532,17 @@ import {
36532
36532
  // src/agent-installation/pi-managed-packages.ts
36533
36533
  var PI_ACP_PACKAGE = new SriManagedNpmPackageDefinition(
36534
36534
  "pi-acp",
36535
- "0.0.33",
36535
+ "0.0.34",
36536
36536
  "pi-acp",
36537
- "sha512-vX9kY1tK14E72G4dBAx+RGCk/k7XPjTHls6dLUxA8WSkBav6B6JHuSBv3eusp50LCR/GTRsR2kIKsG0Z5jANzw==",
36538
- "https://registry.npmjs.org/pi-acp/-/pi-acp-0.0.33.tgz"
36537
+ "sha512-MrCp37UbpUzkTkzTIMJQf1RYrT+kr4fgGDGFoLmBN26UupuCZp0XxVIY+7XYsMo3yDnzDeZUJ0jPyM3Si6Bkkg==",
36538
+ "https://registry.npmjs.org/pi-acp/-/pi-acp-0.0.34.tgz"
36539
36539
  );
36540
36540
  var PI_AGENT_PACKAGE = new SriManagedNpmPackageDefinition(
36541
36541
  "@earendil-works/pi-coding-agent",
36542
- "0.85.0",
36542
+ "1.1.0",
36543
36543
  "pi",
36544
- "sha512-INxVkLAVfAMju5MojJpmyu/0bMP+r+ffZuS7UqVv32E2JwHBRbcHfELDfmFNvapEbgYfKN2r9OYO1p3TqDBR+g==",
36545
- "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-0.85.0.tgz"
36544
+ "sha512-SeEi/4hdcHNgA9UWlefZl7ZZpm3dzi2OoxNjDHsBJ9o298LNOtbL4DGKgitlEj6uCTccvtw6f2hlCkTPVJ2RXg==",
36545
+ "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-1.1.0.tgz"
36546
36546
  );
36547
36547
 
36548
36548
  // src/agent-catalog/agents/pi-agent.ts
@@ -36558,7 +36558,7 @@ var PiAgentSpecification = class extends BridgedAcpAgentDefinition {
36558
36558
  agentOverrideVariable = "MOBIUS_PI_PATH";
36559
36559
  id = "pi";
36560
36560
  label = "Pi";
36561
- minimumSupportedAgentVersion = PI_AGENT_PACKAGE.version;
36561
+ minimumSupportedAgentVersion = "0.85.0";
36562
36562
  maximumTestedAgentVersion = PI_AGENT_PACKAGE.version;
36563
36563
  managedAdapterExecutablePath = [
36564
36564
  "adapters",
@@ -44257,6 +44257,10 @@ import { WebSocket as WebSocket9 } from "undici";
44257
44257
  var MAX_BUFFERED_BYTES = 32 * 1024 * 1024;
44258
44258
  var DaemonSessionEventPublisher = class {
44259
44259
  #socket = null;
44260
+ #store;
44261
+ constructor(store) {
44262
+ this.#store = store;
44263
+ }
44260
44264
  connect = (socket) => {
44261
44265
  this.#socket = socket;
44262
44266
  };
@@ -44293,6 +44297,7 @@ var DaemonSessionEventPublisher = class {
44293
44297
  }
44294
44298
  };
44295
44299
  publishV2 = (event) => {
44300
+ this.#store.appendExecutingPromptEventV2(event);
44296
44301
  const socket = this.#socket;
44297
44302
  if (socket === null || socket.readyState !== WebSocket9.OPEN) {
44298
44303
  return;
@@ -44320,15 +44325,6 @@ var systemDaemonTimer = new SystemDaemonTimer();
44320
44325
 
44321
44326
  // src/session-event-log-v2.ts
44322
44327
  var EXECUTING_PROMPT_EVENT_LIMIT = 1e4;
44323
- function eventArray(tail) {
44324
- const reversed = [];
44325
- let node2 = tail;
44326
- while (node2 !== null) {
44327
- reversed.push(node2.event);
44328
- node2 = node2.previous;
44329
- }
44330
- return reversed.reverse();
44331
- }
44332
44328
  function promptContent(command) {
44333
44329
  const content = [];
44334
44330
  if (command.prompt.length > 0) {
@@ -44376,37 +44372,18 @@ var DaemonSessionEventLogV2 = class {
44376
44372
  }
44377
44373
  for (const event of this.#loadStoredEvents(sessionId)) {
44378
44374
  if (event.type === "acp") {
44379
- const executing = [...this.#requests.values()].find(
44380
- (request) => request.sessionId === sessionId && request.kind === "executing"
44381
- );
44382
- if (executing !== void 0) {
44383
- this.#requests.set(executing.commandId, {
44384
- ...executing,
44385
- eventTail: { event, previous: executing.eventTail }
44386
- });
44387
- }
44388
44375
  continue;
44389
44376
  }
44390
44377
  const payload = event.payload;
44391
44378
  if (payload.kind === "prompt.requested") {
44392
44379
  this.#requests.set(payload.commandId, {
44393
44380
  commandId: payload.commandId,
44394
- eventTail: { event, previous: null },
44395
44381
  kind: "requested",
44396
44382
  sessionId
44397
44383
  });
44398
44384
  continue;
44399
44385
  }
44400
44386
  if ("event" in payload) {
44401
- const executing = [...this.#requests.values()].find(
44402
- (request) => request.sessionId === sessionId && request.kind === "executing"
44403
- );
44404
- if (executing !== void 0) {
44405
- this.#requests.set(executing.commandId, {
44406
- ...executing,
44407
- eventTail: { event, previous: executing.eventTail }
44408
- });
44409
- }
44410
44387
  continue;
44411
44388
  }
44412
44389
  if (!("commandId" in payload)) {
@@ -44421,7 +44398,6 @@ var DaemonSessionEventLogV2 = class {
44421
44398
  attemptId: payload.attemptId,
44422
44399
  commandId: payload.commandId,
44423
44400
  epoch: payload.epoch,
44424
- eventTail: { event, previous: state.eventTail },
44425
44401
  kind: "executing",
44426
44402
  sessionId
44427
44403
  });
@@ -44442,19 +44418,18 @@ var DaemonSessionEventLogV2 = class {
44442
44418
  recordedAt: (/* @__PURE__ */ new Date()).toISOString(),
44443
44419
  sessionId
44444
44420
  };
44445
- this.#positions.set(sessionId, position);
44446
44421
  this.#publisher.publishV2(event);
44422
+ this.#positions.set(sessionId, position);
44447
44423
  return event;
44448
44424
  };
44449
44425
  requested = (command) => {
44450
44426
  const content = promptContent(command);
44451
- const event = this.#append(command.sessionId, {
44427
+ this.#append(command.sessionId, {
44452
44428
  payload: { commandId: command.commandId, content, kind: "prompt.requested" },
44453
44429
  type: "lifecycle-metadata"
44454
44430
  });
44455
44431
  this.#requests.set(command.commandId, {
44456
44432
  commandId: command.commandId,
44457
- eventTail: { event, previous: null },
44458
44433
  kind: "requested",
44459
44434
  sessionId: command.sessionId
44460
44435
  });
@@ -44465,7 +44440,7 @@ var DaemonSessionEventLogV2 = class {
44465
44440
  if (request?.sessionId !== sessionId) {
44466
44441
  return;
44467
44442
  }
44468
- const event = this.#append(sessionId, {
44443
+ this.#append(sessionId, {
44469
44444
  payload: { attemptId, commandId, epoch, kind: "prompt.started" },
44470
44445
  type: "lifecycle-metadata"
44471
44446
  });
@@ -44473,56 +44448,39 @@ var DaemonSessionEventLogV2 = class {
44473
44448
  attemptId,
44474
44449
  commandId,
44475
44450
  epoch,
44476
- eventTail: { event, previous: request.eventTail },
44477
44451
  kind: "executing",
44478
44452
  sessionId
44479
44453
  });
44480
- this.#store.startExecutingPromptEventsV2(sessionId, eventArray({ event, previous: request.eventTail }));
44481
44454
  };
44482
44455
  record = (sessionId, payload) => {
44483
44456
  this.#loadRequests(sessionId);
44484
- const event = this.#append(sessionId, payload);
44485
- this.#appendToExecutingRequest(sessionId, event);
44457
+ this.#append(sessionId, payload);
44486
44458
  };
44487
- #appendToExecutingRequest = (sessionId, event) => {
44488
- const executing = [...this.#requests.values()].find(
44489
- (request) => request.sessionId === sessionId && request.kind === "executing"
44490
- );
44491
- if (executing !== void 0) {
44492
- this.#requests.set(executing.commandId, {
44493
- ...executing,
44494
- eventTail: { event, previous: executing.eventTail }
44495
- });
44496
- this.#store.appendExecutingPromptEventV2(event);
44459
+ #clearCompletedSession = (sessionId) => {
44460
+ if (![...this.#requests.values()].some((request) => request.sessionId === sessionId)) {
44461
+ this.#store.clearExecutingPromptEventsV2(sessionId);
44497
44462
  }
44498
44463
  };
44499
44464
  queueChanged = (sessionId) => {
44500
- const event = this.#append(sessionId, {
44465
+ this.#append(sessionId, {
44501
44466
  payload: { kind: "session.queue.changed" },
44502
44467
  type: "lifecycle-metadata"
44503
44468
  });
44504
- this.#appendToExecutingRequest(sessionId, event);
44505
44469
  };
44506
44470
  completed = (sessionId, commandId, stopReason) => {
44507
44471
  this.#loadRequests(sessionId);
44508
- const request = this.#requests.get(commandId);
44509
- const event = this.#append(sessionId, {
44472
+ this.#append(sessionId, {
44510
44473
  payload: { commandId, kind: "prompt.completed", stopReason },
44511
44474
  type: "lifecycle-metadata"
44512
44475
  });
44513
44476
  this.#requests.delete(commandId);
44514
- if (request?.kind === "executing" && request.sessionId === sessionId) {
44515
- this.#store.clearExecutingPromptEventsV2(sessionId);
44516
- } else {
44517
- this.#appendToExecutingRequest(sessionId, event);
44518
- }
44477
+ this.#clearCompletedSession(sessionId);
44519
44478
  };
44520
44479
  failed = (sessionId, commandId, code, message) => {
44521
44480
  this.#loadRequests(sessionId);
44522
44481
  const request = this.#requests.get(commandId);
44523
- let event;
44524
44482
  if (request?.kind === "executing" && request.commandId === commandId) {
44525
- event = this.#append(sessionId, {
44483
+ this.#append(sessionId, {
44526
44484
  payload: {
44527
44485
  attemptId: request.attemptId,
44528
44486
  code,
@@ -44533,17 +44491,13 @@ var DaemonSessionEventLogV2 = class {
44533
44491
  type: "lifecycle-metadata"
44534
44492
  });
44535
44493
  } else {
44536
- event = this.#append(sessionId, {
44494
+ this.#append(sessionId, {
44537
44495
  payload: { code, commandId, kind: "prompt.failed-before-start", message },
44538
44496
  type: "lifecycle-metadata"
44539
44497
  });
44540
44498
  }
44541
44499
  this.#requests.delete(commandId);
44542
- if (request?.kind === "executing" && request.sessionId === sessionId) {
44543
- this.#store.clearExecutingPromptEventsV2(sessionId);
44544
- } else {
44545
- this.#appendToExecutingRequest(sessionId, event);
44546
- }
44500
+ this.#clearCompletedSession(sessionId);
44547
44501
  };
44548
44502
  executingPromptRequest = (sessionId) => {
44549
44503
  this.#loadRequests(sessionId);
@@ -44553,7 +44507,7 @@ var DaemonSessionEventLogV2 = class {
44553
44507
  if (request?.kind !== "executing") {
44554
44508
  return null;
44555
44509
  }
44556
- const requestEvents = eventArray(request.eventTail);
44510
+ const requestEvents = this.#store.readExecutingPromptEventsV2(sessionId);
44557
44511
  const events = requestEvents.slice(-EXECUTING_PROMPT_EVENT_LIMIT);
44558
44512
  return {
44559
44513
  attemptId: request.attemptId,
@@ -44636,7 +44590,7 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
44636
44590
  join18(stateDirectory, "sessions", `${createHash7("sha256").update(config2.channelId).digest("hex")}.sqlite`)
44637
44591
  );
44638
44592
  const operations = new DaemonOperationState();
44639
- const publisher = new DaemonSessionEventPublisher();
44593
+ const publisher = new DaemonSessionEventPublisher(sessionStore);
44640
44594
  const eventLogV2 = new DaemonSessionEventLogV2(publisher, sessionStore);
44641
44595
  const activeTurns = new DaemonTurnRegistry(operations);
44642
44596
  const recordSessionEvent = (sessionId, event) => {