- Complete project setup with TypeScript, Jest, MCPB manifest - Implement foundational infrastructure (CLI executor, logger, error handler) - Add 9 file operation tools for User Story 1 - Full MCP protocol compliance with stdio transport - Input validation and sanitization for security - Comprehensive error handling with actionable messages - Constitutional compliance: all 6 principles satisfied MVP includes: - obsidian_create_note, read, append, prepend, delete, move, rename, open, file_info - Zod validation schemas for all parameters - 30s timeout configuration with per-command overrides - Stderr-only logging with sanitized output - Graceful shutdown handling Build: ✅ 0 errors, 0 vulnerabilities Tasks: 48/167 complete (MVP milestone) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
38 lines
1001 B
JSON
38 lines
1001 B
JSON
{
|
|
"vault_list": {
|
|
"stdout": "Vault1\nVault2\nTestVault\n",
|
|
"stderr": "",
|
|
"exitCode": 0
|
|
},
|
|
"note_read_success": {
|
|
"stdout": "# Sample Note\n\nContent here",
|
|
"stderr": "",
|
|
"exitCode": 0
|
|
},
|
|
"note_not_found": {
|
|
"stdout": "",
|
|
"stderr": "Error: Note 'nonexistent.md' not found in vault 'TestVault'\n",
|
|
"exitCode": 1
|
|
},
|
|
"obsidian_not_running": {
|
|
"stdout": "",
|
|
"stderr": "Error: Obsidian is not running. Please start Obsidian and try again.\n",
|
|
"exitCode": 1
|
|
},
|
|
"ambiguous_note_name": {
|
|
"stdout": "",
|
|
"stderr": "Error: Multiple notes found with name 'Meeting':\n- notes/work/Meeting.md\n- notes/personal/Meeting.md\nPlease specify the exact path.\n",
|
|
"exitCode": 1
|
|
},
|
|
"create_note_success": {
|
|
"stdout": "Created note: MyNote.md\n",
|
|
"stderr": "",
|
|
"exitCode": 0
|
|
},
|
|
"search_results": {
|
|
"stdout": "notes/project-plan.md\nnotes/ideas.md\nnotes/meeting-2026-03-22.md\n",
|
|
"stderr": "",
|
|
"exitCode": 0
|
|
}
|
|
}
|