veryfront 0.1.915 → 0.1.917
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/esm/deno.js +1 -1
- package/esm/src/agent/ag-ui/browser-encoder.d.ts +1 -0
- package/esm/src/agent/ag-ui/browser-encoder.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/browser-encoder.js +16 -2
- package/esm/src/agent/ag-ui/browser-finalize-tracker.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/browser-finalize-tracker.js +3 -0
- package/esm/src/agent/ag-ui/handler.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/handler.js +14 -3
- package/esm/src/agent/ag-ui/runtime-handler.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/runtime-handler.js +14 -3
- package/esm/src/chat/provider-errors.d.ts.map +1 -1
- package/esm/src/chat/provider-errors.js +25 -1
- package/esm/src/eval/agent-service/live-evals/runner.d.ts.map +1 -1
- package/esm/src/eval/agent-service/live-evals/runner.js +3 -1
- package/esm/src/eval/agent-service.d.ts.map +1 -1
- package/esm/src/eval/agent-service.js +36 -0
- package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
- package/esm/src/internal-agents/ag-ui-sse.js +6 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
|
@@ -14,6 +14,7 @@ export interface AgUiBrowserRunFinishedMetadata {
|
|
|
14
14
|
cacheCreationInputTokens?: number;
|
|
15
15
|
cacheReadInputTokens?: number;
|
|
16
16
|
reasoningTokens?: number;
|
|
17
|
+
costUsd?: number;
|
|
17
18
|
finishReason?: string;
|
|
18
19
|
usageCaptureStatus?: "complete" | "partial" | "missing";
|
|
19
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/browser-encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,mEAAmE;AACnE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD;AAED,uCAAuC;AACvC,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,8BAA8B,CAAC;CAC1C;AAED,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,8CAA8C;AAC9C,wBAAgB,6BAA6B,IAAI,uBAAuB,CAcvE;
|
|
1
|
+
{"version":3,"file":"browser-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/browser-encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,mEAAmE;AACnE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD;AAED,uCAAuC;AACvC,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,8BAA8B,CAAC;CAC1C;AAED,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,8CAA8C;AAC9C,wBAAgB,6BAA6B,IAAI,uBAAuB,CAcvE;AAgLD,yDAAyD;AACzD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,8BAA8B,GACvC,aAAa,GAAG,IAAI,CA2DtB;AAoID,wDAAwD;AACxD,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,EAAE,CA+N3B;AAED,4CAA4C;AAC5C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,uBAAuB,EAAE,CA8B3B"}
|
|
@@ -137,12 +137,23 @@ function applyResponseMetadata(state, response) {
|
|
|
137
137
|
state.metadata.reasoningTokens = response.usage.reasoningTokens;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
const
|
|
141
|
-
? response.metadata
|
|
140
|
+
const metadata = response.metadata && typeof response.metadata === "object"
|
|
141
|
+
? response.metadata
|
|
142
142
|
: undefined;
|
|
143
|
+
const finishReason = metadata?.finishReason;
|
|
143
144
|
if (typeof finishReason === "string") {
|
|
144
145
|
state.metadata.finishReason = finishReason;
|
|
145
146
|
}
|
|
147
|
+
const costUsd = metadata?.costUsd;
|
|
148
|
+
if (typeof costUsd === "number" && Number.isFinite(costUsd) && costUsd >= 0) {
|
|
149
|
+
state.metadata.costUsd = costUsd;
|
|
150
|
+
}
|
|
151
|
+
const usageCaptureStatus = metadata?.usageCaptureStatus;
|
|
152
|
+
if (usageCaptureStatus === "complete" ||
|
|
153
|
+
usageCaptureStatus === "partial" ||
|
|
154
|
+
usageCaptureStatus === "missing") {
|
|
155
|
+
state.metadata.usageCaptureStatus = usageCaptureStatus;
|
|
156
|
+
}
|
|
146
157
|
}
|
|
147
158
|
/** Response payload for build AG-UI browser finalize. */
|
|
148
159
|
export function buildAgUiBrowserFinalizeResponse(metadata) {
|
|
@@ -162,6 +173,9 @@ export function buildAgUiBrowserFinalizeResponse(metadata) {
|
|
|
162
173
|
if (typeof metadata.reasoningTokens === "number") {
|
|
163
174
|
responseMetadata.reasoningTokens = metadata.reasoningTokens;
|
|
164
175
|
}
|
|
176
|
+
if (typeof metadata.costUsd === "number") {
|
|
177
|
+
responseMetadata.costUsd = metadata.costUsd;
|
|
178
|
+
}
|
|
165
179
|
if (metadata.usageCaptureStatus) {
|
|
166
180
|
responseMetadata.usageCaptureStatus = metadata.usageCaptureStatus;
|
|
167
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-finalize-tracker.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/browser-finalize-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EAEpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8DAA8D;AAC9D,MAAM,WAAW,0BAA0B,CAAC,MAAM;IAChD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB,EAAE,CAAC,MAAM,EAAE,SAAS,uBAAuB,EAAE,KAAK,IAAI,CAAC;IAC3E,gBAAgB,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CAC9C;AAED,iEAAiE;AACjE,MAAM,WAAW,uCAAuC,CAAC,MAAM;IAC7D,oBAAoB,EAAE,CACpB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,8BAA8B,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACjE;AAED,6CAA6C;AAC7C,wBAAgB,gCAAgC,CAAC,MAAM,EACrD,OAAO,EAAE,uCAAuC,CAAC,MAAM,CAAC,GACvD,0BAA0B,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"browser-finalize-tracker.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/browser-finalize-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EAEpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8DAA8D;AAC9D,MAAM,WAAW,0BAA0B,CAAC,MAAM;IAChD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB,EAAE,CAAC,MAAM,EAAE,SAAS,uBAAuB,EAAE,KAAK,IAAI,CAAC;IAC3E,gBAAgB,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CAC9C;AAED,iEAAiE;AACjE,MAAM,WAAW,uCAAuC,CAAC,MAAM;IAC7D,oBAAoB,EAAE,CACpB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,8BAA8B,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACjE;AAED,6CAA6C;AAC7C,wBAAgB,gCAAgC,CAAC,MAAM,EACrD,OAAO,EAAE,uCAAuC,CAAC,MAAM,CAAC,GACvD,0BAA0B,CAAC,MAAM,CAAC,CA6DpC"}
|
|
@@ -36,6 +36,9 @@ export function createAgUiBrowserFinalizeTracker(options) {
|
|
|
36
36
|
if (typeof nextMetadata.reasoningTokens === "number") {
|
|
37
37
|
metadata.reasoningTokens = nextMetadata.reasoningTokens;
|
|
38
38
|
}
|
|
39
|
+
if (typeof nextMetadata.costUsd === "number") {
|
|
40
|
+
metadata.costUsd = nextMetadata.costUsd;
|
|
41
|
+
}
|
|
39
42
|
if (nextMetadata.usageCaptureStatus) {
|
|
40
43
|
metadata.usageCaptureStatus = nextMetadata.usageCaptureStatus;
|
|
41
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAiB,MAAM,aAAa,CAAC;AAExD,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EAAE,KAAK,eAAe,EAAwB,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EACL,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,WAAW,EAChB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAoV3B,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvF,cAAc,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,+DAA+D;AAC/D,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,KAAK,EAAE,KAAK,CAAC;CACd;AAUD,gCAAgC;AAChC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD,gCAAgC;AAChC,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -89,7 +89,7 @@ function enqueueEvent(controller, event, payload) {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
async function createAgUiStreamResponse(options) {
|
|
92
|
-
const { agentId, request, runId, threadId, upstreamBody, upstreamStatus, upstreamStatusText, onFinish, onError, onToolCallSeen, } = options;
|
|
92
|
+
const { agentId, request, runId, threadId, upstreamBody, upstreamStatus, upstreamStatusText, getCompletedResponse, onFinish, onError, onToolCallSeen, } = options;
|
|
93
93
|
const stream = new ReadableStream({
|
|
94
94
|
start: async (controller) => {
|
|
95
95
|
const state = createStreamTransformState();
|
|
@@ -131,7 +131,7 @@ async function createAgUiStreamResponse(options) {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
for (const event of finalizeRunEvents(state, null)) {
|
|
134
|
+
for (const event of finalizeRunEvents(state, getCompletedResponse?.() ?? null)) {
|
|
135
135
|
if (!enqueueEvent(controller, event.event, event.payload)) {
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
@@ -174,6 +174,7 @@ async function createAgUiDirectStreamResponse(agent, request, rawRequest, baseCo
|
|
|
174
174
|
const finalContext = beforeStreamResult?.context ?? context;
|
|
175
175
|
await agent.clearMemory();
|
|
176
176
|
const toolDataEvents = createToolDataEventBridge();
|
|
177
|
+
let completedResponse = null;
|
|
177
178
|
const result = await agent.stream({
|
|
178
179
|
messages,
|
|
179
180
|
context: {
|
|
@@ -182,6 +183,9 @@ async function createAgUiDirectStreamResponse(agent, request, rawRequest, baseCo
|
|
|
182
183
|
},
|
|
183
184
|
...(request.model ? { model: request.model } : {}),
|
|
184
185
|
...(request.maxOutputTokens ? { maxOutputTokens: request.maxOutputTokens } : {}),
|
|
186
|
+
onFinish: (response) => {
|
|
187
|
+
completedResponse = response;
|
|
188
|
+
},
|
|
185
189
|
});
|
|
186
190
|
const upstream = result.toDataStreamResponse();
|
|
187
191
|
const upstreamBody = upstream.body ? toolDataEvents.wrapStream(upstream.body) : upstream.body;
|
|
@@ -193,6 +197,7 @@ async function createAgUiDirectStreamResponse(agent, request, rawRequest, baseCo
|
|
|
193
197
|
upstreamBody,
|
|
194
198
|
upstreamStatus: upstream.status,
|
|
195
199
|
upstreamStatusText: upstream.statusText,
|
|
200
|
+
getCompletedResponse: () => completedResponse,
|
|
196
201
|
});
|
|
197
202
|
}
|
|
198
203
|
async function createAgUiInjectedToolsStreamResponse(agent, request, rawRequest, baseContext, sessionManager, beforeStream) {
|
|
@@ -226,12 +231,17 @@ async function createAgUiInjectedToolsStreamResponse(agent, request, rawRequest,
|
|
|
226
231
|
tools: buildMergedAgUiTools(agent, runId, request.tools, sessionManager),
|
|
227
232
|
});
|
|
228
233
|
let upstreamBody;
|
|
234
|
+
let completedResponse = null;
|
|
229
235
|
const toolDataEvents = createToolDataEventBridge();
|
|
230
236
|
try {
|
|
231
237
|
upstreamBody = await runtime.stream(messages, {
|
|
232
238
|
...finalContext,
|
|
233
239
|
publishDataEvent: toolDataEvents.publishDataEvent,
|
|
234
|
-
},
|
|
240
|
+
}, {
|
|
241
|
+
onFinish: (response) => {
|
|
242
|
+
completedResponse = response;
|
|
243
|
+
},
|
|
244
|
+
}, request.model, request.maxOutputTokens);
|
|
235
245
|
upstreamBody = toolDataEvents.wrapStream(upstreamBody);
|
|
236
246
|
}
|
|
237
247
|
catch (error) {
|
|
@@ -245,6 +255,7 @@ async function createAgUiInjectedToolsStreamResponse(agent, request, rawRequest,
|
|
|
245
255
|
threadId,
|
|
246
256
|
upstreamBody,
|
|
247
257
|
upstreamStatus: 200,
|
|
258
|
+
getCompletedResponse: () => completedResponse,
|
|
248
259
|
onFinish: () => {
|
|
249
260
|
sessionManager.completeRun(runId);
|
|
250
261
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/runtime-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"runtime-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/runtime-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAiB,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,eAAe,EAAwB,MAAM,kBAAkB,CAAC;AAkB9E,2CAA2C;AAC3C,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAiSD,uDAAuD;AACvD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjD;AAED,6DAA6D;AAC7D,MAAM,MAAM,yBAAyB,GAAG,CACtC,KAAK,EAAE,8BAA8B,KAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAElC,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,2BAA2B,KAC/B,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAExE,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,MAAM,kCAAkC,GAAG,CAC/C,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAElC,iDAAiD;AACjD,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvF,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,uBAAuB,CAAC,EAAE,kCAAkC,CAAC;IAC7D,cAAc,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1E;AAED,uEAAuE;AACvE,MAAM,WAAW,iCAAkC,SAAQ,yBAAyB;IAClF,KAAK,EAAE,KAAK,CAAC;CACd;AAED,mDAAmD;AACnD,MAAM,MAAM,wBAAwB,GAChC,iCAAiC,GACjC,CAAC,yBAAyB,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAAC;AAE5F,wCAAwC;AACxC,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAmJ9C"}
|
|
@@ -64,7 +64,7 @@ function enqueueEvent(controller, event, payload) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
async function createAgUiRuntimeStreamResponse(options) {
|
|
67
|
-
const { agentId, request, upstreamBody, upstreamStatus, upstreamStatusText, onFinish, onError, onToolCallSeen, } = options;
|
|
67
|
+
const { agentId, request, upstreamBody, upstreamStatus, upstreamStatusText, getCompletedResponse, onFinish, onError, onToolCallSeen, } = options;
|
|
68
68
|
const stream = new ReadableStream({
|
|
69
69
|
start: async (controller) => {
|
|
70
70
|
const state = createStreamTransformState();
|
|
@@ -114,7 +114,7 @@ async function createAgUiRuntimeStreamResponse(options) {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
for (const event of finalizeRunEvents(state, null)) {
|
|
117
|
+
for (const event of finalizeRunEvents(state, getCompletedResponse?.() ?? null)) {
|
|
118
118
|
if (!enqueueEvent(controller, event.event, event.payload)) {
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
@@ -140,9 +140,13 @@ async function createAgUiRuntimeStreamResponse(options) {
|
|
|
140
140
|
}
|
|
141
141
|
async function createAgUiRuntimeDirectStreamResponse(agent, request, baseContext, lifecycle) {
|
|
142
142
|
await agent.clearMemory();
|
|
143
|
+
let completedResponse = null;
|
|
143
144
|
const result = await agent.stream({
|
|
144
145
|
messages: normalizeAgUiRuntimeMessages(request.messages),
|
|
145
146
|
context: buildStreamContext(request, baseContext),
|
|
147
|
+
onFinish: (response) => {
|
|
148
|
+
completedResponse = response;
|
|
149
|
+
},
|
|
146
150
|
});
|
|
147
151
|
const upstream = result.toDataStreamResponse();
|
|
148
152
|
return await createAgUiRuntimeStreamResponse({
|
|
@@ -151,6 +155,7 @@ async function createAgUiRuntimeDirectStreamResponse(agent, request, baseContext
|
|
|
151
155
|
upstreamBody: upstream.body,
|
|
152
156
|
upstreamStatus: upstream.status,
|
|
153
157
|
upstreamStatusText: upstream.statusText,
|
|
158
|
+
getCompletedResponse: () => completedResponse,
|
|
154
159
|
onFinish: lifecycle?.onFinish,
|
|
155
160
|
onError: lifecycle?.onError,
|
|
156
161
|
onToolCallSeen: lifecycle?.onToolCallSeen,
|
|
@@ -174,8 +179,13 @@ async function createAgUiRuntimeInjectedToolsStreamResponse(agent, request, base
|
|
|
174
179
|
tools: buildMergedTools(agent, request, sessionManager),
|
|
175
180
|
});
|
|
176
181
|
let upstreamBody;
|
|
182
|
+
let completedResponse = null;
|
|
177
183
|
try {
|
|
178
|
-
upstreamBody = await runtime.stream(normalizeAgUiRuntimeMessages(request.messages), buildStreamContext(request, baseContext),
|
|
184
|
+
upstreamBody = await runtime.stream(normalizeAgUiRuntimeMessages(request.messages), buildStreamContext(request, baseContext), {
|
|
185
|
+
onFinish: (response) => {
|
|
186
|
+
completedResponse = response;
|
|
187
|
+
},
|
|
188
|
+
}, undefined, undefined);
|
|
179
189
|
}
|
|
180
190
|
catch (error) {
|
|
181
191
|
sessionManager.failRun(request.runId);
|
|
@@ -186,6 +196,7 @@ async function createAgUiRuntimeInjectedToolsStreamResponse(agent, request, base
|
|
|
186
196
|
request,
|
|
187
197
|
upstreamBody,
|
|
188
198
|
upstreamStatus: 200,
|
|
199
|
+
getCompletedResponse: () => completedResponse,
|
|
189
200
|
onFinish: () => {
|
|
190
201
|
sessionManager.completeRun(request.runId);
|
|
191
202
|
void lifecycle?.onFinish?.();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-errors.d.ts","sourceRoot":"","sources":["../../../src/src/chat/provider-errors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"provider-errors.d.ts","sourceRoot":"","sources":["../../../src/src/chat/provider-errors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqCD,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAE7F,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAMhE;AAgBD,iCAAiC;AACjC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CA+B/E;AAED,yCAAyC;AACzC,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAOvE;AAiID,sCAAsC;AACtC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAEtE"}
|
|
@@ -15,6 +15,11 @@ const AI_PROVIDER_SPEND_LIMIT_ERROR = {
|
|
|
15
15
|
message: "The AI provider spend limit has been reached. Try again later or ask an administrator to raise the AI provider spend limit.",
|
|
16
16
|
status: 402,
|
|
17
17
|
};
|
|
18
|
+
const AI_PROVIDER_BILLING_ERROR = {
|
|
19
|
+
code: "AI_PROVIDER_BILLING_ERROR",
|
|
20
|
+
message: "The configured AI provider account cannot process this request. Try a different model, or ask an administrator to check provider billing.",
|
|
21
|
+
status: 502,
|
|
22
|
+
};
|
|
18
23
|
function isErrorRecord(value) {
|
|
19
24
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
20
25
|
}
|
|
@@ -84,6 +89,18 @@ function isAssistantPrefillUnsupportedMessage(message) {
|
|
|
84
89
|
normalizedMessage.includes("conversation must end with a user message");
|
|
85
90
|
return mentionsAssistantPrefill && rejectsAssistantPrefill;
|
|
86
91
|
}
|
|
92
|
+
function isProviderBillingMessage(normalizedMessage) {
|
|
93
|
+
const mentionsProviderApi = normalizedMessage.includes("anthropic api") ||
|
|
94
|
+
normalizedMessage.includes("openai api") ||
|
|
95
|
+
normalizedMessage.includes("google api") ||
|
|
96
|
+
normalizedMessage.includes("mistral api");
|
|
97
|
+
const mentionsProviderBilling = normalizedMessage.includes("plans & billing") ||
|
|
98
|
+
normalizedMessage.includes("provider billing") ||
|
|
99
|
+
normalizedMessage.includes("provider account");
|
|
100
|
+
const mentionsProviderCredits = normalizedMessage.includes("credit balance is too low") ||
|
|
101
|
+
normalizedMessage.includes("provider credits");
|
|
102
|
+
return mentionsProviderApi && mentionsProviderCredits && mentionsProviderBilling;
|
|
103
|
+
}
|
|
87
104
|
function parseKnownProviderBody(body, seen = new WeakSet()) {
|
|
88
105
|
const problemMatch = parseKnownProblemBody(body);
|
|
89
106
|
if (problemMatch) {
|
|
@@ -128,10 +145,14 @@ function parseKnownProviderBody(body, seen = new WeakSet()) {
|
|
|
128
145
|
};
|
|
129
146
|
}
|
|
130
147
|
if (body.type === "invalid_request_error" && typeof body.message === "string") {
|
|
148
|
+
const normalizedMessage = body.message.toLowerCase();
|
|
149
|
+
if (isProviderBillingMessage(normalizedMessage)) {
|
|
150
|
+
return AI_PROVIDER_BILLING_ERROR;
|
|
151
|
+
}
|
|
131
152
|
if (isAssistantPrefillUnsupportedMessage(body.message)) {
|
|
132
153
|
return MODEL_UNSUPPORTED_ASSISTANT_PREFILL_ERROR;
|
|
133
154
|
}
|
|
134
|
-
if (
|
|
155
|
+
if (normalizedMessage.includes("too long")) {
|
|
135
156
|
return { code: "CONTEXT_LENGTH_EXCEEDED", message: "Conversation is too long" };
|
|
136
157
|
}
|
|
137
158
|
}
|
|
@@ -211,6 +232,9 @@ function parseProviderErrorInner(error, seen) {
|
|
|
211
232
|
if (isAssistantPrefillUnsupportedMessage(message)) {
|
|
212
233
|
return MODEL_UNSUPPORTED_ASSISTANT_PREFILL_ERROR;
|
|
213
234
|
}
|
|
235
|
+
if (isProviderBillingMessage(normalizedMessage)) {
|
|
236
|
+
return AI_PROVIDER_BILLING_ERROR;
|
|
237
|
+
}
|
|
214
238
|
if (isCreditLimitMessage(normalizedMessage)) {
|
|
215
239
|
return { code: "INSUFFICIENT_CREDITS", message: "Insufficient AI credits", status: 402 };
|
|
216
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../../src/src/eval/agent-service/live-evals/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../../src/src/eval/agent-service/live-evals/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,9 @@ CRITERIA: ${input.criteria}
|
|
|
22
22
|
Respond with exactly one line: PASS or FAIL followed by a brief reason.
|
|
23
23
|
Example: "PASS — correctly explains the pattern with accurate details"
|
|
24
24
|
Example: "FAIL — mentions the wrong file convention"`,
|
|
25
|
-
projectId:
|
|
25
|
+
projectId: config.projectId,
|
|
26
|
+
...(config.branchId ? { branchId: config.branchId } : {}),
|
|
27
|
+
...(config.model ? { model: config.model } : {}),
|
|
26
28
|
allowedTools: [],
|
|
27
29
|
forceRuntimeOverrides: true,
|
|
28
30
|
maxSteps: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-service.d.ts","sourceRoot":"","sources":["../../../src/src/eval/agent-service.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,uBAAuB,EAK7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"agent-service.d.ts","sourceRoot":"","sources":["../../../src/src/eval/agent-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,6 +154,40 @@ function createRunOutput(run) {
|
|
|
154
154
|
},
|
|
155
155
|
};
|
|
156
156
|
}
|
|
157
|
+
function createUsageFromRecord(record) {
|
|
158
|
+
const inputTokens = readNumber(record.inputTokens) ?? readNumber(record.promptTokens);
|
|
159
|
+
const outputTokens = readNumber(record.outputTokens) ?? readNumber(record.completionTokens);
|
|
160
|
+
const totalTokens = readNumber(record.totalTokens) ??
|
|
161
|
+
(inputTokens !== undefined || outputTokens !== undefined
|
|
162
|
+
? (inputTokens ?? 0) + (outputTokens ?? 0)
|
|
163
|
+
: undefined);
|
|
164
|
+
const costUsd = readNumber(record.costUsd) ?? readNumber(record.totalCostUsd) ??
|
|
165
|
+
readNumber(record.total_cost_usd);
|
|
166
|
+
const usage = {
|
|
167
|
+
...(inputTokens !== undefined ? { inputTokens } : {}),
|
|
168
|
+
...(outputTokens !== undefined ? { outputTokens } : {}),
|
|
169
|
+
...(totalTokens !== undefined ? { totalTokens } : {}),
|
|
170
|
+
...(costUsd !== undefined ? { costUsd } : {}),
|
|
171
|
+
};
|
|
172
|
+
return Object.keys(usage).length > 0 ? usage : undefined;
|
|
173
|
+
}
|
|
174
|
+
function readEvalUsage(value) {
|
|
175
|
+
if (!isRecord(value))
|
|
176
|
+
return undefined;
|
|
177
|
+
if (isRecord(value.usage)) {
|
|
178
|
+
return createUsageFromRecord(value.usage) ?? createUsageFromRecord(value);
|
|
179
|
+
}
|
|
180
|
+
return createUsageFromRecord(value);
|
|
181
|
+
}
|
|
182
|
+
function getRunFinishedUsage(events) {
|
|
183
|
+
for (const event of [...events].reverse()) {
|
|
184
|
+
const type = getAgUiSseStringField(event, "type");
|
|
185
|
+
if (type !== agUiSseEventTypes.runFinished)
|
|
186
|
+
continue;
|
|
187
|
+
return readEvalUsage(event.metadata) ?? readEvalUsage(event.usage) ?? readEvalUsage(event);
|
|
188
|
+
}
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
157
191
|
function createRequestInit(config, body) {
|
|
158
192
|
return {
|
|
159
193
|
method: "POST",
|
|
@@ -258,6 +292,7 @@ export function createAgentServiceEvalAdapter(config) {
|
|
|
258
292
|
const completed = response.ok && run.runError === null &&
|
|
259
293
|
run.eventTypes.includes(agUiSseEventTypes.runFinished);
|
|
260
294
|
const output = createRunOutput(run);
|
|
295
|
+
const usage = getRunFinishedUsage(run.events);
|
|
261
296
|
return {
|
|
262
297
|
text: run.text,
|
|
263
298
|
output,
|
|
@@ -265,6 +300,7 @@ export function createAgentServiceEvalAdapter(config) {
|
|
|
265
300
|
events: run.events,
|
|
266
301
|
toolCalls: createToolCalls(run.events),
|
|
267
302
|
},
|
|
303
|
+
...(usage ? { usage } : {}),
|
|
268
304
|
durationMs: getNow(config) - started,
|
|
269
305
|
completed,
|
|
270
306
|
...(!completed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ag-ui-sse.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/ag-ui-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAEL,yBAAyB,EAE1B,MAAM,mCAAmC,CAAC;AAM3C,KAAK,gBAAgB,GAAG,sBAAsB,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEtD,wBAAgB,0BAA0B,IAAI,oBAAoB,CAEjE;
|
|
1
|
+
{"version":3,"file":"ag-ui-sse.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/ag-ui-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAEL,yBAAyB,EAE1B,MAAM,mCAAmC,CAAC;AAM3C,KAAK,gBAAgB,GAAG,sBAAsB,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEtD,wBAAgB,0BAA0B,IAAI,oBAAoB,CAEjE;AAoGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAK3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IACjD,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,CAMA;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,gBAAgB,GACtB,eAAe,EAAE,CAEnB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GACxD,eAAe,EAAE,CAEnB"}
|
|
@@ -59,6 +59,12 @@ function buildAgUiEventPayloadSchemas() {
|
|
|
59
59
|
inputTokens: v.number().int().nonnegative().optional(),
|
|
60
60
|
outputTokens: v.number().int().nonnegative().optional(),
|
|
61
61
|
totalTokens: v.number().int().nonnegative().optional(),
|
|
62
|
+
cachedInputTokens: v.number().int().nonnegative().optional(),
|
|
63
|
+
cacheCreationInputTokens: v.number().int().nonnegative().optional(),
|
|
64
|
+
cacheReadInputTokens: v.number().int().nonnegative().optional(),
|
|
65
|
+
reasoningTokens: v.number().int().nonnegative().optional(),
|
|
66
|
+
costUsd: v.number().nonnegative().optional(),
|
|
67
|
+
usageCaptureStatus: v.enum(["complete", "partial", "missing"]).optional(),
|
|
62
68
|
finishReason: v.string().optional(),
|
|
63
69
|
}),
|
|
64
70
|
}),
|