41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import {
|
|
extractCommandDetails,
|
|
extractEditEntries,
|
|
extractReadEntries,
|
|
type CommandDetails,
|
|
type EditEntry,
|
|
type ReadEntry,
|
|
} from "@/utils/tool-call-parsers";
|
|
|
|
export type ToolCallPreviewSource = {
|
|
args?: unknown;
|
|
result?: unknown;
|
|
parsedEditEntries?: EditEntry[] | undefined;
|
|
parsedReadEntries?: ReadEntry[] | undefined;
|
|
parsedCommandDetails?: CommandDetails | null | undefined;
|
|
};
|
|
|
|
export type ToolCallPreview = {
|
|
editEntries: EditEntry[];
|
|
readEntries: ReadEntry[];
|
|
commandDetails: CommandDetails | null | undefined;
|
|
};
|
|
|
|
export function resolveToolCallPreview({
|
|
args,
|
|
result,
|
|
parsedEditEntries,
|
|
parsedReadEntries,
|
|
parsedCommandDetails,
|
|
}: ToolCallPreviewSource): ToolCallPreview {
|
|
const fallbackEditEntries = extractEditEntries(args, result);
|
|
const fallbackReadEntries = extractReadEntries(result, args);
|
|
const fallbackCommandDetails = extractCommandDetails(args, result);
|
|
|
|
return {
|
|
editEntries: parsedEditEntries ?? fallbackEditEntries,
|
|
readEntries: parsedReadEntries ?? fallbackReadEntries,
|
|
commandDetails: parsedCommandDetails ?? fallbackCommandDetails,
|
|
};
|
|
}
|