mcp-vector-search 0.0.3__tar.gz → 0.4.11__tar.gz

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.

Files changed (127) hide show
  1. mcp_vector_search-0.4.11/.claude/settings.local.json +14 -0
  2. mcp_vector_search-0.4.11/.claude-mpm/.gitignore +4 -0
  3. mcp_vector_search-0.4.11/.claude-mpm/config/project.json +11 -0
  4. mcp_vector_search-0.4.11/.claude-mpm/memories/README.md +36 -0
  5. mcp_vector_search-0.4.11/.claude-mpm/memories/engineer_memories.md +37 -0
  6. mcp_vector_search-0.4.11/.claude-mpm/memories/ops_memories.md +37 -0
  7. mcp_vector_search-0.4.11/.claude-mpm/memories/research_memories.md +37 -0
  8. mcp_vector_search-0.4.11/.claude-mpm/memories/version-control_memories.md +37 -0
  9. mcp_vector_search-0.4.11/.github/workflows/ci.yml +251 -0
  10. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/.gitignore +7 -0
  11. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/.pre-commit-config.yaml +11 -2
  12. mcp_vector_search-0.4.11/CLAUDE.md +204 -0
  13. mcp_vector_search-0.4.11/ENGINEER_TASK.md +107 -0
  14. mcp_vector_search-0.4.11/INSTALL.md +153 -0
  15. mcp_vector_search-0.4.11/Makefile +487 -0
  16. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/PKG-INFO +173 -7
  17. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/README.md +169 -5
  18. mcp_vector_search-0.4.11/docs/CHANGELOG.md +325 -0
  19. mcp_vector_search-0.4.11/docs/CLI_FEATURES.md +90 -0
  20. mcp_vector_search-0.4.11/docs/DEPLOY.md +365 -0
  21. mcp_vector_search-0.4.11/docs/DEVELOPMENT.md +243 -0
  22. mcp_vector_search-0.4.11/docs/FEATURES.md +300 -0
  23. mcp_vector_search-0.4.11/docs/IMPROVEMENTS_SUMMARY.md +247 -0
  24. mcp_vector_search-0.4.11/docs/MCP_FILE_WATCHING.md +167 -0
  25. mcp_vector_search-0.4.11/docs/RELEASES.md +479 -0
  26. mcp_vector_search-0.4.11/docs/STRUCTURE.md +355 -0
  27. mcp_vector_search-0.4.11/docs/VERSIONING.md +410 -0
  28. mcp_vector_search-0.4.11/docs/VERSIONING_WORKFLOW.md +411 -0
  29. mcp_vector_search-0.4.11/docs/analysis/SEARCH_ANALYSIS_REPORT.md +230 -0
  30. mcp_vector_search-0.4.11/docs/analysis/SEARCH_IMPROVEMENT_PLAN.md +389 -0
  31. mcp_vector_search-0.4.11/docs/architecture/REINDEXING_WORKFLOW.md +261 -0
  32. mcp_vector_search-0.4.11/docs/debugging/SEARCH_BUG_ANALYSIS.md +164 -0
  33. mcp_vector_search-0.4.11/docs/developer/API.md +568 -0
  34. mcp_vector_search-0.4.11/docs/developer/CONTRIBUTING.md +442 -0
  35. mcp_vector_search-0.4.11/docs/developer/LINTING.md +418 -0
  36. mcp_vector_search-0.4.11/docs/developer/REFACTORING_ANALYSIS.md +356 -0
  37. mcp_vector_search-0.4.11/docs/developer/TESTING.md +677 -0
  38. mcp_vector_search-0.4.11/docs/developer/TESTING_STRATEGY.md +249 -0
  39. mcp_vector_search-0.4.11/docs/developer/TEST_SUITE_SUMMARY.md +210 -0
  40. mcp_vector_search-0.4.11/docs/mcp-integration.md +278 -0
  41. mcp_vector_search-0.4.11/docs/performance/CONNECTION_POOLING.md +279 -0
  42. mcp_vector_search-0.4.11/docs/performance/SEARCH_TIMING_ANALYSIS.md +229 -0
  43. mcp_vector_search-0.4.11/docs/technical/SIMILARITY_CALCULATION_FIX.md +181 -0
  44. mcp_vector_search-0.4.11/examples/connection_pooling_example.py +282 -0
  45. mcp_vector_search-0.4.11/examples/semi_automatic_reindexing_demo.py +293 -0
  46. mcp_vector_search-0.4.11/mcp-vector-search-wrapper +28 -0
  47. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/pyproject.toml +18 -11
  48. mcp_vector_search-0.4.11/pytest.ini +49 -0
  49. mcp_vector_search-0.4.11/scripts/README.md +516 -0
  50. mcp_vector_search-0.4.11/scripts/analyze_search_bottlenecks.py +317 -0
  51. mcp_vector_search-0.4.11/scripts/build.sh +65 -0
  52. mcp_vector_search-0.4.11/scripts/comprehensive_build.py +328 -0
  53. mcp_vector_search-0.4.11/scripts/deploy-test.sh +65 -0
  54. mcp_vector_search-0.4.11/scripts/dev-build.py +212 -0
  55. mcp_vector_search-0.4.11/scripts/dev-test.sh +49 -0
  56. mcp_vector_search-0.4.11/scripts/fix_linting.py +81 -0
  57. mcp_vector_search-0.4.11/scripts/monitor_search_performance.py +196 -0
  58. mcp_vector_search-0.4.11/scripts/publish.sh +74 -0
  59. mcp_vector_search-0.4.11/scripts/quick_search_timing.py +238 -0
  60. mcp_vector_search-0.4.11/scripts/run_search_timing_tests.py +533 -0
  61. mcp_vector_search-0.4.11/scripts/run_tests.py +293 -0
  62. mcp_vector_search-0.4.11/scripts/search_performance_monitor.py +360 -0
  63. mcp_vector_search-0.4.11/scripts/search_quality_analyzer.py +563 -0
  64. mcp_vector_search-0.4.11/scripts/version_manager.py +406 -0
  65. mcp_vector_search-0.4.11/scripts/workflow.sh +53 -0
  66. mcp_vector_search-0.4.11/search_javascript_20250817_224715.json +45 -0
  67. mcp_vector_search-0.4.11/shell-aliases.sh +64 -0
  68. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/__init__.py +3 -2
  69. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/commands/auto_index.py +397 -0
  70. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/commands/config.py +88 -40
  71. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/commands/index.py +198 -52
  72. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/commands/init.py +626 -0
  73. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/commands/install.py +284 -0
  74. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/commands/mcp.py +495 -0
  75. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/commands/search.py +241 -87
  76. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/commands/status.py +184 -58
  77. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/commands/watch.py +34 -35
  78. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/didyoumean.py +184 -0
  79. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/export.py +320 -0
  80. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/history.py +292 -0
  81. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/interactive.py +342 -0
  82. mcp_vector_search-0.4.11/src/mcp_vector_search/cli/main.py +254 -0
  83. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/output.py +63 -45
  84. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/config/defaults.py +50 -36
  85. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/config/settings.py +49 -35
  86. mcp_vector_search-0.4.11/src/mcp_vector_search/core/auto_indexer.py +298 -0
  87. mcp_vector_search-0.4.11/src/mcp_vector_search/core/connection_pool.py +322 -0
  88. mcp_vector_search-0.4.11/src/mcp_vector_search/core/database.py +741 -0
  89. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/core/embeddings.py +73 -29
  90. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/core/exceptions.py +19 -2
  91. mcp_vector_search-0.4.11/src/mcp_vector_search/core/factory.py +310 -0
  92. mcp_vector_search-0.4.11/src/mcp_vector_search/core/git_hooks.py +345 -0
  93. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/core/indexer.py +237 -73
  94. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/core/models.py +21 -19
  95. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/core/project.py +73 -58
  96. mcp_vector_search-0.4.11/src/mcp_vector_search/core/scheduler.py +330 -0
  97. mcp_vector_search-0.4.11/src/mcp_vector_search/core/search.py +812 -0
  98. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/core/watcher.py +48 -46
  99. mcp_vector_search-0.4.11/src/mcp_vector_search/mcp/__init__.py +5 -0
  100. mcp_vector_search-0.4.11/src/mcp_vector_search/mcp/__main__.py +25 -0
  101. mcp_vector_search-0.4.11/src/mcp_vector_search/mcp/server.py +701 -0
  102. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/parsers/base.py +30 -31
  103. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/parsers/javascript.py +74 -48
  104. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/parsers/python.py +57 -49
  105. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/parsers/registry.py +47 -32
  106. mcp_vector_search-0.4.11/src/mcp_vector_search/parsers/text.py +179 -0
  107. mcp_vector_search-0.4.11/src/mcp_vector_search/utils/__init__.py +40 -0
  108. mcp_vector_search-0.4.11/src/mcp_vector_search/utils/gitignore.py +229 -0
  109. mcp_vector_search-0.4.11/src/mcp_vector_search/utils/timing.py +334 -0
  110. mcp_vector_search-0.4.11/src/mcp_vector_search/utils/version.py +47 -0
  111. mcp_vector_search-0.4.11/tests/conftest.py +510 -0
  112. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/uv.lock +349 -95
  113. mcp_vector_search-0.0.3/src/mcp_vector_search/cli/commands/init.py +0 -212
  114. mcp_vector_search-0.0.3/src/mcp_vector_search/cli/main.py +0 -117
  115. mcp_vector_search-0.0.3/src/mcp_vector_search/core/database.py +0 -431
  116. mcp_vector_search-0.0.3/src/mcp_vector_search/core/search.py +0 -324
  117. mcp_vector_search-0.0.3/src/mcp_vector_search/mcp/__init__.py +0 -1
  118. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/LICENSE +0 -0
  119. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/docs/prd/mcp_vector_search_prd_updated.md +0 -0
  120. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/scripts/dev-setup.py +0 -0
  121. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/__init__.py +0 -0
  122. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/cli/commands/__init__.py +0 -0
  123. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/config/__init__.py +0 -0
  124. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/core/__init__.py +0 -0
  125. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/parsers/__init__.py +0 -0
  126. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/src/mcp_vector_search/py.typed +0 -0
  127. {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.11}/tests/__init__.py +0 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "mcpServers": {
3
+ "mcp-vector-search": {
4
+ "type": "stdio",
5
+ "command": "/Users/masa/Projects/managed/mcp-vector-search/.venv/bin/python3",
6
+ "args": [
7
+ "-m",
8
+ "mcp_vector_search.mcp.server",
9
+ "/Users/masa/Projects/managed/mcp-vector-search"
10
+ ],
11
+ "env": {}
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,4 @@
1
+ logs/
2
+ *.log
3
+ *.pyc
4
+ __pycache__/
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": "1.0",
3
+ "project_name": "claude-mpm",
4
+ "agents": {
5
+ "enabled": true
6
+ },
7
+ "tickets": {
8
+ "auto_create": true,
9
+ "prefix": "TSK"
10
+ }
11
+ }
@@ -0,0 +1,36 @@
1
+ # Agent Memory System
2
+
3
+ ## Purpose
4
+ Each agent maintains project-specific knowledge in these files. Agents read their memory file before tasks and update it when they learn something new.
5
+
6
+ ## Manual Editing
7
+ Feel free to edit these files to:
8
+ - Add project-specific guidelines
9
+ - Remove outdated information
10
+ - Reorganize for better clarity
11
+ - Add domain-specific knowledge
12
+
13
+ ## Memory Limits
14
+ - Max file size: 80KB (~20k tokens)
15
+ - Max sections: 10
16
+ - Max items per section: 15
17
+ - Files auto-truncate when limits exceeded
18
+
19
+ ## File Format
20
+ Standard markdown with structured sections. Agents expect:
21
+ - Project Architecture
22
+ - Implementation Guidelines
23
+ - Common Mistakes to Avoid
24
+ - Current Technical Context
25
+
26
+ ## How It Works
27
+ 1. Agents read their memory file before starting tasks
28
+ 2. Agents add learnings during or after task completion
29
+ 3. Files automatically enforce size limits
30
+ 4. Developers can manually edit for accuracy
31
+
32
+ ## Memory File Lifecycle
33
+ - Created automatically when agent first runs
34
+ - Updated through hook system after delegations
35
+ - Manually editable by developers
36
+ - Version controlled with project
@@ -0,0 +1,37 @@
1
+ # Engineer Agent Memory - mcp-vector-search
2
+
3
+ <!-- MEMORY LIMITS: 80KB max | 10 sections max | 15 items per section -->
4
+ <!-- Last Updated: 2025-08-21 17:32:44 | Auto-updated by: engineer -->
5
+
6
+ ## Project Context
7
+ mcp-vector-search: Software project requiring analysis
8
+
9
+ ## Project Architecture
10
+ - Analyze project structure to understand architecture patterns
11
+
12
+ ## Coding Patterns Learned
13
+ - Observe codebase patterns and conventions during tasks
14
+
15
+ ## Implementation Guidelines
16
+ - Extract implementation guidelines from project documentation
17
+
18
+ ## Domain-Specific Knowledge
19
+ <!-- Agent-specific knowledge accumulates here -->
20
+
21
+ ## Effective Strategies
22
+ <!-- Successful approaches discovered through experience -->
23
+
24
+ ## Common Mistakes to Avoid
25
+ - Learn from errors encountered during project work
26
+
27
+ ## Integration Points
28
+ <!-- Key interfaces and integration patterns -->
29
+
30
+ ## Performance Considerations
31
+ <!-- Performance insights and optimization patterns -->
32
+
33
+ ## Current Technical Context
34
+ - Project analysis pending - gather context during tasks
35
+
36
+ ## Recent Learnings
37
+ <!-- Most recent discoveries and insights -->
@@ -0,0 +1,37 @@
1
+ # Ops Agent Memory - mcp-vector-search
2
+
3
+ <!-- MEMORY LIMITS: 80KB max | 10 sections max | 15 items per section -->
4
+ <!-- Last Updated: 2025-08-21 18:19:03 | Auto-updated by: ops -->
5
+
6
+ ## Project Context
7
+ mcp-vector-search: Software project requiring analysis
8
+
9
+ ## Project Architecture
10
+ - Analyze project structure to understand architecture patterns
11
+
12
+ ## Coding Patterns Learned
13
+ - Observe codebase patterns and conventions during tasks
14
+
15
+ ## Implementation Guidelines
16
+ - Extract implementation guidelines from project documentation
17
+
18
+ ## Domain-Specific Knowledge
19
+ <!-- Agent-specific knowledge accumulates here -->
20
+
21
+ ## Effective Strategies
22
+ <!-- Successful approaches discovered through experience -->
23
+
24
+ ## Common Mistakes to Avoid
25
+ - Learn from errors encountered during project work
26
+
27
+ ## Integration Points
28
+ <!-- Key interfaces and integration patterns -->
29
+
30
+ ## Performance Considerations
31
+ <!-- Performance insights and optimization patterns -->
32
+
33
+ ## Current Technical Context
34
+ - Project analysis pending - gather context during tasks
35
+
36
+ ## Recent Learnings
37
+ <!-- Most recent discoveries and insights -->
@@ -0,0 +1,37 @@
1
+ # Research Agent Memory - mcp-vector-search
2
+
3
+ <!-- MEMORY LIMITS: 120KB max | 10 sections max | 15 items per section -->
4
+ <!-- Last Updated: 2025-08-21 17:37:14 | Auto-updated by: research -->
5
+
6
+ ## Project Context
7
+ mcp-vector-search: Software project requiring analysis
8
+
9
+ ## Project Architecture
10
+ - Analyze project structure to understand architecture patterns
11
+
12
+ ## Coding Patterns Learned
13
+ - Observe codebase patterns and conventions during tasks
14
+
15
+ ## Implementation Guidelines
16
+ - Extract implementation guidelines from project documentation
17
+
18
+ ## Domain-Specific Knowledge
19
+ <!-- Agent-specific knowledge accumulates here -->
20
+
21
+ ## Effective Strategies
22
+ <!-- Successful approaches discovered through experience -->
23
+
24
+ ## Common Mistakes to Avoid
25
+ - Learn from errors encountered during project work
26
+
27
+ ## Integration Points
28
+ <!-- Key interfaces and integration patterns -->
29
+
30
+ ## Performance Considerations
31
+ <!-- Performance insights and optimization patterns -->
32
+
33
+ ## Current Technical Context
34
+ - Project analysis pending - gather context during tasks
35
+
36
+ ## Recent Learnings
37
+ <!-- Most recent discoveries and insights -->
@@ -0,0 +1,37 @@
1
+ # Version-Control Agent Memory - mcp-vector-search
2
+
3
+ <!-- MEMORY LIMITS: 80KB max | 10 sections max | 15 items per section -->
4
+ <!-- Last Updated: 2025-08-21 18:14:52 | Auto-updated by: version-control -->
5
+
6
+ ## Project Context
7
+ mcp-vector-search: Software project requiring analysis
8
+
9
+ ## Project Architecture
10
+ - Analyze project structure to understand architecture patterns
11
+
12
+ ## Coding Patterns Learned
13
+ - Observe codebase patterns and conventions during tasks
14
+
15
+ ## Implementation Guidelines
16
+ - Extract implementation guidelines from project documentation
17
+
18
+ ## Domain-Specific Knowledge
19
+ <!-- Agent-specific knowledge accumulates here -->
20
+
21
+ ## Effective Strategies
22
+ <!-- Successful approaches discovered through experience -->
23
+
24
+ ## Common Mistakes to Avoid
25
+ - Learn from errors encountered during project work
26
+
27
+ ## Integration Points
28
+ <!-- Key interfaces and integration patterns -->
29
+
30
+ ## Performance Considerations
31
+ <!-- Performance insights and optimization patterns -->
32
+
33
+ ## Current Technical Context
34
+ - Project analysis pending - gather context during tasks
35
+
36
+ ## Recent Learnings
37
+ <!-- Most recent discoveries and insights -->
@@ -0,0 +1,251 @@
1
+ name: CI/CD Pipeline
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ tags: [ 'v*' ]
7
+ pull_request:
8
+ branches: [ main, develop ]
9
+
10
+ env:
11
+ PYTHON_VERSION: "3.11"
12
+
13
+ jobs:
14
+ lint:
15
+ name: Lint & Format Check
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v3
22
+ with:
23
+ version: "latest"
24
+
25
+ - name: Set up Python
26
+ run: uv python install ${{ env.PYTHON_VERSION }}
27
+
28
+ - name: Install dependencies
29
+ run: uv sync --dev
30
+
31
+ - name: Run ruff format check
32
+ run: uv run ruff format --check src/
33
+
34
+ - name: Run ruff lint
35
+ run: uv run ruff check src/
36
+
37
+ - name: Run mypy
38
+ run: uv run mypy src/mcp_vector_search --ignore-missing-imports
39
+
40
+ test:
41
+ name: Test Suite
42
+ runs-on: ${{ matrix.os }}
43
+ strategy:
44
+ matrix:
45
+ os: [ubuntu-latest, macos-latest, windows-latest]
46
+ python-version: ["3.11", "3.12"]
47
+
48
+ steps:
49
+ - uses: actions/checkout@v4
50
+
51
+ - name: Install uv
52
+ uses: astral-sh/setup-uv@v3
53
+ with:
54
+ version: "latest"
55
+
56
+ - name: Set up Python ${{ matrix.python-version }}
57
+ run: uv python install ${{ matrix.python-version }}
58
+
59
+ - name: Install dependencies
60
+ run: uv sync --dev
61
+
62
+ - name: Run tests
63
+ run: uv run pytest tests/ -v --cov=src/mcp_vector_search --cov-report=xml --cov-report=term-missing
64
+
65
+ - name: Upload coverage to Codecov
66
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
67
+ uses: codecov/codecov-action@v3
68
+ with:
69
+ file: ./coverage.xml
70
+ fail_ci_if_error: true
71
+
72
+ build:
73
+ name: Build Package
74
+ runs-on: ubuntu-latest
75
+ needs: [lint, test]
76
+ steps:
77
+ - uses: actions/checkout@v4
78
+
79
+ - name: Install uv
80
+ uses: astral-sh/setup-uv@v3
81
+ with:
82
+ version: "latest"
83
+
84
+ - name: Set up Python
85
+ run: uv python install ${{ env.PYTHON_VERSION }}
86
+
87
+ - name: Install dependencies
88
+ run: uv sync --dev
89
+
90
+ - name: Build package
91
+ run: uv build
92
+
93
+ - name: Check package
94
+ run: uv run twine check dist/*
95
+
96
+ - name: Upload build artifacts
97
+ uses: actions/upload-artifact@v4
98
+ with:
99
+ name: dist
100
+ path: dist/
101
+
102
+ security:
103
+ name: Security Scan
104
+ runs-on: ubuntu-latest
105
+ steps:
106
+ - uses: actions/checkout@v4
107
+
108
+ - name: Install uv
109
+ uses: astral-sh/setup-uv@v3
110
+ with:
111
+ version: "latest"
112
+
113
+ - name: Set up Python
114
+ run: uv python install ${{ env.PYTHON_VERSION }}
115
+
116
+ - name: Install dependencies
117
+ run: uv sync --dev
118
+
119
+ - name: Run safety check
120
+ run: uv run safety check --json || true
121
+
122
+ - name: Run bandit security scan
123
+ run: uv run bandit -r src/ -f json || true
124
+
125
+ release:
126
+ name: Release to PyPI
127
+ runs-on: ubuntu-latest
128
+ needs: [lint, test, build, security]
129
+ if: startsWith(github.ref, 'refs/tags/v')
130
+ environment: release
131
+ permissions:
132
+ id-token: write # For trusted publishing
133
+
134
+ steps:
135
+ - uses: actions/checkout@v4
136
+
137
+ - name: Download build artifacts
138
+ uses: actions/download-artifact@v4
139
+ with:
140
+ name: dist
141
+ path: dist/
142
+
143
+ - name: Publish to PyPI
144
+ uses: pypa/gh-action-pypi-publish@release/v1
145
+ with:
146
+ password: ${{ secrets.PYPI_API_TOKEN }}
147
+
148
+ performance:
149
+ name: Performance Benchmarks
150
+ runs-on: ubuntu-latest
151
+ needs: [lint, test]
152
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
153
+
154
+ steps:
155
+ - uses: actions/checkout@v4
156
+
157
+ - name: Install uv
158
+ uses: astral-sh/setup-uv@v3
159
+ with:
160
+ version: "latest"
161
+
162
+ - name: Set up Python
163
+ run: uv python install ${{ env.PYTHON_VERSION }}
164
+
165
+ - name: Install dependencies
166
+ run: uv sync --dev
167
+
168
+ - name: Run performance tests
169
+ run: |
170
+ # Create a test project for benchmarking
171
+ mkdir -p /tmp/test-project
172
+ cd /tmp/test-project
173
+ echo "def hello(): pass" > test.py
174
+
175
+ # Initialize and run benchmarks
176
+ uv run mcp-vector-search init --file-extensions .py --embedding-model sentence-transformers/all-MiniLM-L6-v2
177
+ python3 ${{ github.workspace }}/scripts/search_performance_monitor.py --save
178
+
179
+ - name: Upload performance results
180
+ uses: actions/upload-artifact@v4
181
+ with:
182
+ name: performance-results
183
+ path: /tmp/test-project/.mcp-vector-search/performance_metrics.jsonl
184
+
185
+ docs:
186
+ name: Documentation Check
187
+ runs-on: ubuntu-latest
188
+ steps:
189
+ - uses: actions/checkout@v4
190
+
191
+ - name: Check README links
192
+ run: |
193
+ # Check for broken links in README
194
+ grep -o 'http[s]*://[^)]*' README.md | while read url; do
195
+ if ! curl -s --head "$url" | head -n 1 | grep -q "200 OK"; then
196
+ echo "Broken link: $url"
197
+ exit 1
198
+ fi
199
+ done || true
200
+
201
+ - name: Check documentation completeness
202
+ run: |
203
+ # Ensure key documentation files exist
204
+ required_docs=("README.md" "docs/CHANGELOG.md" "docs/VERSIONING_WORKFLOW.md")
205
+ for doc in "${required_docs[@]}"; do
206
+ if [ ! -f "$doc" ]; then
207
+ echo "Missing documentation: $doc"
208
+ exit 1
209
+ fi
210
+ done
211
+
212
+ integration:
213
+ name: Integration Tests
214
+ runs-on: ubuntu-latest
215
+ needs: [build]
216
+ steps:
217
+ - uses: actions/checkout@v4
218
+
219
+ - name: Download build artifacts
220
+ uses: actions/download-artifact@v4
221
+ with:
222
+ name: dist
223
+ path: dist/
224
+
225
+ - name: Install uv
226
+ uses: astral-sh/setup-uv@v3
227
+ with:
228
+ version: "latest"
229
+
230
+ - name: Set up Python
231
+ run: uv python install ${{ env.PYTHON_VERSION }}
232
+
233
+ - name: Test package installation
234
+ run: |
235
+ # Install from wheel
236
+ uv pip install dist/*.whl
237
+
238
+ # Test CLI is available
239
+ mcp-vector-search --version
240
+
241
+ # Test basic functionality
242
+ mkdir -p /tmp/integration-test
243
+ cd /tmp/integration-test
244
+ echo "def test(): pass" > test.py
245
+
246
+ # Initialize project
247
+ mcp-vector-search init --file-extensions .py --embedding-model sentence-transformers/all-MiniLM-L6-v2
248
+
249
+ # Index and search
250
+ mcp-vector-search index
251
+ mcp-vector-search search "function" --limit 5
@@ -231,3 +231,10 @@ tramp
231
231
  *.tar.gz
232
232
  *.rar
233
233
  *.7z
234
+
235
+ # Claude configuration
236
+ # The .claude/settings.local.json file contains project-specific MCP configuration
237
+ # and should be committed to the repository for team collaboration
238
+ .claude/cache/
239
+ .claude/tmp/
240
+ # Note: .claude/settings.local.json is NOT ignored - it should be committed
@@ -16,14 +16,23 @@ repos:
16
16
  language_version: python3.11
17
17
 
18
18
  - repo: https://github.com/astral-sh/ruff-pre-commit
19
- rev: v0.1.9
19
+ rev: v0.6.0
20
20
  hooks:
21
21
  - id: ruff
22
22
  args: [--fix, --exit-non-zero-on-fix]
23
+ - id: ruff-format
23
24
 
24
25
  - repo: https://github.com/pre-commit/mirrors-mypy
25
26
  rev: v1.8.0
26
27
  hooks:
27
28
  - id: mypy
28
29
  additional_dependencies: [types-all]
29
- args: [--strict, --ignore-missing-imports]
30
+ args: [--ignore-missing-imports]
31
+
32
+ # Security scanning
33
+ - repo: https://github.com/PyCQA/bandit
34
+ rev: 1.7.5
35
+ hooks:
36
+ - id: bandit
37
+ args: ['-r', 'src/', '-f', 'json']
38
+ exclude: tests/