1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
//! # MCP Tools
//!
//! Tools implementation using turbomcp macros and vault manager integration.
//! Designed for LLM vault management with holistic workflows.
//!
//! ## Overview
//!
//! This crate provides the main MCP (Model Context Protocol) tool implementations
//! that enable AI agents to interact with Obsidian vaults. Tools are organized by
//! domain and include file operations, graph analysis, search, validation, and more.
//!
//! ## Core Tool Categories
//!
//! ### File Tools
//!
//! [`file_tools::FileTools`] - Direct file operations:
//! - Read file content
//! - Write/create files
//! - Delete files
//! - List vault files and directories
//! - Get file metadata
//!
//! ### Graph Tools
//!
//! [`graph_tools::GraphTools`] - Link analysis and relationships:
//! - Build vault link graph
//! - Find backlinks to a note
//! - Discover related notes
//! - Detect orphaned notes
//! - Analyze vault health
//! - Find broken links
//!
//! ### Search Tools
//!
//! [`search_tools::SearchTools`] - Full-text search capabilities:
//! - Search vault content
//! - Search file names
//! - Advanced query syntax
//! - Result ranking and filtering
//!
//! ### Analysis Tools
//!
//! [`analysis_tools::AnalysisTools`] - Vault analysis:
//! - Compute vault statistics
//! - Generate health reports
//! - Identify improvement areas
//! - Create recommendations
//!
//! ### Batch Tools
//!
//! [`batch_tools::BatchTools`] - Atomic operations:
//! - Execute multi-file operations
//! - Atomic transactions
//! - Conflict detection
//! - Result tracking
//!
//! ### Metadata Tools
//!
//! [`metadata_tools::MetadataTools`] - Note metadata:
//! - Read frontmatter
//! - Parse tags
//! - Extract headers
//! - Get file properties
//!
//! ### Validation Tools
//!
//! [`validation_tools::ValidationTools`] - Content validation:
//! - Validate frontmatter format
//! - Check link validity
//! - Verify content structure
//! - Report issues
//!
//! ### Export Tools
//!
//! [`export_tools::ExportTools`] - Data export:
//! - Export health reports
//! - Export vault statistics
//! - Export analysis results
//! - Support JSON and CSV formats
//!
//! ### Relationship Tools
//!
//! [`relationship_tools::RelationshipTools`] - Note relationships:
//! - Find note connections
//! - Build relationship maps
//! - Analyze link patterns
//!
//! ### Template Tools
//!
//! [`templates::TemplateEngine`] - Template management:
//! - Define templates
//! - Render templates
//! - Template validation
//!
//! ### Vault Lifecycle
//!
//! [`vault_lifecycle::VaultLifecycleTools`] - Vault management:
//! - Initialize vaults
//! - Backup operations
//! - Migration utilities
//!
//! ## Key Types
//!
//! - [`VaultStats`] - Vault statistics data
//! - [`HealthInfo`] - Vault health metrics
//! - [`BrokenLinkInfo`] - Broken link information
//! - [`SearchResultInfo`] - Search result details
//! - [`SearchQuery`] - Search query specification
//! - [`ValidationReportInfo`] - Validation issue report
//! - [`TemplateDefinition`] - Template specification
//!
//! ## Utilities
//!
//! ### Output Formatting
//!
//! [`output_formatter::ResponseFormatter`] - Format tool responses:
//! - JSON output
//! - Plain text output
//! - Table formatting
//! - Customizable formatting
//!
//! ### Response Utilities
//!
//! [`response_utils`] - Helper functions for response formatting
//!
//! ### Search Engine
//!
//! [`search_engine::SearchEngine`] - Tantivy-based full-text search:
//! - Index vault content
//! - Execute search queries
//! - Rank results
//!
//! ## Integration with Vault Manager
//!
//! All tools integrate with [`turbovault_vault::VaultManager`] for:
//! - File access and modification
//! - Error handling and validation
//! - Thread-safe operations
//! - Atomic transactions
//!
//! ## Example Usage
//!
//! ```no_run
//! use turbovault_core::Result;
//!
//! #[tokio::main]
//! async fn main() -> Result<()> {
//! // Initialize tools (typically done by MCP server)
//! // let tools = initialize_tools(&vault_path).await?;
//!
//! // Tools are typically called by the MCP server framework
//! // Example: FileTools::read_file(path).await?
//!
//! Ok(())
//! }
//! ```
//!
//! ## Error Handling
//!
//! All tools return [`turbovault_core::Result<T>`]:
//! - File not found
//! - Permission denied
//! - Parse errors
//! - Invalid input
//! - Vault errors
//!
//! See [`turbovault_core::error`] for error types.
pub use ;
pub use AuditTools;
pub use BatchTools;
pub use ;
pub use ;
pub use ExportTools;
pub use ;
pub use ;
pub use MetadataTools;
pub use ;
pub use ;
pub use RelationshipTools;
pub use ;
pub use SearchTools;
pub use ;
pub use ;
pub use ;
pub use *;
pub use ;
pub use VaultLifecycleTools;