diff --git a/pyproject.toml b/pyproject.toml index edea9e70..9cc74073 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ dependencies = [ "fastmcp>=2.12.4", "httpx>=0.28.1", "lancedb>=0.25.2", + "pathspec>=0.12.1", "pydantic>=2.12.2", "pydantic-ai>=1.0.18", "pydantic-graph>=1.0.18", diff --git a/src/haiku/rag/config/models.py b/src/haiku/rag/config/models.py index faa70c84..67bd3f71 100644 --- a/src/haiku/rag/config/models.py +++ b/src/haiku/rag/config/models.py @@ -8,6 +8,8 @@ from haiku.rag.utils import get_default_data_dir class StorageConfig(BaseModel): data_dir: Path = Field(default_factory=get_default_data_dir) monitor_directories: list[Path] = [] + monitor_ignore_patterns: list[str] = [] + monitor_include_patterns: list[str] = [] disable_autocreate: bool = False vacuum_retention_seconds: int = 60 diff --git a/tests/test_settings.py b/tests/test_settings.py index 4e6d9548..e78105b0 100644 --- a/tests/test_settings.py +++ b/tests/test_settings.py @@ -82,3 +82,11 @@ async def test_config_validation_on_db_load(temp_db_path): finally: Config.processing.chunk_size = original_chunk_size + + +def test_monitor_filter_patterns_config(): + """Test that monitor filter patterns are available in config.""" + assert hasattr(Config.storage, "monitor_ignore_patterns") + assert hasattr(Config.storage, "monitor_include_patterns") + assert isinstance(Config.storage.monitor_ignore_patterns, list) + assert isinstance(Config.storage.monitor_include_patterns, list) diff --git a/uv.lock b/uv.lock index cdf29f3d..bb00646a 100644 --- a/uv.lock +++ b/uv.lock @@ -1130,6 +1130,7 @@ dependencies = [ { name = "fastmcp" }, { name = "httpx" }, { name = "lancedb" }, + { name = "pathspec" }, { name = "pydantic" }, { name = "pydantic-ai" }, { name = "pydantic-graph" }, @@ -1175,6 +1176,7 @@ requires-dist = [ { name = "httpx", specifier = ">=0.28.1" }, { name = "lancedb", specifier = ">=0.25.2" }, { name = "mxbai-rerank", marker = "extra == 'mxbai'", specifier = ">=0.1.6" }, + { name = "pathspec", specifier = ">=0.12.1" }, { name = "pydantic", specifier = ">=2.12.2" }, { name = "pydantic-ai", specifier = ">=1.0.18" }, { name = "pydantic-graph", specifier = ">=1.0.18" },