mcp-vector-search 0.12.0__py3-none-any.whl → 0.12.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mcp-vector-search might be problematic. Click here for more details.
- mcp_vector_search/__init__.py +2 -2
- mcp_vector_search/cli/commands/index.py +15 -24
- mcp_vector_search/cli/commands/install.py +502 -523
- mcp_vector_search/cli/commands/install_old.py +696 -0
- mcp_vector_search/cli/commands/status.py +7 -5
- mcp_vector_search/cli/commands/uninstall.py +485 -0
- mcp_vector_search/cli/commands/visualize.py +406 -120
- mcp_vector_search/cli/didyoumean.py +10 -0
- mcp_vector_search/cli/main.py +39 -21
- mcp_vector_search/core/connection_pool.py +49 -11
- mcp_vector_search/core/database.py +7 -9
- mcp_vector_search/core/directory_index.py +26 -11
- mcp_vector_search/core/indexer.py +89 -29
- mcp_vector_search/core/models.py +4 -1
- mcp_vector_search/core/project.py +16 -5
- mcp_vector_search/parsers/base.py +54 -18
- mcp_vector_search/parsers/javascript.py +41 -20
- mcp_vector_search/parsers/python.py +19 -11
- mcp_vector_search/parsers/registry.py +3 -2
- mcp_vector_search/utils/gitignore.py +3 -1
- {mcp_vector_search-0.12.0.dist-info → mcp_vector_search-0.12.1.dist-info}/METADATA +87 -24
- {mcp_vector_search-0.12.0.dist-info → mcp_vector_search-0.12.1.dist-info}/RECORD +25 -23
- {mcp_vector_search-0.12.0.dist-info → mcp_vector_search-0.12.1.dist-info}/WHEEL +0 -0
- {mcp_vector_search-0.12.0.dist-info → mcp_vector_search-0.12.1.dist-info}/entry_points.txt +0 -0
- {mcp_vector_search-0.12.0.dist-info → mcp_vector_search-0.12.1.dist-info}/licenses/LICENSE +0 -0
mcp_vector_search/__init__.py
CHANGED
|
@@ -337,13 +337,14 @@ async def _run_batch_indexing(
|
|
|
337
337
|
# Rebuild directory index after indexing completes
|
|
338
338
|
try:
|
|
339
339
|
import os
|
|
340
|
+
|
|
340
341
|
chunk_stats = {}
|
|
341
342
|
for file_path in files_to_index:
|
|
342
343
|
try:
|
|
343
344
|
mtime = os.path.getmtime(file_path)
|
|
344
345
|
chunk_stats[str(file_path)] = {
|
|
345
|
-
|
|
346
|
-
|
|
346
|
+
"modified": mtime,
|
|
347
|
+
"chunks": 1, # Placeholder - real counts are in database
|
|
347
348
|
}
|
|
348
349
|
except OSError:
|
|
349
350
|
pass
|
|
@@ -361,13 +362,13 @@ async def _run_batch_indexing(
|
|
|
361
362
|
console.print(
|
|
362
363
|
f"[yellow]⚠ {failed_count} files failed to index[/yellow]"
|
|
363
364
|
)
|
|
364
|
-
error_log_path =
|
|
365
|
+
error_log_path = (
|
|
366
|
+
indexer.project_root / ".mcp-vector-search" / "indexing_errors.log"
|
|
367
|
+
)
|
|
365
368
|
if error_log_path.exists():
|
|
366
369
|
# Prune log to keep only last 1000 errors
|
|
367
370
|
_prune_error_log(error_log_path, max_lines=1000)
|
|
368
|
-
console.print(
|
|
369
|
-
f"[dim] → See details in: {error_log_path}[/dim]"
|
|
370
|
-
)
|
|
371
|
+
console.print(f"[dim] → See details in: {error_log_path}[/dim]")
|
|
371
372
|
else:
|
|
372
373
|
# Non-progress mode (fallback to original behavior)
|
|
373
374
|
indexed_count = await indexer.index_project(
|
|
@@ -674,22 +675,10 @@ def watch_cmd(
|
|
|
674
675
|
watch_app()
|
|
675
676
|
|
|
676
677
|
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
"""🔄 Manage automatic indexing.
|
|
680
|
-
|
|
681
|
-
Configure automatic indexing strategies like git hooks and scheduled tasks.
|
|
682
|
-
This command provides subcommands for setup, status, and checking.
|
|
678
|
+
# Import and register auto-index sub-app as a proper typer group
|
|
679
|
+
from .auto_index import auto_index_app # noqa: E402
|
|
683
680
|
|
|
684
|
-
|
|
685
|
-
mcp-vector-search index auto setup
|
|
686
|
-
mcp-vector-search index auto status
|
|
687
|
-
mcp-vector-search index auto check
|
|
688
|
-
"""
|
|
689
|
-
from .auto_index import auto_index_app
|
|
690
|
-
|
|
691
|
-
# This will show help for the auto subcommands
|
|
692
|
-
auto_index_app()
|
|
681
|
+
index_app.add_typer(auto_index_app, name="auto", help="🔄 Manage automatic indexing")
|
|
693
682
|
|
|
694
683
|
|
|
695
684
|
@index_app.command("health")
|
|
@@ -733,17 +722,19 @@ def _prune_error_log(log_path: Path, max_lines: int = 1000) -> None:
|
|
|
733
722
|
max_lines: Maximum number of lines to keep (default: 1000)
|
|
734
723
|
"""
|
|
735
724
|
try:
|
|
736
|
-
with open(log_path
|
|
725
|
+
with open(log_path) as f:
|
|
737
726
|
lines = f.readlines()
|
|
738
727
|
|
|
739
728
|
if len(lines) > max_lines:
|
|
740
729
|
# Keep only the last max_lines lines
|
|
741
730
|
pruned_lines = lines[-max_lines:]
|
|
742
731
|
|
|
743
|
-
with open(log_path,
|
|
732
|
+
with open(log_path, "w") as f:
|
|
744
733
|
f.writelines(pruned_lines)
|
|
745
734
|
|
|
746
|
-
logger.debug(
|
|
735
|
+
logger.debug(
|
|
736
|
+
f"Pruned error log from {len(lines)} to {len(pruned_lines)} lines"
|
|
737
|
+
)
|
|
747
738
|
except Exception as e:
|
|
748
739
|
logger.warning(f"Failed to prune error log: {e}")
|
|
749
740
|
|