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.
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())