repotracer 1.0.1 → 2.1.1

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.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # repotracer
2
2
 
3
- RepoTracer is an MCP server whose `repo_scout` tool runs an isolated, read-only Luna process and returns validated source citations to Codex Sol.
3
+ A repo investigator for Claude Code and Codex.
4
+
5
+ RepoTracer installs an MCP tool named `repo_scout`. The coding agent can call it when a task needs repository investigation, then continue with the returned findings instead of spending the same conversation tracing the repo itself.
4
6
 
5
7
  ## Setup
6
8
 
@@ -8,50 +10,71 @@ RepoTracer is an MCP server whose `repo_scout` tool runs an isolated, read-only
8
10
  npx repotracer@latest setup
9
11
  ```
10
12
 
11
- The installer downloads the native binary, verifies its SHA-256 checksum, copies it to `~/.repotracer/bin/repotracer`, registers the stdio MCP server, and adds a managed routing block to `~/.codex/AGENTS.md`.
13
+ Choose Claude Code, Codex, or both.
12
14
 
13
- Codex must already be installed, but you can set up RepoTracer before signing in.
14
- When a scout runs, RepoTracer reuses the current Codex login and provider instead
15
- of requiring another API key.
15
+ RepoTracer uses the native CLI you are already signed into. A second provider login is not required for native investigations.
16
16
 
17
- ```bash
18
- npm install -g @openai/codex
19
- npx repotracer@latest setup
20
- codex login
21
- repotracer doctor
22
- ```
17
+ Run the same command later to reconfigure or uninstall.
23
18
 
24
- Preview without changing files:
19
+ ## Commands
25
20
 
26
21
  ```bash
27
- npx repotracer@latest setup --dry-run
22
+ npx repotracer@latest "where is authentication handled?"
23
+ npx repotracer@latest scout "trace token refresh"
24
+ npx repotracer@latest symbols "Config" --mode references
25
+ npx repotracer@latest serve
26
+ npx repotracer@latest doctor
27
+ npx repotracer@latest status
28
+ npx repotracer@latest update
29
+ npx repotracer@latest uninstall --yes
28
30
  ```
29
31
 
30
- RepoTracer updates automatically. Restart Codex after an update for it to take
31
- effect. To disable automatic updates, set `updates.automatic = false` in
32
- `~/.repotracer/config.toml` or set `REPOTRACER_NO_UPDATE=1`. Running
33
- `npx repotracer@latest setup` still updates a disabled installation.
32
+ `serve` starts the MCP server over stdio.
34
33
 
35
- ## Commands
34
+ `symbols` performs a local syntax lookup without a model call.
36
35
 
37
- ```bash
38
- repotracer "where is auth handled?"
39
- repotracer scout "trace refresh token rotation"
40
- repotracer doctor
41
- repotracer status
42
- repotracer uninstall --yes
43
- ```
36
+ ## Native investigators
37
+
38
+ Claude Code and Codex investigations run through the corresponding native CLI.
39
+
40
+ The investigator gets a separate conversation for the repository work. Related calls can continue that investigation instead of starting over, and independent investigations can run in parallel.
44
41
 
45
- ## Permanent install
42
+ Native investigations are **not** an enforced read-only sandbox. The underlying CLI can expose execution or filesystem capabilities beyond RepoTracer's own repository tools.
43
+
44
+ For the current security model, read [SECURITY.md](https://github.com/repotracer/repotracer/blob/main/SECURITY.md).
45
+
46
+ ## When the investigator is unsure
47
+
48
+ A result can preserve what was found, what was checked, and what remains unresolved.
49
+
50
+ That lets Claude Code or Codex continue from useful partial work instead of repeating the investigation from scratch.
51
+
52
+ ## Custom OpenAI-compatible endpoint
46
53
 
47
54
  ```bash
48
- npm install -g repotracer
49
- # or
50
- cargo install --git https://github.com/repotracer/repotracer --locked repotracer
55
+ npx repotracer@latest setup \
56
+ --base-url http://localhost:11434/v1 \
57
+ --model deepseek-coder
51
58
  ```
52
59
 
53
- Supported platforms: macOS arm64 and x64, Linux arm64 and x64, and Windows x64. Node.js 18 or newer.
60
+ Set `REPOTRACER_API_KEY` when the endpoint requires authentication.
61
+
62
+ Custom OpenAI-compatible models use RepoTracer's own repository-tool loop rather than the native Claude Code or Codex environment.
63
+
64
+ ## Requirements
65
+
66
+ - Node.js 18 or newer for the `npx` launcher
67
+ - `codex` for the Codex integration
68
+ - `claude` for the Claude Code integration
69
+
70
+ Published native packages target macOS arm64/x64, Linux arm64/x64, and Windows x64.
71
+
72
+ ## Documentation
54
73
 
55
- Read the [documentation and benchmarks](https://github.com/repotracer/repotracer).
74
+ - [README](https://github.com/repotracer/repotracer)
75
+ - [Benchmarks](https://github.com/repotracer/repotracer/blob/main/BENCHMARKS.md)
76
+ - [Architecture](https://github.com/repotracer/repotracer/blob/main/docs/ARCHITECTURE.md)
77
+ - [Claude Code and Codex integration](https://github.com/repotracer/repotracer/blob/main/docs/CLAUDE_CODE_INTEGRATION.md)
78
+ - [Security](https://github.com/repotracer/repotracer/blob/main/SECURITY.md)
56
79
 
57
80
  MIT licensed.
package/bin/repotracer.js CHANGED
@@ -34,8 +34,24 @@ function findBinary() {
34
34
  return candidates.find(candidate => fs.existsSync(candidate)) || null;
35
35
  }
36
36
 
37
+ function topLevelCommand(args) {
38
+ const valuedOptions = new Set(['--root', '--config', '--model', '--base-url']);
39
+ const flags = new Set(['--json', '--mock', '--verbose', '-v']);
40
+ for (let index = 0; index < args.length; index += 1) {
41
+ const arg = args[index];
42
+ if (valuedOptions.has(arg)) {
43
+ index += 1;
44
+ } else if (valuedOptions.has(arg.split('=')[0]) || flags.has(arg)) {
45
+ continue;
46
+ } else {
47
+ return arg.startsWith('-') ? null : arg;
48
+ }
49
+ }
50
+ return null;
51
+ }
52
+
37
53
  function persistForSetup(bin, args, home = os.homedir()) {
38
- if (!path.isAbsolute(bin) || !args.includes('setup') || args.includes('--dry-run')) return bin;
54
+ if (!path.isAbsolute(bin) || !['setup', 'settings', 'reconfigure'].includes(topLevelCommand(args)) || args.includes('--dry-run')) return bin;
39
55
 
40
56
  const name = process.platform === 'win32' ? 'repotracer.exe' : 'repotracer';
41
57
  const directory = path.join(home, '.repotracer', 'bin');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "repotracer",
3
- "version": "1.0.1",
4
- "description": "Get up to 60% more from your Codex limits. A cheaper model searches your repo so Codex stops burning turns on it.",
3
+ "version": "2.1.1",
4
+ "description": "Read-only repository investigations for Codex and Claude Code using a separately configured scout model.",
5
5
  "bin": {
6
6
  "repotracer": "bin/repotracer.js"
7
7
  },