@moxt-ai/mobius 0.0.162 → 0.0.163
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/cli.js +21 -67
- package/dist/cli.js.map +3 -3
- package/dist/index.js +20 -66
- package/dist/index.js.map +3 -3
- package/dist/relay-connection/session-event-publisher.d.ts +6 -1
- package/dist/relay-connection/session-event-publisher.d.ts.map +1 -1
- package/dist/relay-connection/session-event-publisher.js +6 -1
- package/dist/relay-connection/session-event-publisher.js.map +1 -1
- package/dist/run-daemon.js +1 -1
- package/dist/run-daemon.js.map +1 -1
- package/dist/runtime.js +20 -66
- package/dist/runtime.js.map +3 -3
- package/dist/session-event-log-v2.d.ts.map +1 -1
- package/dist/session-event-log-v2.js +14 -61
- package/dist/session-event-log-v2.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44485
|
-
this.#appendToExecutingRequest(sessionId, event);
|
|
44457
|
+
this.#append(sessionId, payload);
|
|
44486
44458
|
};
|
|
44487
|
-
#
|
|
44488
|
-
|
|
44489
|
-
(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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) => {
|