refactor: update search tool to match Obsidian CLI spec

Removed obsidian_search_with_context tool (not in CLI spec)
Updated obsidian_search to use exact CLI parameter names:
- query (required) - Search query text
- path (optional) - Limit search to folder path
- limit (optional) - Max number of files to return
- total (optional) - Return match count instead of file list
- case (optional) - Case sensitive search
- format (optional) - Output format: text or json (default: text)

Changed parameter names to match CLI:
- folder → path
- caseSensitive → case
- Added: total flag for match counts
- Removed: contextLines (not in CLI)

Files updated:
- src/tools/search.ts: Simplified to single search tool
- src/validation/schemas.ts: Updated searchSchema parameters
- manifest.json: Removed search_with_context, updated description
- tasks.md: Marked T048 as REMOVED

Total tools: 20 (was 21)
- User Story 1: 9 tools
- User Story 2: 11 tools (was 12)

Build:  0 errors
Validation:  Manifest passes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-22 12:26:17 -05:00
parent a978d70b3f
commit c577c07877
5 changed files with 22 additions and 52 deletions

View File

@@ -144,11 +144,11 @@ export const moveRenameSchema = z.intersection(
// Search parameters
export const searchSchema = z.object({
query: z.string().min(1, 'Search query cannot be empty'),
folder: optionalStringSchema,
path: optionalStringSchema, // Folder path to limit search
limit: z.number().int().positive().max(1000).optional(),
caseSensitive: booleanFlagSchema.optional(),
contextLines: z.number().int().positive().max(10).optional(),
...formatSchema.shape,
total: booleanFlagSchema.optional(), // Return match count instead of files
case: booleanFlagSchema.optional(), // Case sensitive search
format: z.enum(['text', 'json']).optional().default('text'),
});
// Tag search parameters