hts/packages/provider/src/errors/tool-call-parse-error.ts

55 lines
1.2 KiB
TypeScript

import { LanguageModelV1FunctionTool } from '../language-model/v1/language-model-v1-function-tool';
import { getErrorMessage } from './get-error-message';
export class ToolCallParseError extends Error {
readonly cause: unknown;
readonly text: string;
readonly tools: LanguageModelV1FunctionTool[];
constructor({
cause,
text,
tools,
message = `Failed to parse tool calls: ${getErrorMessage(cause)}`,
}: {
cause: unknown;
text: string;
tools: LanguageModelV1FunctionTool[];
message?: string;
}) {
super(message);
this.name = 'AI_ToolCallParseError';
this.cause = cause;
this.text = text;
this.tools = tools;
}
static isToolCallParseError(error: unknown): error is ToolCallParseError {
return (
error instanceof Error &&
error.name === 'AI_ToolCallParseError' &&
'cause' in error &&
error.cause != undefined &&
'text' in error &&
error.text != undefined &&
typeof error.text === 'string' &&
'tools' in error &&
error.tools != undefined
);
}
toJSON() {
return {
name: this.name,
message: this.message,
stack: this.stack,
cause: this.cause,
text: this.text,
tools: this.tools,
};
}
}