@markusylisiurunen/tau 0.2.109 → 0.2.111

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 (96) hide show
  1. package/README.md +10 -1
  2. package/dist/core/async/session_manager.js +9 -2
  3. package/dist/core/async/session_manager.js.map +1 -1
  4. package/dist/core/auth/cli.js +1 -1
  5. package/dist/core/auth/cli.js.map +1 -1
  6. package/dist/core/auth/credential_resolver.js +1 -1
  7. package/dist/core/auth/credential_resolver.js.map +1 -1
  8. package/dist/core/auth/providers/openai_codex.js +1 -1
  9. package/dist/core/auth/providers/openai_codex.js.map +1 -1
  10. package/dist/core/config/index.js +1 -1
  11. package/dist/core/config/index.js.map +1 -1
  12. package/dist/core/config/schema.js +53 -0
  13. package/dist/core/config/schema.js.map +1 -1
  14. package/dist/core/config/virtual_defaults.js +2 -0
  15. package/dist/core/config/virtual_defaults.js.map +1 -1
  16. package/dist/core/diff_review/review_thread.js +4 -1
  17. package/dist/core/diff_review/review_thread.js.map +1 -1
  18. package/dist/core/events/parser.js +32 -0
  19. package/dist/core/events/parser.js.map +1 -1
  20. package/dist/core/events/types.js.map +1 -1
  21. package/dist/core/models/catalog.js +1 -1
  22. package/dist/core/models/catalog.js.map +1 -1
  23. package/dist/core/modes/rpc_protocol.js.map +1 -1
  24. package/dist/core/modes/rpc_server.js +1 -0
  25. package/dist/core/modes/rpc_server.js.map +1 -1
  26. package/dist/core/runtime/conversation_turn_runtime.js +12 -3
  27. package/dist/core/runtime/conversation_turn_runtime.js.map +1 -1
  28. package/dist/core/session/compaction.js +206 -13
  29. package/dist/core/session/compaction.js.map +1 -1
  30. package/dist/core/session/core_session.js +10 -1
  31. package/dist/core/session/core_session.js.map +1 -1
  32. package/dist/core/session/runner.js +3 -22
  33. package/dist/core/session/runner.js.map +1 -1
  34. package/dist/core/session/session_engine.js +267 -24
  35. package/dist/core/session/session_engine.js.map +1 -1
  36. package/dist/core/subagents/control_plane.js +7 -4
  37. package/dist/core/subagents/control_plane.js.map +1 -1
  38. package/dist/core/subagents/subagent_engine.js +2 -2
  39. package/dist/core/subagents/subagent_engine.js.map +1 -1
  40. package/dist/core/tools/spawn_agent.js +1 -1
  41. package/dist/core/tools/spawn_agent.js.map +1 -1
  42. package/dist/core/utils/auto_retry.js +1 -1
  43. package/dist/core/utils/auto_retry.js.map +1 -1
  44. package/dist/core/utils/compact.js +2 -64
  45. package/dist/core/utils/compact.js.map +1 -1
  46. package/dist/core/utils/model_stream.js +2 -17
  47. package/dist/core/utils/model_stream.js.map +1 -1
  48. package/dist/core/utils/user_metadata.js +191 -0
  49. package/dist/core/utils/user_metadata.js.map +1 -0
  50. package/dist/core/version.js +1 -1
  51. package/dist/sdk/types.d.ts +5 -1
  52. package/dist/tui/chat_controller/session_maintenance_service.js +24 -24
  53. package/dist/tui/chat_controller/session_maintenance_service.js.map +1 -1
  54. package/dist/tui/chat_controller.js +70 -6
  55. package/dist/tui/chat_controller.js.map +1 -1
  56. package/dist/tui/chat_view.js +4 -1
  57. package/dist/tui/chat_view.js.map +1 -1
  58. package/dist/tui/terminal.js +1 -1
  59. package/dist/tui/terminal.js.map +1 -1
  60. package/dist/tui/ui/app_intro.js +1 -1
  61. package/dist/tui/ui/app_intro.js.map +1 -1
  62. package/dist/tui/ui/assistant_message.js +1 -1
  63. package/dist/tui/ui/assistant_message.js.map +1 -1
  64. package/dist/tui/ui/chat_container.js +1 -1
  65. package/dist/tui/ui/chat_container.js.map +1 -1
  66. package/dist/tui/ui/components/editor.js +1 -1
  67. package/dist/tui/ui/components/editor.js.map +1 -1
  68. package/dist/tui/ui/components/header_box.js +1 -1
  69. package/dist/tui/ui/components/header_box.js.map +1 -1
  70. package/dist/tui/ui/components/header_line.js +53 -10
  71. package/dist/tui/ui/components/header_line.js.map +1 -1
  72. package/dist/tui/ui/components/one_line_segments.js +3 -72
  73. package/dist/tui/ui/components/one_line_segments.js.map +1 -1
  74. package/dist/tui/ui/custom_editor.js +1 -1
  75. package/dist/tui/ui/custom_editor.js.map +1 -1
  76. package/dist/tui/ui/diff_review_message.js +1 -1
  77. package/dist/tui/ui/diff_review_message.js.map +1 -1
  78. package/dist/tui/ui/footer.js +1 -1
  79. package/dist/tui/ui/footer.js.map +1 -1
  80. package/dist/tui/ui/queued_messages.js +1 -1
  81. package/dist/tui/ui/queued_messages.js.map +1 -1
  82. package/dist/tui/ui/rewind_picker.js +1 -1
  83. package/dist/tui/ui/rewind_picker.js.map +1 -1
  84. package/dist/tui/ui/session_divider.js +1 -1
  85. package/dist/tui/ui/session_divider.js.map +1 -1
  86. package/dist/tui/ui/subagent_editor_pane.js +1 -1
  87. package/dist/tui/ui/subagent_editor_pane.js.map +1 -1
  88. package/dist/tui/ui/subagent_panel.js +1 -1
  89. package/dist/tui/ui/subagent_panel.js.map +1 -1
  90. package/dist/tui/ui/system_message.js +1 -1
  91. package/dist/tui/ui/system_message.js.map +1 -1
  92. package/dist/tui/ui/tool_output.js +5 -34
  93. package/dist/tui/ui/tool_output.js.map +1 -1
  94. package/dist/tui/ui/user_message.js +1 -1
  95. package/dist/tui/ui/user_message.js.map +1 -1
  96. package/package.json +9 -9
