add OpenRouter web search option

This commit is contained in:
ajnart committed 2026-08-03 16:59:27 +02:00
1 parent 35673f113e
commit f7b291b465
25 files changed
+5753 -18

No files matched your search

@@ -23,6 +23,7 @@ describe("getAssistantTelemetry", () => {
generationTimeMs: 1451,
cacheDiscount: 0.00003,
fallbackCount: 1,
webSearchRequests: 2,
steps: [
{
index: 1,
@@ -40,6 +41,7 @@ describe("getAssistantTelemetry", () => {
reasoningTokens: 7,
cacheDiscount: 0.00003,
fallbackCount: 1,
webSearchRequests: 2,
routedProvider: "Alibaba",
serviceTier: "default",
dataRegion: "US",
@@ -61,6 +63,7 @@ describe("getAssistantTelemetry", () => {
generationTimeMs: 1451,
cacheDiscount: 0.00003,
fallbackCount: 1,
webSearchRequests: 2,
steps: [
expect.objectContaining({
providerLatencyMs: 964,
@@ -68,6 +71,7 @@ describe("getAssistantTelemetry", () => {
cachedInputTokens: 2048,
routedProvider: "Alibaba",
serviceTier: "default",
webSearchRequests: 2,
}),
],
});
@@ -40,6 +40,7 @@ export type AssistantRequestStep = {
routerRegion?: string;
fallbackCount?: number;
fallbackLatencyMs?: number;
webSearchRequests?: number;
isByok?: boolean;
streamed?: boolean;
cancelled?: boolean;
@@ -64,6 +65,7 @@ export type AssistantRequestTelemetry = {
cacheDiscount?: number;
fallbackCount?: number;
fallbackLatencyMs?: number;
webSearchRequests?: number;
costType?: "reported" | "estimated";
finishReason?: string;
steps: AssistantRequestStep[];
@@ -208,6 +210,9 @@ export const getAssistantTelemetry = (metadata: unknown): AssistantRequestTeleme
...(getFiniteNonNegativeNumber(candidate.fallbackLatencyMs) !== undefined
? { fallbackLatencyMs: getFiniteNonNegativeNumber(candidate.fallbackLatencyMs) }
: {}),
...(getFiniteNonNegativeNumber(candidate.webSearchRequests) !== undefined
? { webSearchRequests: getFiniteNonNegativeNumber(candidate.webSearchRequests) }
: {}),
...(typeof candidate.isByok === "boolean" ? { isByok: candidate.isByok } : {}),
...(typeof candidate.streamed === "boolean" ? { streamed: candidate.streamed } : {}),
...(typeof candidate.cancelled === "boolean" ? { cancelled: candidate.cancelled } : {}),
@@ -259,6 +264,9 @@ export const getAssistantTelemetry = (metadata: unknown): AssistantRequestTeleme
...(getFiniteNonNegativeNumber(value.fallbackLatencyMs) !== undefined
? { fallbackLatencyMs: getFiniteNonNegativeNumber(value.fallbackLatencyMs) }
: {}),
...(getFiniteNonNegativeNumber(value.webSearchRequests) !== undefined
? { webSearchRequests: getFiniteNonNegativeNumber(value.webSearchRequests) }
: {}),
...(value.costType === "reported" || value.costType === "estimated" ? { costType: value.costType } : {}),
...(typeof value.finishReason === "string" ? { finishReason: value.finishReason } : {}),
};
@@ -1052,6 +1052,16 @@ const RequestTelemetry = () => {
</Text>
</div>
)}
{telemetry.webSearchRequests !== undefined && (
<div>
<Text size="xs" c="dimmed">
{t("usage.webSearches")}
</Text>
<Text size="sm" fw={600}>
{telemetry.webSearchRequests.toLocaleString()}
</Text>
</div>
)}
{telemetry.finishReason && (
<div>
<Text size="xs" c="dimmed">