@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.
- package/README.md +10 -1
- package/dist/core/async/session_manager.js +9 -2
- package/dist/core/async/session_manager.js.map +1 -1
- package/dist/core/auth/cli.js +1 -1
- package/dist/core/auth/cli.js.map +1 -1
- package/dist/core/auth/credential_resolver.js +1 -1
- package/dist/core/auth/credential_resolver.js.map +1 -1
- package/dist/core/auth/providers/openai_codex.js +1 -1
- package/dist/core/auth/providers/openai_codex.js.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.js +53 -0
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/virtual_defaults.js +2 -0
- package/dist/core/config/virtual_defaults.js.map +1 -1
- package/dist/core/diff_review/review_thread.js +4 -1
- package/dist/core/diff_review/review_thread.js.map +1 -1
- package/dist/core/events/parser.js +32 -0
- package/dist/core/events/parser.js.map +1 -1
- package/dist/core/events/types.js.map +1 -1
- package/dist/core/models/catalog.js +1 -1
- package/dist/core/models/catalog.js.map +1 -1
- package/dist/core/modes/rpc_protocol.js.map +1 -1
- package/dist/core/modes/rpc_server.js +1 -0
- package/dist/core/modes/rpc_server.js.map +1 -1
- package/dist/core/runtime/conversation_turn_runtime.js +12 -3
- package/dist/core/runtime/conversation_turn_runtime.js.map +1 -1
- package/dist/core/session/compaction.js +206 -13
- package/dist/core/session/compaction.js.map +1 -1
- package/dist/core/session/core_session.js +10 -1
- package/dist/core/session/core_session.js.map +1 -1
- package/dist/core/session/runner.js +3 -22
- package/dist/core/session/runner.js.map +1 -1
- package/dist/core/session/session_engine.js +267 -24
- package/dist/core/session/session_engine.js.map +1 -1
- package/dist/core/subagents/control_plane.js +7 -4
- package/dist/core/subagents/control_plane.js.map +1 -1
- package/dist/core/subagents/subagent_engine.js +2 -2
- package/dist/core/subagents/subagent_engine.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +1 -1
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/utils/auto_retry.js +1 -1
- package/dist/core/utils/auto_retry.js.map +1 -1
- package/dist/core/utils/compact.js +2 -64
- package/dist/core/utils/compact.js.map +1 -1
- package/dist/core/utils/model_stream.js +2 -17
- package/dist/core/utils/model_stream.js.map +1 -1
- package/dist/core/utils/user_metadata.js +191 -0
- package/dist/core/utils/user_metadata.js.map +1 -0
- package/dist/core/version.js +1 -1
- package/dist/sdk/types.d.ts +5 -1
- package/dist/tui/chat_controller/session_maintenance_service.js +24 -24
- package/dist/tui/chat_controller/session_maintenance_service.js.map +1 -1
- package/dist/tui/chat_controller.js +70 -6
- package/dist/tui/chat_controller.js.map +1 -1
- package/dist/tui/chat_view.js +4 -1
- package/dist/tui/chat_view.js.map +1 -1
- package/dist/tui/terminal.js +1 -1
- package/dist/tui/terminal.js.map +1 -1
- package/dist/tui/ui/app_intro.js +1 -1
- package/dist/tui/ui/app_intro.js.map +1 -1
- package/dist/tui/ui/assistant_message.js +1 -1
- package/dist/tui/ui/assistant_message.js.map +1 -1
- package/dist/tui/ui/chat_container.js +1 -1
- package/dist/tui/ui/chat_container.js.map +1 -1
- package/dist/tui/ui/components/editor.js +1 -1
- package/dist/tui/ui/components/editor.js.map +1 -1
- package/dist/tui/ui/components/header_box.js +1 -1
- package/dist/tui/ui/components/header_box.js.map +1 -1
- package/dist/tui/ui/components/header_line.js +53 -10
- package/dist/tui/ui/components/header_line.js.map +1 -1
- package/dist/tui/ui/components/one_line_segments.js +3 -72
- package/dist/tui/ui/components/one_line_segments.js.map +1 -1
- package/dist/tui/ui/custom_editor.js +1 -1
- package/dist/tui/ui/custom_editor.js.map +1 -1
- package/dist/tui/ui/diff_review_message.js +1 -1
- package/dist/tui/ui/diff_review_message.js.map +1 -1
- package/dist/tui/ui/footer.js +1 -1
- package/dist/tui/ui/footer.js.map +1 -1
- package/dist/tui/ui/queued_messages.js +1 -1
- package/dist/tui/ui/queued_messages.js.map +1 -1
- package/dist/tui/ui/rewind_picker.js +1 -1
- package/dist/tui/ui/rewind_picker.js.map +1 -1
- package/dist/tui/ui/session_divider.js +1 -1
- package/dist/tui/ui/session_divider.js.map +1 -1
- package/dist/tui/ui/subagent_editor_pane.js +1 -1
- package/dist/tui/ui/subagent_editor_pane.js.map +1 -1
- package/dist/tui/ui/subagent_panel.js +1 -1
- package/dist/tui/ui/subagent_panel.js.map +1 -1
- package/dist/tui/ui/system_message.js +1 -1
- package/dist/tui/ui/system_message.js.map +1 -1
- package/dist/tui/ui/tool_output.js +5 -34
- package/dist/tui/ui/tool_output.js.map +1 -1
- package/dist/tui/ui/user_message.js +1 -1
- package/dist/tui/ui/user_message.js.map +1 -1
- package/package.json +9 -9
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { buildCompactionUserMessage, formatHistoryForCompaction } from "../utils/compact.js";
|
|
2
3
|
import { extractAssistantText } from "../utils/messages.js";
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
36
|
-
- Keep each section
|
|
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
|
|
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
|
|
79
|
-
- Keep each section
|
|
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
|
|
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":"
|
|
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,
|
|
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 {
|
|
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
|
|
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
|
|
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":"AAwBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/core/session/runner.ts"],"names":[],"mappings":"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"}
|