@@ -1,7 +1,11 @@
1
- import { buildCompactionUserMessage, formatHistoryForCompaction, partitionHistoryForCompaction, } from "../utils/compact.js";
1
+ import { Buffer } from "node:buffer";
2
+ import { buildCompactionUserMessage, formatHistoryForCompaction } from "../utils/compact.js";
2
3
  import { extractAssistantText } from "../utils/messages.js";
3
- export const COMPACTION_SUMMARIZATION_SYSTEM_PROMPT = "You are a context summarization assistant. Do not continue the conversation. Do not answer any conversation questions. Only output the structured summary in the exact format requested.";
4
- const COMPACTION_SUMMARIZATION_PROMPT = `The messages above are a conversation to summarize. Create a structured context checkpoint summary that another assistant will use to continue the work.
4
+ import { prependModelNotice } from "../utils/model_notices.js";
5
+ import { bytesToTokens } from "../utils/token.js";
6
+ import { getSummaryCompactionMetadataFromMessage, hasAutoCompactionContinuationMetadata, prependTauUserMetadata, } from "../utils/user_metadata.js";
7
+ export const COMPACTION_SUMMARIZATION_SYSTEM_PROMPT = "You are a context compaction assistant. Your output will replace the conversation history for another assistant. Do not continue the conversation. Do not answer any conversation questions. Only output the structured summary in the exact format requested.";
8
+ const COMPACTION_SUMMARIZATION_PROMPT = `The messages above are a conversation to compact. Create an information-dense context checkpoint summary that will replace the full conversation history. Another assistant should be able to continue the session from this summary as if the original conversation were still available.
5
9
 
6
10
  Use this exact format:
7
11
 
@@ -29,23 +33,25 @@ Use this exact format:
29
33
  1. [Ordered next action]
30
34
 
31
35
  ## Critical Context
32
- - [Concrete details needed to resume: file paths, function names, commands, errors]
36
+ - [Concrete details needed to resume: file paths, function names, commands, errors, test/build status, assumptions]
33
37
 
34
38
  Rules:
35
- - Preserve enough detail for seamless continuation from this summary alone.
36
- - Keep each section concise and focused on continuity-critical information.
39
+ - Preserve as much continuity-critical context as possible while removing tokens.
40
+ - Keep each section information-dense and focused; do not omit useful details solely for brevity.
41
+ - When unsure whether a detail may matter later, preserve it in compact form.
42
+ - Preserve the current state of the work: files touched, commands run, test/build status, known failures, unverified assumptions, and pending validation.
37
43
  - Distinguish attempted work from confirmed outcomes.
