feat: add provider-native request switches (#5254)

This commit is contained in:
chengyongru
2026-08-05 18:26:39 +08:00
committed by GitHub
parent 5a1ab44baa
commit 67805f5db8
32 changed files with 1130 additions and 52 deletions
@@ -1,6 +1,7 @@
import {
canonicalToolTrace,
mergeToolProgressEvents,
mergeToolProgressTraceLines,
mergeUniqueToolTraceLines,
} from "@/lib/tool-traces";
import type { UIMediaAttachment, UIMessage } from "@/lib/types";
@@ -56,8 +57,15 @@ function canMergeAdjacentProgress(
}
function mergeTraceMessages(previous: UIMessage, incoming: UIMessage): UIMessage {
const traces = mergeUniqueToolTraceLines(messageTraces(previous), messageTraces(incoming)).traces;
const toolEvents = mergeToolProgressEvents(previous.toolEvents, incoming.toolEvents ?? []);
const traces = incoming.toolEvents?.length
? mergeToolProgressTraceLines(
messageTraces(previous),
previous.toolEvents,
messageTraces(incoming),
incoming.toolEvents ?? [],
)
: mergeUniqueToolTraceLines(messageTraces(previous), messageTraces(incoming)).traces;
const fileEdits = [...(previous.fileEdits ?? []), ...(incoming.fileEdits ?? [])];
const media = uniqueMedia([...(previous.media ?? []), ...(incoming.media ?? [])]);
@@ -27,7 +27,7 @@ export function describeTraceLine(
!!parsedUrl && /\b(fetch(?:ing|ed)?|read(?:ing)?|opened?|opening)\b/i.test(trimmed);
if (/search/i.test(name)) {
const query = traceFieldFromArgs(args, ["query", "q", "text"]) || args || trimmed;
const query = traceFieldFromArgs(args, ["query", "q", "text"]) || args;
return {
kind: "search",
label: presentWebSearchAction(query, status, name === "x_search" ? "x" : "web"),
@@ -105,7 +105,7 @@ export function presentWebSearchAction(
if (target === "x") {
return queryTarget ? `${verb} X · ${queryTarget}` : `${verb} X`;
}
return queryTarget ? `${verb} ${queryTarget}` : verb;
return queryTarget ? `${verb} ${queryTarget}` : `${verb} the web`;
}
function mergeWebSearchRun(