feat: Implement foundation layer with domain entities and repository interfaces

- Add complete domain layer: Note, Vault, WikiLink, Tag, Frontmatter, Graph entities
- Implement repository interfaces for data access abstraction
- Create comprehensive configuration system with YAML and env support
- Add CLI entry point with signal handling and graceful shutdown
- Fix mermaid diagram syntax in design.md (array notation)
- Add CLAUDE.md for development guidance

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev
2025-10-08 10:22:28 +04:00
parent b655c58ba1
commit da289d4a7e
24 changed files with 1840 additions and 7 deletions

View File

@@ -0,0 +1,18 @@
package repository
import (
"context"
"github.com/user/obsidian-mcp-server/internal/domain"
)
type NoteRepository interface {
Get(ctx context.Context, path string) (*domain.Note, error)
Create(ctx context.Context, note *domain.Note) error
Update(ctx context.Context, note *domain.Note) error
Delete(ctx context.Context, path string) error
List(ctx context.Context, pattern string, recursive bool) ([]*domain.Note, error)
Exists(ctx context.Context, path string) bool
FindByTag(ctx context.Context, tag string) ([]*domain.Note, error)
FindByContent(ctx context.Context, query string) ([]*domain.Note, error)
}