java-codebase-rag 0.9.1__py3-none-any.whl → 0.9.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/jrag.py +20 -4
- {java_codebase_rag-0.9.1.dist-info → java_codebase_rag-0.9.2.dist-info}/METADATA +1 -1
- {java_codebase_rag-0.9.1.dist-info → java_codebase_rag-0.9.2.dist-info}/RECORD +9 -9
- java_ontology.py +4 -0
- resolve_service.py +24 -0
- {java_codebase_rag-0.9.1.dist-info → java_codebase_rag-0.9.2.dist-info}/WHEEL +0 -0
- {java_codebase_rag-0.9.1.dist-info → java_codebase_rag-0.9.2.dist-info}/entry_points.txt +0 -0
- {java_codebase_rag-0.9.1.dist-info → java_codebase_rag-0.9.2.dist-info}/licenses/LICENSE +0 -0
- {java_codebase_rag-0.9.1.dist-info → java_codebase_rag-0.9.2.dist-info}/top_level.txt +0 -0
java_codebase_rag/jrag.py
CHANGED
|
@@ -812,11 +812,27 @@ def build_parser() -> argparse.ArgumentParser:
|
|
|
812
812
|
"CALLS hops from the route handler. Intra-service is an INDEX-TIME data "
|
|
813
813
|
"property: CALLS edges are intra-codebase by construction, and the query "
|
|
814
814
|
"carries no microservice predicate, so the result reflects whatever the "
|
|
815
|
-
"fixture indexed (no query-time constraint). --
|
|
815
|
+
"fixture indexed (no query-time constraint). --depth clamped to 1..8."
|
|
816
816
|
),
|
|
817
817
|
)
|
|
818
|
-
flow.add_argument(
|
|
819
|
-
|
|
818
|
+
flow.add_argument(
|
|
819
|
+
"query",
|
|
820
|
+
help=(
|
|
821
|
+
"Route path (e.g. '/chat/assign') or Kafka topic name (e.g. "
|
|
822
|
+
"'banking.chat.compliance.review'). Resolved with hint_kind=route; "
|
|
823
|
+
"kafka_topic Routes match on topic."
|
|
824
|
+
),
|
|
825
|
+
)
|
|
826
|
+
# Primary flag is --depth (consistent with callers/callees/impact/decompose).
|
|
827
|
+
# --max-hops is kept as a hidden back-compat alias (same dest).
|
|
828
|
+
flow.add_argument(
|
|
829
|
+
"--depth", type=int, default=5, dest="depth",
|
|
830
|
+
help="Max CALLS hops (clamped 1..8, default 5).",
|
|
831
|
+
)
|
|
832
|
+
flow.add_argument(
|
|
833
|
+
"--max-hops", type=int, dest="depth",
|
|
834
|
+
default=argparse.SUPPRESS, help=argparse.SUPPRESS,
|
|
835
|
+
)
|
|
820
836
|
flow.set_defaults(handler=_cmd_flow)
|
|
821
837
|
|
|
822
838
|
# ---- Compose traversals + file inspection (PR-JRAG-3b) ----
|
|
@@ -3001,7 +3017,7 @@ def _cmd_flow(args: argparse.Namespace) -> int:
|
|
|
3001
3017
|
args, reason="trace_request_flow carries no microservice predicate; intra-codebase is an index-time data property"
|
|
3002
3018
|
)
|
|
3003
3019
|
|
|
3004
|
-
max_hops = max(1, min(8, getattr(args, "
|
|
3020
|
+
max_hops = max(1, min(8, getattr(args, "depth", 5)))
|
|
3005
3021
|
flow_data = graph.trace_request_flow(entry_route_id=node.id, max_hops=max_hops)
|
|
3006
3022
|
|
|
3007
3023
|
root_id = node.id
|
|
@@ -7,13 +7,13 @@ graph_types.py,sha256=P6RVdEiqZlaSgTyXepnGbtMoZq0m_MaP2q6M6i7Uxlc,4539
|
|
|
7
7
|
index_common.py,sha256=HT6FKHFJ084eFvd3fR1j8z8gf4eWoPHVW8GXLpw464I,285
|
|
8
8
|
java_index_flow_lancedb.py,sha256=kDkhnRxl-Kz0YNMY27DTk3gwa8H2nWyGDCQC8hxx-jI,28970
|
|
9
9
|
java_index_v1_common.py,sha256=nF1KrSqboF_RRvWerG9knRRFmWwsrG_CvhgnsoZ8KqA,1154
|
|
10
|
-
java_ontology.py,sha256=
|
|
10
|
+
java_ontology.py,sha256=eUGFa96GV_09s2f2sWSMdqYmoxU3-1pyU2iipvcDjG0,17219
|
|
11
11
|
ladybug_queries.py,sha256=rVnVEHwWwE4USeX7tICYEl1SSiSxJGnBNe1VX66R3Xk,100531
|
|
12
12
|
mcp_hints.py,sha256=zp-4cnOmbYD0YovmZiLS2oGcvWcWE7n8jKVz4_xifno,42512
|
|
13
13
|
mcp_v2.py,sha256=ABNHiZEEwQ76uPF9E5fQWncJ4JmmgtG3vmt5TDxBGVo,68901
|
|
14
14
|
path_filtering.py,sha256=R--XzI51LXBu5IBKMCnJWbkNr6I5d-SDmltyQQnWco0,17674
|
|
15
15
|
pr_analysis.py,sha256=zrmZZD5yotJtM02Kif6_jgI_oeformOao793akp0N6Y,18394
|
|
16
|
-
resolve_service.py,sha256=
|
|
16
|
+
resolve_service.py,sha256=lTHPSn5zgIFjNICiOZc6m_bBJShTn72kShhkofwZdoE,26364
|
|
17
17
|
search_lancedb.py,sha256=1sGSZ6H8J9hGcKAwHpzB7F0_in3A_sEtOI5LvlZYIRI,43864
|
|
18
18
|
server.py,sha256=nOK3DOr-i3PJnVmE7neye_tptJumgXfIXPlTIn01MPQ,37065
|
|
19
19
|
java_codebase_rag/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
@@ -24,7 +24,7 @@ java_codebase_rag/cli_format.py,sha256=CT7-xdwZ0bMCdP68_UOwkvm-mnLluU3LutlM-mDNk
|
|
|
24
24
|
java_codebase_rag/cli_progress.py,sha256=q6Wh97yzLGs1B8UFk_WAKivfQu7Y5RnUUE-T2YHWkIs,3237
|
|
25
25
|
java_codebase_rag/config.py,sha256=1EAlKtQx7LUo-gPoE6BOVLz0YEl1OpWFRABkF06zjgk,26464
|
|
26
26
|
java_codebase_rag/installer.py,sha256=c-_tR1Ct_O3yhmruFRnDoM1Wilz-igD9qdkDPsNqLMI,79934
|
|
27
|
-
java_codebase_rag/jrag.py,sha256=
|
|
27
|
+
java_codebase_rag/jrag.py,sha256=KYv1pD_FTdYh0NqEwO_yzqgHiv5PDFcMiL26aA40QwI,192278
|
|
28
28
|
java_codebase_rag/jrag_envelope.py,sha256=5jD3p2O-p9acAKHqoif5FFoqgP7Q2ziCuKSiPCHoywc,47505
|
|
29
29
|
java_codebase_rag/jrag_hints.py,sha256=k2PFE4s3lZgBYHMdZcTjx1-w28nfQcBtQEVsSxI_DvE,9262
|
|
30
30
|
java_codebase_rag/jrag_render.py,sha256=1nUyamL-MOOXDlKvssp-LsBgEtznUnGj_cPteSwuS90,31953
|
|
@@ -35,9 +35,9 @@ java_codebase_rag/install_data/agents/explorer-rag-cli.md,sha256=mMij_BIQM4agaYh
|
|
|
35
35
|
java_codebase_rag/install_data/agents/explorer-rag-enhanced.md,sha256=gZsNFbuK0lSnOIlplbbS_muz2ozokJqvFUv65QM0NDM,10406
|
|
36
36
|
java_codebase_rag/install_data/skills/explore-codebase/SKILL.md,sha256=A-v2dueVnxwBzBlxoRjZ2zOJk8DranLQ1TElwn94h0s,11529
|
|
37
37
|
java_codebase_rag/install_data/skills/explore-codebase-cli/SKILL.md,sha256=V5gIKKGkgk2KlAFf9JqPareQDMt1iQOI7cwhfOqJL1c,11348
|
|
38
|
-
java_codebase_rag-0.9.
|
|
39
|
-
java_codebase_rag-0.9.
|
|
40
|
-
java_codebase_rag-0.9.
|
|
41
|
-
java_codebase_rag-0.9.
|
|
42
|
-
java_codebase_rag-0.9.
|
|
43
|
-
java_codebase_rag-0.9.
|
|
38
|
+
java_codebase_rag-0.9.2.dist-info/licenses/LICENSE,sha256=gxvtiHtuviR_q8ZAjWw-QTcF3DyPzg6ZY-lQrr8OPpw,1068
|
|
39
|
+
java_codebase_rag-0.9.2.dist-info/METADATA,sha256=3lfDnbvPb-vpc_81VLNobOgdUKncX6ejy3TDUUSj4Vo,20088
|
|
40
|
+
java_codebase_rag-0.9.2.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
|
|
41
|
+
java_codebase_rag-0.9.2.dist-info/entry_points.txt,sha256=cj3QTc11UYVQnj9T3orc4daiIGaCYrXP149vKbH2R4U,168
|
|
42
|
+
java_codebase_rag-0.9.2.dist-info/top_level.txt,sha256=8vC-VN3cMwz5vhkSTaeJ1a1bDeqLWEfrTks1CvEvIg0,273
|
|
43
|
+
java_codebase_rag-0.9.2.dist-info/RECORD,,
|
java_ontology.py
CHANGED
|
@@ -90,6 +90,8 @@ VALID_RESOLVE_REASONS: frozenset[str] = frozenset((
|
|
|
90
90
|
"short_name",
|
|
91
91
|
"route_template",
|
|
92
92
|
"route_method_path",
|
|
93
|
+
"route_topic",
|
|
94
|
+
"route_topic_prefix",
|
|
93
95
|
"client_target",
|
|
94
96
|
"client_target_path",
|
|
95
97
|
"client_name",
|
|
@@ -428,6 +430,8 @@ ResolveReason = Literal[
|
|
|
428
430
|
"short_name",
|
|
429
431
|
"route_template",
|
|
430
432
|
"route_method_path",
|
|
433
|
+
"route_topic",
|
|
434
|
+
"route_topic_prefix",
|
|
431
435
|
"client_target",
|
|
432
436
|
"client_target_path",
|
|
433
437
|
"client_name",
|
resolve_service.py
CHANGED
|
@@ -43,11 +43,13 @@ _RESOLVE_REASON_PRIORITY: dict[ResolveReason, int] = {
|
|
|
43
43
|
"producer_topic_prefix": 1,
|
|
44
44
|
"fqn_suffix": 2,
|
|
45
45
|
"route_template": 2,
|
|
46
|
+
"route_topic": 2,
|
|
46
47
|
"client_fqn": 2,
|
|
47
48
|
"short_name": 3,
|
|
48
49
|
"client_target": 3,
|
|
49
50
|
"client_name": 3,
|
|
50
51
|
"producer_topic": 3,
|
|
52
|
+
"route_topic_prefix": 3,
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
_SYMBOL_RESOLVE_RETURN = (
|
|
@@ -295,6 +297,28 @@ def _resolve_route_candidates(
|
|
|
295
297
|
path_val = str(row.get("path_template") or row.get("path") or "")
|
|
296
298
|
out.append((_node_ref_from_row("route", row), "route_template", len(path_val)))
|
|
297
299
|
|
|
300
|
+
# Kafka/topic routes carry their name in ``topic`` (``path``/``path_template``
|
|
301
|
+
# are empty), so path-based matching above cannot reach them. Match on
|
|
302
|
+
# ``r.topic`` the same way ``_resolve_producer_candidates`` matches
|
|
303
|
+
# ``p.topic`` — this lets ``flow``/``callers``/``overview`` resolve a
|
|
304
|
+
# ``kafka_topic`` Route by topic name. ``_drop_route_mirrors`` below then
|
|
305
|
+
# discards the no-EXPOSES producer phantom in favour of the server route.
|
|
306
|
+
rows = g._rows( # noqa: SLF001
|
|
307
|
+
f"MATCH (r:Route) WHERE r.topic = $topic{scope} RETURN {_ROUTE_RESOLVE_RETURN} LIMIT $lim",
|
|
308
|
+
{"topic": identifier, "lim": lim, **scope_params},
|
|
309
|
+
)
|
|
310
|
+
for row in rows:
|
|
311
|
+
out.append((_node_ref_from_row("route", row), "route_topic", len(identifier)))
|
|
312
|
+
|
|
313
|
+
if not identifier.startswith("/"):
|
|
314
|
+
rows = g._rows( # noqa: SLF001
|
|
315
|
+
f"MATCH (r:Route) WHERE r.topic STARTS WITH $topic{scope} "
|
|
316
|
+
f"RETURN {_ROUTE_RESOLVE_RETURN} LIMIT $lim",
|
|
317
|
+
{"topic": identifier, "lim": lim, **scope_params},
|
|
318
|
+
)
|
|
319
|
+
for row in rows:
|
|
320
|
+
out.append((_node_ref_from_row("route", row), "route_topic_prefix", len(identifier)))
|
|
321
|
+
|
|
298
322
|
return _drop_route_mirrors(g, out)
|
|
299
323
|
|
|
300
324
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|