@moxt-ai/mobius 0.0.194 → 0.0.195
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 +105 -54
- package/dist/cli.js.map +3 -3
- package/dist/daemon-history-commands.d.ts.map +1 -1
- package/dist/daemon-history-commands.js +70 -29
- package/dist/daemon-history-commands.js.map +1 -1
- package/dist/index.js +105 -54
- package/dist/index.js.map +3 -3
- package/dist/runtime.js +105 -54
- package/dist/runtime.js.map +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-history-commands.d.ts","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,
|
|
1
|
+
{"version":3,"file":"daemon-history-commands.d.ts","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EAM3C,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAsFzE,wBAAsB,mCAAmC,CACrD,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,EAC9D,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,0BAA0B,EACvC,QAAQ,EAAE,mBAAmB,EAC7B,cAAc,EAAE,oBAAoB,EACpC,UAAU,EAAE,uBAAuB,EACnC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED,wBAAsB,oCAAoC,CACtD,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,CAAC,OAAO,mCAAmC,CAAC,EAC/D,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,0BAA0B,EACvC,QAAQ,EAAE,mBAAmB,EAC7B,UAAU,EAAE,uBAAuB,EACnC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
|
|
@@ -3,6 +3,70 @@ import { AcpExecutionError } from "./acp/agent-runtime-manager.js";
|
|
|
3
3
|
import { resolveSessionDirectories } from "./authorization/resolve-session-directories.js";
|
|
4
4
|
import { operationErrorCode, reportOperationFailure, send } from "./daemon-command-results.js";
|
|
5
5
|
import { resolveCatalogAgent } from "./daemon-session-commands.js";
|
|
6
|
+
function isAgentReasoning(event) {
|
|
7
|
+
return event?.type === "acp" && event.payload.sessionUpdate === "agent_thought_chunk";
|
|
8
|
+
}
|
|
9
|
+
function omitAgentReasoning(events) {
|
|
10
|
+
const retained = [];
|
|
11
|
+
let previousReasoningMessageId;
|
|
12
|
+
for (const event of events) {
|
|
13
|
+
if (event.type !== "acp" || event.payload.sessionUpdate !== "agent_thought_chunk") {
|
|
14
|
+
previousReasoningMessageId = undefined;
|
|
15
|
+
retained.push(event);
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const messageId = event.payload.messageId ?? null;
|
|
19
|
+
if (previousReasoningMessageId === undefined || previousReasoningMessageId !== messageId) {
|
|
20
|
+
retained.push({
|
|
21
|
+
...event,
|
|
22
|
+
mobiusMetadata: { omitted: true },
|
|
23
|
+
payload: { ...event.payload, content: { text: "", type: "text" } },
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
previousReasoningMessageId = messageId;
|
|
27
|
+
}
|
|
28
|
+
return retained;
|
|
29
|
+
}
|
|
30
|
+
async function loadHistoryPage(sessionId, eventLimit, initialCursor, omitReasoning, queuedPromptRequests, load, eventLogV2) {
|
|
31
|
+
let cursor = initialCursor;
|
|
32
|
+
let loaded = [];
|
|
33
|
+
let sessionGenerationId = null;
|
|
34
|
+
let sourceNextCursor = null;
|
|
35
|
+
do {
|
|
36
|
+
const replay = await load(eventLimit, cursor);
|
|
37
|
+
if (sessionGenerationId !== null && replay.sessionGenerationId !== sessionGenerationId) {
|
|
38
|
+
throw new AcpExecutionError("The Session reloaded while history was loading", {}, "session_reloaded");
|
|
39
|
+
}
|
|
40
|
+
sessionGenerationId = replay.sessionGenerationId;
|
|
41
|
+
const events = replay.events.map((event, index) => eventLogV2.event(sessionId, replay.sessionGenerationId, replay.startPosition + index, event, "1970-01-01T00:00:00.000Z"));
|
|
42
|
+
loaded = [...events, ...loaded];
|
|
43
|
+
sourceNextCursor = replay.nextCursor;
|
|
44
|
+
const visible = omitReasoning ? omitAgentReasoning(loaded) : loaded;
|
|
45
|
+
const reasoningContinuesBeforePage = sourceNextCursor !== null && isAgentReasoning(loaded[0]);
|
|
46
|
+
if (visible.length >= eventLimit && !reasoningContinuesBeforePage) {
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
cursor = sourceNextCursor;
|
|
50
|
+
} while (cursor !== null);
|
|
51
|
+
if (sessionGenerationId === null) {
|
|
52
|
+
throw new AcpExecutionError("The Session history is unavailable", {}, "session_history_unavailable");
|
|
53
|
+
}
|
|
54
|
+
const visible = omitReasoning ? omitAgentReasoning(loaded) : loaded;
|
|
55
|
+
const events = visible.slice(-eventLimit);
|
|
56
|
+
const firstPosition = events[0] === undefined ? 0 : Number(events[0].position);
|
|
57
|
+
const nextCursor = firstPosition <= 1 ? null : (firstPosition - 1).toString();
|
|
58
|
+
return {
|
|
59
|
+
events: {
|
|
60
|
+
events,
|
|
61
|
+
nextCursor,
|
|
62
|
+
sessionGenerationId,
|
|
63
|
+
tailCursor: events.at(-1)?.eventId ?? "",
|
|
64
|
+
truncated: nextCursor !== null,
|
|
65
|
+
version: 2,
|
|
66
|
+
},
|
|
67
|
+
queuedPromptRequests,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
6
70
|
export async function executeSessionLiveHistoryV2PageLoad(socket, command, config, directories, audit, diagnostics, sessions, nativeSessions, eventLogV2, signal) {
|
|
7
71
|
let agentId;
|
|
8
72
|
try {
|
|
@@ -20,27 +84,15 @@ export async function executeSessionLiveHistoryV2PageLoad(socket, command, confi
|
|
|
20
84
|
signal,
|
|
21
85
|
};
|
|
22
86
|
const recovery = eventLogV2.promptRequestRecovery(command.sessionId);
|
|
23
|
-
const
|
|
87
|
+
const events = await loadHistoryPage(command.sessionId, command.eventLimit, command.cursor, command.omit?.includes("agent-reasoning") === true, recovery.queuedPromptRequests, async (eventLimit, cursor) => await sessions.loadSessionEventsV2(loadOptions, eventLimit, cursor), eventLogV2);
|
|
24
88
|
signal.throwIfAborted();
|
|
25
|
-
const events = replay.events.map((event, index) => eventLogV2.event(command.sessionId, replay.sessionGenerationId, replay.startPosition + index, event, "1970-01-01T00:00:00.000Z"));
|
|
26
|
-
const tailCursor = events.at(-1)?.eventId ?? "";
|
|
27
89
|
audit.record({
|
|
28
90
|
commandId: command.requestId,
|
|
29
91
|
event: "session_event_log_v2_loaded",
|
|
30
92
|
sessionId: command.sessionId,
|
|
31
93
|
});
|
|
32
94
|
send(socket, {
|
|
33
|
-
events
|
|
34
|
-
events: {
|
|
35
|
-
events,
|
|
36
|
-
nextCursor: replay.nextCursor,
|
|
37
|
-
sessionGenerationId: replay.sessionGenerationId,
|
|
38
|
-
tailCursor,
|
|
39
|
-
truncated: replay.truncated,
|
|
40
|
-
version: 2,
|
|
41
|
-
},
|
|
42
|
-
queuedPromptRequests: recovery.queuedPromptRequests,
|
|
43
|
-
},
|
|
95
|
+
events,
|
|
44
96
|
kind: SESSION_LIVE_HISTORY_V2_PAGE_LOADED_KIND,
|
|
45
97
|
requestId: command.requestId,
|
|
46
98
|
sessionId: command.sessionId,
|
|
@@ -69,33 +121,22 @@ export async function executeSessionLiveHistoryV2PageLoad(socket, command, confi
|
|
|
69
121
|
export async function executeSessionPreviewHistoryPageLoad(socket, command, config, directories, audit, diagnostics, sessions, eventLogV2, signal) {
|
|
70
122
|
try {
|
|
71
123
|
const resolved = await resolveSessionDirectories(directories, config.bindingId, command.directoryId, command.additionalDirectoryIds, signal);
|
|
72
|
-
const
|
|
124
|
+
const loadOptions = {
|
|
73
125
|
additionalDirectories: resolved.additionalDirectories,
|
|
74
126
|
agent: await resolveCatalogAgent(config, command.agentId, signal),
|
|
75
127
|
cwd: resolved.cwd,
|
|
76
128
|
sessionId: command.sessionId,
|
|
77
129
|
signal,
|
|
78
|
-
}
|
|
130
|
+
};
|
|
131
|
+
const events = await loadHistoryPage(command.sessionId, command.eventLimit, command.cursor, command.omit?.includes("agent-reasoning") === true, [], async (eventLimit, cursor) => await sessions.previewNativeSessionEventsV2(loadOptions, command.sessionId, eventLimit, cursor), eventLogV2);
|
|
79
132
|
signal.throwIfAborted();
|
|
80
|
-
const events = replay.events.map((event, index) => eventLogV2.event(command.sessionId, replay.sessionGenerationId, replay.startPosition + index, event, "1970-01-01T00:00:00.000Z"));
|
|
81
|
-
const tailCursor = events.at(-1)?.eventId ?? "";
|
|
82
133
|
audit.record({
|
|
83
134
|
commandId: command.requestId,
|
|
84
135
|
event: "session_event_log_v2_loaded",
|
|
85
136
|
sessionId: command.sessionId,
|
|
86
137
|
});
|
|
87
138
|
send(socket, {
|
|
88
|
-
events
|
|
89
|
-
events: {
|
|
90
|
-
events,
|
|
91
|
-
nextCursor: replay.nextCursor,
|
|
92
|
-
sessionGenerationId: replay.sessionGenerationId,
|
|
93
|
-
tailCursor,
|
|
94
|
-
truncated: replay.truncated,
|
|
95
|
-
version: 2,
|
|
96
|
-
},
|
|
97
|
-
queuedPromptRequests: [],
|
|
98
|
-
},
|
|
139
|
+
events,
|
|
99
140
|
kind: SESSION_PREVIEW_HISTORY_PAGE_LOADED_KIND,
|
|
100
141
|
requestId: command.requestId,
|
|
101
142
|
sessionId: command.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-history-commands.js","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"daemon-history-commands.js","sourceRoot":"","sources":["../src/daemon-history-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -21353,6 +21353,7 @@ var provenanceSchema = external_exports.discriminatedUnion("kind", [
|
|
|
21353
21353
|
]);
|
|
21354
21354
|
var sessionEventFieldsV2 = {
|
|
21355
21355
|
eventId: identifierStringSchema,
|
|
21356
|
+
mobiusMetadata: external_exports.object({ omitted: external_exports.literal(true).optional() }).readonly().optional(),
|
|
21356
21357
|
position: positionSchema,
|
|
21357
21358
|
provenance: provenanceSchema,
|
|
21358
21359
|
recordedAt: external_exports.iso.datetime({ offset: true }),
|
|
@@ -21419,7 +21420,12 @@ var sessionEventLogPageV2Schema = external_exports.object({
|
|
|
21419
21420
|
truncated: external_exports.boolean(),
|
|
21420
21421
|
version: external_exports.literal(2)
|
|
21421
21422
|
}).readonly();
|
|
21422
|
-
var
|
|
21423
|
+
var sessionEventOmissionV2Schema = external_exports.literal("agent-reasoning");
|
|
21424
|
+
var nativeEventPageRequestV2Schema = external_exports.object({
|
|
21425
|
+
cursor: external_exports.string().min(1).max(512).nullable(),
|
|
21426
|
+
eventLimit: external_exports.number().int().min(1).max(1e4),
|
|
21427
|
+
omit: external_exports.array(sessionEventOmissionV2Schema).max(1).readonly().optional()
|
|
21428
|
+
}).readonly();
|
|
21423
21429
|
var queuedPromptRequestEventLogV2Schema = external_exports.object({
|
|
21424
21430
|
commandId: identifierStringSchema,
|
|
21425
21431
|
content: external_exports.array(contentBlockV2Schema).min(1).max(100).readonly(),
|
|
@@ -21466,6 +21472,7 @@ var directoryIdentifier = external_exports.string().regex(/^[a-zA-Z0-9][a-zA-Z0-
|
|
|
21466
21472
|
var pageRequestFields = {
|
|
21467
21473
|
cursor: external_exports.string().min(1).max(512).nullable(),
|
|
21468
21474
|
eventLimit: external_exports.number().int().min(1).max(1e4),
|
|
21475
|
+
omit: external_exports.array(sessionEventOmissionV2Schema).max(1).readonly().optional(),
|
|
21469
21476
|
requestId: identifierStringSchema,
|
|
21470
21477
|
sessionId: identifierStringSchema
|
|
21471
21478
|
};
|
|
@@ -41658,7 +41665,7 @@ import { WebSocket as WebSocket5 } from "undici";
|
|
|
41658
41665
|
// package.json
|
|
41659
41666
|
var package_default = {
|
|
41660
41667
|
name: "@moxt-ai/mobius",
|
|
41661
|
-
version: "0.0.
|
|
41668
|
+
version: "0.0.195",
|
|
41662
41669
|
description: "Mobius CLI for pairing and running local AI agent services.",
|
|
41663
41670
|
type: "module",
|
|
41664
41671
|
bin: {
|
|
@@ -42697,6 +42704,78 @@ async function executeSessionConfigure(socket, command, config2, directories, au
|
|
|
42697
42704
|
}
|
|
42698
42705
|
|
|
42699
42706
|
// src/daemon-history-commands.ts
|
|
42707
|
+
function isAgentReasoning(event) {
|
|
42708
|
+
return event?.type === "acp" && event.payload.sessionUpdate === "agent_thought_chunk";
|
|
42709
|
+
}
|
|
42710
|
+
function omitAgentReasoning(events) {
|
|
42711
|
+
const retained = [];
|
|
42712
|
+
let previousReasoningMessageId;
|
|
42713
|
+
for (const event of events) {
|
|
42714
|
+
if (event.type !== "acp" || event.payload.sessionUpdate !== "agent_thought_chunk") {
|
|
42715
|
+
previousReasoningMessageId = void 0;
|
|
42716
|
+
retained.push(event);
|
|
42717
|
+
continue;
|
|
42718
|
+
}
|
|
42719
|
+
const messageId = event.payload.messageId ?? null;
|
|
42720
|
+
if (previousReasoningMessageId === void 0 || previousReasoningMessageId !== messageId) {
|
|
42721
|
+
retained.push({
|
|
42722
|
+
...event,
|
|
42723
|
+
mobiusMetadata: { omitted: true },
|
|
42724
|
+
payload: { ...event.payload, content: { text: "", type: "text" } }
|
|
42725
|
+
});
|
|
42726
|
+
}
|
|
42727
|
+
previousReasoningMessageId = messageId;
|
|
42728
|
+
}
|
|
42729
|
+
return retained;
|
|
42730
|
+
}
|
|
42731
|
+
async function loadHistoryPage(sessionId, eventLimit, initialCursor, omitReasoning, queuedPromptRequests, load, eventLogV2) {
|
|
42732
|
+
let cursor = initialCursor;
|
|
42733
|
+
let loaded = [];
|
|
42734
|
+
let sessionGenerationId = null;
|
|
42735
|
+
let sourceNextCursor = null;
|
|
42736
|
+
do {
|
|
42737
|
+
const replay = await load(eventLimit, cursor);
|
|
42738
|
+
if (sessionGenerationId !== null && replay.sessionGenerationId !== sessionGenerationId) {
|
|
42739
|
+
throw new AcpExecutionError("The Session reloaded while history was loading", {}, "session_reloaded");
|
|
42740
|
+
}
|
|
42741
|
+
sessionGenerationId = replay.sessionGenerationId;
|
|
42742
|
+
const events2 = replay.events.map(
|
|
42743
|
+
(event, index2) => eventLogV2.event(
|
|
42744
|
+
sessionId,
|
|
42745
|
+
replay.sessionGenerationId,
|
|
42746
|
+
replay.startPosition + index2,
|
|
42747
|
+
event,
|
|
42748
|
+
"1970-01-01T00:00:00.000Z"
|
|
42749
|
+
)
|
|
42750
|
+
);
|
|
42751
|
+
loaded = [...events2, ...loaded];
|
|
42752
|
+
sourceNextCursor = replay.nextCursor;
|
|
42753
|
+
const visible2 = omitReasoning ? omitAgentReasoning(loaded) : loaded;
|
|
42754
|
+
const reasoningContinuesBeforePage = sourceNextCursor !== null && isAgentReasoning(loaded[0]);
|
|
42755
|
+
if (visible2.length >= eventLimit && !reasoningContinuesBeforePage) {
|
|
42756
|
+
break;
|
|
42757
|
+
}
|
|
42758
|
+
cursor = sourceNextCursor;
|
|
42759
|
+
} while (cursor !== null);
|
|
42760
|
+
if (sessionGenerationId === null) {
|
|
42761
|
+
throw new AcpExecutionError("The Session history is unavailable", {}, "session_history_unavailable");
|
|
42762
|
+
}
|
|
42763
|
+
const visible = omitReasoning ? omitAgentReasoning(loaded) : loaded;
|
|
42764
|
+
const events = visible.slice(-eventLimit);
|
|
42765
|
+
const firstPosition = events[0] === void 0 ? 0 : Number(events[0].position);
|
|
42766
|
+
const nextCursor = firstPosition <= 1 ? null : (firstPosition - 1).toString();
|
|
42767
|
+
return {
|
|
42768
|
+
events: {
|
|
42769
|
+
events,
|
|
42770
|
+
nextCursor,
|
|
42771
|
+
sessionGenerationId,
|
|
42772
|
+
tailCursor: events.at(-1)?.eventId ?? "",
|
|
42773
|
+
truncated: nextCursor !== null,
|
|
42774
|
+
version: 2
|
|
42775
|
+
},
|
|
42776
|
+
queuedPromptRequests
|
|
42777
|
+
};
|
|
42778
|
+
}
|
|
42700
42779
|
async function executeSessionLiveHistoryV2PageLoad(socket, command, config2, directories, audit, diagnostics, sessions, nativeSessions, eventLogV2, signal) {
|
|
42701
42780
|
let agentId;
|
|
42702
42781
|
try {
|
|
@@ -42720,35 +42799,23 @@ async function executeSessionLiveHistoryV2PageLoad(socket, command, config2, dir
|
|
|
42720
42799
|
signal
|
|
42721
42800
|
};
|
|
42722
42801
|
const recovery = eventLogV2.promptRequestRecovery(command.sessionId);
|
|
42723
|
-
const
|
|
42724
|
-
|
|
42725
|
-
|
|
42726
|
-
|
|
42727
|
-
|
|
42728
|
-
|
|
42729
|
-
|
|
42730
|
-
|
|
42731
|
-
"1970-01-01T00:00:00.000Z"
|
|
42732
|
-
)
|
|
42802
|
+
const events = await loadHistoryPage(
|
|
42803
|
+
command.sessionId,
|
|
42804
|
+
command.eventLimit,
|
|
42805
|
+
command.cursor,
|
|
42806
|
+
command.omit?.includes("agent-reasoning") === true,
|
|
42807
|
+
recovery.queuedPromptRequests,
|
|
42808
|
+
async (eventLimit, cursor) => await sessions.loadSessionEventsV2(loadOptions, eventLimit, cursor),
|
|
42809
|
+
eventLogV2
|
|
42733
42810
|
);
|
|
42734
|
-
|
|
42811
|
+
signal.throwIfAborted();
|
|
42735
42812
|
audit.record({
|
|
42736
42813
|
commandId: command.requestId,
|
|
42737
42814
|
event: "session_event_log_v2_loaded",
|
|
42738
42815
|
sessionId: command.sessionId
|
|
42739
42816
|
});
|
|
42740
42817
|
send(socket, {
|
|
42741
|
-
events
|
|
42742
|
-
events: {
|
|
42743
|
-
events,
|
|
42744
|
-
nextCursor: replay.nextCursor,
|
|
42745
|
-
sessionGenerationId: replay.sessionGenerationId,
|
|
42746
|
-
tailCursor,
|
|
42747
|
-
truncated: replay.truncated,
|
|
42748
|
-
version: 2
|
|
42749
|
-
},
|
|
42750
|
-
queuedPromptRequests: recovery.queuedPromptRequests
|
|
42751
|
-
},
|
|
42818
|
+
events,
|
|
42752
42819
|
kind: SESSION_LIVE_HISTORY_V2_PAGE_LOADED_KIND,
|
|
42753
42820
|
requestId: command.requestId,
|
|
42754
42821
|
sessionId: command.sessionId
|
|
@@ -42787,46 +42854,30 @@ async function executeSessionPreviewHistoryPageLoad(socket, command, config2, di
|
|
|
42787
42854
|
command.additionalDirectoryIds,
|
|
42788
42855
|
signal
|
|
42789
42856
|
);
|
|
42790
|
-
const
|
|
42791
|
-
|
|
42792
|
-
|
|
42793
|
-
|
|
42794
|
-
|
|
42795
|
-
|
|
42796
|
-
|
|
42797
|
-
|
|
42857
|
+
const loadOptions = {
|
|
42858
|
+
additionalDirectories: resolved.additionalDirectories,
|
|
42859
|
+
agent: await resolveCatalogAgent(config2, command.agentId, signal),
|
|
42860
|
+
cwd: resolved.cwd,
|
|
42861
|
+
sessionId: command.sessionId,
|
|
42862
|
+
signal
|
|
42863
|
+
};
|
|
42864
|
+
const events = await loadHistoryPage(
|
|
42798
42865
|
command.sessionId,
|
|
42799
42866
|
command.eventLimit,
|
|
42800
|
-
command.cursor
|
|
42867
|
+
command.cursor,
|
|
42868
|
+
command.omit?.includes("agent-reasoning") === true,
|
|
42869
|
+
[],
|
|
42870
|
+
async (eventLimit, cursor) => await sessions.previewNativeSessionEventsV2(loadOptions, command.sessionId, eventLimit, cursor),
|
|
42871
|
+
eventLogV2
|
|
42801
42872
|
);
|
|
42802
42873
|
signal.throwIfAborted();
|
|
42803
|
-
const events = replay.events.map(
|
|
42804
|
-
(event, index2) => eventLogV2.event(
|
|
42805
|
-
command.sessionId,
|
|
42806
|
-
replay.sessionGenerationId,
|
|
42807
|
-
replay.startPosition + index2,
|
|
42808
|
-
event,
|
|
42809
|
-
"1970-01-01T00:00:00.000Z"
|
|
42810
|
-
)
|
|
42811
|
-
);
|
|
42812
|
-
const tailCursor = events.at(-1)?.eventId ?? "";
|
|
42813
42874
|
audit.record({
|
|
42814
42875
|
commandId: command.requestId,
|
|
42815
42876
|
event: "session_event_log_v2_loaded",
|
|
42816
42877
|
sessionId: command.sessionId
|
|
42817
42878
|
});
|
|
42818
42879
|
send(socket, {
|
|
42819
|
-
events
|
|
42820
|
-
events: {
|
|
42821
|
-
events,
|
|
42822
|
-
nextCursor: replay.nextCursor,
|
|
42823
|
-
sessionGenerationId: replay.sessionGenerationId,
|
|
42824
|
-
tailCursor,
|
|
42825
|
-
truncated: replay.truncated,
|
|
42826
|
-
version: 2
|
|
42827
|
-
},
|
|
42828
|
-
queuedPromptRequests: []
|
|
42829
|
-
},
|
|
42880
|
+
events,
|
|
42830
42881
|
kind: SESSION_PREVIEW_HISTORY_PAGE_LOADED_KIND,
|
|
42831
42882
|
requestId: command.requestId,
|
|
42832
42883
|
sessionId: command.sessionId
|