Integrate Obsidian metadataCache across extraction and tooling

Replaces regex-based parsing of frontmatter and headings with
Obsidian's metadataCache where available, falling back to regex
when the cache is unavailable. Propagates App dependency through
constructors to enable cache access.

Key changes:
- ContentExtractor accepts optional cache for frontmatter/headings
- ToolExecutor uses cache for section replacement and frontmatter
- NoteContextBuilder resolves titles/tags from cache
- VaultVectorStore passes cache through indexing pipeline
- AutoTagger checks cache for existing tags instead of content
- Mock updated with metadataCache stubs for tests
This commit is contained in:
2026-05-20 20:36:47 +02:00
parent 3c7c4d58bb
commit 106abfa718
13 changed files with 419 additions and 139 deletions
+1 -1
View File
@@ -58,7 +58,7 @@ export class ChatView extends ItemView {
);
this.vaultIndexer = new VaultIndexer(this.app.vault, undefined, vectorStore);
this.toolExecutor = new ToolExecutor(this.app.vault, this.app);
this.actionPreviewBuilder = new ActionPreviewBuilder(this.app.vault);
this.actionPreviewBuilder = new ActionPreviewBuilder(this.app.vault, this.app);
this.noteContextBuilder = new NoteContextBuilder(this.app.vault, this.app, this.vaultIndexer);
this.conversationStateManager = new ConversationStateManager();
this.workflowEngine = new WorkflowEngine(