rlmgrep 0.1.27__py3-none-any.whl → 0.1.30__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.
- rlmgrep/__init__.py +1 -1
- rlmgrep/cli.py +3 -14
- {rlmgrep-0.1.27.dist-info → rlmgrep-0.1.30.dist-info}/METADATA +5 -6
- {rlmgrep-0.1.27.dist-info → rlmgrep-0.1.30.dist-info}/RECORD +7 -7
- {rlmgrep-0.1.27.dist-info → rlmgrep-0.1.30.dist-info}/WHEEL +0 -0
- {rlmgrep-0.1.27.dist-info → rlmgrep-0.1.30.dist-info}/entry_points.txt +0 -0
- {rlmgrep-0.1.27.dist-info → rlmgrep-0.1.30.dist-info}/top_level.txt +0 -0
rlmgrep/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "0.1.
|
|
2
|
+
__version__ = "0.1.30"
|
rlmgrep/cli.py
CHANGED
|
@@ -186,22 +186,11 @@ def _parse_args(argv: list[str]) -> argparse.Namespace:
|
|
|
186
186
|
parser.add_argument("--answer", action="store_true", help="Print a narrative answer before grep output")
|
|
187
187
|
parser.add_argument("-y", "--yes", action="store_true", help="Skip file count confirmation")
|
|
188
188
|
parser.add_argument(
|
|
189
|
-
"--
|
|
189
|
+
"--paths-from-stdin",
|
|
190
|
+
dest="stdin_paths",
|
|
190
191
|
action="store_true",
|
|
191
192
|
help="Treat stdin as newline-delimited file paths (e.g., rg -l)",
|
|
192
193
|
)
|
|
193
|
-
parser.add_argument(
|
|
194
|
-
"--files-from-rg",
|
|
195
|
-
dest="stdin_files",
|
|
196
|
-
action="store_true",
|
|
197
|
-
help="Alias for --files-from-stdin",
|
|
198
|
-
)
|
|
199
|
-
parser.add_argument(
|
|
200
|
-
"--stdin-files",
|
|
201
|
-
dest="stdin_files",
|
|
202
|
-
action="store_true",
|
|
203
|
-
help="Deprecated: use --files-from-stdin",
|
|
204
|
-
)
|
|
205
194
|
|
|
206
195
|
parser.add_argument("-g", "--glob", dest="globs", action="append", default=[], help="Include files matching glob (may repeat)")
|
|
207
196
|
parser.add_argument("--type", dest="types", action="append", default=[], help="Include file types (py, js, md, etc.). May repeat")
|
|
@@ -558,7 +547,7 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
558
547
|
stdin_text: str | None = None
|
|
559
548
|
if args.paths:
|
|
560
549
|
input_paths = list(args.paths)
|
|
561
|
-
elif args.
|
|
550
|
+
elif args.stdin_paths:
|
|
562
551
|
if sys.stdin.isatty():
|
|
563
552
|
_warn("no input paths and stdin is empty")
|
|
564
553
|
return 2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rlmgrep
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.30
|
|
4
4
|
Summary: Grep-shaped CLI search powered by DSPy RLM
|
|
5
5
|
Author: rlmgrep
|
|
6
6
|
License: MIT
|
|
@@ -21,7 +21,7 @@ Grep-shaped search powered by DSPy RLM. It accepts a natural-language query, sca
|
|
|
21
21
|
```sh
|
|
22
22
|
uv tool install --python 3.11 rlmgrep
|
|
23
23
|
# or from GitHub:
|
|
24
|
-
# uv tool install git+https://github.com/halfprice06/rlmgrep.git
|
|
24
|
+
# uv tool install --python 3.11 git+https://github.com/halfprice06/rlmgrep.git
|
|
25
25
|
|
|
26
26
|
export OPENAI_API_KEY=... # or set keys in ~/.rlmgrep
|
|
27
27
|
```
|
|
@@ -100,8 +100,7 @@ Common options:
|
|
|
100
100
|
- `--no-recursive` do not recurse directories
|
|
101
101
|
- `-a`, `--text` treat binary files as text
|
|
102
102
|
- `-y`, `--yes` skip file count confirmation
|
|
103
|
-
- `--
|
|
104
|
-
- `--files-from-rg` alias for `--files-from-stdin`
|
|
103
|
+
- `--paths-from-stdin` treat stdin as newline-delimited file paths (e.g., `rg -l`)
|
|
105
104
|
- `--model`, `--sub-model` override model names
|
|
106
105
|
- `--api-key`, `--api-base`, `--model-type` override provider settings
|
|
107
106
|
- `--max-iterations`, `--max-llm-calls` cap RLM search effort
|
|
@@ -123,7 +122,7 @@ rlmgrep "How do we map external API errors into internal error codes?" -g "**/*.
|
|
|
123
122
|
cat README.md | rlmgrep --answer "What is this tool for and how is it used?"
|
|
124
123
|
|
|
125
124
|
# Use rg/grep to find candidate files, then rlmgrep over that list
|
|
126
|
-
rg -l "token" . | rlmgrep --
|
|
125
|
+
rg -l "token" . | rlmgrep --paths-from-stdin --answer "What does this token control and where is it validated?"
|
|
127
126
|
```
|
|
128
127
|
|
|
129
128
|
## Input selection
|
|
@@ -133,7 +132,7 @@ rg -l "token" . | rlmgrep --files-from-stdin --answer "What does this token cont
|
|
|
133
132
|
- `--type` uses built-in type mappings (e.g., `py`, `js`, `md`); unknown values are treated as file extensions.
|
|
134
133
|
- `-g/--glob` matches path globs against normalized paths (forward slashes).
|
|
135
134
|
- Paths are printed relative to the current working directory when possible.
|
|
136
|
-
- If no paths are provided, rlmgrep reads from stdin and uses the synthetic path `<stdin
|
|
135
|
+
- If no paths are provided and stdin is a TTY, rlmgrep defaults to `.`. If stdin is piped, it reads from stdin and uses the synthetic path `<stdin>`.
|
|
137
136
|
- rlmgrep asks for confirmation when more than 200 files would be loaded (use `-y/--yes` to skip), and aborts when more than 1000 files would be loaded.
|
|
138
137
|
|
|
139
138
|
## Output contract (stable for agents)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
rlmgrep/__init__.py,sha256=
|
|
1
|
+
rlmgrep/__init__.py,sha256=HuwGwIG1DkY-OENgjJ7MbTB3dGioPvkO4WYyRlMN0ro,49
|
|
2
2
|
rlmgrep/__main__.py,sha256=MHKZ_ae3fSLGTLUUMOx15fWdeOnJSHhq-zslRP5F5Lc,79
|
|
3
|
-
rlmgrep/cli.py,sha256=
|
|
3
|
+
rlmgrep/cli.py,sha256=YXVZLx7QKbrweiKhPW85jcZIEm0cgQxP9ZXV0lm7hCI,29051
|
|
4
4
|
rlmgrep/config.py,sha256=u1iz-nI8dj-dZETbpIki3RQefHJEyi5oE5zE4_IR8kg,2399
|
|
5
5
|
rlmgrep/file_map.py,sha256=x2Ri1wzK8_87GUorsAV01K_nYLZcv30yIquDeTCcdEw,876
|
|
6
6
|
rlmgrep/ingest.py,sha256=906JUwWRC0XDoYRXs4-XdV3fay8mQc324l0suQLyS-k,13738
|
|
7
7
|
rlmgrep/interpreter.py,sha256=s_nMRxLlAU9C0JmUzUBW5NbVbuH67doVWF54K54STlA,2478
|
|
8
8
|
rlmgrep/render.py,sha256=mCTT6yuKNv7HJ46LzOyLkCbyBedCWSNd7UeubyLXcyM,3356
|
|
9
9
|
rlmgrep/rlm.py,sha256=i3rCTp8OABByF60Un5gO7265gaW4spwU0OFKIz4surg,5750
|
|
10
|
-
rlmgrep-0.1.
|
|
11
|
-
rlmgrep-0.1.
|
|
12
|
-
rlmgrep-0.1.
|
|
13
|
-
rlmgrep-0.1.
|
|
14
|
-
rlmgrep-0.1.
|
|
10
|
+
rlmgrep-0.1.30.dist-info/METADATA,sha256=i4MW0xzfnp4lLK8FFSVPFhVtYuYEn6Coq0P6jhSkAtY,7991
|
|
11
|
+
rlmgrep-0.1.30.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
12
|
+
rlmgrep-0.1.30.dist-info/entry_points.txt,sha256=UV6QkEbkwBO1JJ53mm84_n35tVyOczPvOQ14ga7vrCI,45
|
|
13
|
+
rlmgrep-0.1.30.dist-info/top_level.txt,sha256=gTujSRsO58c80eN7aRH2cfe51FHxx8LJ1w1Y2YlHti0,8
|
|
14
|
+
rlmgrep-0.1.30.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|