java-codebase-rag 0.6.1__py3-none-any.whl → 0.6.2__py3-none-any.whl
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/cli.py +18 -1
- java_codebase_rag/config.py +54 -5
- java_codebase_rag/installer.py +12 -2
- {java_codebase_rag-0.6.1.dist-info → java_codebase_rag-0.6.2.dist-info}/METADATA +1 -1
- {java_codebase_rag-0.6.1.dist-info → java_codebase_rag-0.6.2.dist-info}/RECORD +9 -12
- java_codebase_rag-0.6.2.dist-info/entry_points.txt +3 -0
- java_codebase_rag-0.6.1.dist-info/entry_points.txt +0 -3
- kuzu_queries.py +0 -1989
- user_rag/__init__.py +0 -1
- user_rag/cli.py +0 -175
- {java_codebase_rag-0.6.1.dist-info → java_codebase_rag-0.6.2.dist-info}/WHEEL +0 -0
- {java_codebase_rag-0.6.1.dist-info → java_codebase_rag-0.6.2.dist-info}/licenses/LICENSE +0 -0
- {java_codebase_rag-0.6.1.dist-info → java_codebase_rag-0.6.2.dist-info}/top_level.txt +0 -0
user_rag/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
user_rag/cli.py
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import argparse
|
|
4
|
-
import asyncio
|
|
5
|
-
import json
|
|
6
|
-
import os
|
|
7
|
-
import pprint
|
|
8
|
-
import sys
|
|
9
|
-
from pathlib import Path
|
|
10
|
-
from typing import Any
|
|
11
|
-
|
|
12
|
-
import pr_analysis
|
|
13
|
-
import server
|
|
14
|
-
from path_filtering import LayeredIgnore
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def _jsonable(value: Any) -> Any:
|
|
18
|
-
if hasattr(value, "model_dump"):
|
|
19
|
-
return value.model_dump()
|
|
20
|
-
if isinstance(value, Path):
|
|
21
|
-
return str(value)
|
|
22
|
-
raise TypeError(f"Object of type {type(value).__name__} is not JSON serializable")
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def _to_payload(value: Any) -> Any:
|
|
26
|
-
if hasattr(value, "model_dump"):
|
|
27
|
-
return value.model_dump()
|
|
28
|
-
return value
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def _emit(value: Any) -> None:
|
|
32
|
-
payload = _to_payload(value)
|
|
33
|
-
if sys.stdout.isatty():
|
|
34
|
-
print(pprint.pformat(payload, sort_dicts=True))
|
|
35
|
-
return
|
|
36
|
-
print(json.dumps(payload, default=_jsonable, sort_keys=True, indent=None))
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def _parse_common_graph_flags(parser: argparse.ArgumentParser) -> None:
|
|
40
|
-
parser.add_argument("--source-root", type=str, default=None)
|
|
41
|
-
parser.add_argument("--kuzu-path", type=str, default=None)
|
|
42
|
-
parser.add_argument("--lancedb-path", type=str, default=None)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def _apply_graph_env(args: argparse.Namespace) -> None:
|
|
46
|
-
if args.source_root:
|
|
47
|
-
os.environ["LANCEDB_MCP_PROJECT_ROOT"] = str(Path(args.source_root).expanduser().resolve())
|
|
48
|
-
if args.kuzu_path:
|
|
49
|
-
os.environ["KUZU_DB_PATH"] = str(Path(args.kuzu_path).expanduser().resolve())
|
|
50
|
-
# Reset singleton to pick up override path.
|
|
51
|
-
from kuzu_queries import KuzuGraph
|
|
52
|
-
|
|
53
|
-
KuzuGraph._instance = None
|
|
54
|
-
KuzuGraph._instance_path = None
|
|
55
|
-
if args.lancedb_path:
|
|
56
|
-
os.environ["LANCEDB_URI"] = str(Path(args.lancedb_path).expanduser().resolve())
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def _cmd_refresh(args: argparse.Namespace) -> int:
|
|
60
|
-
"""Return 1 for launched-subprocess failures, 2 for internal pre-launch errors."""
|
|
61
|
-
_apply_graph_env(args)
|
|
62
|
-
result = asyncio.run(server.run_refresh_pipeline(quiet=bool(args.quiet)))
|
|
63
|
-
payload = result.model_dump()
|
|
64
|
-
if payload.get("success"):
|
|
65
|
-
_emit(payload)
|
|
66
|
-
return 0
|
|
67
|
-
_emit(payload)
|
|
68
|
-
return 2 if payload.get("exit_code") is None else 1
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
def _cmd_meta(args: argparse.Namespace) -> int:
|
|
72
|
-
_apply_graph_env(args)
|
|
73
|
-
payload = server._graph_meta_output().model_dump()
|
|
74
|
-
_emit(payload)
|
|
75
|
-
return 0 if payload.get("success") else 2
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
def _cmd_tables(args: argparse.Namespace) -> int:
|
|
79
|
-
_apply_graph_env(args)
|
|
80
|
-
payload = server.list_code_index_tables_payload().model_dump()
|
|
81
|
-
_emit(payload)
|
|
82
|
-
return 0
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
def _cmd_diagnose_ignore(args: argparse.Namespace) -> int:
|
|
86
|
-
_apply_graph_env(args)
|
|
87
|
-
# Keep this after _apply_graph_env so relative paths resolve from --source-root.
|
|
88
|
-
root = server._project_root()
|
|
89
|
-
raw = Path(args.path)
|
|
90
|
-
try:
|
|
91
|
-
abs_path = raw.resolve() if raw.is_absolute() else (root / raw).resolve()
|
|
92
|
-
except OSError as exc:
|
|
93
|
-
_emit({"success": False, "message": f"Invalid path: {exc}"})
|
|
94
|
-
return 1
|
|
95
|
-
li = LayeredIgnore(root)
|
|
96
|
-
_emit(li.diagnose_dict(abs_path))
|
|
97
|
-
return 0
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
def _read_diff_text(args: argparse.Namespace) -> str:
|
|
101
|
-
if args.diff_file:
|
|
102
|
-
return Path(args.diff_file).read_text(encoding="utf-8")
|
|
103
|
-
if args.diff_stdin:
|
|
104
|
-
return sys.stdin.read()
|
|
105
|
-
raise ValueError("Provide exactly one of --diff-file or --diff-stdin")
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
def _cmd_analyze_pr(args: argparse.Namespace) -> int:
|
|
109
|
-
_apply_graph_env(args)
|
|
110
|
-
try:
|
|
111
|
-
diff_text = _read_diff_text(args)
|
|
112
|
-
except Exception as exc:
|
|
113
|
-
_emit({"success": False, "message": str(exc)})
|
|
114
|
-
return 1
|
|
115
|
-
if not diff_text.strip():
|
|
116
|
-
_emit({"success": False, "message": "Diff is empty"})
|
|
117
|
-
return 1
|
|
118
|
-
from kuzu_queries import KuzuGraph
|
|
119
|
-
|
|
120
|
-
if not KuzuGraph.exists():
|
|
121
|
-
_emit({"success": False, "message": "Kuzu graph not found"})
|
|
122
|
-
return 1
|
|
123
|
-
graph = KuzuGraph.get()
|
|
124
|
-
report = pr_analysis.analyze_pr_pipeline(graph, diff_text)
|
|
125
|
-
_emit(pr_analysis.pr_report_to_dict(report))
|
|
126
|
-
return 0
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def build_parser() -> argparse.ArgumentParser:
|
|
130
|
-
parser = argparse.ArgumentParser(prog="java-codebase-rag")
|
|
131
|
-
subparsers = parser.add_subparsers(dest="subcommand")
|
|
132
|
-
|
|
133
|
-
refresh = subparsers.add_parser("refresh")
|
|
134
|
-
_parse_common_graph_flags(refresh)
|
|
135
|
-
refresh.add_argument("--quiet", action="store_true")
|
|
136
|
-
refresh.set_defaults(handler=_cmd_refresh)
|
|
137
|
-
|
|
138
|
-
meta = subparsers.add_parser("meta")
|
|
139
|
-
_parse_common_graph_flags(meta)
|
|
140
|
-
meta.set_defaults(handler=_cmd_meta)
|
|
141
|
-
|
|
142
|
-
tables = subparsers.add_parser("tables")
|
|
143
|
-
_parse_common_graph_flags(tables)
|
|
144
|
-
tables.set_defaults(handler=_cmd_tables)
|
|
145
|
-
|
|
146
|
-
diagnose = subparsers.add_parser("diagnose-ignore")
|
|
147
|
-
_parse_common_graph_flags(diagnose)
|
|
148
|
-
diagnose.add_argument("path", type=str)
|
|
149
|
-
diagnose.set_defaults(handler=_cmd_diagnose_ignore)
|
|
150
|
-
|
|
151
|
-
analyze = subparsers.add_parser("analyze-pr")
|
|
152
|
-
_parse_common_graph_flags(analyze)
|
|
153
|
-
group = analyze.add_mutually_exclusive_group(required=True)
|
|
154
|
-
group.add_argument("--diff-file", type=str)
|
|
155
|
-
group.add_argument("--diff-stdin", action="store_true")
|
|
156
|
-
analyze.set_defaults(handler=_cmd_analyze_pr)
|
|
157
|
-
return parser
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
def main(argv: list[str] | None = None) -> int:
|
|
161
|
-
parser = build_parser()
|
|
162
|
-
args = parser.parse_args(argv)
|
|
163
|
-
handler = getattr(args, "handler", None)
|
|
164
|
-
if handler is None:
|
|
165
|
-
parser.print_help(sys.stderr)
|
|
166
|
-
return 2
|
|
167
|
-
try:
|
|
168
|
-
return int(handler(args))
|
|
169
|
-
except Exception as exc: # pragma: no cover - defensive top-level guard
|
|
170
|
-
_emit({"success": False, "exit_code": 2, "message": f"internal error: {exc}"})
|
|
171
|
-
return 2
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
if __name__ == "__main__":
|
|
175
|
-
raise SystemExit(main())
|
|
File without changes
|
|
File without changes
|
|
File without changes
|