java-codebase-rag 0.11.2__py3-none-any.whl → 0.12.1__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-0.12.1.dist-info/METADATA +35 -0
- java_codebase_rag-0.12.1.dist-info/RECORD +4 -0
- {java_codebase_rag-0.11.2.dist-info → java_codebase_rag-0.12.1.dist-info}/WHEEL +1 -1
- java_codebase_rag/_fdlimit.py +0 -56
- java_codebase_rag/_stdio.py +0 -32
- java_codebase_rag/_version.py +0 -35
- java_codebase_rag/absence/__init__.py +0 -0
- java_codebase_rag/absence/absence_diagnosis.py +0 -700
- java_codebase_rag/absence/absence_types.py +0 -124
- java_codebase_rag/absence/absence_vocab.py +0 -460
- java_codebase_rag/analysis/__init__.py +0 -0
- java_codebase_rag/analysis/pr_analysis.py +0 -563
- java_codebase_rag/analysis/resolve_service.py +0 -740
- java_codebase_rag/ast/__init__.py +0 -0
- java_codebase_rag/ast/ast_java.py +0 -2825
- java_codebase_rag/ast/brownfield_events.py +0 -58
- java_codebase_rag/ast/chunk_heuristics.py +0 -62
- java_codebase_rag/cli.py +0 -1215
- java_codebase_rag/cli_format.py +0 -85
- java_codebase_rag/cli_progress.py +0 -94
- java_codebase_rag/config.py +0 -833
- java_codebase_rag/eval/__init__.py +0 -1
- java_codebase_rag/eval/ground_truth.py +0 -100
- java_codebase_rag/eval/metrics.py +0 -107
- java_codebase_rag/eval/runner.py +0 -556
- java_codebase_rag/graph/__init__.py +0 -0
- java_codebase_rag/graph/build_ast_graph.py +0 -4471
- java_codebase_rag/graph/graph_enrich.py +0 -1937
- java_codebase_rag/graph/graph_types.py +0 -224
- java_codebase_rag/graph/java_ontology.py +0 -465
- java_codebase_rag/graph/ladybug_queries.py +0 -2213
- java_codebase_rag/graph/path_filtering.py +0 -477
- java_codebase_rag/index/__init__.py +0 -0
- java_codebase_rag/index/java_index_flow_lancedb.py +0 -734
- java_codebase_rag/index/java_index_v1_common.py +0 -33
- java_codebase_rag/install_data/__init__.py +0 -0
- java_codebase_rag/install_data/agents/explorer-rag-cli.md +0 -108
- java_codebase_rag/install_data/agents/explorer-rag-enhanced.md +0 -152
- java_codebase_rag/install_data/skills/explore-codebase/SKILL.md +0 -165
- java_codebase_rag/install_data/skills/explore-codebase-cli/SKILL.md +0 -107
- java_codebase_rag/installer.py +0 -2188
- java_codebase_rag/jrag.py +0 -4531
- java_codebase_rag/jrag_envelope.py +0 -1107
- java_codebase_rag/jrag_hints.py +0 -204
- java_codebase_rag/jrag_render.py +0 -926
- java_codebase_rag/lance_optimize.py +0 -264
- java_codebase_rag/mcp/__init__.py +0 -0
- java_codebase_rag/mcp/mcp_hints.py +0 -932
- java_codebase_rag/mcp/mcp_v2.py +0 -1916
- java_codebase_rag/mcp/server.py +0 -884
- java_codebase_rag/pipeline.py +0 -531
- java_codebase_rag/progress.py +0 -570
- java_codebase_rag/read_payloads.py +0 -781
- java_codebase_rag/search/__init__.py +0 -0
- java_codebase_rag/search/index_common.py +0 -10
- java_codebase_rag/search/search_lancedb.py +0 -1296
- java_codebase_rag/search/search_lexical.py +0 -449
- java_codebase_rag/search/search_scoring.py +0 -523
- java_codebase_rag/watch/__init__.py +0 -0
- java_codebase_rag/watch/client.py +0 -230
- java_codebase_rag/watch/daemon.py +0 -396
- java_codebase_rag/watch/lock.py +0 -201
- java_codebase_rag/watch/paths.py +0 -76
- java_codebase_rag/watch/protocol.py +0 -122
- java_codebase_rag/watch/server.py +0 -273
- java_codebase_rag/watch/warm.py +0 -105
- java_codebase_rag/watch/watcher.py +0 -370
- java_codebase_rag-0.11.2.dist-info/METADATA +0 -331
- java_codebase_rag-0.11.2.dist-info/RECORD +0 -71
- java_codebase_rag-0.11.2.dist-info/entry_points.txt +0 -4
- java_codebase_rag-0.11.2.dist-info/licenses/LICENSE +0 -21
- java_codebase_rag-0.11.2.dist-info/top_level.txt +0 -1
- /java_codebase_rag/__init__.py → /java_codebase_rag-0.12.1.dist-info/top_level.txt +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: java-codebase-rag
|
|
3
|
+
Version: 0.12.1
|
|
4
|
+
Summary: Renamed to jrag-cli; this package only depends on jrag-cli. New setups: pip install jrag-cli.
|
|
5
|
+
Author: HumanBean17
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/HumanBean17/jrag
|
|
8
|
+
Project-URL: Repository, https://github.com/HumanBean17/jrag
|
|
9
|
+
Project-URL: Issues, https://github.com/HumanBean17/jrag/issues
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: jrag-cli==0.12.1
|
|
13
|
+
|
|
14
|
+
# java-codebase-rag (renamed to `jrag-cli`)
|
|
15
|
+
|
|
16
|
+
This package has been **renamed to [`jrag-cli`](https://github.com/HumanBean17/jrag)**.
|
|
17
|
+
|
|
18
|
+
`java-codebase-rag` remains on PyPI as a thin compatibility shim that depends
|
|
19
|
+
on `jrag-cli` and ships no code of its own. Upgrading an existing install
|
|
20
|
+
pulls `jrag-cli` in transparently:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install -U java-codebase-rag # installs jrag-cli behind the scenes
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
For new setups, install the canonical package directly:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install jrag-cli
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The CLI entry points, MCP server, and module layout are unchanged — `jrag`
|
|
33
|
+
and `jrag-mcp` (plus the legacy `java-codebase-rag` / `java-codebase-rag-mcp`
|
|
34
|
+
aliases) are all provided by `jrag-cli`. See
|
|
35
|
+
[HumanBean17/jrag](https://github.com/HumanBean17/jrag) for documentation.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
java_codebase_rag-0.12.1.dist-info/METADATA,sha256=9lQjVtb3QIcEFHHmPAVZj3RFCQ41TsEa5h3rS3m2ChM,1264
|
|
2
|
+
java_codebase_rag-0.12.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
3
|
+
java_codebase_rag-0.12.1.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
4
|
+
java_codebase_rag-0.12.1.dist-info/RECORD,,
|
java_codebase_rag/_fdlimit.py
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"""Raise the process soft file-descriptor limit to avoid LanceDB EMFILE.
|
|
2
|
-
|
|
3
|
-
LanceDB's merge-insert path opens many file handles concurrently; under the
|
|
4
|
-
default OS soft ``RLIMIT_NOFILE`` (256 on macOS processes launched by GUI /
|
|
5
|
-
launchd / IDE hosts, *not* the shell's raised limit) this exhausts file
|
|
6
|
-
descriptors and surfaces as::
|
|
7
|
-
|
|
8
|
-
RuntimeError: lance error: LanceError(IO): ... Too many open files (os error 24)
|
|
9
|
-
lance-io-4.0.0/src/local.rs:133:24
|
|
10
|
-
|
|
11
|
-
``raise_fd_limit`` raises the process's *own* soft limit toward its hard limit.
|
|
12
|
-
``RLIMIT_NOFILE`` is inherited across ``fork``+``exec``, so every CocoIndex /
|
|
13
|
-
``cocoindex-code`` child spawned afterwards inherits the headroom. This fixes the
|
|
14
|
-
failure regardless of launch context (shell vs IDE vs MCP host) and regardless of
|
|
15
|
-
Lance's internal IO concurrency.
|
|
16
|
-
|
|
17
|
-
Never raise to ``RLIM_INFINITY`` — that breaks ``select()``/kqueue and Python
|
|
18
|
-
selectors on macOS; ``cap`` bounds the target to a safe value.
|
|
19
|
-
|
|
20
|
-
See https://github.com/HumanBean17/java-codebase-rag/issues/306
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
from __future__ import annotations
|
|
24
|
-
|
|
25
|
-
try:
|
|
26
|
-
# Unix-only: the ``resource`` module does not exist on Windows. Importing it
|
|
27
|
-
# unconditionally at module scope crashes on Windows, which (because
|
|
28
|
-
# ``cli.py`` and ``server.py`` both import ``raise_fd_limit``) made the
|
|
29
|
-
# entire CLI and MCP server fail to start there. Guard the import so the
|
|
30
|
-
# module loads everywhere; the function below no-ops when it's absent.
|
|
31
|
-
import resource
|
|
32
|
-
except ImportError: # pragma: no cover - Windows lacks the resource module
|
|
33
|
-
resource = None # type: ignore[assignment]
|
|
34
|
-
|
|
35
|
-
# Safe ceiling well above LanceDB's appetite, comfortably below macOS libc
|
|
36
|
-
# quirks. The hard limit caps it further if lower (locked-down servers).
|
|
37
|
-
_DEFAULT_CAP = 65536
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def raise_fd_limit(cap: int = _DEFAULT_CAP) -> None:
|
|
41
|
-
"""Raise this process's soft ``RLIMIT_NOFILE`` toward its hard limit.
|
|
42
|
-
|
|
43
|
-
Best-effort and silent: never raises. No-op where ``RLIMIT_NOFILE`` is
|
|
44
|
-
unsupported (Windows) or where the soft limit already meets ``min(hard, cap)``.
|
|
45
|
-
"""
|
|
46
|
-
if resource is None or not hasattr(resource, "RLIMIT_NOFILE"):
|
|
47
|
-
return
|
|
48
|
-
soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
|
|
49
|
-
target = min(hard, cap)
|
|
50
|
-
if soft >= target:
|
|
51
|
-
return
|
|
52
|
-
try:
|
|
53
|
-
resource.setrlimit(resource.RLIMIT_NOFILE, (target, hard))
|
|
54
|
-
except (ValueError, OSError):
|
|
55
|
-
# Best-effort: a locked-down environment shouldn't fail the run.
|
|
56
|
-
pass
|
java_codebase_rag/_stdio.py
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"""Force stdout/stderr to UTF-8 so non-ASCII glyphs never crash the CLI.
|
|
2
|
-
|
|
3
|
-
The text renderers emit Unicode glyphs — ``↑``/``↓`` (hierarchy tree headers
|
|
4
|
-
in ``jrag_render``), ``✓`` (success markers in ``cli_format``), ``→``/``…``
|
|
5
|
-
(listing/role lines). On Windows, ``sys.stdout``/``sys.stderr`` default to the
|
|
6
|
-
system ANSI codepage (cp1252 on en-US Windows), which can't encode those
|
|
7
|
-
characters, so ``print()`` raises ``UnicodeEncodeError`` and the process exits
|
|
8
|
-
non-zero. Unix platforms already default to UTF-8, so this is a no-op there.
|
|
9
|
-
|
|
10
|
-
Called from the console-script entry points (``_console_script_main``), not
|
|
11
|
-
from in-process ``main()`` callers, so a test that drives ``main()`` directly
|
|
12
|
-
keeps whatever stdout the host wired up.
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
from __future__ import annotations
|
|
16
|
-
|
|
17
|
-
import sys
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def force_utf8_stdio() -> None:
|
|
21
|
-
"""Reconfigure ``sys.stdout``/``sys.stderr`` to UTF-8.
|
|
22
|
-
|
|
23
|
-
Best-effort and silent: never raises. No-op where a stream lacks
|
|
24
|
-
``reconfigure`` (streams replaced by capture frameworks that don't expose
|
|
25
|
-
it). ``errors="replace"`` is a last-resort safety net so a hostile console
|
|
26
|
-
can never crash a run; under UTF-8 every codepoint encodes cleanly, so
|
|
27
|
-
replacement never actually fires for the glyphs we emit.
|
|
28
|
-
"""
|
|
29
|
-
for stream in (sys.stdout, sys.stderr):
|
|
30
|
-
reconfigure = getattr(stream, "reconfigure", None)
|
|
31
|
-
if reconfigure is not None:
|
|
32
|
-
reconfigure(encoding="utf-8", errors="replace")
|
java_codebase_rag/_version.py
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"""Version string for the CLI ``--version`` flag.
|
|
2
|
-
|
|
3
|
-
The single source of truth is the installed distribution metadata
|
|
4
|
-
(``java-codebase-rag`` in pyproject.toml), read via :mod:`importlib.metadata`
|
|
5
|
-
so a pyproject bump propagates with no second hardcoded copy.
|
|
6
|
-
:func:`version_string` appends the CPython version for the
|
|
7
|
-
``<prog> <version> (python <x.y.z>)`` format chosen for the ``--version`` flag.
|
|
8
|
-
|
|
9
|
-
Stdlib-only on purpose: this is imported at module load by both CLIs, and
|
|
10
|
-
``jrag`` keeps ``build_parser()`` free of torch / sentence_transformers / mcp_v2.
|
|
11
|
-
"""
|
|
12
|
-
from __future__ import annotations
|
|
13
|
-
|
|
14
|
-
import platform
|
|
15
|
-
from importlib.metadata import PackageNotFoundError
|
|
16
|
-
from importlib.metadata import version as _dist_version
|
|
17
|
-
|
|
18
|
-
_PACKAGE = "java-codebase-rag"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def package_version() -> str:
|
|
22
|
-
"""Installed distribution version, or ``"unknown"`` if metadata is absent.
|
|
23
|
-
|
|
24
|
-
Absent only when run from a raw checkout without ``pip install -e``; the
|
|
25
|
-
test suite (``conftest.py``) enforces editable install, so this is defensive.
|
|
26
|
-
"""
|
|
27
|
-
try:
|
|
28
|
-
return _dist_version(_PACKAGE)
|
|
29
|
-
except PackageNotFoundError: # pragma: no cover - defensive
|
|
30
|
-
return "unknown"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def version_string(prog: str) -> str:
|
|
34
|
-
"""Formatted ``--version`` output: ``<prog> <version> (python <x.y.z>)``."""
|
|
35
|
-
return f"{prog} {package_version()} (python {platform.python_version()})"
|
|
File without changes
|