java-codebase-rag 0.3.0__tar.gz → 0.4.0__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.
- {java_codebase_rag-0.3.0/java_codebase_rag.egg-info → java_codebase_rag-0.4.0}/PKG-INFO +10 -4
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/README.md +4 -3
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/ast_java.py +1 -1
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/build_ast_graph.py +833 -64
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/graph_enrich.py +32 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag/cli.py +74 -5
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag/config.py +70 -2
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag/pipeline.py +65 -3
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0/java_codebase_rag.egg-info}/PKG-INFO +10 -4
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag.egg-info/SOURCES.txt +4 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag.egg-info/requires.txt +6 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/pyproject.toml +9 -1
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/server.py +58 -6
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_agent_skills_static.py +7 -7
- java_codebase_rag-0.4.0/tests/test_config.py +241 -0
- java_codebase_rag-0.4.0/tests/test_incremental_graph.py +780 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_java_codebase_rag_cli.py +128 -5
- java_codebase_rag-0.4.0/tests/test_mcp_server_project_root.py +25 -0
- java_codebase_rag-0.4.0/tests/test_microservice_scope.py +145 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/LICENSE +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/brownfield_events.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/chunk_heuristics.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/index_common.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag/__init__.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag/cli_format.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag/cli_progress.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag.egg-info/dependency_links.txt +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag.egg-info/entry_points.txt +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_codebase_rag.egg-info/top_level.txt +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_index_flow_lancedb.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_index_v1_common.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/java_ontology.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/kuzu_queries.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/mcp_hints.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/mcp_v2.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/path_filtering.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/pr_analysis.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/search_lancedb.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/setup.cfg +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_assign_endpoint_client_extraction.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_ast_graph_build.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_ast_java_calls.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_ast_java_capabilities.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_bank_chat_brownfield_integration.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_brownfield_clients.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_brownfield_events.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_brownfield_overrides.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_brownfield_routes.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_call_edge_matching.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_call_edges_e2e.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_call_graph_receiver_resolution.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_call_graph_smoke_roundtrip.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_call_invariant.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_cli_progress_stdout_invariant.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_cli_quiet_parity.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_client_hint_recovery.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_client_node_extraction.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_client_role_rename.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_cross_service_resolution_flag.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_edge_navigation_doc.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_feign_not_exposer.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_graph_enrich.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_kuzu_queries.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_lancedb_e2e.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_mcp_hints.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_mcp_tools.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_mcp_v2.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_mcp_v2_compose.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_meta_chain_core.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_outgoing_call_extraction.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_packaging_metadata.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_path_filtering.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_pr_analysis.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_resolve_routes_messaging_layer_c.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_route_extraction.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_schema_consistency.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_search_lancedb.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_search_lancedb_capability.py +0 -0
- {java_codebase_rag-0.3.0 → java_codebase_rag-0.4.0}/tests/test_string_value_atoms.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: java-codebase-rag
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: MCP server for semantic + structural search over Java codebases
|
|
5
5
|
Author: HumanBean17
|
|
6
6
|
License-Expression: MIT
|
|
@@ -29,7 +29,12 @@ Requires-Dist: PyYAML<7,>=6.0.3
|
|
|
29
29
|
Requires-Dist: sentence-transformers<6,>=5.4.0
|
|
30
30
|
Requires-Dist: tree-sitter<0.26,>=0.25.2
|
|
31
31
|
Requires-Dist: tree-sitter-java<0.24,>=0.23.5
|
|
32
|
+
Requires-Dist: pydantic<3,>=2.0
|
|
32
33
|
Requires-Dist: unidiff<1,>=0.7.3
|
|
34
|
+
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: pytest>=7; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
|
|
37
|
+
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
33
38
|
Dynamic: license-file
|
|
34
39
|
|
|
35
40
|
# java-codebase-rag
|
|
@@ -126,7 +131,9 @@ With the package installed, the console script `java-codebase-rag-mcp` is on you
|
|
|
126
131
|
claude mcp add --transport stdio java-codebase-rag -- java-codebase-rag-mcp
|
|
127
132
|
```
|
|
128
133
|
|
|
129
|
-
|
|
134
|
+
**Zero-env-var configuration:** The tool automatically walks up the directory tree to find `.java-codebase-rag.yml`, so you don't need to set `JAVA_CODEBASE_RAG_SOURCE_ROOT` when working from within a project. Just place the config file at your project root and the tool will find it. See [`mcp.json.example`](./mcp.json.example) for the minimal configuration.
|
|
135
|
+
|
|
136
|
+
If you need to override defaults, you can set env vars (`JAVA_CODEBASE_RAG_INDEX_DIR`, `JAVA_CODEBASE_RAG_SOURCE_ROOT`, `SBERT_MODEL`, …) in `.mcp.json` or your shell profile. For a full configuration template, see [`mcp.json.example`](./mcp.json.example). Official docs: [Claude Code settings](https://docs.anthropic.com/en/docs/claude-code/settings).
|
|
130
137
|
|
|
131
138
|
### Claude Desktop
|
|
132
139
|
|
|
@@ -200,7 +207,7 @@ Run `java-codebase-rag --help` to list grouped subcommands. Operator playbook wi
|
|
|
200
207
|
| Group | Subcommand | What it does |
|
|
201
208
|
|---|---|---|
|
|
202
209
|
| Lifecycle | `init` | First-time index. Refuses if artifacts already exist. |
|
|
203
|
-
| Lifecycle | `increment` | CocoIndex catch-up
|
|
210
|
+
| Lifecycle | `increment` | CocoIndex catch-up + incremental Kuzu update. `--vectors-only` for Lance only. |
|
|
204
211
|
| Lifecycle | `reprocess` | Full Lance + Kuzu rebuild. `--vectors-only` / `--graph-only` for a single phase. |
|
|
205
212
|
| Lifecycle | `erase` | Delete index artifacts. Requires `--yes` or TTY confirm. |
|
|
206
213
|
| Introspection | `meta`, `tables`, `diagnose-ignore`, `unresolved-calls` | Health, table listing, ignore-layer diagnostics, receiver-failure call sites. |
|
|
@@ -244,5 +251,4 @@ The default embedding model is `sentence-transformers/all-MiniLM-L6-v2` (downloa
|
|
|
244
251
|
|
|
245
252
|
- `get_service_topology` — microservice-level summary aggregating `HTTP_CALLS` / `ASYNC_CALLS`.
|
|
246
253
|
- Agentic routing layer (query classifier → vector / graph / both).
|
|
247
|
-
- Incremental Kuzu updates (per-changed-file) — see [`propose/TIER2-INCREMENTAL-REBUILD-PROPOSE.md`](./propose/TIER2-INCREMENTAL-REBUILD-PROPOSE.md) and [`propose/INDEX-AUTO-MODE-PROPOSE.md`](./propose/INDEX-AUTO-MODE-PROPOSE.md).
|
|
248
254
|
- Optional `codegraph_nodes` LanceDB table embedding symbol summaries so the graph itself is vector-searchable.
|
|
@@ -92,7 +92,9 @@ With the package installed, the console script `java-codebase-rag-mcp` is on you
|
|
|
92
92
|
claude mcp add --transport stdio java-codebase-rag -- java-codebase-rag-mcp
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
**Zero-env-var configuration:** The tool automatically walks up the directory tree to find `.java-codebase-rag.yml`, so you don't need to set `JAVA_CODEBASE_RAG_SOURCE_ROOT` when working from within a project. Just place the config file at your project root and the tool will find it. See [`mcp.json.example`](./mcp.json.example) for the minimal configuration.
|
|
96
|
+
|
|
97
|
+
If you need to override defaults, you can set env vars (`JAVA_CODEBASE_RAG_INDEX_DIR`, `JAVA_CODEBASE_RAG_SOURCE_ROOT`, `SBERT_MODEL`, …) in `.mcp.json` or your shell profile. For a full configuration template, see [`mcp.json.example`](./mcp.json.example). Official docs: [Claude Code settings](https://docs.anthropic.com/en/docs/claude-code/settings).
|
|
96
98
|
|
|
97
99
|
### Claude Desktop
|
|
98
100
|
|
|
@@ -166,7 +168,7 @@ Run `java-codebase-rag --help` to list grouped subcommands. Operator playbook wi
|
|
|
166
168
|
| Group | Subcommand | What it does |
|
|
167
169
|
|---|---|---|
|
|
168
170
|
| Lifecycle | `init` | First-time index. Refuses if artifacts already exist. |
|
|
169
|
-
| Lifecycle | `increment` | CocoIndex catch-up
|
|
171
|
+
| Lifecycle | `increment` | CocoIndex catch-up + incremental Kuzu update. `--vectors-only` for Lance only. |
|
|
170
172
|
| Lifecycle | `reprocess` | Full Lance + Kuzu rebuild. `--vectors-only` / `--graph-only` for a single phase. |
|
|
171
173
|
| Lifecycle | `erase` | Delete index artifacts. Requires `--yes` or TTY confirm. |
|
|
172
174
|
| Introspection | `meta`, `tables`, `diagnose-ignore`, `unresolved-calls` | Health, table listing, ignore-layer diagnostics, receiver-failure call sites. |
|
|
@@ -210,5 +212,4 @@ The default embedding model is `sentence-transformers/all-MiniLM-L6-v2` (downloa
|
|
|
210
212
|
|
|
211
213
|
- `get_service_topology` — microservice-level summary aggregating `HTTP_CALLS` / `ASYNC_CALLS`.
|
|
212
214
|
- Agentic routing layer (query classifier → vector / graph / both).
|
|
213
|
-
- Incremental Kuzu updates (per-changed-file) — see [`propose/TIER2-INCREMENTAL-REBUILD-PROPOSE.md`](./propose/TIER2-INCREMENTAL-REBUILD-PROPOSE.md) and [`propose/INDEX-AUTO-MODE-PROPOSE.md`](./propose/INDEX-AUTO-MODE-PROPOSE.md).
|
|
214
215
|
- Optional `codegraph_nodes` LanceDB table embedding symbol summaries so the graph itself is vector-searchable.
|
|
@@ -83,7 +83,7 @@ _DTO_LOMBOK_ANNOTATIONS: frozenset[str] = frozenset({
|
|
|
83
83
|
# Phase 11: `EDGE_SCHEMA` in `java_ontology.py` (canonical edge navigation schema; v14 re-index).
|
|
84
84
|
# Phase 12: CALLS `callee_declaring_role`, supertype-walk dedup, pass3 unresolved counters (v15 re-index).
|
|
85
85
|
# Bumps whenever extraction / enrichment semantics change.
|
|
86
|
-
ONTOLOGY_VERSION =
|
|
86
|
+
ONTOLOGY_VERSION = 17
|
|
87
87
|
|
|
88
88
|
ROLE_ANNOTATIONS: dict[str, str] = {
|
|
89
89
|
# Spring Web
|