builder / lib /llm /provider-view.ts
Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
391c43e verified
Raw
History Blame Contribute Delete
1.02 kB
/**
* Provider view — renders a message history the way the API route will
* actually send it to the provider: reasoning replay policy applied for the
* given model, tool-call arguments sanitized. Operates on a deep copy;
* used by the debug panel's Messages tab.
*/
import type { Message } from './core/types';
import { applyReasoningReplayPolicy, ReplayMessage } from './reasoning-replay';
export function buildProviderView(messages: Message[], model: string): Message[] {
const view: Message[] = JSON.parse(JSON.stringify(messages));
applyReasoningReplayPolicy(view as unknown as ReplayMessage[], model);
// Mirror the route's tool-argument sanitization (invalid JSON → '{}')
for (const msg of view) {
if (msg.role === 'assistant' && msg.tool_calls) {
for (const tc of msg.tool_calls) {
if (tc.function?.arguments) {
try { JSON.parse(tc.function.arguments); } catch {
tc.function.arguments = '{}';
}
}
}
}
}
return view;
}