code-graph-rag 0.0.100__tar.gz → 0.0.187__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.
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/LICENSE +1 -1
- {code_graph_rag-0.0.100/code_graph_rag.egg-info → code_graph_rag-0.0.187}/PKG-INFO +20 -14
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/README.md +132 -28
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187/code_graph_rag.egg-info}/PKG-INFO +20 -14
- code_graph_rag-0.0.187/code_graph_rag.egg-info/SOURCES.txt +143 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/code_graph_rag.egg-info/requires.txt +18 -13
- code_graph_rag-0.0.187/codebase_rag/cgr_state.py +57 -0
- code_graph_rag-0.0.187/codebase_rag/cli.py +1164 -0
- code_graph_rag-0.0.187/codebase_rag/cli_help.py +234 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/config.py +61 -9
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/constants.py +476 -76
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/cypher_queries.py +86 -2
- code_graph_rag-0.0.187/codebase_rag/docker-compose.yaml +27 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/embedder.py +11 -1
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/exceptions.py +25 -1
- code_graph_rag-0.0.187/codebase_rag/graph_updater.py +1215 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/language_spec.py +113 -19
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/logs.py +83 -17
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/main.py +684 -86
- code_graph_rag-0.0.187/codebase_rag/mcp/__init__.py +2 -0
- code_graph_rag-0.0.187/codebase_rag/mcp/client.py +65 -0
- code_graph_rag-0.0.187/codebase_rag/mcp/server.py +223 -0
- code_graph_rag-0.0.187/codebase_rag/mcp/tools.py +642 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/models.py +16 -1
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/parser_loader.py +32 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/__init__.py +17 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/call_processor.py +1487 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/call_resolver.py +1081 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/__init__.py +3 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/cpp_modules.py +166 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/identity.py +125 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/method_override.py +79 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/mixin.py +478 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/node_type.py +114 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/parent_extraction.py +418 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/relationships.py +98 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/class_ingest/utils.py +13 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/cpp/utils.py +361 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/cpp_frontend/__init__.py +14 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/cpp_frontend/constants.py +39 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/cpp_frontend/frontend.py +364 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/cpp_frontend/qn.py +171 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/definition_processor.py +259 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/dependency_parser.py +288 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/factory.py +136 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/function_ingest.py +740 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/go/__init__.py +6 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/go/utils.py +36 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/__init__.py +9 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/base.py +109 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/cpp.py +61 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/java.py +30 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/js_ts.py +117 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/lua.py +27 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/php.py +62 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/protocol.py +57 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/python.py +24 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/registry.py +33 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/handlers/rust.py +71 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/import_processor.py +1050 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/java/__init__.py +11 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/java/method_resolver.py +457 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/java/type_inference.py +129 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/java/type_resolver.py +261 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/java/utils.py +532 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/java/variable_analyzer.py +560 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/js_ts/__init__.py +5 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/js_ts/ingest.py +642 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/js_ts/module_system.py +370 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/js_ts/type_inference.py +263 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/js_ts/utils.py +159 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/lua/__init__.py +5 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/lua/type_inference.py +146 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/lua/utils.py +96 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/py/__init__.py +13 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/py/ast_analyzer.py +434 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/py/expression_analyzer.py +392 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/py/type_inference.py +103 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/py/utils.py +38 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/py/variable_analyzer.py +573 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/rs/__init__.py +0 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/rs/utils.py +222 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/stdlib_extractor.py +666 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/structure_processor.py +151 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/type_inference.py +151 -0
- code_graph_rag-0.0.187/codebase_rag/parsers/utils.py +350 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/prompts.py +89 -8
- code_graph_rag-0.0.187/codebase_rag/providers/__init__.py +0 -0
- code_graph_rag-0.0.187/codebase_rag/providers/base.py +348 -0
- code_graph_rag-0.0.187/codebase_rag/providers/litellm.py +50 -0
- code_graph_rag-0.0.187/codebase_rag/services/__init__.py +27 -0
- code_graph_rag-0.0.187/codebase_rag/services/anthropic_token_counter.py +154 -0
- code_graph_rag-0.0.187/codebase_rag/services/graph_service.py +597 -0
- code_graph_rag-0.0.187/codebase_rag/services/llm.py +188 -0
- code_graph_rag-0.0.187/codebase_rag/services/protobuf_service.py +194 -0
- code_graph_rag-0.0.187/codebase_rag/stack/__init__.py +21 -0
- code_graph_rag-0.0.187/codebase_rag/stack/cli.py +83 -0
- code_graph_rag-0.0.187/codebase_rag/stack/constants.py +51 -0
- code_graph_rag-0.0.187/codebase_rag/stack/health.py +60 -0
- code_graph_rag-0.0.187/codebase_rag/stack/manager.py +262 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/tool_errors.py +7 -20
- code_graph_rag-0.0.187/codebase_rag/tools/__init__.py +0 -0
- code_graph_rag-0.0.187/codebase_rag/tools/code_retrieval.py +99 -0
- code_graph_rag-0.0.187/codebase_rag/tools/codebase_query.py +132 -0
- code_graph_rag-0.0.187/codebase_rag/tools/directory_lister.py +65 -0
- code_graph_rag-0.0.187/codebase_rag/tools/file_editor.py +297 -0
- code_graph_rag-0.0.187/codebase_rag/tools/file_reader.py +68 -0
- code_graph_rag-0.0.187/codebase_rag/tools/file_writer.py +53 -0
- code_graph_rag-0.0.187/codebase_rag/tools/health_checker.py +197 -0
- code_graph_rag-0.0.187/codebase_rag/tools/language.py +615 -0
- code_graph_rag-0.0.187/codebase_rag/tools/semantic_search.py +164 -0
- code_graph_rag-0.0.187/codebase_rag/tools/shell_command.py +469 -0
- code_graph_rag-0.0.187/codebase_rag/tools/tool_descriptions.py +178 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/types_defs.py +72 -14
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/unixcoder.py +2 -3
- code_graph_rag-0.0.187/codebase_rag/utils/__init__.py +0 -0
- code_graph_rag-0.0.187/codebase_rag/utils/dependencies.py +44 -0
- code_graph_rag-0.0.187/codebase_rag/utils/fqn_resolver.py +107 -0
- code_graph_rag-0.0.187/codebase_rag/utils/path_utils.py +87 -0
- code_graph_rag-0.0.187/codebase_rag/utils/rich_markdown.py +30 -0
- code_graph_rag-0.0.187/codebase_rag/utils/source_extraction.py +80 -0
- code_graph_rag-0.0.187/codebase_rag/utils/token_utils.py +53 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/vector_store.py +12 -1
- code_graph_rag-0.0.187/codebase_rag/workspaces/__init__.py +28 -0
- code_graph_rag-0.0.187/codebase_rag/workspaces/cli.py +102 -0
- code_graph_rag-0.0.187/codebase_rag/workspaces/constants.py +24 -0
- code_graph_rag-0.0.187/codebase_rag/workspaces/models.py +29 -0
- code_graph_rag-0.0.187/codebase_rag/workspaces/storage.py +125 -0
- code_graph_rag-0.0.187/codec/__init__.py +0 -0
- code_graph_rag-0.0.187/codec/schema_pb2.py +62 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/pyproject.toml +39 -19
- code_graph_rag-0.0.100/code_graph_rag.egg-info/SOURCES.txt +0 -38
- code_graph_rag-0.0.100/codebase_rag/cli.py +0 -474
- code_graph_rag-0.0.100/codebase_rag/cli_help.py +0 -93
- code_graph_rag-0.0.100/codebase_rag/graph_updater.py +0 -641
- code_graph_rag-0.0.100/codec/schema_pb2.py +0 -61
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/PYPI_README.md +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/cgr/__init__.py +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/code_graph_rag.egg-info/dependency_links.txt +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/code_graph_rag.egg-info/entry_points.txt +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/code_graph_rag.egg-info/top_level.txt +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/__init__.py +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/decorators.py +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/graph_loader.py +0 -0
- {code_graph_rag-0.0.100/codec → code_graph_rag-0.0.187/codebase_rag/parsers/cpp}/__init__.py +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/readme_sections.py +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/schema_builder.py +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codebase_rag/schemas.py +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/codec/schema_pb2.pyi +0 -0
- {code_graph_rag-0.0.100 → code_graph_rag-0.0.187}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.187
|
|
4
4
|
Summary: The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Keywords: rag,retrieval-augmented-generation,knowledge-graph,code-analysis,tree-sitter,mcp,mcp-server,llm,graph-database,semantic-search,codebase,memgraph,developer-tools,monorepo
|
|
@@ -14,33 +14,37 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
18
|
Requires-Python: >=3.12
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
License-File: LICENSE
|
|
20
21
|
Requires-Dist: loguru>=0.7.3
|
|
21
|
-
Requires-Dist: mcp>=1.
|
|
22
|
-
Requires-Dist: pydantic-ai>=1.
|
|
23
|
-
Requires-Dist: pydantic-settings>=2.
|
|
24
|
-
Requires-Dist: pymgclient>=1.
|
|
25
|
-
Requires-Dist: python-dotenv>=1.1
|
|
22
|
+
Requires-Dist: mcp>=1.25.0
|
|
23
|
+
Requires-Dist: pydantic-ai>=1.102.0
|
|
24
|
+
Requires-Dist: pydantic-settings>=2.12.0
|
|
25
|
+
Requires-Dist: pymgclient>=1.5.1
|
|
26
|
+
Requires-Dist: python-dotenv>=1.2.1
|
|
27
|
+
Requires-Dist: tiktoken>=0.12.0
|
|
26
28
|
Requires-Dist: toml>=0.10.2
|
|
27
|
-
Requires-Dist: tree-sitter-python>=0.
|
|
28
|
-
Requires-Dist: tree-sitter==0.25.
|
|
29
|
+
Requires-Dist: tree-sitter-python>=0.25.0
|
|
30
|
+
Requires-Dist: tree-sitter==0.25.2
|
|
29
31
|
Requires-Dist: watchdog>=6.0.0
|
|
30
|
-
Requires-Dist: typer>=0.
|
|
31
|
-
Requires-Dist: rich>=
|
|
32
|
-
Requires-Dist: prompt-toolkit>=3.0.
|
|
32
|
+
Requires-Dist: typer>=0.21.1
|
|
33
|
+
Requires-Dist: rich>=14.2.0
|
|
34
|
+
Requires-Dist: prompt-toolkit>=3.0.52
|
|
33
35
|
Requires-Dist: diff-match-patch>=20241021
|
|
34
|
-
Requires-Dist: click>=8.
|
|
35
|
-
Requires-Dist: protobuf>=
|
|
36
|
+
Requires-Dist: click>=8.3.1
|
|
37
|
+
Requires-Dist: protobuf>=6.33.5
|
|
36
38
|
Requires-Dist: defusedxml>=0.7.1
|
|
37
|
-
Requires-Dist: huggingface-hub[hf-xet]>=
|
|
39
|
+
Requires-Dist: huggingface-hub[hf-xet]>=1.7.2
|
|
40
|
+
Requires-Dist: griffe<2,>=1.0
|
|
38
41
|
Provides-Extra: test
|
|
39
42
|
Requires-Dist: pytest>=8.4.1; extra == "test"
|
|
40
43
|
Requires-Dist: pytest-asyncio>=1.0.0; extra == "test"
|
|
41
44
|
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
|
42
45
|
Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
43
46
|
Requires-Dist: testcontainers>=4.9.0; extra == "test"
|
|
47
|
+
Requires-Dist: libclang>=18.1.1; extra == "test"
|
|
44
48
|
Provides-Extra: treesitter-full
|
|
45
49
|
Requires-Dist: tree-sitter-python>=0.23.6; extra == "treesitter-full"
|
|
46
50
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == "treesitter-full"
|
|
@@ -49,8 +53,10 @@ Requires-Dist: tree-sitter-rust>=0.24.0; extra == "treesitter-full"
|
|
|
49
53
|
Requires-Dist: tree-sitter-go>=0.23.4; extra == "treesitter-full"
|
|
50
54
|
Requires-Dist: tree-sitter-scala>=0.24.0; extra == "treesitter-full"
|
|
51
55
|
Requires-Dist: tree-sitter-java>=0.23.5; extra == "treesitter-full"
|
|
56
|
+
Requires-Dist: tree-sitter-c>=0.24.1; extra == "treesitter-full"
|
|
52
57
|
Requires-Dist: tree-sitter-cpp>=0.23.0; extra == "treesitter-full"
|
|
53
58
|
Requires-Dist: tree-sitter-lua>=0.0.19; extra == "treesitter-full"
|
|
59
|
+
Requires-Dist: tree-sitter-php>=0.24.1; extra == "treesitter-full"
|
|
54
60
|
Provides-Extra: semantic
|
|
55
61
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
56
62
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
@@ -1,26 +1,54 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
+
<!-- Bitbucket strips <picture>/<source> tags, so we use a single light-mode <img>. Restore the theme-aware <picture> block below when the GitHub account is reinstated:
|
|
2
3
|
<picture>
|
|
3
4
|
<source srcset="assets/logo-dark-any.png" media="(prefers-color-scheme: dark)">
|
|
4
5
|
<source srcset="assets/logo-light-any.png" media="(prefers-color-scheme: light)">
|
|
5
6
|
<img src="assets/logo-dark-any.png" alt="Code-Graph-RAG Logo" width="480">
|
|
6
7
|
</picture>
|
|
8
|
+
-->
|
|
9
|
+
<img src="assets/logo-light-any.png" alt="Code-Graph-RAG Logo" width="480">
|
|
7
10
|
|
|
8
11
|
<p>
|
|
12
|
+
<!-- Badges below are commented out while the GitHub account is suspended. Restore them when the account is reinstated.
|
|
13
|
+
Stars/Forks: shields.io hits GitHub's API (returns "repo not found" for suspended accounts).
|
|
14
|
+
gitcgr: indexes from GitHub (shows "not indexed" while unavailable).
|
|
15
|
+
MseeP.ai: badge PNG ignores inline height on Bitbucket and renders as a full-size tile.
|
|
9
16
|
<a href="https://github.com/vitali87/code-graph-rag/stargazers">
|
|
10
17
|
<img src="https://img.shields.io/github/stars/vitali87/code-graph-rag?style=social" alt="GitHub stars" />
|
|
11
18
|
</a>
|
|
12
19
|
<a href="https://github.com/vitali87/code-graph-rag/network/members">
|
|
13
20
|
<img src="https://img.shields.io/github/forks/vitali87/code-graph-rag?style=social" alt="GitHub forks" />
|
|
14
21
|
</a>
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
-->
|
|
23
|
+
<!-- Codecov, SonarCloud, and OpenSSF Scorecard badges were fed by GitHub-side CI. They no longer update after the move to Codeberg. Restore once equivalent CI is in place on Codeberg (Woodpecker).
|
|
24
|
+
<a href="https://codecov.io/gh/vitali87/code-graph-rag">
|
|
25
|
+
<img src="https://codecov.io/gh/vitali87/code-graph-rag/graph/badge.svg" alt="Codecov" />
|
|
17
26
|
</a>
|
|
27
|
+
<a href="https://sonarcloud.io/summary/overall?id=vitali87_code-graph-rag">
|
|
28
|
+
<img src="https://sonarcloud.io/api/project_badges/measure?project=vitali87_code-graph-rag&metric=alert_status" alt="Quality Gate Status" />
|
|
29
|
+
</a>
|
|
30
|
+
-->
|
|
31
|
+
<!--
|
|
18
32
|
<a href="https://mseep.ai/app/vitali87-code-graph-rag">
|
|
19
33
|
<img src="https://mseep.net/pr/vitali87-code-graph-rag-badge.png" alt="MseeP.ai Security Assessment" height="20" />
|
|
20
34
|
</a>
|
|
35
|
+
-->
|
|
21
36
|
<a href="https://code-graph-rag.com">
|
|
22
37
|
<img src="https://img.shields.io/badge/Enterprise-Support%20%26%20Services-6366f1" alt="Enterprise Support" />
|
|
23
38
|
</a>
|
|
39
|
+
<a href="https://pepy.tech/projects/code-graph-rag">
|
|
40
|
+
<img src="https://static.pepy.tech/personalized-badge/code-graph-rag?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads" alt="PyPI Downloads" />
|
|
41
|
+
</a>
|
|
42
|
+
<!-- OpenSSF Scorecard only tracks GitHub-hosted repos. Restore if the project is mirrored back to GitHub or scorecard.dev adds Codeberg support.
|
|
43
|
+
<a href="https://scorecard.dev/viewer/?uri=github.com/vitali87/code-graph-rag">
|
|
44
|
+
<img src="https://api.scorecard.dev/projects/github.com/vitali87/code-graph-rag/badge" alt="OpenSSF Scorecard" />
|
|
45
|
+
</a>
|
|
46
|
+
-->
|
|
47
|
+
<!--
|
|
48
|
+
<a href="https://gitcgr.com/vitali87/code-graph-rag">
|
|
49
|
+
<img src="https://gitcgr.com/badge/vitali87/code-graph-rag.svg" alt="gitcgr" />
|
|
50
|
+
</a>
|
|
51
|
+
-->
|
|
24
52
|
</p>
|
|
25
53
|
</div>
|
|
26
54
|
|
|
@@ -35,8 +63,9 @@ An accurate Retrieval-Augmented Generation (RAG) system that analyzes multi-lang
|
|
|
35
63
|
|
|
36
64
|
## Latest News 🔥
|
|
37
65
|
|
|
38
|
-
- **
|
|
39
|
-
-
|
|
66
|
+
- **PHP Language Support**: Full PHP language support added — classes, interfaces, traits, enums, namespaces, PHP 8 attributes, and call graph analysis. Contributed by [@rs-ipps](https://github.com/rs-ipps).
|
|
67
|
+
- **C Language Support**: Full C language support added — functions, structs, unions, enums, preprocessor includes, and call graph analysis. Contributed by [@dj0nes](https://github.com/dj0nes).
|
|
68
|
+
- **Visualise any GitHub repo instantly!** Just change `github.com` to `gitcgr.com` in any repo URL — that's it, only 3 letters! Get an interactive graph of the entire codebase structure. Try it now: [gitcgr.com](https://gitcgr.com)
|
|
40
69
|
|
|
41
70
|
## 🚀 Features
|
|
42
71
|
|
|
@@ -45,16 +74,16 @@ An accurate Retrieval-Augmented Generation (RAG) system that analyzes multi-lang
|
|
|
45
74
|
<!-- SECTION:supported_languages -->
|
|
46
75
|
| Language | Status | Extensions | Functions | Classes/Structs | Modules | Package Detection | Additional Features |
|
|
47
76
|
|--------|------|----------|---------|---------------|-------|-----------------|-------------------|
|
|
77
|
+
| C | Fully Supported | .c | ✓ | ✓ | ✓ | ✓ | Functions, structs, unions, enums, preprocessor includes |
|
|
48
78
|
| C++ | Fully Supported | .cpp, .h, .hpp, .cc, .cxx, .hxx, .hh, .ixx, .cppm, .ccm | ✓ | ✓ | ✓ | ✓ | Constructors, destructors, operator overloading, templates, lambdas, C++20 modules, namespaces |
|
|
49
79
|
| Java | Fully Supported | .java | ✓ | ✓ | ✓ | - | Generics, annotations, modern features (records/sealed classes), concurrency, reflection |
|
|
50
80
|
| JavaScript | Fully Supported | .js, .jsx | ✓ | ✓ | ✓ | - | ES6 modules, CommonJS, prototype methods, object methods, arrow functions |
|
|
51
81
|
| Lua | Fully Supported | .lua | ✓ | - | ✓ | - | Local/global functions, metatables, closures, coroutines |
|
|
82
|
+
| PHP | Fully Supported | .php | ✓ | ✓ | ✓ | - | Classes, interfaces, traits, enums, namespaces, PHP 8 attributes |
|
|
52
83
|
| Python | Fully Supported | .py | ✓ | ✓ | ✓ | ✓ | Type inference, decorators, nested functions |
|
|
53
84
|
| Rust | Fully Supported | .rs | ✓ | ✓ | ✓ | ✓ | impl blocks, associated functions |
|
|
54
85
|
| TypeScript | Fully Supported | .ts, .tsx | ✓ | ✓ | ✓ | - | Interfaces, type aliases, enums, namespaces, ES6/CommonJS modules |
|
|
55
|
-
| C# | In Development | .cs | ✓ | ✓ | ✓ | - | Classes, interfaces, generics (planned) |
|
|
56
86
|
| Go | In Development | .go | ✓ | ✓ | ✓ | - | Methods, type declarations |
|
|
57
|
-
| PHP | In Development | .php | ✓ | ✓ | ✓ | - | Classes, functions, namespaces |
|
|
58
87
|
| Scala | In Development | .scala, .sc | ✓ | ✓ | ✓ | - | Case classes, objects |
|
|
59
88
|
<!-- /SECTION:supported_languages -->
|
|
60
89
|
- **🌳 Tree-sitter Parsing**: Uses Tree-sitter for robust, language-agnostic AST parsing
|
|
@@ -111,9 +140,54 @@ sudo dnf install ripgrep
|
|
|
111
140
|
|
|
112
141
|
## 🛠️ Installation
|
|
113
142
|
|
|
143
|
+
### System-wide install (recommended for end users)
|
|
144
|
+
|
|
145
|
+
`cgr` is published to PyPI and can be installed system-wide so it works from any
|
|
146
|
+
target repo without activating a project virtualenv. Install with the
|
|
147
|
+
`treesitter-full` (all languages) and `semantic` (vector search) extras:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# with uv (recommended)
|
|
151
|
+
uv tool install "code-graph-rag[treesitter-full,semantic]"
|
|
152
|
+
|
|
153
|
+
# or with pipx
|
|
154
|
+
pipx install "code-graph-rag[treesitter-full,semantic]"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
For a Python-only install, omit the extras. For local development from a clone,
|
|
158
|
+
use `uv tool install --editable "/path/to/code-graph-rag[treesitter-full,semantic]"`.
|
|
159
|
+
|
|
160
|
+
After install, `cgr` is on PATH. From any repository, run:
|
|
161
|
+
|
|
114
162
|
```bash
|
|
115
|
-
|
|
163
|
+
cd ~/path/to/some-target-repo
|
|
164
|
+
cgr daemon up # one-time: start the shared memgraph + qdrant stack
|
|
165
|
+
cgr start # auto-sync the current repo and drop into the agent
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
`cgr start` defaults `--repo-path` to the current directory and auto-syncs the
|
|
169
|
+
graph incrementally on entry. Pass `--no-sync` to skip the sync, or
|
|
170
|
+
`--no-start-stack` if memgraph/qdrant already run elsewhere.
|
|
171
|
+
|
|
172
|
+
Useful subcommands:
|
|
173
|
+
|
|
174
|
+
| Command | Purpose |
|
|
175
|
+
|---|---|
|
|
176
|
+
| `cgr daemon up/down/status/restart/logs` | Manage the shared docker stack |
|
|
177
|
+
| `cgr stop` | Alias for `cgr daemon down` |
|
|
178
|
+
| `cgr status` | Show stack state + per-project last-sync timestamp |
|
|
179
|
+
| `cgr workspace create/list/show/delete` | Manage named bundles of repos |
|
|
180
|
+
| `cgr workspace add-repo / remove-repo` | Edit a workspace's repo set |
|
|
181
|
+
| `cgr start --workspace mono` | Open the agent over every project in the workspace |
|
|
182
|
+
| `cgr start --projects a,b,c` | Scope agent queries to the listed projects |
|
|
116
183
|
|
|
184
|
+
Indexed data persists across `cgr daemon down` thanks to named memgraph + qdrant
|
|
185
|
+
volumes (`memgraph_data`, `memgraph_log`, `qdrant_storage`).
|
|
186
|
+
|
|
187
|
+
### Local development install
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
git clone https://codeberg.org/vitali87/code-graph-rag.git
|
|
117
191
|
cd code-graph-rag
|
|
118
192
|
```
|
|
119
193
|
|
|
@@ -218,9 +292,20 @@ ollama pull llama3.2
|
|
|
218
292
|
|
|
219
293
|
4. **Start Memgraph database**:
|
|
220
294
|
```bash
|
|
221
|
-
docker
|
|
295
|
+
docker compose up -d
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
5. **Verify installation**:
|
|
299
|
+
```bash
|
|
300
|
+
# If installed from PyPI:
|
|
301
|
+
cgr --help
|
|
302
|
+
|
|
303
|
+
# If running from source:
|
|
304
|
+
uv run cgr --help
|
|
222
305
|
```
|
|
223
306
|
|
|
307
|
+
> **Note**: When running from source (cloned repo), prefix all `cgr` commands below with `uv run`, e.g., `uv run cgr start ...`
|
|
308
|
+
|
|
224
309
|
## 🛠️ Makefile Commands
|
|
225
310
|
|
|
226
311
|
Use the Makefile for common development tasks:
|
|
@@ -284,12 +369,23 @@ The system automatically detects and processes files for all supported languages
|
|
|
284
369
|
|
|
285
370
|
### Step 2: Query the Codebase
|
|
286
371
|
|
|
372
|
+
**Interactive mode:**
|
|
373
|
+
|
|
287
374
|
Start the interactive RAG CLI:
|
|
288
375
|
|
|
289
376
|
```bash
|
|
290
377
|
cgr start --repo-path /path/to/your/repo
|
|
291
378
|
```
|
|
292
379
|
|
|
380
|
+
**Non-interactive mode (single query):**
|
|
381
|
+
|
|
382
|
+
Run a single query and exit, with output sent to stdout (useful for scripting):
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
python -m codebase_rag.main start --repo-path /path/to/your/repo \
|
|
386
|
+
--ask-agent "What functions call UserService.create_user?"
|
|
387
|
+
```
|
|
388
|
+
|
|
293
389
|
### Step 2.5: Real-Time Graph Updates (Optional)
|
|
294
390
|
|
|
295
391
|
For active development, you can keep your knowledge graph automatically synchronized with code changes using the realtime updater. This is particularly useful when you're actively modifying code and want the AI assistant to always work with the latest codebase structure.
|
|
@@ -454,7 +550,7 @@ cgr optimize javascript --repo-path /path/to/frontend \
|
|
|
454
550
|
```
|
|
455
551
|
|
|
456
552
|
**Supported Languages for Optimization:**
|
|
457
|
-
All supported languages: `python`, `javascript`, `typescript`, `rust`, `go`, `java`, `scala`, `cpp`
|
|
553
|
+
All supported languages: `python`, `javascript`, `typescript`, `rust`, `go`, `java`, `scala`, `c`, `cpp`
|
|
458
554
|
|
|
459
555
|
**How It Works:**
|
|
460
556
|
1. **Analysis Phase**: The agent analyzes your codebase structure using the knowledge graph
|
|
@@ -532,13 +628,16 @@ claude mcp add --transport stdio code-graph-rag \
|
|
|
532
628
|
| `list_projects` | List all indexed projects in the knowledge graph database. Returns a list of project names that have been indexed. |
|
|
533
629
|
| `delete_project` | Delete a specific project from the knowledge graph database. This removes all nodes associated with the project while preserving other projects. Use list_projects first to see available projects. |
|
|
534
630
|
| `wipe_database` | WARNING: Completely wipe the entire database, removing ALL indexed projects. This cannot be undone. Use delete_project for removing individual projects. |
|
|
535
|
-
| `index_repository` | Parse and ingest the repository into the Memgraph knowledge graph.
|
|
536
|
-
| `
|
|
631
|
+
| `index_repository` | WARNING: Clears all data for the current project including its embeddings. Parse and ingest the repository into the Memgraph knowledge graph. Use update_repository for incremental updates. Only use when explicitly requested. |
|
|
632
|
+
| `update_repository` | Update the repository in the Memgraph knowledge graph without clearing existing data. Use this for incremental updates. |
|
|
633
|
+
| `query_code_graph` | Query the codebase knowledge graph using natural language. Use semantic_search unless you know the exact names of classes/functions you are searching for. Ask questions like 'What functions call UserService.create_user?' or 'Show me all classes that implement the Repository interface'. |
|
|
537
634
|
| `get_code_snippet` | Retrieve source code for a function, class, or method by its qualified name. Returns the source code, file path, line numbers, and docstring. |
|
|
538
635
|
| `surgical_replace_code` | Surgically replace an exact code block in a file using diff-match-patch. Only modifies the exact target block, leaving the rest unchanged. |
|
|
539
636
|
| `read_file` | Read the contents of a file from the project. Supports pagination for large files. |
|
|
540
637
|
| `write_file` | Write content to a file, creating it if it doesn't exist. |
|
|
541
638
|
| `list_directory` | List contents of a directory in the project. |
|
|
639
|
+
| `semantic_search` | Performs a semantic search for functions based on a natural language query describing their purpose, returning a list of potential matches with similarity scores. Requires the 'semantic' extra to be installed. |
|
|
640
|
+
| `ask_agent` | Ask the Code Graph RAG agent a question about the codebase. Uses the full RAG pipeline to analyze the code graph and provide a detailed answer. Use this for general questions about architecture, functionality, and code relationships. |
|
|
542
641
|
<!-- /SECTION:mcp_tools -->
|
|
543
642
|
|
|
544
643
|
### Example Usage
|
|
@@ -561,35 +660,35 @@ The knowledge graph uses the following node types and relationships:
|
|
|
561
660
|
| Label | Properties |
|
|
562
661
|
|-----|----------|
|
|
563
662
|
| Project | `{name: string}` |
|
|
564
|
-
| Package | `{qualified_name: string, name: string, path: string}` |
|
|
565
|
-
| Folder | `{path: string, name: string}` |
|
|
566
|
-
| File | `{path: string, name: string, extension: string}` |
|
|
567
|
-
| Module | `{qualified_name: string, name: string, path: string}` |
|
|
568
|
-
| Class | `{qualified_name: string, name: string, decorators: list[string]}` |
|
|
569
|
-
| Function | `{qualified_name: string, name: string, decorators: list[string]}` |
|
|
570
|
-
| Method | `{qualified_name: string, name: string, decorators: list[string]}` |
|
|
571
|
-
| Interface | `{qualified_name: string, name: string}` |
|
|
572
|
-
| Enum | `{qualified_name: string, name: string}` |
|
|
663
|
+
| Package | `{qualified_name: string, name: string, path: string, absolute_path: string}` |
|
|
664
|
+
| Folder | `{path: string, name: string, absolute_path: string}` |
|
|
665
|
+
| File | `{path: string, name: string, extension: string, absolute_path: string}` |
|
|
666
|
+
| Module | `{qualified_name: string, name: string, path: string, absolute_path: string}` |
|
|
667
|
+
| Class | `{qualified_name: string, name: string, decorators: list[string], path: string, absolute_path: string}` |
|
|
668
|
+
| Function | `{qualified_name: string, name: string, decorators: list[string], path: string, absolute_path: string}` |
|
|
669
|
+
| Method | `{qualified_name: string, name: string, decorators: list[string], path: string, absolute_path: string}` |
|
|
670
|
+
| Interface | `{qualified_name: string, name: string, path: string, absolute_path: string}` |
|
|
671
|
+
| Enum | `{qualified_name: string, name: string, path: string, absolute_path: string}` |
|
|
573
672
|
| Type | `{qualified_name: string, name: string}` |
|
|
574
673
|
| Union | `{qualified_name: string, name: string}` |
|
|
575
|
-
| ModuleInterface | `{qualified_name: string, name: string, path: string}` |
|
|
576
|
-
| ModuleImplementation | `{qualified_name: string, name: string, path: string, implements_module: string}` |
|
|
674
|
+
| ModuleInterface | `{qualified_name: string, name: string, path: string, absolute_path: string}` |
|
|
675
|
+
| ModuleImplementation | `{qualified_name: string, name: string, path: string, absolute_path: string, implements_module: string}` |
|
|
577
676
|
| ExternalPackage | `{name: string, version_spec: string}` |
|
|
578
677
|
<!-- /SECTION:node_schemas -->
|
|
579
678
|
|
|
580
679
|
### Language-Specific Mappings
|
|
581
680
|
|
|
582
681
|
<!-- SECTION:language_mappings -->
|
|
682
|
+
- **C**: `enum_specifier`, `function_definition`, `struct_specifier`, `union_specifier`
|
|
583
683
|
- **C++**: `class_specifier`, `declaration`, `enum_specifier`, `field_declaration`, `function_definition`, `lambda_expression`, `struct_specifier`, `template_declaration`, `union_specifier`
|
|
584
684
|
- **Java**: `annotation_type_declaration`, `class_declaration`, `constructor_declaration`, `enum_declaration`, `interface_declaration`, `method_declaration`, `record_declaration`
|
|
585
685
|
- **JavaScript**: `arrow_function`, `class`, `class_declaration`, `function_declaration`, `function_expression`, `generator_function_declaration`, `method_definition`
|
|
586
686
|
- **Lua**: `function_declaration`, `function_definition`
|
|
687
|
+
- **PHP**: `anonymous_function`, `arrow_function`, `class_declaration`, `enum_declaration`, `function_definition`, `interface_declaration`, `method_declaration`, `trait_declaration`
|
|
587
688
|
- **Python**: `class_definition`, `function_definition`
|
|
588
689
|
- **Rust**: `closure_expression`, `enum_item`, `function_item`, `function_signature_item`, `impl_item`, `struct_item`, `trait_item`, `type_item`, `union_item`
|
|
589
690
|
- **TypeScript**: `abstract_class_declaration`, `arrow_function`, `class`, `class_declaration`, `enum_declaration`, `function_declaration`, `function_expression`, `function_signature`, `generator_function_declaration`, `interface_declaration`, `internal_module`, `method_definition`, `type_alias_declaration`
|
|
590
|
-
- **
|
|
591
|
-
- **Go**: `function_declaration`, `method_declaration`, `type_declaration`
|
|
592
|
-
- **PHP**: `anonymous_function`, `arrow_function`, `class_declaration`, `enum_declaration`, `function_definition`, `function_static_declaration`, `interface_declaration`, `trait_declaration`
|
|
691
|
+
- **Go**: `function_declaration`, `method_declaration`, `type_alias`, `type_spec`
|
|
593
692
|
- **Scala**: `class_definition`, `function_declaration`, `function_definition`, `object_definition`, `trait_definition`
|
|
594
693
|
<!-- /SECTION:language_mappings -->
|
|
595
694
|
|
|
@@ -679,6 +778,7 @@ my_build_output
|
|
|
679
778
|
- **pydantic-settings**: Settings management using Pydantic
|
|
680
779
|
- **pymgclient**: Memgraph database adapter for Python language
|
|
681
780
|
- **python-dotenv**: Read key-value pairs from a .env file and set them as environment variables
|
|
781
|
+
- **tiktoken**: tiktoken is a fast BPE tokeniser for use with OpenAI's models
|
|
682
782
|
- **toml**: Python Library for Tom's Obvious, Minimal Language
|
|
683
783
|
- **tree-sitter-python**: Python grammar for tree-sitter
|
|
684
784
|
- **tree-sitter**: Python bindings to the Tree-sitter parsing library
|
|
@@ -691,6 +791,7 @@ my_build_output
|
|
|
691
791
|
- **protobuf**
|
|
692
792
|
- **defusedxml**: XML bomb protection for Python stdlib modules
|
|
693
793
|
- **huggingface-hub**: Client library to download and publish models, datasets and other repos on the huggingface.co hub
|
|
794
|
+
- **griffe**: Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API.
|
|
694
795
|
<!-- /SECTION:dependencies -->
|
|
695
796
|
|
|
696
797
|
## 🤖 Agentic Workflow & Tools
|
|
@@ -705,11 +806,10 @@ The agent has access to a suite of tools to understand and interact with the cod
|
|
|
705
806
|
| Tool | Description |
|
|
706
807
|
|----|-----------|
|
|
707
808
|
| `query_graph` | Query the codebase knowledge graph using natural language questions. Ask in plain English about classes, functions, methods, dependencies, or code structure. Examples: 'Find all functions that call each other', 'What classes are in the user module', 'Show me functions with the longest call chains'. |
|
|
708
|
-
| `read_file` | Reads the content of text-based files.
|
|
809
|
+
| `read_file` | Reads the content of text-based files. Images and PDFs the user references are attached inline; read them directly. |
|
|
709
810
|
| `create_file` | Creates a new file with content. IMPORTANT: Check file existence first! Overwrites completely WITHOUT showing diff. Use only for new files, not existing file modifications. |
|
|
710
811
|
| `replace_code` | Surgically replaces specific code blocks in files. Requires exact target code and replacement. Only modifies the specified block, leaving rest of file unchanged. True surgical patching. |
|
|
711
812
|
| `list_directory` | Lists the contents of a directory to explore the codebase. |
|
|
712
|
-
| `analyze_document` | Analyzes documents (PDFs, images) to answer questions about their content. |
|
|
713
813
|
| `execute_shell` | Executes shell commands from allowlist. Read-only commands run without approval; write operations require user confirmation. |
|
|
714
814
|
| `semantic_search` | Performs a semantic search for functions based on a natural language query describing their purpose, returning a list of potential matches with similarity scores. |
|
|
715
815
|
| `get_function_source` | Retrieves the source code for a specific function or method using its internal node ID, typically obtained from a semantic search result. |
|
|
@@ -735,7 +835,7 @@ Code-Graph-RAG makes it easy to add support for any language that has a Tree-sit
|
|
|
735
835
|
|
|
736
836
|
> **⚠️ Recommendation**: While you can add languages yourself, we recommend waiting for official full support to ensure optimal parsing quality, comprehensive feature coverage, and robust integration. The languages marked as "In Development" above will receive dedicated optimization and testing.
|
|
737
837
|
|
|
738
|
-
> **💡 Request Support**: If you want a specific language to be officially supported, please [submit an issue](https://
|
|
838
|
+
> **💡 Request Support**: If you want a specific language to be officially supported, please [submit an issue](https://codeberg.org/vitali87/code-graph-rag/issues) with your language request.
|
|
739
839
|
|
|
740
840
|
#### Quick Start: Add a Language
|
|
741
841
|
|
|
@@ -887,3 +987,7 @@ We also offer custom development, integration consulting, technical support cont
|
|
|
887
987
|
## Star History
|
|
888
988
|
|
|
889
989
|
[](https://www.star-history.com/#vitali87/code-graph-rag&Date)
|
|
990
|
+
|
|
991
|
+
## Fork History
|
|
992
|
+
|
|
993
|
+
[](https://fork-history.site/#vitali87/code-graph-rag)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.187
|
|
4
4
|
Summary: The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Keywords: rag,retrieval-augmented-generation,knowledge-graph,code-analysis,tree-sitter,mcp,mcp-server,llm,graph-database,semantic-search,codebase,memgraph,developer-tools,monorepo
|
|
@@ -14,33 +14,37 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
18
|
Requires-Python: >=3.12
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
License-File: LICENSE
|
|
20
21
|
Requires-Dist: loguru>=0.7.3
|
|
21
|
-
Requires-Dist: mcp>=1.
|
|
22
|
-
Requires-Dist: pydantic-ai>=1.
|
|
23
|
-
Requires-Dist: pydantic-settings>=2.
|
|
24
|
-
Requires-Dist: pymgclient>=1.
|
|
25
|
-
Requires-Dist: python-dotenv>=1.1
|
|
22
|
+
Requires-Dist: mcp>=1.25.0
|
|
23
|
+
Requires-Dist: pydantic-ai>=1.102.0
|
|
24
|
+
Requires-Dist: pydantic-settings>=2.12.0
|
|
25
|
+
Requires-Dist: pymgclient>=1.5.1
|
|
26
|
+
Requires-Dist: python-dotenv>=1.2.1
|
|
27
|
+
Requires-Dist: tiktoken>=0.12.0
|
|
26
28
|
Requires-Dist: toml>=0.10.2
|
|
27
|
-
Requires-Dist: tree-sitter-python>=0.
|
|
28
|
-
Requires-Dist: tree-sitter==0.25.
|
|
29
|
+
Requires-Dist: tree-sitter-python>=0.25.0
|
|
30
|
+
Requires-Dist: tree-sitter==0.25.2
|
|
29
31
|
Requires-Dist: watchdog>=6.0.0
|
|
30
|
-
Requires-Dist: typer>=0.
|
|
31
|
-
Requires-Dist: rich>=
|
|
32
|
-
Requires-Dist: prompt-toolkit>=3.0.
|
|
32
|
+
Requires-Dist: typer>=0.21.1
|
|
33
|
+
Requires-Dist: rich>=14.2.0
|
|
34
|
+
Requires-Dist: prompt-toolkit>=3.0.52
|
|
33
35
|
Requires-Dist: diff-match-patch>=20241021
|
|
34
|
-
Requires-Dist: click>=8.
|
|
35
|
-
Requires-Dist: protobuf>=
|
|
36
|
+
Requires-Dist: click>=8.3.1
|
|
37
|
+
Requires-Dist: protobuf>=6.33.5
|
|
36
38
|
Requires-Dist: defusedxml>=0.7.1
|
|
37
|
-
Requires-Dist: huggingface-hub[hf-xet]>=
|
|
39
|
+
Requires-Dist: huggingface-hub[hf-xet]>=1.7.2
|
|
40
|
+
Requires-Dist: griffe<2,>=1.0
|
|
38
41
|
Provides-Extra: test
|
|
39
42
|
Requires-Dist: pytest>=8.4.1; extra == "test"
|
|
40
43
|
Requires-Dist: pytest-asyncio>=1.0.0; extra == "test"
|
|
41
44
|
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
|
42
45
|
Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
43
46
|
Requires-Dist: testcontainers>=4.9.0; extra == "test"
|
|
47
|
+
Requires-Dist: libclang>=18.1.1; extra == "test"
|
|
44
48
|
Provides-Extra: treesitter-full
|
|
45
49
|
Requires-Dist: tree-sitter-python>=0.23.6; extra == "treesitter-full"
|
|
46
50
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == "treesitter-full"
|
|
@@ -49,8 +53,10 @@ Requires-Dist: tree-sitter-rust>=0.24.0; extra == "treesitter-full"
|
|
|
49
53
|
Requires-Dist: tree-sitter-go>=0.23.4; extra == "treesitter-full"
|
|
50
54
|
Requires-Dist: tree-sitter-scala>=0.24.0; extra == "treesitter-full"
|
|
51
55
|
Requires-Dist: tree-sitter-java>=0.23.5; extra == "treesitter-full"
|
|
56
|
+
Requires-Dist: tree-sitter-c>=0.24.1; extra == "treesitter-full"
|
|
52
57
|
Requires-Dist: tree-sitter-cpp>=0.23.0; extra == "treesitter-full"
|
|
53
58
|
Requires-Dist: tree-sitter-lua>=0.0.19; extra == "treesitter-full"
|
|
59
|
+
Requires-Dist: tree-sitter-php>=0.24.1; extra == "treesitter-full"
|
|
54
60
|
Provides-Extra: semantic
|
|
55
61
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
56
62
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
PYPI_README.md
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
cgr/__init__.py
|
|
6
|
+
code_graph_rag.egg-info/PKG-INFO
|
|
7
|
+
code_graph_rag.egg-info/SOURCES.txt
|
|
8
|
+
code_graph_rag.egg-info/dependency_links.txt
|
|
9
|
+
code_graph_rag.egg-info/entry_points.txt
|
|
10
|
+
code_graph_rag.egg-info/requires.txt
|
|
11
|
+
code_graph_rag.egg-info/top_level.txt
|
|
12
|
+
codebase_rag/__init__.py
|
|
13
|
+
codebase_rag/cgr_state.py
|
|
14
|
+
codebase_rag/cli.py
|
|
15
|
+
codebase_rag/cli_help.py
|
|
16
|
+
codebase_rag/config.py
|
|
17
|
+
codebase_rag/constants.py
|
|
18
|
+
codebase_rag/cypher_queries.py
|
|
19
|
+
codebase_rag/decorators.py
|
|
20
|
+
codebase_rag/docker-compose.yaml
|
|
21
|
+
codebase_rag/embedder.py
|
|
22
|
+
codebase_rag/exceptions.py
|
|
23
|
+
codebase_rag/graph_loader.py
|
|
24
|
+
codebase_rag/graph_updater.py
|
|
25
|
+
codebase_rag/language_spec.py
|
|
26
|
+
codebase_rag/logs.py
|
|
27
|
+
codebase_rag/main.py
|
|
28
|
+
codebase_rag/models.py
|
|
29
|
+
codebase_rag/parser_loader.py
|
|
30
|
+
codebase_rag/prompts.py
|
|
31
|
+
codebase_rag/readme_sections.py
|
|
32
|
+
codebase_rag/schema_builder.py
|
|
33
|
+
codebase_rag/schemas.py
|
|
34
|
+
codebase_rag/tool_errors.py
|
|
35
|
+
codebase_rag/types_defs.py
|
|
36
|
+
codebase_rag/unixcoder.py
|
|
37
|
+
codebase_rag/vector_store.py
|
|
38
|
+
codebase_rag/mcp/__init__.py
|
|
39
|
+
codebase_rag/mcp/client.py
|
|
40
|
+
codebase_rag/mcp/server.py
|
|
41
|
+
codebase_rag/mcp/tools.py
|
|
42
|
+
codebase_rag/parsers/__init__.py
|
|
43
|
+
codebase_rag/parsers/call_processor.py
|
|
44
|
+
codebase_rag/parsers/call_resolver.py
|
|
45
|
+
codebase_rag/parsers/definition_processor.py
|
|
46
|
+
codebase_rag/parsers/dependency_parser.py
|
|
47
|
+
codebase_rag/parsers/factory.py
|
|
48
|
+
codebase_rag/parsers/function_ingest.py
|
|
49
|
+
codebase_rag/parsers/import_processor.py
|
|
50
|
+
codebase_rag/parsers/stdlib_extractor.py
|
|
51
|
+
codebase_rag/parsers/structure_processor.py
|
|
52
|
+
codebase_rag/parsers/type_inference.py
|
|
53
|
+
codebase_rag/parsers/utils.py
|
|
54
|
+
codebase_rag/parsers/class_ingest/__init__.py
|
|
55
|
+
codebase_rag/parsers/class_ingest/cpp_modules.py
|
|
56
|
+
codebase_rag/parsers/class_ingest/identity.py
|
|
57
|
+
codebase_rag/parsers/class_ingest/method_override.py
|
|
58
|
+
codebase_rag/parsers/class_ingest/mixin.py
|
|
59
|
+
codebase_rag/parsers/class_ingest/node_type.py
|
|
60
|
+
codebase_rag/parsers/class_ingest/parent_extraction.py
|
|
61
|
+
codebase_rag/parsers/class_ingest/relationships.py
|
|
62
|
+
codebase_rag/parsers/class_ingest/utils.py
|
|
63
|
+
codebase_rag/parsers/cpp/__init__.py
|
|
64
|
+
codebase_rag/parsers/cpp/utils.py
|
|
65
|
+
codebase_rag/parsers/cpp_frontend/__init__.py
|
|
66
|
+
codebase_rag/parsers/cpp_frontend/constants.py
|
|
67
|
+
codebase_rag/parsers/cpp_frontend/frontend.py
|
|
68
|
+
codebase_rag/parsers/cpp_frontend/qn.py
|
|
69
|
+
codebase_rag/parsers/go/__init__.py
|
|
70
|
+
codebase_rag/parsers/go/utils.py
|
|
71
|
+
codebase_rag/parsers/handlers/__init__.py
|
|
72
|
+
codebase_rag/parsers/handlers/base.py
|
|
73
|
+
codebase_rag/parsers/handlers/cpp.py
|
|
74
|
+
codebase_rag/parsers/handlers/java.py
|
|
75
|
+
codebase_rag/parsers/handlers/js_ts.py
|
|
76
|
+
codebase_rag/parsers/handlers/lua.py
|
|
77
|
+
codebase_rag/parsers/handlers/php.py
|
|
78
|
+
codebase_rag/parsers/handlers/protocol.py
|
|
79
|
+
codebase_rag/parsers/handlers/python.py
|
|
80
|
+
codebase_rag/parsers/handlers/registry.py
|
|
81
|
+
codebase_rag/parsers/handlers/rust.py
|
|
82
|
+
codebase_rag/parsers/java/__init__.py
|
|
83
|
+
codebase_rag/parsers/java/method_resolver.py
|
|
84
|
+
codebase_rag/parsers/java/type_inference.py
|
|
85
|
+
codebase_rag/parsers/java/type_resolver.py
|
|
86
|
+
codebase_rag/parsers/java/utils.py
|
|
87
|
+
codebase_rag/parsers/java/variable_analyzer.py
|
|
88
|
+
codebase_rag/parsers/js_ts/__init__.py
|
|
89
|
+
codebase_rag/parsers/js_ts/ingest.py
|
|
90
|
+
codebase_rag/parsers/js_ts/module_system.py
|
|
91
|
+
codebase_rag/parsers/js_ts/type_inference.py
|
|
92
|
+
codebase_rag/parsers/js_ts/utils.py
|
|
93
|
+
codebase_rag/parsers/lua/__init__.py
|
|
94
|
+
codebase_rag/parsers/lua/type_inference.py
|
|
95
|
+
codebase_rag/parsers/lua/utils.py
|
|
96
|
+
codebase_rag/parsers/py/__init__.py
|
|
97
|
+
codebase_rag/parsers/py/ast_analyzer.py
|
|
98
|
+
codebase_rag/parsers/py/expression_analyzer.py
|
|
99
|
+
codebase_rag/parsers/py/type_inference.py
|
|
100
|
+
codebase_rag/parsers/py/utils.py
|
|
101
|
+
codebase_rag/parsers/py/variable_analyzer.py
|
|
102
|
+
codebase_rag/parsers/rs/__init__.py
|
|
103
|
+
codebase_rag/parsers/rs/utils.py
|
|
104
|
+
codebase_rag/providers/__init__.py
|
|
105
|
+
codebase_rag/providers/base.py
|
|
106
|
+
codebase_rag/providers/litellm.py
|
|
107
|
+
codebase_rag/services/__init__.py
|
|
108
|
+
codebase_rag/services/anthropic_token_counter.py
|
|
109
|
+
codebase_rag/services/graph_service.py
|
|
110
|
+
codebase_rag/services/llm.py
|
|
111
|
+
codebase_rag/services/protobuf_service.py
|
|
112
|
+
codebase_rag/stack/__init__.py
|
|
113
|
+
codebase_rag/stack/cli.py
|
|
114
|
+
codebase_rag/stack/constants.py
|
|
115
|
+
codebase_rag/stack/health.py
|
|
116
|
+
codebase_rag/stack/manager.py
|
|
117
|
+
codebase_rag/tools/__init__.py
|
|
118
|
+
codebase_rag/tools/code_retrieval.py
|
|
119
|
+
codebase_rag/tools/codebase_query.py
|
|
120
|
+
codebase_rag/tools/directory_lister.py
|
|
121
|
+
codebase_rag/tools/file_editor.py
|
|
122
|
+
codebase_rag/tools/file_reader.py
|
|
123
|
+
codebase_rag/tools/file_writer.py
|
|
124
|
+
codebase_rag/tools/health_checker.py
|
|
125
|
+
codebase_rag/tools/language.py
|
|
126
|
+
codebase_rag/tools/semantic_search.py
|
|
127
|
+
codebase_rag/tools/shell_command.py
|
|
128
|
+
codebase_rag/tools/tool_descriptions.py
|
|
129
|
+
codebase_rag/utils/__init__.py
|
|
130
|
+
codebase_rag/utils/dependencies.py
|
|
131
|
+
codebase_rag/utils/fqn_resolver.py
|
|
132
|
+
codebase_rag/utils/path_utils.py
|
|
133
|
+
codebase_rag/utils/rich_markdown.py
|
|
134
|
+
codebase_rag/utils/source_extraction.py
|
|
135
|
+
codebase_rag/utils/token_utils.py
|
|
136
|
+
codebase_rag/workspaces/__init__.py
|
|
137
|
+
codebase_rag/workspaces/cli.py
|
|
138
|
+
codebase_rag/workspaces/constants.py
|
|
139
|
+
codebase_rag/workspaces/models.py
|
|
140
|
+
codebase_rag/workspaces/storage.py
|
|
141
|
+
codec/__init__.py
|
|
142
|
+
codec/schema_pb2.py
|
|
143
|
+
codec/schema_pb2.pyi
|