38
44
  - If goals evolved over time, capture the current goal and briefly note the change.
39
45
  - Collapse tangents, retries, and pleasantries unless they materially affect decisions, blockers, or next steps.
40
46
  - Preserve exact file paths, function names, commands, and error messages.`;
41
- const COMPACTION_UPDATE_SUMMARIZATION_PROMPT = `The messages above are new conversation messages to incorporate into the existing summary in <previous-summary> tags.
47
+ const COMPACTION_UPDATE_SUMMARIZATION_PROMPT = `The messages above are new conversation messages to incorporate into the existing summary in <previous-summary> tags. The updated summary will replace the prior summary plus these new messages as the session's continuity context.
42
48
 
43
49
  Update the existing structured summary with these rules:
44
50
  - Preserve all still-relevant information from the previous summary.
45
51
  - Add new progress, decisions, and context from the new messages.
46
52
  - Move items from In Progress to Done when completed.
47
53
  - Update Next Steps based on the current state.
48
- - Remove information that is no longer relevant.
54
+ - Remove only information that is clearly obsolete, superseded, or irrelevant to continuing the session.
49
55
 
50
56
  Use the exact same format as before:
51
57
 
@@ -72,27 +78,41 @@ Use the exact same format as before:
72
78
  1. [Updated ordered actions]
73
79
 
74
80
  ## Critical Context
75
- - [Concrete details needed to resume: file paths, function names, commands, errors]
81
+ - [Concrete details needed to resume: file paths, function names, commands, errors, test/build status, assumptions]
76
82
 
77
83
  Rules:
78
- - Preserve enough detail for seamless continuation from this summary alone.
79
- - Keep each section concise and focused on continuity-critical information.
84
+ - Preserve as much continuity-critical context as possible while removing tokens.
85
+ - Keep each section information-dense and focused; do not omit useful details solely for brevity.
86
+ - When unsure whether a detail may matter later, preserve it in compact form.
87
+ - Preserve the current state of the work: files touched, commands run, test/build status, known failures, unverified assumptions, and pending validation.
80
88
  - Distinguish attempted work from confirmed outcomes.
81
89
  - If goals evolved over time, capture the current goal and briefly note the change.
82
90
  - Collapse tangents, retries, and pleasantries unless they materially affect decisions, blockers, or next steps.
83
91
  - Preserve exact file paths, function names, commands, and error messages.`;
84
92
  export function prepareSessionCompaction(history) {
85
- const { previousSummary, messagesToSummarize } = partitionHistoryForCompaction(history);
93
+ const latestCompaction = findLatestCompaction(history);
94
+ const messagesToSummarize = history
95
+ .slice(latestCompaction.index + 1)
96
+ .filter((message) => !hasAutoCompactionContinuationMetadata(message));
86
97
  const formattedHistory = formatHistoryForCompaction(messagesToSummarize);
87
98
  if (!formattedHistory) {
88
99
  return undefined;
89
100
  }
90
101
  return {
91
- previousSummary,
102
+ previousSummary: latestCompaction.summary,
92
103
  messagesToSummarize,
93
104
  formattedHistory,
94
105
  };
95
106
  }
107
+ function findLatestCompaction(history) {
108
+ for (let index = history.length - 1; index >= 0; index -= 1) {
109
+ const metadata = getSummaryCompactionMetadataFromMessage(history[index]);
110
+ if (metadata) {
111
+ return { index, summary: metadata.summary };
112
+ }
113
+ }
114
+ return { index: -1 };
115
+ }
96
116
  export function buildSessionCompactionPrompt(args) {
97
117
  const { preparation, guidance } = args;
98
118
  let summaryPrompt = `<conversation>\n${preparation.formattedHistory}\n</conversation>\n\n`;
@@ -120,6 +140,179 @@ export function buildSessionCompactionMessage(args) {
120
140
  includedLastAssistant: Boolean(lastAssistantMessage),
121
141
  };
122
142
  }
