import { BaseTool } from './base.tool.js';
export class ListNotesTool extends BaseTool {
readonly name = 'list_notes';
readonly description = 'List all notes in the vault or filter by pattern (glob patterns supported)';
readonly inputSchema = {
type: 'object' as const,
properties: {
pattern: {
type: 'string',
description: 'Glob pattern to filter notes (e.g., "daily/**/*.md", "projects/*"). Default: "**/*.md" (all notes)',
default: '**/*.md',
},
},
};
async execute(params: { pattern?: string }) {
try {
const files = await this.vault.list(params.pattern ?? '**/*.md');
return {
success: true,
count: files.length,
files: files,
};
} catch (error) {
return {
success: false,
error: error instanceof Error ? error.message : 'Failed to list notes',
};
}
}
}