@koda-sl/baker-bridge 0.65.1 → 0.66.2
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 +49 -16
- package/dist/hono/attachments.d.ts +33 -3
- package/dist/hono/attachments.d.ts.map +1 -1
- package/dist/hono/attachments.js +138 -53
- package/dist/hono/attachments.js.map +1 -1
- package/dist/hono/attachments.test.js +136 -14
- package/dist/hono/attachments.test.js.map +1 -1
- package/dist/hono/bridge-job.d.ts +4 -0
- package/dist/hono/bridge-job.d.ts.map +1 -1
- package/dist/hono/bridge-job.js +37 -8
- package/dist/hono/bridge-job.js.map +1 -1
- package/dist/hono/relay.d.ts +4 -0
- package/dist/hono/relay.d.ts.map +1 -1
- package/dist/hono/relay.js +1 -0
- package/dist/hono/relay.js.map +1 -1
- package/dist/hono/turn-model-usage.d.ts +49 -0
- package/dist/hono/turn-model-usage.d.ts.map +1 -0
- package/dist/hono/turn-model-usage.js +71 -0
- package/dist/hono/turn-model-usage.js.map +1 -0
- package/dist/hono/turn-model-usage.test.d.ts +2 -0
- package/dist/hono/turn-model-usage.test.d.ts.map +1 -0
- package/dist/hono/turn-model-usage.test.js +88 -0
- package/dist/hono/turn-model-usage.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -43,6 +43,9 @@ function minimalPdf(text) {
|
|
|
43
43
|
chunks.push(Buffer.from(`trailer << /Root 1 0 R /Size 6 >>\nstartxref\n${String(xrefOffset)}\n%%EOF\n`, "ascii"));
|
|
44
44
|
return Buffer.concat(chunks);
|
|
45
45
|
}
|
|
46
|
+
function readyPdfText(attachment) {
|
|
47
|
+
return attachment?.status === "ready" ? attachment.pdfText?.text : undefined;
|
|
48
|
+
}
|
|
46
49
|
async function installFakePdftotext(script) {
|
|
47
50
|
const dir = await mkdtemp(join(tmpdir(), "baker-bridge-pdftotext-"));
|
|
48
51
|
tempDirs.push(dir);
|
|
@@ -61,37 +64,125 @@ describe("buildAttachmentPromptSuffix", () => {
|
|
|
61
64
|
it("labels local attachment paths with the original filename", () => {
|
|
62
65
|
const suffix = buildAttachmentPromptSuffix([
|
|
63
66
|
{
|
|
67
|
+
status: "ready",
|
|
64
68
|
originalFilename: "checkout-form-broken-mobile.png",
|
|
65
69
|
localPath: "/tmp/attachments/1738256789-checkout_form_broken_mobile.png",
|
|
66
70
|
kind: "file",
|
|
67
71
|
},
|
|
68
72
|
]);
|
|
69
|
-
expect(suffix).toContain("- checkout-form-broken-mobile.png
|
|
73
|
+
expect(suffix).toContain("- checkout-form-broken-mobile.png — /tmp/attachments/1738256789-checkout_form_broken_mobile.png");
|
|
74
|
+
expect(suffix).toContain("Use the Read tool on the path above to open it.");
|
|
75
|
+
});
|
|
76
|
+
it("states the obligation to open attachments and not to search for them", () => {
|
|
77
|
+
const suffix = buildAttachmentPromptSuffix([
|
|
78
|
+
{ status: "ready", originalFilename: "brief.png", localPath: "/tmp/attachments/1-brief.png", kind: "file" },
|
|
79
|
+
]);
|
|
80
|
+
expect(suffix).toContain("=== ATTACHED FILE (1) ===");
|
|
81
|
+
expect(suffix).toContain("Open and use it before you answer.");
|
|
82
|
+
expect(suffix).toContain("do not search the workspace for it");
|
|
70
83
|
});
|
|
71
|
-
it("inlines extracted PDF text and
|
|
84
|
+
it("inlines extracted PDF text and still permits Read as a fallback", () => {
|
|
72
85
|
const suffix = buildAttachmentPromptSuffix([
|
|
73
86
|
{
|
|
87
|
+
status: "ready",
|
|
74
88
|
originalFilename: "promo brief.pdf",
|
|
75
89
|
localPath: "/tmp/attachments/1738256789-promo_brief.pdf",
|
|
76
90
|
kind: "pdf",
|
|
77
91
|
pdfText: { text: "Monthly promo: 25% discount", truncated: false },
|
|
78
92
|
},
|
|
79
93
|
]);
|
|
80
|
-
expect(suffix).toContain("
|
|
81
|
-
expect(suffix).toContain("- promo brief.pdf: /tmp/attachments/1738256789-promo_brief.pdf");
|
|
94
|
+
expect(suffix).toContain("- promo brief.pdf — /tmp/attachments/1738256789-promo_brief.pdf");
|
|
82
95
|
expect(suffix).toContain("<pdf_text>");
|
|
83
96
|
expect(suffix).toContain("Monthly promo: 25% discount");
|
|
97
|
+
expect(suffix).toContain("Use the Read tool on the path above if you need layout, images, or exact pages");
|
|
98
|
+
expect(suffix).not.toContain("Do not use the Read tool");
|
|
84
99
|
});
|
|
85
|
-
it("
|
|
100
|
+
it("sends the agent to Read the file when PDF extraction fails", () => {
|
|
86
101
|
const suffix = buildAttachmentPromptSuffix([
|
|
87
102
|
{
|
|
103
|
+
status: "ready",
|
|
88
104
|
originalFilename: "locked.pdf",
|
|
89
105
|
localPath: "/tmp/attachments/1738256789-locked.pdf",
|
|
90
106
|
kind: "pdf",
|
|
91
107
|
},
|
|
92
108
|
]);
|
|
93
|
-
expect(suffix).toContain("
|
|
94
|
-
expect(suffix).toContain("
|
|
109
|
+
expect(suffix).toContain("Use the Read tool on the path above to read it directly");
|
|
110
|
+
expect(suffix).toContain("do not answer as if you had read it");
|
|
111
|
+
});
|
|
112
|
+
it("asks for a resend only when sending the same file again could work", () => {
|
|
113
|
+
const suffix = buildAttachmentPromptSuffix([
|
|
114
|
+
{
|
|
115
|
+
status: "ready",
|
|
116
|
+
originalFilename: "ok.png",
|
|
117
|
+
localPath: "/tmp/attachments/1-ok.png",
|
|
118
|
+
kind: "file",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
status: "unavailable",
|
|
122
|
+
originalFilename: "contract.pdf",
|
|
123
|
+
reason: "it could not be downloaded",
|
|
124
|
+
recovery: "resend",
|
|
125
|
+
},
|
|
126
|
+
]);
|
|
127
|
+
expect(suffix).toContain("- contract.pdf — NOT AVAILABLE: it could not be downloaded.");
|
|
128
|
+
expect(suffix).toContain("ask them to send it again");
|
|
129
|
+
});
|
|
130
|
+
it("does not send the user in a loop re-sending a file that will fail identically", () => {
|
|
131
|
+
const suffix = buildAttachmentPromptSuffix([
|
|
132
|
+
{
|
|
133
|
+
status: "ready",
|
|
134
|
+
originalFilename: "ok.png",
|
|
135
|
+
localPath: "/tmp/attachments/1-ok.png",
|
|
136
|
+
kind: "file",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
status: "unavailable",
|
|
140
|
+
originalFilename: "huge.png",
|
|
141
|
+
reason: "it is 9.4 MB, over the 5 MB limit for images",
|
|
142
|
+
recovery: "different_file",
|
|
143
|
+
},
|
|
144
|
+
]);
|
|
145
|
+
expect(suffix).toContain("Sending the same file again will fail the same way");
|
|
146
|
+
expect(suffix).toContain("ask for a smaller or corrected version");
|
|
147
|
+
expect(suffix).not.toContain("send it again");
|
|
148
|
+
});
|
|
149
|
+
it("does not claim files are on disk when every attachment failed", () => {
|
|
150
|
+
const suffix = buildAttachmentPromptSuffix([
|
|
151
|
+
{
|
|
152
|
+
status: "unavailable",
|
|
153
|
+
originalFilename: "contract.pdf",
|
|
154
|
+
reason: "it could not be downloaded",
|
|
155
|
+
recovery: "resend",
|
|
156
|
+
},
|
|
157
|
+
]);
|
|
158
|
+
expect(suffix).not.toContain("Open and use");
|
|
159
|
+
expect(suffix).not.toContain("already downloaded");
|
|
160
|
+
expect(suffix).toContain("could not be opened");
|
|
161
|
+
expect(suffix).toContain("Do not answer as if nothing was attached");
|
|
162
|
+
});
|
|
163
|
+
it("scopes the on-disk promise to the files that actually landed", () => {
|
|
164
|
+
const suffix = buildAttachmentPromptSuffix([
|
|
165
|
+
{ status: "ready", originalFilename: "brief.png", localPath: "/tmp/attachments/1-brief.png", kind: "file" },
|
|
166
|
+
{
|
|
167
|
+
status: "unavailable",
|
|
168
|
+
originalFilename: "gone.pdf",
|
|
169
|
+
reason: "it could not be downloaded",
|
|
170
|
+
recovery: "resend",
|
|
171
|
+
},
|
|
172
|
+
]);
|
|
173
|
+
expect(suffix).toContain("The file listed with a path is already downloaded at exactly that path");
|
|
174
|
+
});
|
|
175
|
+
it("truncated PDF text points the agent at the file for the rest", () => {
|
|
176
|
+
const suffix = buildAttachmentPromptSuffix([
|
|
177
|
+
{
|
|
178
|
+
status: "ready",
|
|
179
|
+
originalFilename: "long.pdf",
|
|
180
|
+
localPath: "/tmp/attachments/1-long.pdf",
|
|
181
|
+
kind: "pdf",
|
|
182
|
+
pdfText: { text: "start of doc", truncated: true },
|
|
183
|
+
},
|
|
184
|
+
]);
|
|
185
|
+
expect(suffix).toContain("The text above is TRUNCATED");
|
|
95
186
|
});
|
|
96
187
|
});
|
|
97
188
|
describe("pickLocalName", () => {
|
|
@@ -131,14 +222,47 @@ describe("pickLocalName", () => {
|
|
|
131
222
|
});
|
|
132
223
|
});
|
|
133
224
|
describe("downloadAttachments", () => {
|
|
134
|
-
it("
|
|
225
|
+
it("reports downloaded PDFs whose body is not a PDF as unavailable instead of dropping them", async () => {
|
|
135
226
|
vi.stubGlobal("fetch", async () => new Response(HTML_BODY, {
|
|
136
227
|
status: 200,
|
|
137
228
|
headers: { "content-length": String(HTML_BODY.length), "content-type": "text/html" },
|
|
138
229
|
}));
|
|
139
|
-
await
|
|
230
|
+
const attachments = await downloadAttachments([
|
|
140
231
|
{ url: "https://media.example/brief.pdf", contentType: "application/pdf", filename: "brief.pdf" },
|
|
141
|
-
])
|
|
232
|
+
]);
|
|
233
|
+
expect(attachments).toMatchObject([{ status: "unavailable", originalFilename: "brief.pdf" }]);
|
|
234
|
+
});
|
|
235
|
+
it("reports a failed download as unavailable and retryable", async () => {
|
|
236
|
+
vi.stubGlobal("fetch", async () => new Response("nope", { status: 404 }));
|
|
237
|
+
const attachments = await downloadAttachments([
|
|
238
|
+
{ url: "https://media.example/gone.pdf", contentType: "application/pdf", filename: "gone.pdf" },
|
|
239
|
+
]);
|
|
240
|
+
expect(attachments).toMatchObject([{ status: "unavailable", originalFilename: "gone.pdf", recovery: "resend" }]);
|
|
241
|
+
});
|
|
242
|
+
it("keeps raw failure detail out of the reason the agent relays to the user", async () => {
|
|
243
|
+
vi.stubGlobal("fetch", () => Promise.reject(new Error("ENOENT: no such file or directory, open '/home/user/.baker/tmp/x'")));
|
|
244
|
+
const attachments = await downloadAttachments([
|
|
245
|
+
{ url: "https://media.example/brief.pdf", contentType: "application/pdf", filename: "brief.pdf" },
|
|
246
|
+
]);
|
|
247
|
+
const suffix = buildAttachmentPromptSuffix(attachments);
|
|
248
|
+
expect(suffix).not.toContain("ENOENT");
|
|
249
|
+
expect(suffix).not.toContain("/home/user");
|
|
250
|
+
expect(suffix).toContain("it could not be opened");
|
|
251
|
+
});
|
|
252
|
+
it("states an oversize rejection in megabytes without raw byte counts", async () => {
|
|
253
|
+
const oversized = Buffer.alloc(6 * 1024 * 1024, 0);
|
|
254
|
+
PNG_HEADER.copy(oversized);
|
|
255
|
+
vi.stubGlobal("fetch", async () => new Response(oversized, {
|
|
256
|
+
status: 200,
|
|
257
|
+
headers: { "content-length": String(oversized.length), "content-type": "image/png" },
|
|
258
|
+
}));
|
|
259
|
+
const attachments = await downloadAttachments([
|
|
260
|
+
{ url: "https://media.example/huge.png", contentType: "image/png", filename: "huge.png" },
|
|
261
|
+
]);
|
|
262
|
+
const suffix = buildAttachmentPromptSuffix(attachments);
|
|
263
|
+
expect(attachments).toMatchObject([{ status: "unavailable", recovery: "different_file" }]);
|
|
264
|
+
expect(suffix).toContain("over the 5 MB limit for images");
|
|
265
|
+
expect(suffix).not.toContain(String(6 * 1024 * 1024));
|
|
142
266
|
});
|
|
143
267
|
it("extracts text from downloaded PDFs with pdftotext", async () => {
|
|
144
268
|
const pdf = minimalPdf("Monthly promo text");
|
|
@@ -167,10 +291,8 @@ describe("downloadAttachments", () => {
|
|
|
167
291
|
const attachments = await downloadAttachments([
|
|
168
292
|
{ url: "https://media.example/large.pdf", contentType: "application/pdf", filename: "large.pdf" },
|
|
169
293
|
]);
|
|
170
|
-
|
|
171
|
-
expect(
|
|
172
|
-
expect(attachment?.pdfText?.truncated).toBe(true);
|
|
173
|
-
expect(attachment?.pdfText?.text).toHaveLength(30_000);
|
|
294
|
+
expect(attachments[0]).toMatchObject({ kind: "pdf", pdfText: { truncated: true } });
|
|
295
|
+
expect(readyPdfText(attachments[0])).toHaveLength(30_000);
|
|
174
296
|
});
|
|
175
297
|
});
|
|
176
298
|
//# sourceMappingURL=attachments.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.test.js","sourceRoot":"","sources":["../../src/hono/attachments.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attachments.test.js","sourceRoot":"","sources":["../../src/hono/attachments.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { type McpServersProvider } from "./mcp-servers.ts";
|
|
|
6
6
|
import { type DirtySessionReason } from "./session-continuity.ts";
|
|
7
7
|
import type { ClaudeSessionBoundary, LoadedSessionBoundary } from "./session-store.ts";
|
|
8
8
|
import { type TagChangeInput, type TagChangeResolution } from "./tag-input.ts";
|
|
9
|
+
import { type TurnModelUsage } from "./turn-model-usage.ts";
|
|
9
10
|
import type { ChatAttachment, CurrentReference, DispatchHistorySnapshot, DispatchSender } from "./types.ts";
|
|
10
11
|
export type BridgeJob = {
|
|
11
12
|
threadId: string;
|
|
@@ -30,16 +31,19 @@ export type BridgeJobOutcome = {
|
|
|
30
31
|
kind: "completed";
|
|
31
32
|
costUsd: number;
|
|
32
33
|
model?: string;
|
|
34
|
+
modelUsage?: TurnModelUsage[];
|
|
33
35
|
completeChat?: boolean;
|
|
34
36
|
cleanBoundary?: ClaudeSessionBoundary;
|
|
35
37
|
} | {
|
|
36
38
|
kind: "cancelled";
|
|
37
39
|
costUsd: number;
|
|
38
40
|
model?: string;
|
|
41
|
+
modelUsage?: TurnModelUsage[];
|
|
39
42
|
} | {
|
|
40
43
|
kind: "errored";
|
|
41
44
|
costUsd: number;
|
|
42
45
|
model?: string;
|
|
46
|
+
modelUsage?: TurnModelUsage[];
|
|
43
47
|
errors: string[];
|
|
44
48
|
};
|
|
45
49
|
export type PendingQuestion = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-job.d.ts","sourceRoot":"","sources":["../../src/hono/bridge-job.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAoB,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC1G,OAAO,EAAE,KAAK,SAAS,EAAwE,MAAM,kBAAkB,CAAC;AACxH,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAGzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAIL,KAAK,kBAAkB,EAQxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5G,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAarE;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC,GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"bridge-job.d.ts","sourceRoot":"","sources":["../../src/hono/bridge-job.ts"],"names":[],"mappings":"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"}
|
package/dist/hono/bridge-job.js
CHANGED
|
@@ -12,6 +12,7 @@ import { bridgeRuntimeFiles } from "./runtime-files.js";
|
|
|
12
12
|
import { applyCurrentSenderAttribution, buildCleanBoundary, buildRehydratedPrompt, emptyInProgressSession, isResumeSessionError, observeInProgressSession, prepareSessionAttempt, stallContinuationAttempt, } from "./session-continuity.js";
|
|
13
13
|
import { verbatimSlashCommand } from "./slash-commands.js";
|
|
14
14
|
import { createBakerUiServer, normalizeTagInputToolInput, sanitizeTagChanges, TAG_INPUT_TOOL_NAME, } from "./tag-input.js";
|
|
15
|
+
import { addQueryModelUsage, queryModelUsage, turnModelUsageList } from "./turn-model-usage.js";
|
|
15
16
|
export function parsePlanDecision(value) {
|
|
16
17
|
if (!value || typeof value !== "object") {
|
|
17
18
|
return null;
|
|
@@ -105,6 +106,8 @@ function createBridgeJobState() {
|
|
|
105
106
|
inProgressSession: emptyInProgressSession(),
|
|
106
107
|
observedCostUsd: 0,
|
|
107
108
|
controlChannelDenies: 0,
|
|
109
|
+
modelUsageTotals: new Map(),
|
|
110
|
+
queryModelUsage: new Map(),
|
|
108
111
|
};
|
|
109
112
|
}
|
|
110
113
|
function errorMessage(error) {
|
|
@@ -552,11 +555,11 @@ export class BridgeJobExecutor {
|
|
|
552
555
|
}
|
|
553
556
|
catch (repairError) {
|
|
554
557
|
await this.clearIfDirty(job, controls, repairState, classifyDirtyReason(repairError, controls));
|
|
555
|
-
return this.errorOutcome(job, controls, repairState
|
|
558
|
+
return this.errorOutcome(job, controls, repairState, this.resultWithObservedCost(repairResult, repairState), repairError);
|
|
556
559
|
}
|
|
557
560
|
}
|
|
558
561
|
await this.clearIfDirty(job, controls, state, classifyDirtyReason(error, controls));
|
|
559
|
-
return this.errorOutcome(job, controls, state
|
|
562
|
+
return this.errorOutcome(job, controls, state, this.resultWithObservedCost(result, state), error);
|
|
560
563
|
}
|
|
561
564
|
}
|
|
562
565
|
async loadTrustedBoundary(job, controls) {
|
|
@@ -614,21 +617,24 @@ export class BridgeJobExecutor {
|
|
|
614
617
|
return { costUsd, attemptedRehydration: attempt.attemptedRehydration };
|
|
615
618
|
}
|
|
616
619
|
async finishSuccessfulAttempt(job, controls, state, costUsd) {
|
|
620
|
+
const modelUsage = turnModelUsageList(state.modelUsageTotals);
|
|
617
621
|
if (!controls.isActive()) {
|
|
618
622
|
await this.clearIfDirty(job, controls, state, "abort");
|
|
619
|
-
return { kind: "cancelled", costUsd, model: state.model };
|
|
623
|
+
return { kind: "cancelled", costUsd, model: state.model, modelUsage };
|
|
620
624
|
}
|
|
621
625
|
if (!state.postedAssistantEvent && state.turnText.length > 0) {
|
|
622
626
|
await this.postSyntheticAssistantEvent(job, state);
|
|
623
627
|
}
|
|
624
628
|
if (!controls.isActive()) {
|
|
625
629
|
await this.clearIfDirty(job, controls, state, "abort");
|
|
626
|
-
return { kind: "cancelled", costUsd, model: state.model };
|
|
630
|
+
return { kind: "cancelled", costUsd, model: state.model, modelUsage };
|
|
627
631
|
}
|
|
628
632
|
const cleanBoundary = buildCleanBoundary({ inProgress: state.inProgressSession, nowMs: this.now() });
|
|
629
|
-
return { kind: "completed", costUsd, model: state.model, cleanBoundary };
|
|
633
|
+
return { kind: "completed", costUsd, model: state.model, modelUsage, cleanBoundary };
|
|
630
634
|
}
|
|
631
|
-
errorOutcome(job, controls,
|
|
635
|
+
errorOutcome(job, controls, state, result, error) {
|
|
636
|
+
const model = state.model;
|
|
637
|
+
const modelUsage = turnModelUsageList(state.modelUsageTotals);
|
|
632
638
|
if (result.attemptedRehydration) {
|
|
633
639
|
void this.relay.contextSource({ threadId: job.threadId, turnId: job.turnId }, "rehydration_failed", {
|
|
634
640
|
historyEntryCount: job.history?.entries.length ?? 0,
|
|
@@ -638,9 +644,15 @@ export class BridgeJobExecutor {
|
|
|
638
644
|
});
|
|
639
645
|
}
|
|
640
646
|
if (!controls.isActive()) {
|
|
641
|
-
return { kind: "cancelled", costUsd: result.costUsd, model };
|
|
647
|
+
return { kind: "cancelled", costUsd: result.costUsd, model, modelUsage };
|
|
642
648
|
}
|
|
643
|
-
return {
|
|
649
|
+
return {
|
|
650
|
+
kind: "errored",
|
|
651
|
+
costUsd: result.costUsd,
|
|
652
|
+
model,
|
|
653
|
+
modelUsage,
|
|
654
|
+
errors: [enrichImageError(errorMessage(error))],
|
|
655
|
+
};
|
|
644
656
|
}
|
|
645
657
|
resultWithObservedCost(result, state) {
|
|
646
658
|
return { ...result, costUsd: Math.max(result.costUsd, state.observedCostUsd) };
|
|
@@ -700,6 +712,10 @@ export class BridgeJobExecutor {
|
|
|
700
712
|
}
|
|
701
713
|
async runQueryOnce(job, controls, state, attempt, prepared) {
|
|
702
714
|
let costUsd = 0;
|
|
715
|
+
// Fresh per-model staging for this query invocation. Result messages replace
|
|
716
|
+
// it (they are cumulative); it is folded into the turn totals in `finally`,
|
|
717
|
+
// so a stall that lands after a clean result still contributes its snapshot.
|
|
718
|
+
state.queryModelUsage = new Map();
|
|
703
719
|
const mcpServers = await this.resolveMcpServers(job);
|
|
704
720
|
const autoCompactWindow = autoCompactWindowForModel(prepared.model);
|
|
705
721
|
const betas = betasForModel(prepared.model);
|
|
@@ -800,6 +816,10 @@ export class BridgeJobExecutor {
|
|
|
800
816
|
// Release the held-open input if the turn-end policy never fired (the
|
|
801
817
|
// stream ended on its own, or an error path closed the query). Idempotent.
|
|
802
818
|
query.endInput?.();
|
|
819
|
+
// Commit this query's snapshot into the turn totals, summed across queries.
|
|
820
|
+
// In `finally` so a resume-triggering stall after a clean result still
|
|
821
|
+
// records what that query observed.
|
|
822
|
+
addQueryModelUsage(state.modelUsageTotals, state.queryModelUsage);
|
|
803
823
|
}
|
|
804
824
|
if (!controls.isActive()) {
|
|
805
825
|
closeQuery();
|
|
@@ -940,6 +960,15 @@ export class BridgeJobExecutor {
|
|
|
940
960
|
trackMainRequestUsage(state, msg);
|
|
941
961
|
if (msg.type === "result") {
|
|
942
962
|
state.observedCostUsd = msg.total_cost_usd;
|
|
963
|
+
// A query's result `modelUsage` is cumulative (like `total_cost_usd`, which
|
|
964
|
+
// we overwrite above), so keep the latest snapshot rather than summing —
|
|
965
|
+
// it is folded into the turn totals when the query settles (see
|
|
966
|
+
// `runQueryOnce`). Guard against a spuriously empty later result wiping a
|
|
967
|
+
// real earlier one.
|
|
968
|
+
const snapshot = queryModelUsage(msg.modelUsage);
|
|
969
|
+
if (snapshot.size > 0) {
|
|
970
|
+
state.queryModelUsage = snapshot;
|
|
971
|
+
}
|
|
943
972
|
// Surface how full the conversation's context is. Tokens come from the last
|
|
944
973
|
// main-conversation request's own usage — the real occupancy of the window
|
|
945
974
|
// at that request. We deliberately do NOT use the result's per-model token
|