@lbroth/rothunter 1.0.0-rc.2 → 1.0.0-rc.3

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.
Files changed (2) hide show
  1. package/README.md +40 -18
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -32,39 +32,61 @@ Full detector list with severities + tunables: [`docs/DETECTORS.md`](./docs/DETE
32
32
  | Single-workspace | All 24 |
33
33
  | Multi-workspace (cross-repo via `rothunter.config.json`) | 9 cross-repo always-on (duplicate-type, duplicate-function, dead-module, dead-export, dead-api, long-function, deep-nesting, public-any, hot-hub-file) + the remaining 15 looped per workspace with workspace-namespaced fingerprints |
34
34
 
35
+ ## What you actually get
36
+
37
+ rothunter has TWO independent pieces:
38
+
39
+ | Piece | What it does | Where it runs |
40
+ |---|---|---|
41
+ | **Engine + dashboard** (`rothunter`) | parses your repo, runs 24 detectors, serves the Fastify API + React UI on `:3000` | this is what the npm package / docker image ships |
42
+ | **LLM** (any OpenAI-compatible endpoint) | answers the verdict prompts ("is this finding real or intentional?") — typically `llama.cpp` with Qwen2.5-Coder-14B | runs separately, you point rothunter at it |
43
+
44
+ The engine runs WITHOUT the LLM — the deterministic detectors still
45
+ fire, you just don't get the verdict pass that auto-filters the FPs.
46
+ So the question every install path answers is: "do you want me to
47
+ also start an LLM, or are you bringing your own?"
48
+
35
49
  ## Quick start
36
50
 
37
51
  Three paths. Pick one — they all end at <http://localhost:3000>.
38
52
 
39
- ### 1. Docker (fastest, no clone)
53
+ ### 1. Docker Compose everything bundled
40
54
 
41
- ```bash
42
- # scan the repo in $(pwd) needs an LLM endpoint
43
- docker run --rm -p 3000:3000 \
44
- -v "$(pwd):/workspace" \
45
- -e ROTHUNTER_LLM_BASE_URL="$LLM_URL" \
46
- ghcr.io/lbroth/rothunter:latest
47
- ```
48
-
49
- No `ROTHUNTER_LLM_BASE_URL`? Use the compose stack — it ships an
50
- llama.cpp sidecar that downloads a 9 GB model on first boot:
55
+ Engine + UI + llama.cpp + 9 GB model download on first boot, all in
56
+ one stack. Slowest first-run; zero pieces to install.
51
57
 
52
58
  ```bash
53
59
  git clone https://github.com/lBroth/rothunter && cd rothunter
54
60
  ROTHUNTER_WORKSPACE_HOST=/path/to/your-repo npm run docker
55
61
  ```
56
62
 
57
- ### 2. npx (no Docker)
63
+ ### 2. `docker run` or `npx` engine only, BYO LLM
64
+
65
+ Use this when you already have an OpenAI-compatible LLM endpoint
66
+ (vLLM / Ollama / LM Studio / OpenRouter / a colleague's box) OR you
67
+ prefer to run llama.cpp yourself.
58
68
 
59
69
  ```bash
60
- # server + UI on :3000; point at any OpenAI-compatible LLM endpoint
61
- ROTHUNTER_LLM_BASE_URL=http://127.0.0.1:8080/v1 \
62
- npx @lbroth/rothunter
70
+ # docker no clone, no node install
71
+ docker run --rm -p 3000:3000 \
72
+ -v "$(pwd):/workspace" \
73
+ -e ROTHUNTER_LLM_BASE_URL="http://host.docker.internal:8080/v1" \
74
+ ghcr.io/lbroth/rothunter:latest
75
+
76
+ # OR npx — no docker, just node ≥ 24
77
+ ROTHUNTER_LLM_BASE_URL="http://127.0.0.1:8080/v1" \
78
+ npx @lbroth/rothunter@next
63
79
  ```
64
80
 
65
- The npx flow boots only the server + dashboard. Run the LLM yourself
66
- with `brew install llama.cpp && llama-server --hf-repo bartowski/Qwen2.5-Coder-14B-Instruct-GGUF` (or aim
67
- `ROTHUNTER_LLM_BASE_URL` at vLLM / OpenRouter / LM Studio).
81
+ To boot llama.cpp yourself (one-time setup):
82
+
83
+ ```bash
84
+ brew install llama.cpp # macOS — Linux: see ggml-org/llama.cpp
85
+ llama-server \
86
+ --hf-repo bartowski/Qwen2.5-Coder-14B-Instruct-GGUF \
87
+ --hf-file Qwen2.5-Coder-14B-Instruct-Q4_K_M.gguf \
88
+ --host 127.0.0.1 --port 8080 --jinja -c 8192 -n 256
89
+ ```
68
90
 
69
91
  ### 3. Clone + dev mode (contributor flow)
70
92
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lbroth/rothunter",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0-rc.3",
4
4
  "description": "Self-hosted code-hygiene engine for TypeScript / JavaScript codebases. Deterministic detectors + local LLM verdicts + dashboard.",
5
5
  "license": "MIT",
6
6
  "author": "lBroth",