All checks were successful
Deploy / lint-build-deploy (push) Successful in 2m13s
50 lines
1.2 KiB
TypeScript
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;
|