@moxt-ai/mobius 0.0.147 → 0.0.150

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.
Files changed (41) hide show
  1. package/dist/cli.js +731 -197
  2. package/dist/cli.js.map +4 -4
  3. package/dist/daemon-active-turn.d.ts +15 -2
  4. package/dist/daemon-active-turn.d.ts.map +1 -1
  5. package/dist/daemon-active-turn.js +63 -25
  6. package/dist/daemon-active-turn.js.map +1 -1
  7. package/dist/daemon-command-handler.js +3 -3
  8. package/dist/daemon-history-commands.d.ts +4 -7
  9. package/dist/daemon-history-commands.d.ts.map +1 -1
  10. package/dist/daemon-history-commands.js.map +1 -1
  11. package/dist/daemon-prompt-executor.d.ts +1 -1
  12. package/dist/daemon-prompt-executor.d.ts.map +1 -1
  13. package/dist/daemon-prompt-executor.js +1 -3
  14. package/dist/daemon-prompt-executor.js.map +1 -1
  15. package/dist/daemon-turn-registry.d.ts +18 -56
  16. package/dist/daemon-turn-registry.d.ts.map +1 -1
  17. package/dist/daemon-turn-registry.js +40 -1
  18. package/dist/daemon-turn-registry.js.map +1 -1
  19. package/dist/index.js +730 -196
  20. package/dist/index.js.map +4 -4
  21. package/dist/native-sessions/live-history-page.d.ts +4 -7
  22. package/dist/native-sessions/live-history-page.d.ts.map +1 -1
  23. package/dist/native-sessions/live-history-page.js +163 -107
  24. package/dist/native-sessions/live-history-page.js.map +1 -1
  25. package/dist/relay-connection/run-relay-connection.d.ts.map +1 -1
  26. package/dist/relay-connection/run-relay-connection.js +15 -2
  27. package/dist/relay-connection/run-relay-connection.js.map +1 -1
  28. package/dist/relay-connection/session-event-outbox.d.ts +19 -0
  29. package/dist/relay-connection/session-event-outbox.d.ts.map +1 -0
  30. package/dist/relay-connection/session-event-outbox.js +228 -0
  31. package/dist/relay-connection/session-event-outbox.js.map +1 -0
  32. package/dist/relay-connection/session-event-publisher.d.ts +10 -4
  33. package/dist/relay-connection/session-event-publisher.d.ts.map +1 -1
  34. package/dist/relay-connection/session-event-publisher.js +140 -32
  35. package/dist/relay-connection/session-event-publisher.js.map +1 -1
  36. package/dist/run-daemon.d.ts.map +1 -1
  37. package/dist/run-daemon.js +3 -1
  38. package/dist/run-daemon.js.map +1 -1
  39. package/dist/runtime.js +736 -202
  40. package/dist/runtime.js.map +4 -4
  41. package/package.json +1 -1
@@ -1,8 +1,5 @@
1
- import { type NativeMessagePage, type NativeSessionHistory, type NativeSessionResult } from "@moxt-ai/mobius-protocol";
2
- type ActiveTurnSnapshot = Extract<NativeSessionResult, {
3
- readonly action: "active-turn";
4
- }>["turn"];
5
- export declare function paginateLiveSessionHistory(history: NativeSessionHistory, activeTurn: ActiveTurnSnapshot, sessionId: string, cursor: string | null, limit: number): NativeMessagePage;
6
- export declare function mergeLiveSessionHistory(history: NativeSessionHistory, activeTurn: ActiveTurnSnapshot, sessionId: string): NativeSessionHistory;
7
- export {};
1
+ import { type NativeMessagePage, type NativeSessionHistory } from "@moxt-ai/mobius-protocol";
2
+ import type { ActiveTurnRecovery } from "../daemon-active-turn.ts";
3
+ export declare function paginateLiveSessionHistory(history: NativeSessionHistory, activeTurn: ActiveTurnRecovery | null, sessionId: string, encodedCursor: string | null, limit: number): NativeMessagePage;
4
+ export declare function mergeLiveSessionHistory(history: NativeSessionHistory, activeTurn: ActiveTurnRecovery | null, sessionId: string): NativeSessionHistory;
8
5
  //# sourceMappingURL=live-history-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-history-page.d.ts","sourceRoot":"","sources":["../../src/native-sessions/live-history-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAE3B,MAAM,0BAA0B,CAAC;AAGlC,KAAK,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAsKnG,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,MAAM,GACd,iBAAiB,CA8FnB;AAED,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAClB,oBAAoB,CAYtB"}
