Files
newsletter-hackernews/utils/ai/tool.ts
Riccardo Senica a8d3bf1b3b
All checks were successful
Deploy / lint-build-deploy (push) Successful in 2m13s
feat: migrate AI to llama and use local db
2026-01-19 21:25:38 +01:00

50 lines
1.2 KiB
TypeScript

export interface BaseTool {
readonly name: string;
readonly input_schema: {
readonly type: 'object';
readonly properties: Record<string, unknown>;
readonly required?: readonly string[];
readonly description?: string;
};
}
export interface ToolUseBlock {
type: 'tool_use';
id: string;
name: string;
input: Record<string, unknown>;
}
export interface NewsletterTool {
title: string;
content: string;
focus: string;
}
export const newsletterTool: BaseTool = {
name: 'NewsletterTool' as const,
input_schema: {
type: 'object' as const,
description:
'Generate a tech newsletter with title, content, and focus sections',
properties: {
title: {
type: 'string' as const,
description:
'The title of the newsletter (40-50 characters, capturing key themes)'
},
content: {
type: 'string' as const,
description:
'The main content of the newsletter (300-400 words, HTML formatted with paragraph tags and links)'
},
focus: {
type: 'string' as const,
description:
'Forward-looking assessment of key developments and trends'
}
},
required: ['title', 'content', 'focus'] as const
}
} as const;