143
+ export function prepareAutoCompaction(entries, settings) {
144
+ const latestCompaction = findLatestCompactionEntry(entries);
145
+ const cut = selectAutoCompactionCut(entries, {
146
+ startIndex: latestCompaction.index + 1,
147
+ keepRecentTokens: settings.keepRecentTokens,
148
+ });
149
+ if (!cut) {
150
+ return undefined;
151
+ }
152
+ const messagesToSummarize = entries
153
+ .slice(latestCompaction.index + 1, cut.startIndex)
154
+ .map((entry) => entry.message)
155
+ .filter((message) => !hasAutoCompactionContinuationMetadata(message));
156
+ const formattedHistory = formatHistoryForCompaction(messagesToSummarize);
157
+ if (!formattedHistory) {
158
+ return undefined;
159
+ }
160
+ const retainedEntries = entries
161
+ .slice(cut.startIndex)
162
+ .filter((entry) => !hasAutoCompactionContinuationMetadata(entry.message))
163
+ .map((entry) => ({ ...entry }));
164
+ if (retainedEntries.length === 0) {
165
+ return undefined;
166
+ }
167
+ return {
168
+ previousSummary: latestCompaction.summary,
169
+ retainedEntries,
170
+ cutType: cut.cutType,
171
+ formattedHistory,
172
+ };
173
+ }
174
+ export function buildAutoCompactionPrompt(preparation) {
175
+ return buildSessionCompactionPrompt({
176
+ preparation,
177
+ guidance: preparation.cutType === "split-turn"
178
+ ? "The retained context will begin in the middle of the latest assistant/tool turn. Ensure the summary preserves the original user request, earlier tool work, and the state immediately before the retained suffix."
179
+ : "The retained context will include recent messages verbatim. Ensure the summary complements that retained context without duplicating unnecessary detail.",
180
+ });
181
+ }
182
+ export function buildAutoCompactionContinuationMessage(args) {
183
+ const lines = [
184
+ "<system>",
185
+ "The conversation context before this point has been compacted.",
186
+ "Earlier context is summarized in the compaction message above. Recent messages are retained verbatim after that summary.",
187
+ "Continue from the summary and retained context without asking the user to repeat information.",
188
+ ];
189
+ if (args.cutType === "split-turn") {
190
+ lines.push("The retained messages begin in the middle of the latest assistant/tool turn. The summary contains the original request and earlier tool work from that turn.");
191
+ }
192
+ const subagentStatus = args.subagentStatus?.trim();
193
+ if (subagentStatus) {
194
+ lines.push("", "<active-subagents>", subagentStatus, "</active-subagents>");
195
+ }
196
+ lines.push("</system>");
197
+ const text = prependModelNotice(lines.join("\n"), args.modelNotice);
198
+ return {
199
+ role: "user",
200
+ content: [
201
+ {
202
+ type: "text",
203
+ text: prependTauUserMetadata(text, [{ type: "auto-compaction-continuation", version: 1 }]),
204
+ },
205
+ ],
206
+ timestamp: args.now,
207
+ };
208
+ }
209
+ export function selectAutoCompactionCut(entries, args) {
210
+ if (entries.length === 0 || args.startIndex >= entries.length) {
211
+ return undefined;
212
+ }
213
+ const turnStarts = collectTurnStarts(entries, args.startIndex);
214
+ const latestTurnStart = turnStarts.at(-1) ?? findOngoingTurnStart(entries, args.startIndex);
215
+ if (latestTurnStart === undefined) {
216
+ return undefined;
217
+ }
218
+ const latestTurnTokens = estimateEntriesTokens(entries.slice(latestTurnStart));
219
+ if (latestTurnTokens <= args.keepRecentTokens) {
220
+ if (turnStarts.length === 0) {
221
+ return undefined;
222
+ }
223
+ let firstKeptTurn = latestTurnStart;
224
+ let totalTokens = latestTurnTokens;
225
+ for (let i = turnStarts.length - 2; i >= 0; i -= 1) {
226
+ const turnStart = turnStarts[i];
227
+ const nextTurnStart = turnStarts[i + 1];
228
+ const turnTokens = estimateEntriesTokens(entries.slice(turnStart, nextTurnStart));
229
+ if (totalTokens + turnTokens > args.keepRecentTokens) {
230
+ break;
231
+ }
232
+ firstKeptTurn = turnStart;
233
+ totalTokens += turnTokens;
234
+ }
235
+ if (firstKeptTurn <= args.startIndex) {
236
+ return undefined;
237
+ }
238
+ return { startIndex: firstKeptTurn, cutType: "turn-boundary" };
239
+ }
240
+ const splitStart = selectLatestTurnSplitStart(entries, {
241
+ turnStart: latestTurnStart,
242
+ keepRecentTokens: args.keepRecentTokens,
243
+ });
244
+ if (splitStart === undefined) {
245
+ return latestTurnStart > args.startIndex
246
+ ? { startIndex: latestTurnStart, cutType: "turn-boundary" }
247
+ : undefined;
248
+ }
249
+ if (splitStart <= args.startIndex) {
250
+ return undefined;
251
+ }
252
+ return { startIndex: splitStart, cutType: "split-turn" };
253
+ }
254
+ function findLatestCompactionEntry(entries) {
255
+ for (let index = entries.length - 1; index >= 0; index -= 1) {
256
+ const metadata = getSummaryCompactionMetadataFromMessage(entries[index].message);
257
+ if (metadata) {
258
+ return { index, summary: metadata.summary };
259
+ }
260
+ }
261
+ return { index: -1 };
262
+ }
263
+ function collectTurnStarts(entries, startIndex) {
264
+ const starts = [];
265
+ for (let index = Math.max(0, startIndex); index < entries.length; index += 1) {
266
+ const message = entries[index].message;
267
+ if (message.role !== "user") {
268
+ continue;
269
+ }
270
+ if (getSummaryCompactionMetadataFromMessage(message) ||
271
+ hasAutoCompactionContinuationMetadata(message)) {
272
+ continue;
273
+ }
274
+ starts.push(index);
275
+ }
276
+ return starts;
277
+ }
278
+ function findOngoingTurnStart(entries, startIndex) {
279
+ for (let index = Math.max(0, startIndex); index < entries.length; index += 1) {
280
+ if (!hasAutoCompactionContinuationMetadata(entries[index].message)) {
281
+ return index;
282
+ }
283
+ }
284
+ return undefined;
285
+ }
286
+ function selectLatestTurnSplitStart(entries, args) {
287
+ let retainedTokens = 0;
288
+ let latestAssistantBoundary;
289
+ let crossedBudget = false;
290
+ for (let index = entries.length - 1; index >= args.turnStart; index -= 1) {
291
+ const entry = entries[index];
292
+ if (hasAutoCompactionContinuationMetadata(entry.message)) {
293
+ continue;
294
+ }
295
+ retainedTokens += estimateMessageTokens(entry.message);
296
+ if (entry.message.role === "assistant") {
297
+ latestAssistantBoundary = index;
298
+ }
299
+ if (retainedTokens > args.keepRecentTokens) {
300
+ crossedBudget = true;
301
+ }
302
+ if (crossedBudget && latestAssistantBoundary !== undefined) {
303
+ return latestAssistantBoundary;
304
+ }
305
+ }
306
+ return latestAssistantBoundary;
307
+ }
308
+ function estimateEntriesTokens(entries) {
309
+ return entries.reduce((total, entry) => hasAutoCompactionContinuationMetadata(entry.message)
310
+ ? total
311
+ : total + estimateMessageTokens(entry.message), 0);
312
+ }
313
+ function estimateMessageTokens(message) {
314
+ return Math.max(1, bytesToTokens(Buffer.byteLength(JSON.stringify(message), "utf8")));
315
+ }
123
316
  function extractLastAssistantMessage(history) {
124
317
  for (let i = history.length - 1; i >= 0; i--) {
125
318
  if (history[i].role !== "assistant") {
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../../src/core/session/compaction.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAe5D,MAAM,CAAC,MAAM,sCAAsC,GACjD,0LAA0L,CAAC;AAE7L,MAAM,+BAA+B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EAoCmC,CAAC;AAE5E,MAAM,sCAAsC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EA0C4B,CAAC;AAE5E,MAAM,UAAU,wBAAwB,CACtC,OAA2B;IAE3B,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACxF,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;IACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,eAAe;QACf,mBAAmB;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAG5C;IACC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACvC,IAAI,aAAa,GAAG,mBAAmB,WAAW,CAAC,gBAAgB,uBAAuB,CAAC;IAC3F,IAAI,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;QACxC,aAAa,IAAI,uBAAuB,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,2BAA2B,CAAC;IACxG,CAAC;IAED,aAAa,IAAI,WAAW,CAAC,eAAe;QAC1C,CAAC,CAAC,sCAAsC;QACxC,CAAC,CAAC,+BAA+B,CAAC;IAEpC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,IAAI,yBAAyB,aAAa,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAI7C;IACC,MAAM,oBAAoB,GACxB,IAAI,CAAC,IAAI,KAAK,qBAAqB;QACjC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,iBAAiB,EAAE,0BAA0B,CAAC;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,oBAAoB;SACrB,CAAC;QACF,qBAAqB,EAAE,OAAO,CAAC,oBAAoB,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA2B;IAC9D,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../../src/core/session/compaction.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,9 @@ export class CoreSession {
37
37
  replaceMessage(index, message) {
38
38
  return this.engine.replaceMessage(index, message);
39
39
  }
40
+ replaceMessageById(historyEntryId, message) {
41
+ return this.engine.replaceMessageById(historyEntryId, message);
42
+ }
40
43
  listRewindCandidates() {
41
44
  return this.engine.listRewindCandidates();
42
45
  }
@@ -46,6 +49,12 @@ export class CoreSession {
46
49
  get history() {
47
50
  return this.engine.history;
48
51
  }
52
+ get rawHistory() {
53
+ return this.engine.rawHistory;
54
+ }
55
+ get rawHistoryEntries() {
56
+ return this.engine.rawHistoryEntriesSnapshot;
57
+ }
49
58
  get historyEntries() {
50
59
  return this.engine.historyEntriesSnapshot;
51
60
  }
@@ -56,7 +65,7 @@ export class CoreSession {
56
65
  return await this.engine.compact(options);
57
66
  }
58
67
  async *events(signal) {
59
- yield* this.engine.processTurn(signal);
68
+ return yield* this.engine.processTurn(signal);
60
69
  }
61
70
  }
62
71
  //# sourceMappingURL=core_session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core_session.js","sourceRoot":"","sources":["../../../src/core/session/core_session.ts"],"names":[],"mappings":"AAMA,OAAO,EAML,aAAa,GACd,MAAM,qBAAqB,CAAC;AAyB7B,MAAM,OAAO,WAAW;IACL,MAAM,CAAgB;IAEvC,YAAY,OAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,UAAU,CACR,OAAgB,EAChB,YAAoB,EACpB,eAAuC;QAEvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,YAAY,CAAC,KAAgB;QAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,OAAuE;QACtF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,OAAmC;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,YAAoB,EAAE,OAAqC;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,UAAU,CAAC,OAAgB,EAAE,OAAqC;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,OAAgB;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC5C,CAAC;IAED,sBAAsB,CAAC,cAAsB;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC5C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAiC;QAC7C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,MAAmB;QAC/B,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"core_session.js","sourceRoot":"","sources":["../../../src/core/session/core_session.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,12 @@
1
1
  import { createToolError } from "../utils/messages.js";
2
- import { resolveOpenAICodexCachedWebSocketFallbackOptions, streamModel, } from "../utils/model_stream.js";
2
+ import { streamModel } from "../utils/model_stream.js";
3
3
  import { MessageAccumulator } from "./message_accumulator.js";
4
4
  export async function* runModelSubturn(options) {
5
5
  const { model, context, streamOptions, signal, emitPartials = false, retry } = options;
6
6
  const runAttempt = async function* (attemptOptions) {
7
7
  const stream = streamModel(model, context, attemptOptions);
8
8
  const accumulator = emitPartials ? new MessageAccumulator() : undefined;
9
- let receivedProviderEvent = false;
10
9
  for await (const event of stream) {
11
- if (event.type !== "error") {
12
- receivedProviderEvent = true;
13
- }
14
10
  if (accumulator) {
15
11
  accumulator.processEvent(event);
16
12
  }
@@ -20,7 +16,7 @@ export async function* runModelSubturn(options) {
20
16
  }
21
17
  }
22
18
  }
23
- return { result: await stream.result(), receivedProviderEvent };
19
+ return await stream.result();
24
20
  };
25
21
  const retryNotice = retry?.notice
26
22
  ? {
@@ -52,24 +48,9 @@ export async function* runModelSubturn(options) {
52
48
  });
53
49
  };
54
50
  let attempt = 0;
55
- let attemptOptions = streamOptions;
56
- let usedCachedWebSocketFallback = false;
57
51
  while (true) {
58
52
  try {
59
- const { result, receivedProviderEvent } = yield* runAttempt(attemptOptions);
60
- const fallbackOptions = usedCachedWebSocketFallback
61
- ? undefined
62
- : resolveOpenAICodexCachedWebSocketFallbackOptions({
63
- model,
64
- options: attemptOptions,
65
- result,
66
- receivedProviderEvent,
67
- });
68
- if (fallbackOptions) {
69
- usedCachedWebSocketFallback = true;
70
- attemptOptions = fallbackOptions;
71
- continue;
72
- }
53
+ const result = yield* runAttempt(streamOptions);
73
54
  if (attempt < maxRetries && retry?.shouldRetryAfterError?.({ error: result, model })) {
74
55
  attempt += 1;
75
56
  if (retryNotice) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/session/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/session/runner.ts"],"names":[],"mappings":"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"}