1
+ {"version":3,"file":"live-history-page.d.ts","sourceRoot":"","sources":["../../src/native-sessions/live-history-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE5B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AA+UnE,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,kBAAkB,GAAG,IAAI,EACrC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,KAAK,EAAE,MAAM,GACd,iBAAiB,CAkBnB;AAED,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,kBAAkB,GAAG,IAAI,EACrC,SAAS,EAAE,MAAM,GAClB,oBAAoB,CAYtB"}
@@ -1,9 +1,9 @@
1
1
  import { SESSION_HISTORY_CHARACTER_LIMIT, } from "@moxt-ai/mobius-protocol";
2
2
  import { AcpExecutionError } from "../acp/agent-runtime-manager.js";
3
- function liveHistoryCursor(sessionId, endIndex) {
4
- return Buffer.from(JSON.stringify({ endIndex, sessionId }), "utf8").toString("base64url");
3
+ function encodeLiveHistoryCursor(cursor) {
4
+ return Buffer.from(JSON.stringify(cursor), "utf8").toString("base64url");
5
5
  }
6
- function liveHistoryEndIndex(cursor, sessionId) {
6
+ function decodeLiveHistoryCursor(cursor, sessionId) {
7
7
  try {
8
8
  if (!/^[A-Za-z0-9_-]{1,512}$/u.test(cursor)) {
9
9
  throw new Error("Invalid cursor alphabet");
@@ -13,19 +13,38 @@ function liveHistoryEndIndex(cursor, sessionId) {
13
13
  throw new Error("Invalid cursor shape");
14
14
  }
15
15
  const record = Object.fromEntries(Object.entries(value));
16
- if (Object.keys(record).sort().join(",") !== "endIndex,sessionId" ||
16
+ const keys = Object.keys(record).sort().join(",");
17
+ const legacyNative = keys === "endIndex,sessionId";
18
+ const kind = legacyNative ? "native" : record["kind"];
19
+ if ((keys !== "endIndex,kind,sessionId" && keys !== "endIndex,epoch,kind,sessionId" && !legacyNative) ||
17
20
  record["sessionId"] !== sessionId ||
21
+ (kind !== "active" && kind !== "native") ||
18
22
  typeof record["endIndex"] !== "number" ||
19
23
  !Number.isSafeInteger(record["endIndex"]) ||
20
24
  record["endIndex"] < 0) {
21
25
  throw new Error("Invalid cursor target");
22
26
  }
23
- return record["endIndex"];
27
+ if (kind === "active") {
28
+ if (keys !== "endIndex,epoch,kind,sessionId" || typeof record["epoch"] !== "string") {
29
+ throw new Error("Invalid active cursor target");
30
+ }
31
+ return { endIndex: record["endIndex"], epoch: record["epoch"], kind, sessionId };
32
+ }
33
+ if (keys !== "endIndex,kind,sessionId" && !legacyNative) {
34
+ throw new Error("Invalid native cursor target");
35
+ }
36
+ return { endIndex: record["endIndex"], kind, sessionId };
24
37
  }
25
38
  catch (cause) {
26
39
  throw new AcpExecutionError("The native Session history cursor is invalid", { cause }, "invalid_cursor");
27
40
  }
28
41
  }
42
+ function activeHistoryCursor(sessionId, epoch, endIndex) {
43
+ return encodeLiveHistoryCursor({ endIndex, epoch, kind: "active", sessionId });
44
+ }
45
+ function nativeHistoryCursor(sessionId, endIndex) {
46
+ return encodeLiveHistoryCursor({ endIndex, kind: "native", sessionId });
47
+ }
29
48
  function liveHistoryCoveredTurnRanges(history) {
30
49
  const ranges = [];
31
50
  let historyIndex = history.messages.length;
@@ -49,155 +68,192 @@ function historyMessageCharacters(message) {
49
68
  ? JSON.stringify(message.activities).length + JSON.stringify(message.content).length
50
69
  : 0));
51
70
  }
52
- function boundedActiveMessages(messages, messageLimit, characterLimit) {
71
+ function isNativeHistoryImageMimeType(mimeType) {
72
+ return (mimeType === "image/png" || mimeType === "image/jpeg" || mimeType === "image/gif" || mimeType === "image/webp");
73
+ }
74
+ function selectMessagesBefore(messages, endIndex, messageLimit, characterLimit) {
53
75
  const selected = [];
54
76
  let remainingCharacters = characterLimit;
55
- for (let index = messages.length - 1; index >= 0 && selected.length < messageLimit; index -= 1) {
77
+ let startIndex = endIndex;
78
+ for (let index = endIndex - 1; index >= 0 && selected.length < messageLimit; index -= 1) {
56
79
  const message = messages[index];
57
80
  if (message === undefined) {
58
81
  break;
59
82
  }
60
83
  const characters = historyMessageCharacters(message);
61
- if (characters <= remainingCharacters) {
62
- selected.unshift(message);
63
- remainingCharacters -= characters;
64
- continue;
65
- }
66
- const structuredCharacters = characters - message.text.length;
67
- if (selected.length === 0 && structuredCharacters <= remainingCharacters) {
68
- const textCharacters = remainingCharacters - structuredCharacters;
69
- selected.unshift({ ...message, text: textCharacters === 0 ? "" : message.text.slice(-textCharacters) });
70
- remainingCharacters = 0;
84
+ if (characters > remainingCharacters) {
85
+ break;
71
86
  }
72
- break;
87
+ selected.unshift(message);
88
+ remainingCharacters -= characters;
89
+ startIndex = index;
73
90
  }
74
- return {
75
- characters: characterLimit - remainingCharacters,
76
- messages: selected,
77
- truncated: selected.length !== messages.length,
78
- };
91
+ if (selected.length === 0 && endIndex > 0) {
92
+ throw new AcpExecutionError("A native Session history item exceeds the page budget", {}, "history_item_too_large");
93
+ }
94
+ return { characters: characterLimit - remainingCharacters, messages: selected, startIndex };
79
95
  }
80
96
  function nativeActiveMessage(message) {
81
- return message.role === "user"
82
- ? { role: "user", text: message.text }
83
- : {
97
+ if (message.role === "assistant") {
98
+ return {
84
99
  activities: message.activities,
85
100
  content: message.content,
86
101
  role: "assistant",
87
102
  text: message.text,
88
103
  };
104
+ }
105
+ const images = (message.images ?? []).flatMap((image) => {
106
+ if (image.data.length < 4 ||
107
+ image.data.length % 4 !== 0 ||
108
+ !/^[A-Za-z0-9+/]*={0,2}$/u.test(image.data) ||
109
+ !isNativeHistoryImageMimeType(image.mimeType)) {
110
+ return [];
111
+ }
112
+ return [{ data: image.data, mimeType: image.mimeType, name: image.name }];
113
+ });
114
+ return { ...(images.length === 0 ? {} : { images }), role: "user", text: message.text };
115
+ }
116
+ function nativeHistoryCoversCompletedRecovery(history, recovery) {
117
+ const root = recovery.messages.find((message) => message.role === "user" && message.id === recovery.commandId);
118
+ if (root === undefined) {
119
+ return false;
120
+ }
121
+ const rootIndex = history.messages.findLastIndex((message) => message.role === "user" && message.text === root.text);
122
+ if (rootIndex < 0) {
123
+ return false;
124
+ }
125
+ const nativeAssistant = history.messages.slice(rootIndex + 1).filter((message) => message.role === "assistant");
126
+ if (nativeAssistant.length === 0) {
127
+ return false;
128
+ }
129
+ const recoveryAssistant = recovery.messages.filter((message) => message.role === "assistant");
130
+ const recoveryText = recoveryAssistant.map((message) => message.text).join("");
131
+ const nativeText = nativeAssistant.map((message) => message.text).join("");
132
+ if (recoveryText.length > 0 && !nativeText.includes(recoveryText)) {
133
+ return false;
134
+ }
135
+ const nativeContent = new Set(nativeAssistant.flatMap((message) => message.content).map((content) => JSON.stringify(content)));
136
+ return recoveryAssistant
137
+ .flatMap((message) => message.content)
138
+ .every((content) => nativeContent.has(JSON.stringify(content)));
89
139
  }
90
- function paginateAcpSessionHistory(history, sessionId, cursor, limit) {
140
+ function historyBeforeActiveTurn(history, activeTurn) {
91
141
  if (history.status === "unavailable") {
92
- if (cursor !== null) {
93
- throw new AcpExecutionError("Unavailable native Session history has no cursor", {}, "invalid_cursor");
94
- }
95
- return { cause: history.cause, nextCursor: null, status: "unavailable" };
142
+ return history;
96
143
  }
97
- const endIndex = cursor === null ? history.messages.length : liveHistoryEndIndex(cursor, sessionId);
144
+ const activeRoot = activeTurn.messages.find((message) => message.role === "user" && message.id === activeTurn.commandId);
145
+ const matchingActiveUserIndex = activeRoot === undefined
146
+ ? -1
147
+ : activeTurn.state === "completed" ||
148
+ (history.messages.at(-1)?.role === "user" && history.messages.at(-1)?.text === activeRoot.text) ||
149
+ history.coveredCommandIds.includes(activeTurn.commandId)
150
+ ? history.messages.findLastIndex((message) => message.role === "user" && message.text === activeRoot.text)
151
+ : -1;
152
+ const activeUserIndex = matchingActiveUserIndex >= 0
153
+ ? matchingActiveUserIndex
154
+ : (liveHistoryCoveredTurnRanges(history).find((range) => range.commandId === activeTurn.commandId)
155
+ ?.userIndex ?? -1);
156
+ if (activeUserIndex < 0) {
157
+ return history;
158
+ }
159
+ return {
160
+ ...history,
161
+ coveredCommandIds: history.coveredCommandIds.filter((id) => id !== activeTurn.commandId),
162
+ coveredMessageIds: history.coveredMessageIds.filter((id) => id !== `${activeTurn.commandId}:user` && id !== `${activeTurn.commandId}:agent`),
163
+ messages: history.messages.slice(0, activeUserIndex),
164
+ };
165
+ }
166
+ function paginateAvailableNativeHistory(history, sessionId, endIndex, limit, characterLimit) {
98
167
  if (endIndex > history.messages.length) {
99
168
  throw new AcpExecutionError("The native Session history cursor is invalid", {}, "invalid_cursor");
100
169
  }
101
- const startIndex = Math.max(0, endIndex - limit);
170
+ const selected = selectMessagesBefore(history.messages, endIndex, limit, characterLimit);
102
171
  const coveredMessageIds = new Set(history.coveredMessageIds);
103
172
  const ranges = liveHistoryCoveredTurnRanges(history);
104
173
  return {
105
174
  coveredCommandIds: ranges
106
- .filter((range) => range.userIndex >= startIndex && range.assistantEndIndex <= endIndex)
175
+ .filter((range) => range.userIndex >= selected.startIndex && range.assistantEndIndex <= endIndex)
107
176
  .map((range) => range.commandId),
108
177
  coveredMessageIds: ranges.flatMap((range) => [
109
- ...(range.userIndex >= startIndex &&
178
+ ...(range.userIndex >= selected.startIndex &&
110
179
  range.userIndex < endIndex &&
111
180
  coveredMessageIds.has(`${range.commandId}:user`)
112
181
  ? [`${range.commandId}:user`]
113
182
  : []),
114
- ...(range.assistantStartIndex >= startIndex &&
183
+ ...(range.assistantStartIndex >= selected.startIndex &&
115
184
  range.assistantEndIndex <= endIndex &&
116
185
  coveredMessageIds.has(`${range.commandId}:agent`)
117
186
  ? [`${range.commandId}:agent`]
118
187
  : []),
119
188
  ]),
120
- messages: history.messages.slice(startIndex, endIndex),
121
- nextCursor: startIndex > 0 ? liveHistoryCursor(sessionId, startIndex) : null,
189
+ messages: selected.messages,
190
+ nextCursor: selected.startIndex > 0 ? nativeHistoryCursor(sessionId, selected.startIndex) : null,
122
191
  status: "available",
123
192
  truncated: history.truncated,
124
193
  };
125
194
  }
126
- export function paginateLiveSessionHistory(history, activeTurn, sessionId, cursor, limit) {
127
- if (activeTurn === null || cursor !== null) {
128
- return paginateAcpSessionHistory(history, sessionId, cursor, limit);
195
+ function paginateNativeHistory(history, sessionId, cursor, limit) {
196
+ if (cursor?.kind === "active") {
197
+ throw new AcpExecutionError("The native Session history cursor is invalid", {}, "invalid_cursor");
129
198
  }
130
199
  if (history.status === "unavailable") {
131
- const bounded = boundedActiveMessages(activeTurn.messages.map(nativeActiveMessage), limit, SESSION_HISTORY_CHARACTER_LIMIT);
132
- return {
133
- coveredCommandIds: [],
134
- coveredMessageIds: [],
135
- messages: bounded.messages,
136
- nextCursor: null,
137
- status: "available",
138
- truncated: activeTurn.truncated || bounded.truncated,
139
- };
140
- }
141
- // Native turn identity tells us whether the source contains this turn. The
142
- // native format has no message IDs, so its root prompt locates the boundary
143
- // before any steering prompts. Keep that root (including attachments), then
144
- // replace the rest with the authoritative in-memory timeline.
145
- const activeRoot = activeTurn.messages.find((message) => message.role === "user" && message.id === activeTurn.commandId);
146
- const coveredActiveRoot = history.coveredCommandIds.includes(activeTurn.commandId);
147
- const matchingActiveUserIndex = coveredActiveRoot
148
- ? history.messages.findLastIndex((message) => message.role === "user" && message.text === (activeRoot?.text ?? activeTurn.prompt))
149
- : -1;
150
- const activeUserIndex = matchingActiveUserIndex >= 0
151
- ? matchingActiveUserIndex
152
- : (liveHistoryCoveredTurnRanges(history).find((range) => range.commandId === activeTurn.commandId)
153
- ?.userIndex ?? -1);
154
- if (activeUserIndex >= 0) {
155
- history = {
156
- ...history,
157
- coveredCommandIds: history.coveredCommandIds.filter((id) => id !== activeTurn.commandId),
158
- coveredMessageIds: history.coveredMessageIds.filter((id) => id !== `${activeTurn.commandId}:user` && id !== `${activeTurn.commandId}:agent`),
159
- messages: history.messages.slice(0, activeUserIndex + 1),
160
- };
161
- }
162
- const latestNativeMessage = history.messages.at(-1);
163
- const firstActiveMessage = activeTurn.messages[0];
164
- const preserveNativeRoot = activeUserIndex >= 0 ||
165
- (firstActiveMessage?.role === "user" &&
166
- latestNativeMessage?.role === "user" &&
167
- latestNativeMessage.text === firstActiveMessage.text);
168
- const activeMessages = activeTurn.messages.slice(preserveNativeRoot ? 1 : 0).map(nativeActiveMessage);
169
- const bounded = boundedActiveMessages(activeMessages, limit, SESSION_HISTORY_CHARACTER_LIMIT);
170
- let historicalMessageCount = 0;
171
- let remainingCharacters = SESSION_HISTORY_CHARACTER_LIMIT - bounded.characters;
172
- const historicalMessageLimit = Math.max(0, limit - bounded.messages.length);
173
- for (let index = history.messages.length - 1; index >= 0 && historicalMessageCount < historicalMessageLimit; index -= 1) {
174
- const message = history.messages[index];
175
- if (message === undefined) {
176
- break;
177
- }
178
- const characters = historyMessageCharacters(message);
179
- if (characters > remainingCharacters) {
180
- break;
200
+ if (cursor !== null) {
201
+ throw new AcpExecutionError("Unavailable native Session history has no cursor", {}, "invalid_cursor");
181
202
  }
182
- historicalMessageCount += 1;
183
- remainingCharacters -= characters;
203
+ return { cause: history.cause, nextCursor: null, status: "unavailable" };
184
204
  }
185
- const page = historicalMessageCount === 0
186
- ? {
187
- coveredCommandIds: [],
188
- coveredMessageIds: [],
189
- messages: [],
190
- nextCursor: history.messages.length === 0 ? null : liveHistoryCursor(sessionId, history.messages.length),
191
- status: "available",
192
- truncated: history.truncated,
193
- }
194
- : paginateAcpSessionHistory(history, sessionId, null, historicalMessageCount);
205
+ return paginateAvailableNativeHistory(history, sessionId, cursor?.endIndex ?? history.messages.length, limit, SESSION_HISTORY_CHARACTER_LIMIT);
206
+ }
207
+ function paginateActiveTurn(history, activeTurn, sessionId, endIndex, limit) {
208
+ if (endIndex > activeTurn.messages.length) {
209
+ throw new AcpExecutionError("The native Session history cursor is invalid", {}, "invalid_cursor");
210
+ }
211
+ const activeMessages = activeTurn.messages.map(nativeActiveMessage);
212
+ const active = selectMessagesBefore(activeMessages, endIndex, limit, SESSION_HISTORY_CHARACTER_LIMIT);
213
+ const historicalLimit = limit - active.messages.length;
214
+ const historicalCharacterLimit = SESSION_HISTORY_CHARACTER_LIMIT - active.characters;
215
+ const pendingHistoricalCursor = history.status === "available" && history.messages.length > 0
216
+ ? nativeHistoryCursor(sessionId, history.messages.length)
217
+ : null;
218
+ const latestHistoricalMessage = history.status === "available" ? history.messages.at(-1) : undefined;
219
+ const historicalPageFits = latestHistoricalMessage === undefined ||
220
+ historyMessageCharacters(latestHistoricalMessage) <= historicalCharacterLimit;
221
+ const historical = active.startIndex === 0 && history.status === "available" && historicalLimit > 0 && historicalPageFits
222
+ ? paginateAvailableNativeHistory(history, sessionId, history.messages.length, historicalLimit, historicalCharacterLimit)
223
+ : null;
195
224
  return {
196
- ...page,
197
- messages: [...page.messages, ...bounded.messages],
198
- truncated: page.truncated || activeTurn.truncated || bounded.truncated,
225
+ coveredCommandIds: historical?.coveredCommandIds ?? [],
226
+ coveredMessageIds: [
227
+ ...(historical?.coveredMessageIds ?? []),
228
+ ...(active.startIndex === 0 ? [`${activeTurn.commandId}:user`, `${activeTurn.commandId}:agent`] : []),
229
+ ],
230
+ messages: [...(historical?.messages ?? []), ...active.messages],
231
+ nextCursor: active.startIndex > 0
232
+ ? activeHistoryCursor(sessionId, activeTurn.epoch, active.startIndex)
233
+ : historical === null
234
+ ? pendingHistoricalCursor
235
+ : historical.nextCursor,
236
+ status: "available",
237
+ truncated: activeTurn.truncated || (historical?.truncated ?? false),
199
238
  };
200
239
  }
240
+ export function paginateLiveSessionHistory(history, activeTurn, sessionId, encodedCursor, limit) {
241
+ const cursor = encodedCursor === null ? null : decodeLiveHistoryCursor(encodedCursor, sessionId);
242
+ if (activeTurn === null ||
243
+ (activeTurn.state === "completed" &&
244
+ history.status === "available" &&
245
+ nativeHistoryCoversCompletedRecovery(history, activeTurn))) {
246
+ return paginateNativeHistory(history, sessionId, cursor, limit);
247
+ }
248
+ const historical = historyBeforeActiveTurn(history, activeTurn);
249
+ if (cursor?.kind === "native") {
250
+ return paginateNativeHistory(historical, sessionId, cursor, limit);
251
+ }
252
+ if (cursor !== null && cursor.epoch !== activeTurn.epoch) {
253
+ throw new AcpExecutionError("The active Turn history cursor is stale", {}, "stale_cursor");
254
+ }
255
+ return paginateActiveTurn(historical, activeTurn, sessionId, cursor?.endIndex ?? activeTurn.messages.length, limit);
256
+ }
201
257
  export function mergeLiveSessionHistory(history, activeTurn, sessionId) {
202
258
  const page = paginateLiveSessionHistory(history, activeTurn, sessionId, null, 1_000);
203
259
  if (page.status === "unavailable") {
@@ -208,7 +264,7 @@ export function mergeLiveSessionHistory(history, activeTurn, sessionId) {
208
264
  coveredMessageIds: page.coveredMessageIds,
209
265
  messages: page.messages,
210
266
  status: "available",
211
- truncated: page.truncated,
267
+ truncated: page.truncated || page.nextCursor !== null,
212
268
  };
213
269
  }
214
270
  //# sourceMappingURL=live-history-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-history-page.js","sourceRoot":"","sources":["../../src/native-sessions/live-history-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,+BAA+B,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAcpE,SAAS,iBAAiB,CAAC,SAAiB,EAAE,QAAgB;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,SAAiB;IAC1D,IAAI,CAAC;QACD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,IACI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,oBAAoB;YAC7D,MAAM,CAAC,WAAW,CAAC,KAAK,SAAS;YACjC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ;YACtC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EACxB,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CAAC,8CAA8C,EAAE,EAAE,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC7G,CAAC;AACL,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAsC;IACxE,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,IAAI,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAChD,IAAI,mBAAmB,GAAG,YAAY,CAAC;QACvC,OAAO,mBAAmB,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,GAAG,CAAC,CAAC,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAChG,mBAAmB,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,SAAS,GAAG,mBAAmB,GAAG,CAAC,CAAC;QAC1C,IAAI,mBAAmB,KAAK,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACvF,MAAM;QACV,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5F,YAAY,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA0D;IACxF,OAAO,CACH,OAAO,CAAC,IAAI,CAAC,MAAM;QACnB,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;YACpF,CAAC,CAAC,CAAC,CAAC,CACX,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAC1B,QAAyC,EACzC,YAAoB,EACpB,cAAsB;IAEtB,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,IAAI,mBAAmB,GAAG,cAAc,CAAC;IACzC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7F,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM;QACV,CAAC;QACD,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,UAAU,IAAI,mBAAmB,EAAE,CAAC;YACpC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,mBAAmB,IAAI,UAAU,CAAC;YAClC,SAAS;QACb,CAAC;QACD,MAAM,oBAAoB,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,oBAAoB,IAAI,mBAAmB,EAAE,CAAC;YACvE,MAAM,cAAc,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;YAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACxG,mBAAmB,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM;IACV,CAAC;IACD,OAAO;QACH,UAAU,EAAE,cAAc,GAAG,mBAAmB;QAChD,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;KACjD,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA0B;IACnD,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM;QAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QACtC,CAAC,CAAC;YACI,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;AACZ,CAAC;AAcD,SAAS,yBAAyB,CAC9B,OAA6B,EAC7B,SAAiB,EACjB,MAAqB,EACrB,KAAa;IAEb,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,iBAAiB,CAAC,kDAAkD,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC7E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpG,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,iBAAiB,CAAC,8CAA8C,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO;QACH,iBAAiB,EAAE,MAAM;aACpB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,IAAI,KAAK,CAAC,iBAAiB,IAAI,QAAQ,CAAC;aACvF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACpC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU;gBACjC,KAAK,CAAC,SAAS,GAAG,QAAQ;gBAC1B,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,OAAO,CAAC;gBAC5C,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,OAAO,CAAC;gBAC7B,CAAC,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,UAAU;gBAC3C,KAAK,CAAC,iBAAiB,IAAI,QAAQ;gBACnC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,QAAQ,CAAC;gBAC7C,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,QAAQ,CAAC;gBAC9B,CAAC,CAAC,EAAE,CAAC;SACZ,CAAC;QACF,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtD,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QAC5E,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC/B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,OAA6B,EAC7B,UAA8B,EAC9B,SAAiB,EACjB,MAAqB,EACrB,KAAa;IAEb,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,qBAAqB,CACjC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC5C,KAAK,EACL,+BAA+B,CAClC,CAAC;QACF,OAAO;YACH,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;YACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;SACvD,CAAC;IACN,CAAC;IACD,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,SAAS,CAC9E,CAAC;IACF,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,uBAAuB,GAAG,iBAAiB;QAC7C,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAC1B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CACnG;QACH,CAAC,CAAC,CAAC,CAAC,CAAC;IACT,MAAM,eAAe,GACjB,uBAAuB,IAAI,CAAC;QACxB,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC;YAC5F,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG;YACN,GAAG,OAAO;YACV,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,SAAS,CAAC;YACxF,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAC/C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,SAAS,OAAO,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC,SAAS,QAAQ,CAC1F;YACD,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC;SAC3D,CAAC;IACN,CAAC;IACD,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,kBAAkB,GACpB,eAAe,IAAI,CAAC;QACpB,CAAC,kBAAkB,EAAE,IAAI,KAAK,MAAM;YAChC,mBAAmB,EAAE,IAAI,KAAK,MAAM;YACpC,mBAAmB,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,qBAAqB,CAAC,cAAc,EAAE,KAAK,EAAE,+BAA+B,CAAC,CAAC;IAE9F,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,mBAAmB,GAAG,+BAA+B,GAAG,OAAO,CAAC,UAAU,CAAC;IAC/E,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5E,KACI,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EACvC,KAAK,IAAI,CAAC,IAAI,sBAAsB,GAAG,sBAAsB,EAC7D,KAAK,IAAI,CAAC,EACZ,CAAC;QACC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM;QACV,CAAC;QACD,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,UAAU,GAAG,mBAAmB,EAAE,CAAC;YACnC,MAAM;QACV,CAAC;QACD,sBAAsB,IAAI,CAAC,CAAC;QAC5B,mBAAmB,IAAI,UAAU,CAAC;IACtC,CAAC;IACD,MAAM,IAAI,GACN,sBAAsB,KAAK,CAAC;QACxB,CAAC,CAAC;YACI,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;YACrB,QAAQ,EAAE,EAAE;YACZ,UAAU,EACN,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChG,MAAM,EAAE,WAAoB;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B;QACH,CAAC,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;IACtF,OAAO;QACH,GAAG,IAAI;QACP,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjD,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;KACzE,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,OAA6B,EAC7B,UAA8B,EAC9B,SAAiB;IAEjB,MAAM,IAAI,GAAG,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACxD,CAAC;IACD,OAAO;QACH,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC5B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"live-history-page.js","sourceRoot":"","sources":["../../src/native-sessions/live-history-page.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-relay-connection.d.ts","sourceRoot":"","sources":["../../src/relay-connection/run-relay-connection.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe9C,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,8BAA8B,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;CAC1G;AAED,wBAAsB,kBAAkB,CAAC,EACrC,MAAM,EACN,WAAW,EACX,KAAK,EACL,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,MAAM,EACN,KAAK,EACL,8BAA8B,GACjC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKxC"}
1
+ {"version":3,"file":"run-relay-connection.d.ts","sourceRoot":"","sources":["../../src/relay-connection/run-relay-connection.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe9C,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,8BAA8B,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;CAC1G;AAED,wBAAsB,kBAAkB,CAAC,EACrC,MAAM,EACN,WAAW,EACX,KAAK,EACL,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,MAAM,EACN,KAAK,EACL,8BAA8B,GACjC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkLxC"}
@@ -1,4 +1,4 @@
1
- import { decodeServiceToDaemonMessage, RUNTIME_HEARTBEAT_ACK_KIND, RUNTIME_LIVENESS_READY_KIND, } from "@moxt-ai/mobius-protocol";
1
+ import { decodeServiceToDaemonMessage, RUNTIME_HEARTBEAT_ACK_KIND, RUNTIME_LIVENESS_READY_KIND, SESSION_EVENT_ACK_KIND, SESSION_EVENT_DEFERRED_KIND, SESSION_EVENT_REJECTED_KIND, } from "@moxt-ai/mobius-protocol";
2
2
  import { WebSocket } from "undici";
3
3
  import { createDaemonCommandHandler } from "../daemon-command-handler.js";
4
4
  import { send } from "../daemon-command-results.js";
@@ -22,6 +22,7 @@ function closeRelaySocket(socket, code, reason) {
22
22
  export async function runRelayConnection({ config, directories, audit, sessions, installations, installationObserver, nativeSessions, operations, publisher, activeTurns, connectionEpoch, diagnostics, onConnected, signal, timer, resolveAgentCatalogEnvironment, }) {
23
23
  const relayUrl = new URL(config.relayUrl);
24
24
  relayUrl.searchParams.set("liveness", "1");
25
+ relayUrl.searchParams.set("sessionEventDelivery", "reliable-v1");
25
26
  const socket = await connectRelay(relayUrl, signal);
26
27
  diagnostics.connectionOpened(connectionEpoch);
27
28
  const connectionController = new AbortController();
@@ -137,6 +138,7 @@ export async function runRelayConnection({ config, directories, audit, sessions,
137
138
  const message = decodeServiceToDaemonMessage(encoded);
138
139
  const kind = message.kind;
139
140
  if (kind === RUNTIME_LIVENESS_READY_KIND) {
141
+ publisher.connect(socket, message.sessionEventDelivery === "reliable-v1" ? "reliable" : "ephemeral");
140
142
  connectionLiveness.start();
141
143
  return;
142
144
  }
@@ -144,6 +146,18 @@ export async function runRelayConnection({ config, directories, audit, sessions,
144
146
  connectionLiveness.acknowledge(message);
145
147
  return;
146
148
  }
149
+ if (kind === SESSION_EVENT_ACK_KIND) {
150
+ publisher.acknowledge(message);
151
+ return;
152
+ }
153
+ if (kind === SESSION_EVENT_DEFERRED_KIND) {
154
+ publisher.defer(message);
155
+ return;
156
+ }
157
+ if (kind === SESSION_EVENT_REJECTED_KIND) {
158
+ publisher.quarantine(message);
159
+ return;
160
+ }
147
161
  commands.handle(message);
148
162
  }
149
163
  catch (error) {
@@ -154,7 +168,6 @@ export async function runRelayConnection({ config, directories, audit, sessions,
154
168
  socket.addEventListener("close", handleClose);
155
169
  socket.addEventListener("error", handleError);
156
170
  socket.addEventListener("message", handleMessage);
157
- publisher.connect(socket);
158
171
  if (signal.aborted) {
159
172
  stop();
160
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-relay-connection.js","sourceRoot":"","sources":["../../src/relay-connection/run-relay-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-relay-connection.js","sourceRoot":"","sources":["../../src/relay-connection/run-relay-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type ReliableSessionEventEnvelope, type SessionEventAcknowledgement, type SessionEventRejected } from "@moxt-ai/mobius-protocol";
2
+ export interface SessionEventOutboxLimits {
3
+ readonly criticalEventBytes: number;
4
+ readonly standardEventBytes: number;
5
+ }
6
+ export declare class SessionEventOutboxCapacityError extends Error {
7
+ readonly code = "session_event_outbox_full";
8
+ constructor();
9
+ }
10
+ export declare class SessionEventOutbox {
11
+ #private;
12
+ constructor(path: string, limits?: SessionEventOutboxLimits);
13
+ readonly acknowledge: (acknowledgement: SessionEventAcknowledgement) => boolean;
14
+ readonly close: () => void;
15
+ readonly enqueue: (sessionId: string, payload: string, critical: boolean) => ReliableSessionEventEnvelope;
16
+ readonly pending: (limit: number, excludedEventIds: readonly string[]) => readonly ReliableSessionEventEnvelope[];
17
+ readonly quarantine: (rejection: SessionEventRejected) => boolean;
18
+ }
19
+ //# sourceMappingURL=session-event-outbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-event-outbox.d.ts","sourceRoot":"","sources":["../../src/relay-connection/session-event-outbox.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,4BAA4B,EAEjC,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EAC5B,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,wBAAwB;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACvC;AAOD,qBAAa,+BAAgC,SAAQ,KAAK;IACtD,QAAQ,CAAC,IAAI,+BAA+B;IAE5C,cAGC;CACJ;AA6BD,qBAAa,kBAAkB;;IAI3B,YAAY,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,wBAAyC,EAsC1E;IAED,QAAQ,CAAC,WAAW,oBAAqB,2BAA2B,KAAG,OAAO,CACT;IAErE,QAAQ,CAAC,KAAK,QAAO,IAAI,CAEvB;IAEF,QAAQ,CAAC,OAAO,cAAe,MAAM,WAAW,MAAM,YAAY,OAAO,KAAG,4BAA4B,CAoDtG;IAEF,QAAQ,CAAC,OAAO,UACL,MAAM,oBACK,SAAS,MAAM,EAAE,KACpC,SAAS,4BAA4B,EAAE,CAwBxC;IAEF,QAAQ,CAAC,UAAU,cAAe,oBAAoB,KAAG,OAAO,CAqC9D;CA8CL"}