mcp-code-indexer 1.8.0__tar.gz → 1.8.1__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.
- {mcp_code_indexer-1.8.0/src/mcp_code_indexer.egg-info → mcp_code_indexer-1.8.1}/PKG-INFO +1 -1
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/pyproject.toml +1 -1
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/git_hook_handler.py +44 -1
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1/src/mcp_code_indexer.egg-info}/PKG-INFO +1 -1
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/LICENSE +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/MANIFEST.in +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/README.md +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/docs/api-reference.md +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/docs/architecture.md +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/docs/configuration.md +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/docs/contributing.md +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/docs/git-hook-setup.md +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/migrations/001_initial.sql +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/migrations/002_performance_indexes.sql +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/migrations/003_project_overviews.sql +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/requirements.txt +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/setup.cfg +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/setup.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/__init__.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/__main__.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/data/stop_words_english.txt +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/database/__init__.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/database/database.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/database/models.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/error_handler.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/file_scanner.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/logging_config.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/main.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/merge_handler.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/middleware/__init__.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/middleware/error_middleware.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/server/__init__.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/server/mcp_server.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/token_counter.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/tools/__init__.py +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/SOURCES.txt +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/dependency_links.txt +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/entry_points.txt +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/requires.txt +0 -0
- {mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-code-indexer
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.1
|
4
4
|
Summary: MCP server that tracks file descriptions across codebases, enabling AI agents to efficiently navigate and understand code through searchable summaries and token-aware overviews.
|
5
5
|
Author: MCP Code Indexer Contributors
|
6
6
|
Maintainer: MCP Code Indexer Contributors
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "mcp-code-indexer"
|
7
|
-
version = "1.8.
|
7
|
+
version = "1.8.1"
|
8
8
|
description = "MCP server that tracks file descriptions across codebases, enabling AI agents to efficiently navigate and understand code through searchable summaries and token-aware overviews."
|
9
9
|
readme = "README.md"
|
10
10
|
license = {text = "MIT"}
|
@@ -667,8 +667,49 @@ Return ONLY a JSON object:
|
|
667
667
|
Returns:
|
668
668
|
Validated response data
|
669
669
|
"""
|
670
|
+
def extract_json_from_response(text: str) -> str:
|
671
|
+
"""Extract JSON from response that might have extra text before/after."""
|
672
|
+
text = text.strip()
|
673
|
+
|
674
|
+
# Try to find JSON in the response
|
675
|
+
json_start = -1
|
676
|
+
json_end = -1
|
677
|
+
|
678
|
+
# Look for opening brace
|
679
|
+
for i, char in enumerate(text):
|
680
|
+
if char == '{':
|
681
|
+
json_start = i
|
682
|
+
break
|
683
|
+
|
684
|
+
if json_start == -1:
|
685
|
+
return text # No JSON found, return original
|
686
|
+
|
687
|
+
# Find matching closing brace
|
688
|
+
brace_count = 0
|
689
|
+
for i in range(json_start, len(text)):
|
690
|
+
if text[i] == '{':
|
691
|
+
brace_count += 1
|
692
|
+
elif text[i] == '}':
|
693
|
+
brace_count -= 1
|
694
|
+
if brace_count == 0:
|
695
|
+
json_end = i + 1
|
696
|
+
break
|
697
|
+
|
698
|
+
if json_end == -1:
|
699
|
+
return text # No matching brace found, return original
|
700
|
+
|
701
|
+
return text[json_start:json_end]
|
702
|
+
|
670
703
|
try:
|
671
|
-
|
704
|
+
# First try parsing as-is
|
705
|
+
try:
|
706
|
+
data = json.loads(response_text.strip())
|
707
|
+
except json.JSONDecodeError:
|
708
|
+
# Try extracting JSON from response
|
709
|
+
extracted_json = extract_json_from_response(response_text)
|
710
|
+
if extracted_json != response_text.strip():
|
711
|
+
self.logger.debug(f"Extracted JSON from response: {extracted_json}")
|
712
|
+
data = json.loads(extracted_json)
|
672
713
|
|
673
714
|
# Handle both single-stage and two-stage responses
|
674
715
|
if "file_updates" in data and "overview_update" in data:
|
@@ -700,8 +741,10 @@ Return ONLY a JSON object:
|
|
700
741
|
return data
|
701
742
|
|
702
743
|
except json.JSONDecodeError as e:
|
744
|
+
self.logger.error(f"Raw response content: {repr(response_text)}")
|
703
745
|
raise GitHookError(f"Invalid JSON response from API: {e}")
|
704
746
|
except ValueError as e:
|
747
|
+
self.logger.error(f"Raw response content: {repr(response_text)}")
|
705
748
|
raise GitHookError(f"Invalid response structure: {e}")
|
706
749
|
|
707
750
|
async def _apply_updates(self, project_info: Dict[str, Any], updates: Dict[str, Any]) -> None:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-code-indexer
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.1
|
4
4
|
Summary: MCP server that tracks file descriptions across codebases, enabling AI agents to efficiently navigate and understand code through searchable summaries and token-aware overviews.
|
5
5
|
Author: MCP Code Indexer Contributors
|
6
6
|
Maintainer: MCP Code Indexer Contributors
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/data/stop_words_english.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer/middleware/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/dependency_links.txt
RENAMED
File without changes
|
{mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/entry_points.txt
RENAMED
File without changes
|
{mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/requires.txt
RENAMED
File without changes
|
{mcp_code_indexer-1.8.0 → mcp_code_indexer-1.8.1}/src/mcp_code_indexer.egg-info/top_level.txt
RENAMED
File without changes
|