@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.
- package/dist/acp/session-contracts.d.ts +4 -2
- package/dist/acp/session-contracts.d.ts.map +1 -1
- package/dist/acp/session-contracts.js.map +1 -1
- package/dist/acp/session-event-store-v2.d.ts +9 -8
- package/dist/acp/session-event-store-v2.d.ts.map +1 -1
- package/dist/acp/session-event-store-v2.js +59 -25
- package/dist/acp/session-event-store-v2.js.map +1 -1
- package/dist/acp/session-history.d.ts +3 -3
- package/dist/acp/session-history.d.ts.map +1 -1
- package/dist/acp/session-history.js +2 -1
- package/dist/acp/session-history.js.map +1 -1
- package/dist/acp/session-store.d.ts.map +1 -1
- package/dist/acp/session-store.js +2 -3
- package/dist/acp/session-store.js.map +1 -1
- package/dist/cli.js +99 -56
- package/dist/cli.js.map +4 -4
- package/dist/daemon-history-commands.d.ts.map +1 -1
- package/dist/daemon-history-commands.js +2 -2
- package/dist/daemon-history-commands.js.map +1 -1
- package/dist/daemon-observers.d.ts +3 -2
- package/dist/daemon-observers.d.ts.map +1 -1
- package/dist/daemon-observers.js.map +1 -1
- package/dist/index.js +96 -53
- package/dist/index.js.map +4 -4
- package/dist/relay-connection/session-event-publisher.d.ts +1 -1
- package/dist/relay-connection/session-event-publisher.js +1 -1
- package/dist/run-daemon.d.ts.map +1 -1
- package/dist/run-daemon.js +2 -3
- package/dist/run-daemon.js.map +1 -1
- package/dist/runtime.js +101 -58
- package/dist/runtime.js.map +4 -4
- package/dist/session-event-log-v2.d.ts +5 -5
- package/dist/session-event-log-v2.d.ts.map +1 -1
- package/dist/session-event-log-v2.js +6 -9
- package/dist/session-event-log-v2.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ContentBlockV2, PromptExecutionContextV2, QueuedPromptRequestEventLogV2, SessionEventPayloadV2, SessionEventV2, SessionPromptCommand } from "@moxt-ai/mobius-protocol";
|
|
2
|
+
import type { AcpSessionEventPositionV2 } from "./acp/session-event-store-v2.ts";
|
|
2
3
|
import type { DaemonSessionEventPublisher } from "./relay-connection/session-event-publisher.ts";
|
|
3
4
|
export interface PromptRequestRecoveryV2 {
|
|
4
5
|
readonly queuedPromptRequests: readonly QueuedPromptRequestEventLogV2[];
|
|
5
6
|
}
|
|
6
|
-
export declare function sessionEventV2(
|
|
7
|
+
export declare function sessionEventV2(sessionGenerationId: string, sessionId: string, position: number, event: SessionEventPayloadV2, recordedAt: string): SessionEventV2;
|
|
7
8
|
export declare class DaemonSessionEventLogV2 {
|
|
8
9
|
#private;
|
|
9
|
-
|
|
10
|
-
constructor(publisher: DaemonSessionEventPublisher, recordLifecycle: (sessionId: string, event: SessionEventPayloadV2) => Promise<boolean>, daemonGenerationId?: string);
|
|
10
|
+
constructor(publisher: DaemonSessionEventPublisher, recordLifecycle: (sessionId: string, event: SessionEventPayloadV2) => Promise<boolean>);
|
|
11
11
|
readonly requested: (command: SessionPromptCommand) => void;
|
|
12
12
|
readonly started: (sessionId: string, commandId: string, attemptId: string, epoch: string) => {
|
|
13
13
|
readonly attemptId: string;
|
|
@@ -15,9 +15,9 @@ export declare class DaemonSessionEventLogV2 {
|
|
|
15
15
|
readonly epoch: string;
|
|
16
16
|
readonly context: PromptExecutionContextV2;
|
|
17
17
|
};
|
|
18
|
-
readonly record: (sessionId: string, event: SessionEventPayloadV2, position:
|
|
18
|
+
readonly record: (sessionId: string, event: SessionEventPayloadV2, position: AcpSessionEventPositionV2) => void;
|
|
19
19
|
readonly publishTerminal: (sessionId: string, commandId: string) => void;
|
|
20
|
-
readonly event: (sessionId: string, position: number, event: SessionEventPayloadV2, recordedAt: string) => SessionEventV2;
|
|
20
|
+
readonly event: (sessionId: string, sessionGenerationId: string, position: number, event: SessionEventPayloadV2, recordedAt: string) => SessionEventV2;
|
|
21
21
|
readonly queueChanged: (sessionId: string) => Promise<void>;
|
|
22
22
|
readonly completed: (sessionId: string, commandId: string, stopReason: string) => Promise<void>;
|
|
23
23
|
readonly failed: (sessionId: string, commandId: string, code: string, message: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-event-log-v2.d.ts","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-event-log-v2.d.ts","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAcjG,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC3E;AA4BD,wBAAgB,cAAc,CAC1B,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,MAAM,GACnB,cAAc,CAUhB;AAED,qBAAa,uBAAuB;;IAOhC,YACI,SAAS,EAAE,2BAA2B,EACtC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,EAIzF;IAED,QAAQ,CAAC,SAAS,YAAa,oBAAoB,KAAG,IAAI,CAYxD;IAEF,QAAQ,CAAC,OAAO,cACD,MAAM,aACN,MAAM,aACN,MAAM,SACV,MAAM,KACd;QACC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;QAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;KAC9C,CAOC;IAEF,QAAQ,CAAC,MAAM,cAAe,MAAM,SAAS,qBAAqB,YAAY,yBAAyB,KAAG,IAAI,CA2B5G;IAEF,QAAQ,CAAC,eAAe,cAAe,MAAM,aAAa,MAAM,KAAG,IAAI,CAyBrE;IAEF,QAAQ,CAAC,KAAK,cACC,MAAM,uBACI,MAAM,YACjB,MAAM,SACT,qBAAqB,cAChB,MAAM,KACnB,cAAc,CAAgF;IAEjG,QAAQ,CAAC,YAAY,cAAqB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAK9D;IAEF,QAAQ,CAAC,SAAS,cAAqB,MAAM,aAAa,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAiBlG;IAEF,QAAQ,CAAC,MAAM,cAAqB,MAAM,aAAa,MAAM,QAAQ,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAY1G;IAEF,QAAQ,CAAC,qBAAqB,cAAe,MAAM,KAAG,uBAAuB,CAI1E;CACN"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createHash, randomUUID } from "node:crypto";
|
|
2
1
|
function promptContent(command) {
|
|
3
2
|
const content = [];
|
|
4
3
|
if (command.prompt.length > 0) {
|
|
@@ -22,28 +21,26 @@ function promptContent(command) {
|
|
|
22
21
|
}
|
|
23
22
|
return content;
|
|
24
23
|
}
|
|
25
|
-
export function sessionEventV2(
|
|
26
|
-
const sessionPrefix = createHash("sha256").update(sessionId).digest("hex").slice(0, 16);
|
|
24
|
+
export function sessionEventV2(sessionGenerationId, sessionId, position, event, recordedAt) {
|
|
27
25
|
return {
|
|
28
|
-
eventId: `event-${
|
|
26
|
+
eventId: `event-${sessionGenerationId}-${position.toString().padStart(16, "0")}`,
|
|
29
27
|
...event,
|
|
30
28
|
position: position.toString(),
|
|
31
29
|
provenance: { kind: "original" },
|
|
32
30
|
recordedAt,
|
|
31
|
+
sessionGenerationId,
|
|
33
32
|
sessionId,
|
|
34
33
|
};
|
|
35
34
|
}
|
|
36
35
|
export class DaemonSessionEventLogV2 {
|
|
37
|
-
daemonGenerationId;
|
|
38
36
|
#publisher;
|
|
39
37
|
#terminal = new Map();
|
|
40
38
|
#publications = new Map();
|
|
41
39
|
#queued = new Map();
|
|
42
40
|
#recordLifecycle;
|
|
43
|
-
constructor(publisher, recordLifecycle
|
|
41
|
+
constructor(publisher, recordLifecycle) {
|
|
44
42
|
this.#recordLifecycle = recordLifecycle;
|
|
45
43
|
this.#publisher = publisher;
|
|
46
|
-
this.daemonGenerationId = daemonGenerationId;
|
|
47
44
|
}
|
|
48
45
|
requested = (command) => {
|
|
49
46
|
this.#queued.set(command.commandId, {
|
|
@@ -67,7 +64,7 @@ export class DaemonSessionEventLogV2 {
|
|
|
67
64
|
throw new Error("The executing prompt was not registered in the V2 queue");
|
|
68
65
|
};
|
|
69
66
|
record = (sessionId, event, position) => {
|
|
70
|
-
const recorded = this.event(sessionId, position, event, new Date().toISOString());
|
|
67
|
+
const recorded = this.event(sessionId, position.sessionGenerationId, position.position, event, new Date().toISOString());
|
|
71
68
|
if (event.type === "lifecycle-metadata" &&
|
|
72
69
|
(event.payload.kind === "prompt.completed" ||
|
|
73
70
|
event.payload.kind === "prompt.failed" ||
|
|
@@ -111,7 +108,7 @@ export class DaemonSessionEventLogV2 {
|
|
|
111
108
|
}
|
|
112
109
|
this.#queued.delete(commandId);
|
|
113
110
|
};
|
|
114
|
-
event = (sessionId, position, event, recordedAt) => sessionEventV2(
|
|
111
|
+
event = (sessionId, sessionGenerationId, position, event, recordedAt) => sessionEventV2(sessionGenerationId, sessionId, position, event, recordedAt);
|
|
115
112
|
queueChanged = async (sessionId) => {
|
|
116
113
|
await this.#recordLifecycle(sessionId, {
|
|
117
114
|
type: "lifecycle-metadata",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-event-log-v2.js","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-event-log-v2.js","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"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"}
|