feat: add provider-native request switches (#5254)
This commit is contained in:
@@ -16,7 +16,10 @@ export function formatToolCallTrace(call: unknown): string | null {
|
||||
if (!name) return null;
|
||||
const args = item.function?.arguments ?? item.arguments;
|
||||
if (typeof args === "string" && args.trim()) return `${name}(${args})`;
|
||||
if (args && typeof args === "object") return `${name}(${JSON.stringify(args)})`;
|
||||
if (args && typeof args === "object") {
|
||||
const serialized = JSON.stringify(args);
|
||||
return serialized === "{}" || serialized === "[]" ? `${name}()` : `${name}(${serialized})`;
|
||||
}
|
||||
return `${name}()`;
|
||||
}
|
||||
|
||||
@@ -116,3 +119,24 @@ export function mergeUniqueToolTraceLines(
|
||||
}
|
||||
return { traces, added };
|
||||
}
|
||||
|
||||
export function mergeToolProgressTraceLines(
|
||||
previousTraces: string[],
|
||||
previousEvents: ToolProgressEvent[] | undefined,
|
||||
incomingTraces: string[],
|
||||
incomingEvents: ToolProgressEvent[],
|
||||
): string[] {
|
||||
const mergedEvents = mergeToolProgressEvents(previousEvents, incomingEvents);
|
||||
const candidates = mergeUniqueToolTraceLines(previousTraces, incomingTraces).traces;
|
||||
const eventTraceKeys = new Set([
|
||||
...toolTraceLinesFromEvents(previousEvents),
|
||||
...toolTraceLinesFromEvents(incomingEvents),
|
||||
].map(canonicalToolTrace));
|
||||
const nonEventTraces = candidates.filter(
|
||||
(line) => !eventTraceKeys.has(canonicalToolTrace(line)),
|
||||
);
|
||||
return mergeUniqueToolTraceLines(
|
||||
nonEventTraces,
|
||||
toolTraceLinesFromEvents(mergedEvents),
|
||||
).traces;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user