export interface DocumentChunk {
text: string;
url: string;
title: string;
timestamp: string;
}
export interface DocumentPayload extends DocumentChunk {
_type: 'DocumentChunk';
[key: string]: unknown;
}
export function isDocumentPayload(payload: unknown): payload is DocumentPayload {
if (!payload || typeof payload !== 'object') return false;
const p = payload as Partial<DocumentPayload>;
return (
p._type === 'DocumentChunk' &&
typeof p.text === 'string' &&
typeof p.url === 'string' &&
typeof p.title === 'string' &&
typeof p.timestamp === 'string'
);
}
export interface ToolDefinition {
name: string;
description: string;
inputSchema: {
type: string;
properties: Record<string, any>;
required: string[];
};
}
export interface McpToolResponse {
content: Array<{
type: string;
text: string;
}>;
isError?: boolean;
}