@moxt-ai/mobius 0.0.161 → 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/authorization/workspace-directory.d.ts.map +1 -1
- package/dist/authorization/workspace-directory.js +9 -2
- package/dist/authorization/workspace-directory.js.map +1 -1
- package/dist/cli.js +27 -69
- package/dist/cli.js.map +3 -3
- package/dist/index.js +26 -68
- 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 +26 -68
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-directory.d.ts","sourceRoot":"","sources":["../../src/authorization/workspace-directory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,qBAAa,yBAAyB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,YACI,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,iBAAiB,EAAE,MAAM,EAM5B;CACJ;
|
|
1
|
+
{"version":3,"file":"workspace-directory.d.ts","sourceRoot":"","sources":["../../src/authorization/workspace-directory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,qBAAa,yBAAyB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,YACI,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,iBAAiB,EAAE,MAAM,EAM5B;CACJ;AAmCD;sEACsE;AACtE,qBAAa,yBAAyB;;IAIlC,YAAY,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAGtD;IAED,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAI/B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAc5B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAuB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CASpB;IAEF,QAAQ,CAAC,QAAQ,cACF,MAAM,iBACF,MAAM,UACb,WAAW,KACpB,OAAO,CAAC;QACP,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KAC1B,CAAC,CASA;IAEF,QAAQ,CAAC,OAAO,cAAqB,MAAM,MAAM,MAAM,UAAU,WAAW,KAAG,OAAO,CAAC,MAAM,CAAC,CAG5F;IAEF,QAAQ,CAAC,IAAI,cAAqB,MAAM,MAAM,MAAM,UAAU,WAAW,KAAG,OAAO,CAAC,yBAAyB,CAAC,CA4C5G;IAEF,QAAQ,CAAC,WAAW,cACL,MAAM,OACZ,SAAS,MAAM,EAAE,UACd,WAAW,KACpB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAM3B;CACL"}
|
|
@@ -21,15 +21,22 @@ function encodePath(path) {
|
|
|
21
21
|
}
|
|
22
22
|
return `path-${encoded}`;
|
|
23
23
|
}
|
|
24
|
+
function expandCurrentUserHome(path) {
|
|
25
|
+
// Adapted from https://github.com/sindresorhus/untildify/blob/main/index.js.
|
|
26
|
+
return path.replace(/^~(?=$|\/|\\)/, homedir());
|
|
27
|
+
}
|
|
24
28
|
function decodePath(value, prefix) {
|
|
25
29
|
const encoded = value.slice(prefix.length);
|
|
26
30
|
if (encoded.length === 0 || encoded.length > 2_000 || !/^[a-zA-Z0-9_-]+$/.test(encoded)) {
|
|
27
31
|
throw new LocalAuthorizationError("The directory identifier is invalid");
|
|
28
32
|
}
|
|
29
33
|
const decoded = Buffer.from(encoded, "base64url").toString("utf8");
|
|
34
|
+
const normalized = process.platform === "win32" && decoded.startsWith("~/")
|
|
35
|
+
? normalize(decoded).replaceAll("\\", "/")
|
|
36
|
+
: normalize(decoded);
|
|
30
37
|
if (Buffer.from(decoded, "utf8").toString("base64url") !== encoded ||
|
|
31
38
|
decoded.includes("\0") ||
|
|
32
|
-
|
|
39
|
+
normalized !== decoded) {
|
|
33
40
|
throw new LocalAuthorizationError("The directory identifier is invalid");
|
|
34
41
|
}
|
|
35
42
|
return decoded;
|
|
@@ -56,7 +63,7 @@ export class WorkspaceDirectoryService {
|
|
|
56
63
|
return homedir();
|
|
57
64
|
}
|
|
58
65
|
if (id.startsWith("path-")) {
|
|
59
|
-
const path = decodePath(id, "path-");
|
|
66
|
+
const path = expandCurrentUserHome(decodePath(id, "path-"));
|
|
60
67
|
if (isAbsolute(path)) {
|
|
61
68
|
return path;
|
|
62
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-directory.js","sourceRoot":"","sources":["../../src/authorization/workspace-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,MAAM,OAAO,yBAAyB;IACzB,WAAW,CAAS;IACpB,cAAc,CAAS;IACvB,OAAO,CAA4B;IACnC,iBAAiB,CAAS;IACnC,YACI,WAAmB,EACnB,cAAsB,EACtB,OAAkC,EAClC,iBAAyB;QAEzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;CACJ;AAED,SAAS,UAAU,CAAC,IAAY;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QACjD,MAAM,IAAI,uBAAuB,CAAC,gDAAgD,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,QAAQ,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,MAAc;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,uBAAuB,CAAC,qCAAqC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnE,IACI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO;QAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,
|
|
1
|
+
{"version":3,"file":"workspace-directory.js","sourceRoot":"","sources":["../../src/authorization/workspace-directory.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -3381,7 +3381,7 @@ var program = new Command();
|
|
|
3381
3381
|
// package.json
|
|
3382
3382
|
var package_default = {
|
|
3383
3383
|
name: "@moxt-ai/mobius",
|
|
3384
|
-
version: "0.0.
|
|
3384
|
+
version: "0.0.163",
|
|
3385
3385
|
description: "Mobius CLI for pairing and running local AI agent services.",
|
|
3386
3386
|
type: "module",
|
|
3387
3387
|
bin: {
|
|
@@ -42350,13 +42350,17 @@ function encodePath(path3) {
|
|
|
42350
42350
|
}
|
|
42351
42351
|
return `path-${encoded}`;
|
|
42352
42352
|
}
|
|
42353
|
+
function expandCurrentUserHome(path3) {
|
|
42354
|
+
return path3.replace(/^~(?=$|\/|\\)/, homedir2());
|
|
42355
|
+
}
|
|
42353
42356
|
function decodePath(value, prefix) {
|
|
42354
42357
|
const encoded = value.slice(prefix.length);
|
|
42355
42358
|
if (encoded.length === 0 || encoded.length > 2e3 || !/^[a-zA-Z0-9_-]+$/.test(encoded)) {
|
|
42356
42359
|
throw new LocalAuthorizationError("The directory identifier is invalid");
|
|
42357
42360
|
}
|
|
42358
42361
|
const decoded = Buffer.from(encoded, "base64url").toString("utf8");
|
|
42359
|
-
|
|
42362
|
+
const normalized = process.platform === "win32" && decoded.startsWith("~/") ? normalize3(decoded).replaceAll("\\", "/") : normalize3(decoded);
|
|
42363
|
+
if (Buffer.from(decoded, "utf8").toString("base64url") !== encoded || decoded.includes("\0") || normalized !== decoded) {
|
|
42360
42364
|
throw new LocalAuthorizationError("The directory identifier is invalid");
|
|
42361
42365
|
}
|
|
42362
42366
|
return decoded;
|
|
@@ -42381,7 +42385,7 @@ var WorkspaceDirectoryService = class {
|
|
|
42381
42385
|
return homedir2();
|
|
42382
42386
|
}
|
|
42383
42387
|
if (id.startsWith("path-")) {
|
|
42384
|
-
const path3 = decodePath(id, "path-");
|
|
42388
|
+
const path3 = expandCurrentUserHome(decodePath(id, "path-"));
|
|
42385
42389
|
if (isAbsolute9(path3)) {
|
|
42386
42390
|
return path3;
|
|
42387
42391
|
}
|
|
@@ -47756,6 +47760,10 @@ import { WebSocket as WebSocket9 } from "undici";
|
|
|
47756
47760
|
var MAX_BUFFERED_BYTES = 32 * 1024 * 1024;
|
|
47757
47761
|
var DaemonSessionEventPublisher = class {
|
|
47758
47762
|
#socket = null;
|
|
47763
|
+
#store;
|
|
47764
|
+
constructor(store) {
|
|
47765
|
+
this.#store = store;
|
|
47766
|
+
}
|
|
47759
47767
|
connect = (socket) => {
|
|
47760
47768
|
this.#socket = socket;
|
|
47761
47769
|
};
|
|
@@ -47792,6 +47800,7 @@ var DaemonSessionEventPublisher = class {
|
|
|
47792
47800
|
}
|
|
47793
47801
|
};
|
|
47794
47802
|
publishV2 = (event) => {
|
|
47803
|
+
this.#store.appendExecutingPromptEventV2(event);
|
|
47795
47804
|
const socket = this.#socket;
|
|
47796
47805
|
if (socket === null || socket.readyState !== WebSocket9.OPEN) {
|
|
47797
47806
|
return;
|
|
@@ -47819,15 +47828,6 @@ var systemDaemonTimer = new SystemDaemonTimer();
|
|
|
47819
47828
|
|
|
47820
47829
|
// src/session-event-log-v2.ts
|
|
47821
47830
|
var EXECUTING_PROMPT_EVENT_LIMIT = 1e4;
|
|
47822
|
-
function eventArray(tail) {
|
|
47823
|
-
const reversed = [];
|
|
47824
|
-
let node2 = tail;
|
|
47825
|
-
while (node2 !== null) {
|
|
47826
|
-
reversed.push(node2.event);
|
|
47827
|
-
node2 = node2.previous;
|
|
47828
|
-
}
|
|
47829
|
-
return reversed.reverse();
|
|
47830
|
-
}
|
|
47831
47831
|
function promptContent(command) {
|
|
47832
47832
|
const content = [];
|
|
47833
47833
|
if (command.prompt.length > 0) {
|
|
@@ -47875,37 +47875,18 @@ var DaemonSessionEventLogV2 = class {
|
|
|
47875
47875
|
}
|
|
47876
47876
|
for (const event of this.#loadStoredEvents(sessionId)) {
|
|
47877
47877
|
if (event.type === "acp") {
|
|
47878
|
-
const executing = [...this.#requests.values()].find(
|
|
47879
|
-
(request) => request.sessionId === sessionId && request.kind === "executing"
|
|
47880
|
-
);
|
|
47881
|
-
if (executing !== void 0) {
|
|
47882
|
-
this.#requests.set(executing.commandId, {
|
|
47883
|
-
...executing,
|
|
47884
|
-
eventTail: { event, previous: executing.eventTail }
|
|
47885
|
-
});
|
|
47886
|
-
}
|
|
47887
47878
|
continue;
|
|
47888
47879
|
}
|
|
47889
47880
|
const payload = event.payload;
|
|
47890
47881
|
if (payload.kind === "prompt.requested") {
|
|
47891
47882
|
this.#requests.set(payload.commandId, {
|
|
47892
47883
|
commandId: payload.commandId,
|
|
47893
|
-
eventTail: { event, previous: null },
|
|
47894
47884
|
kind: "requested",
|
|
47895
47885
|
sessionId
|
|
47896
47886
|
});
|
|
47897
47887
|
continue;
|
|
47898
47888
|
}
|
|
47899
47889
|
if ("event" in payload) {
|
|
47900
|
-
const executing = [...this.#requests.values()].find(
|
|
47901
|
-
(request) => request.sessionId === sessionId && request.kind === "executing"
|
|
47902
|
-
);
|
|
47903
|
-
if (executing !== void 0) {
|
|
47904
|
-
this.#requests.set(executing.commandId, {
|
|
47905
|
-
...executing,
|
|
47906
|
-
eventTail: { event, previous: executing.eventTail }
|
|
47907
|
-
});
|
|
47908
|
-
}
|
|
47909
47890
|
continue;
|
|
47910
47891
|
}
|
|
47911
47892
|
if (!("commandId" in payload)) {
|
|
@@ -47920,7 +47901,6 @@ var DaemonSessionEventLogV2 = class {
|
|
|
47920
47901
|
attemptId: payload.attemptId,
|
|
47921
47902
|
commandId: payload.commandId,
|
|
47922
47903
|
epoch: payload.epoch,
|
|
47923
|
-
eventTail: { event, previous: state.eventTail },
|
|
47924
47904
|
kind: "executing",
|
|
47925
47905
|
sessionId
|
|
47926
47906
|
});
|
|
@@ -47941,19 +47921,18 @@ var DaemonSessionEventLogV2 = class {
|
|
|
47941
47921
|
recordedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
47942
47922
|
sessionId
|
|
47943
47923
|
};
|
|
47944
|
-
this.#positions.set(sessionId, position);
|
|
47945
47924
|
this.#publisher.publishV2(event);
|
|
47925
|
+
this.#positions.set(sessionId, position);
|
|
47946
47926
|
return event;
|
|
47947
47927
|
};
|
|
47948
47928
|
requested = (command) => {
|
|
47949
47929
|
const content = promptContent(command);
|
|
47950
|
-
|
|
47930
|
+
this.#append(command.sessionId, {
|
|
47951
47931
|
payload: { commandId: command.commandId, content, kind: "prompt.requested" },
|
|
47952
47932
|
type: "lifecycle-metadata"
|
|
47953
47933
|
});
|
|
47954
47934
|
this.#requests.set(command.commandId, {
|
|
47955
47935
|
commandId: command.commandId,
|
|
47956
|
-
eventTail: { event, previous: null },
|
|
47957
47936
|
kind: "requested",
|
|
47958
47937
|
sessionId: command.sessionId
|
|
47959
47938
|
});
|
|
@@ -47964,7 +47943,7 @@ var DaemonSessionEventLogV2 = class {
|
|
|
47964
47943
|
if (request?.sessionId !== sessionId) {
|
|
47965
47944
|
return;
|
|
47966
47945
|
}
|
|
47967
|
-
|
|
47946
|
+
this.#append(sessionId, {
|
|
47968
47947
|
payload: { attemptId, commandId, epoch, kind: "prompt.started" },
|
|
47969
47948
|
type: "lifecycle-metadata"
|
|
47970
47949
|
});
|
|
@@ -47972,56 +47951,39 @@ var DaemonSessionEventLogV2 = class {
|
|
|
47972
47951
|
attemptId,
|
|
47973
47952
|
commandId,
|
|
47974
47953
|
epoch,
|
|
47975
|
-
eventTail: { event, previous: request.eventTail },
|
|
47976
47954
|
kind: "executing",
|
|
47977
47955
|
sessionId
|
|
47978
47956
|
});
|
|
47979
|
-
this.#store.startExecutingPromptEventsV2(sessionId, eventArray({ event, previous: request.eventTail }));
|
|
47980
47957
|
};
|
|
47981
47958
|
record = (sessionId, payload) => {
|
|
47982
47959
|
this.#loadRequests(sessionId);
|
|
47983
|
-
|
|
47984
|
-
this.#appendToExecutingRequest(sessionId, event);
|
|
47960
|
+
this.#append(sessionId, payload);
|
|
47985
47961
|
};
|
|
47986
|
-
#
|
|
47987
|
-
|
|
47988
|
-
(
|
|
47989
|
-
);
|
|
47990
|
-
if (executing !== void 0) {
|
|
47991
|
-
this.#requests.set(executing.commandId, {
|
|
47992
|
-
...executing,
|
|
47993
|
-
eventTail: { event, previous: executing.eventTail }
|
|
47994
|
-
});
|
|
47995
|
-
this.#store.appendExecutingPromptEventV2(event);
|
|
47962
|
+
#clearCompletedSession = (sessionId) => {
|
|
47963
|
+
if (![...this.#requests.values()].some((request) => request.sessionId === sessionId)) {
|
|
47964
|
+
this.#store.clearExecutingPromptEventsV2(sessionId);
|
|
47996
47965
|
}
|
|
47997
47966
|
};
|
|
47998
47967
|
queueChanged = (sessionId) => {
|
|
47999
|
-
|
|
47968
|
+
this.#append(sessionId, {
|
|
48000
47969
|
payload: { kind: "session.queue.changed" },
|
|
48001
47970
|
type: "lifecycle-metadata"
|
|
48002
47971
|
});
|
|
48003
|
-
this.#appendToExecutingRequest(sessionId, event);
|
|
48004
47972
|
};
|
|
48005
47973
|
completed = (sessionId, commandId, stopReason) => {
|
|
48006
47974
|
this.#loadRequests(sessionId);
|
|
48007
|
-
|
|
48008
|
-
const event = this.#append(sessionId, {
|
|
47975
|
+
this.#append(sessionId, {
|
|
48009
47976
|
payload: { commandId, kind: "prompt.completed", stopReason },
|
|
48010
47977
|
type: "lifecycle-metadata"
|
|
48011
47978
|
});
|
|
48012
47979
|
this.#requests.delete(commandId);
|
|
48013
|
-
|
|
48014
|
-
this.#store.clearExecutingPromptEventsV2(sessionId);
|
|
48015
|
-
} else {
|
|
48016
|
-
this.#appendToExecutingRequest(sessionId, event);
|
|
48017
|
-
}
|
|
47980
|
+
this.#clearCompletedSession(sessionId);
|
|
48018
47981
|
};
|
|
48019
47982
|
failed = (sessionId, commandId, code, message) => {
|
|
48020
47983
|
this.#loadRequests(sessionId);
|
|
48021
47984
|
const request = this.#requests.get(commandId);
|
|
48022
|
-
let event;
|
|
48023
47985
|
if (request?.kind === "executing" && request.commandId === commandId) {
|
|
48024
|
-
|
|
47986
|
+
this.#append(sessionId, {
|
|
48025
47987
|
payload: {
|
|
48026
47988
|
attemptId: request.attemptId,
|
|
48027
47989
|
code,
|
|
@@ -48032,17 +47994,13 @@ var DaemonSessionEventLogV2 = class {
|
|
|
48032
47994
|
type: "lifecycle-metadata"
|
|
48033
47995
|
});
|
|
48034
47996
|
} else {
|
|
48035
|
-
|
|
47997
|
+
this.#append(sessionId, {
|
|
48036
47998
|
payload: { code, commandId, kind: "prompt.failed-before-start", message },
|
|
48037
47999
|
type: "lifecycle-metadata"
|
|
48038
48000
|
});
|
|
48039
48001
|
}
|
|
48040
48002
|
this.#requests.delete(commandId);
|
|
48041
|
-
|
|
48042
|
-
this.#store.clearExecutingPromptEventsV2(sessionId);
|
|
48043
|
-
} else {
|
|
48044
|
-
this.#appendToExecutingRequest(sessionId, event);
|
|
48045
|
-
}
|
|
48003
|
+
this.#clearCompletedSession(sessionId);
|
|
48046
48004
|
};
|
|
48047
48005
|
executingPromptRequest = (sessionId) => {
|
|
48048
48006
|
this.#loadRequests(sessionId);
|
|
@@ -48052,7 +48010,7 @@ var DaemonSessionEventLogV2 = class {
|
|
|
48052
48010
|
if (request?.kind !== "executing") {
|
|
48053
48011
|
return null;
|
|
48054
48012
|
}
|
|
48055
|
-
const requestEvents =
|
|
48013
|
+
const requestEvents = this.#store.readExecutingPromptEventsV2(sessionId);
|
|
48056
48014
|
const events = requestEvents.slice(-EXECUTING_PROMPT_EVENT_LIMIT);
|
|
48057
48015
|
return {
|
|
48058
48016
|
attemptId: request.attemptId,
|
|
@@ -48135,7 +48093,7 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
|
|
|
48135
48093
|
join18(stateDirectory, "sessions", `${createHash7("sha256").update(config2.channelId).digest("hex")}.sqlite`)
|
|
48136
48094
|
);
|
|
48137
48095
|
const operations = new DaemonOperationState();
|
|
48138
|
-
const publisher = new DaemonSessionEventPublisher();
|
|
48096
|
+
const publisher = new DaemonSessionEventPublisher(sessionStore);
|
|
48139
48097
|
const eventLogV2 = new DaemonSessionEventLogV2(publisher, sessionStore);
|
|
48140
48098
|
const activeTurns = new DaemonTurnRegistry(operations);
|
|
48141
48099
|
const recordSessionEvent = (sessionId, event) => {
|