java-codebase-rag 0.3.1__tar.gz → 0.5.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.
Files changed (84) hide show
  1. {java_codebase_rag-0.3.1/java_codebase_rag.egg-info → java_codebase_rag-0.5.0}/PKG-INFO +11 -4
  2. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/README.md +4 -3
  3. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/ast_java.py +1 -1
  4. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/build_ast_graph.py +833 -64
  5. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/graph_enrich.py +32 -0
  6. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag/cli.py +123 -5
  7. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag/config.py +70 -2
  8. java_codebase_rag-0.5.0/java_codebase_rag/install_data/agents/explorer-rag-enhanced.md +306 -0
  9. java_codebase_rag-0.5.0/java_codebase_rag/install_data/skills/explore-codebase/SKILL.md +204 -0
  10. java_codebase_rag-0.5.0/java_codebase_rag/installer.py +930 -0
  11. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag/pipeline.py +55 -0
  12. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0/java_codebase_rag.egg-info}/PKG-INFO +11 -4
  13. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag.egg-info/SOURCES.txt +9 -0
  14. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag.egg-info/requires.txt +7 -0
  15. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/pyproject.toml +13 -1
  16. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/server.py +58 -6
  17. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_agent_skills_static.py +7 -7
  18. java_codebase_rag-0.5.0/tests/test_config.py +241 -0
  19. java_codebase_rag-0.5.0/tests/test_incremental_graph.py +780 -0
  20. java_codebase_rag-0.5.0/tests/test_installer.py +764 -0
  21. java_codebase_rag-0.5.0/tests/test_installer_integration.py +131 -0
  22. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_java_codebase_rag_cli.py +127 -4
  23. java_codebase_rag-0.5.0/tests/test_mcp_server_project_root.py +25 -0
  24. java_codebase_rag-0.5.0/tests/test_microservice_scope.py +145 -0
  25. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/LICENSE +0 -0
  26. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/brownfield_events.py +0 -0
  27. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/chunk_heuristics.py +0 -0
  28. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/index_common.py +0 -0
  29. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag/__init__.py +0 -0
  30. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag/cli_format.py +0 -0
  31. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag/cli_progress.py +0 -0
  32. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag.egg-info/dependency_links.txt +0 -0
  33. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag.egg-info/entry_points.txt +0 -0
  34. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_codebase_rag.egg-info/top_level.txt +0 -0
  35. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_index_flow_lancedb.py +0 -0
  36. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_index_v1_common.py +0 -0
  37. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/java_ontology.py +0 -0
  38. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/kuzu_queries.py +0 -0
  39. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/mcp_hints.py +0 -0
  40. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/mcp_v2.py +0 -0
  41. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/path_filtering.py +0 -0
  42. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/pr_analysis.py +0 -0
  43. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/search_lancedb.py +0 -0
  44. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/setup.cfg +0 -0
  45. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_assign_endpoint_client_extraction.py +0 -0
  46. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_ast_graph_build.py +0 -0
  47. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_ast_java_calls.py +0 -0
  48. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_ast_java_capabilities.py +0 -0
  49. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_bank_chat_brownfield_integration.py +0 -0
  50. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_brownfield_clients.py +0 -0
  51. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_brownfield_events.py +0 -0
  52. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_brownfield_overrides.py +0 -0
  53. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_brownfield_routes.py +0 -0
  54. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_call_edge_matching.py +0 -0
  55. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_call_edges_e2e.py +0 -0
  56. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_call_graph_receiver_resolution.py +0 -0
  57. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_call_graph_smoke_roundtrip.py +0 -0
  58. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_call_invariant.py +0 -0
  59. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_cli_progress_stdout_invariant.py +0 -0
  60. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_cli_quiet_parity.py +0 -0
  61. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_client_hint_recovery.py +0 -0
  62. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_client_node_extraction.py +0 -0
  63. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_client_role_rename.py +0 -0
  64. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_cross_service_resolution_flag.py +0 -0
  65. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_edge_navigation_doc.py +0 -0
  66. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_feign_not_exposer.py +0 -0
  67. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_graph_enrich.py +0 -0
  68. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_kuzu_queries.py +0 -0
  69. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_lancedb_e2e.py +0 -0
  70. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_mcp_hints.py +0 -0
  71. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_mcp_tools.py +0 -0
  72. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_mcp_v2.py +0 -0
  73. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_mcp_v2_compose.py +0 -0
  74. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_meta_chain_core.py +0 -0
  75. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_outgoing_call_extraction.py +0 -0
  76. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_packaging_metadata.py +0 -0
  77. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_path_filtering.py +0 -0
  78. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_pr_analysis.py +0 -0
  79. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_resolve_routes_messaging_layer_c.py +0 -0
  80. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_route_extraction.py +0 -0
  81. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_schema_consistency.py +0 -0
  82. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_search_lancedb.py +0 -0
  83. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.0}/tests/test_search_lancedb_capability.py +0 -0
  84. {java_codebase_rag-0.3.1 → java_codebase_rag-0.5.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.1
3
+ Version: 0.5.0
4
4
  Summary: MCP server for semantic + structural search over Java codebases
5
5
  Author: HumanBean17
6
6
  License-Expression: MIT
@@ -25,11 +25,17 @@ Requires-Dist: mcp<2,>=1.27.0
25
25
  Requires-Dist: numpy<2.5,>=1.26.4
26
26
  Requires-Dist: pathspec<2,>=1.0.4
27
27
  Requires-Dist: pyarrow<24,>=23.0.1
28
+ Requires-Dist: pydantic<3,>=2.0
28
29
  Requires-Dist: PyYAML<7,>=6.0.3
30
+ Requires-Dist: questionary<3,>=2.0
29
31
  Requires-Dist: sentence-transformers<6,>=5.4.0
30
32
  Requires-Dist: tree-sitter<0.26,>=0.25.2
31
33
  Requires-Dist: tree-sitter-java<0.24,>=0.23.5
32
34
  Requires-Dist: unidiff<1,>=0.7.3
35
+ Provides-Extra: dev
36
+ Requires-Dist: pytest>=7; extra == "dev"
37
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
38
+ Requires-Dist: ruff>=0.4; extra == "dev"
33
39
  Dynamic: license-file
34
40
 
35
41
  # java-codebase-rag
@@ -126,7 +132,9 @@ With the package installed, the console script `java-codebase-rag-mcp` is on you
126
132
  claude mcp add --transport stdio java-codebase-rag -- java-codebase-rag-mcp
127
133
  ```
128
134
 
129
- Then set env vars (`JAVA_CODEBASE_RAG_INDEX_DIR`, `JAVA_CODEBASE_RAG_SOURCE_ROOT`, `SBERT_MODEL`, …) in `.mcp.json` or your shell profile. For a project-scoped `.mcp.json` template, see [`mcp.json.example`](./mcp.json.example). Official docs: [Claude Code settings](https://docs.anthropic.com/en/docs/claude-code/settings).
135
+ **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.
136
+
137
+ 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
138
 
131
139
  ### Claude Desktop
132
140
 
@@ -200,7 +208,7 @@ Run `java-codebase-rag --help` to list grouped subcommands. Operator playbook wi
200
208
  | Group | Subcommand | What it does |
201
209
  |---|---|---|
202
210
  | Lifecycle | `init` | First-time index. Refuses if artifacts already exist. |
203
- | Lifecycle | `increment` | CocoIndex catch-up (Lance only); Kuzu stays stale until `reprocess`. |
211
+ | Lifecycle | `increment` | CocoIndex catch-up + incremental Kuzu update. `--vectors-only` for Lance only. |
204
212
  | Lifecycle | `reprocess` | Full Lance + Kuzu rebuild. `--vectors-only` / `--graph-only` for a single phase. |
205
213
  | Lifecycle | `erase` | Delete index artifacts. Requires `--yes` or TTY confirm. |
206
214
  | Introspection | `meta`, `tables`, `diagnose-ignore`, `unresolved-calls` | Health, table listing, ignore-layer diagnostics, receiver-failure call sites. |
@@ -244,5 +252,4 @@ The default embedding model is `sentence-transformers/all-MiniLM-L6-v2` (downloa
244
252
 
245
253
  - `get_service_topology` — microservice-level summary aggregating `HTTP_CALLS` / `ASYNC_CALLS`.
246
254
  - 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
255
  - 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
- Then set env vars (`JAVA_CODEBASE_RAG_INDEX_DIR`, `JAVA_CODEBASE_RAG_SOURCE_ROOT`, `SBERT_MODEL`, …) in `.mcp.json` or your shell profile. For a project-scoped `.mcp.json` template, see [`mcp.json.example`](./mcp.json.example). Official docs: [Claude Code settings](https://docs.anthropic.com/en/docs/claude-code/settings).
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 (Lance only); Kuzu stays stale until `reprocess`. |
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 = 16
86
+ ONTOLOGY_VERSION = 17
87
87
 
88
88
  ROLE_ANNOTATIONS: dict[str, str] = {
89
89
  # Spring Web