repotracer 1.0.0 → 2.1.0

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,10 @@
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
+ RepoTracer is an MCP server for read-only repository investigations in Codex
4
+ and Claude Code. Its `repo_scout` tool returns a model-authored report with
5
+ source excerpts and validated file citations. Citation validation checks that
6
+ locations exist inside the selected repository; it does not prove the report's
7
+ conclusions.
4
8
 
5
9
  ## Setup
6
10
 
@@ -8,50 +12,87 @@ RepoTracer is an MCP server whose `repo_scout` tool runs an isolated, read-only
8
12
  npx repotracer@latest setup
9
13
  ```
10
14
 
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`.
15
+ In an interactive terminal, the v2 setup wizard lets you choose Codex, Claude
16
+ Code, or both, then choose a scout model. Defaults are:
12
17
 
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.
18
+ - Codex parent -> Codex scout: `gpt-5.6-luna`
19
+ - Claude Code parent -> Claude scout: `sonnet`
20
+
21
+ These are defaults, not cost or quality promises. RepoTracer uses each native
22
+ CLI's existing login. It does not require a second subscription key.
23
+
24
+ For scripted setup:
16
25
 
17
26
  ```bash
18
- npm install -g @openai/codex
19
- npx repotracer@latest setup
20
- codex login
21
- repotracer doctor
27
+ npx repotracer@latest setup --agents codex
28
+ npx repotracer@latest setup --agents claude
29
+ npx repotracer@latest setup --agents both --dry-run
22
30
  ```
23
31
 
24
- Preview without changing files:
32
+ The Codex integration requires the `codex` executable. The Claude Code
33
+ integration requires `claude`. Setup checks that the executable is available;
34
+ the native CLI handles authentication when a scout runs. Restart the parent
35
+ agent after setup.
36
+
37
+ ## Settings
25
38
 
26
39
  ```bash
27
- npx repotracer@latest setup --dry-run
40
+ npx repotracer@latest settings
28
41
  ```
29
42
 
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.
43
+ The TUI uses two steps. First choose the parent integrations. Then accept
44
+ recommended models or keep saved choices. Open `Advanced` to search and
45
+ review a different provider/model for each parent. The
46
+ Custom API form accepts a base URL, model ID, and optional API key. Keys
47
+ require HTTPS; unauthenticated local endpoints can use HTTP. Use the flags
48
+ below for native model IDs. Esc and Ctrl-C cancel, and nothing is written
49
+ before the final save.
34
50
 
35
- ## Commands
51
+ For automation, use explicit settings flags:
36
52
 
37
53
  ```bash
38
- repotracer "where is auth handled?"
39
- repotracer scout "trace refresh token rotation"
40
- repotracer doctor
41
- repotracer status
42
- repotracer uninstall --yes
54
+ npx repotracer@latest settings --agents both \
55
+ --codex-scout codex --codex-model gpt-5.6-luna \
56
+ --claude-scout claude --claude-model sonnet
43
57
  ```
44
58
 
45
- ## Permanent install
59
+ Use `--dry-run` to preview changes. Parent profiles are independent.
60
+
61
+ ## Commands
46
62
 
47
63
  ```bash
48
- npm install -g repotracer
49
- # or
50
- cargo install --git https://github.com/repotracer/repotracer --locked repotracer
64
+ npx repotracer@latest "where is authentication handled?"
65
+ npx repotracer@latest scout "trace token refresh" --intent diagnose
66
+ npx repotracer@latest symbols "Config" --mode references
67
+ npx repotracer@latest serve
68
+ npx repotracer@latest doctor
69
+ npx repotracer@latest status
70
+ npx repotracer@latest update
71
+ npx repotracer@latest uninstall --yes
51
72
  ```
52
73
 
53
- Supported platforms: macOS arm64 and x64, Linux arm64 and x64, and Windows x64. Node.js 18 or newer.
74
+ `serve` runs the MCP server over stdio. `symbols` performs a local syntax
75
+ lookup without a model call. Add `--json` to `scout`, `doctor`, or `status`.
76
+
77
+ The MCP tool requires `query`; `repository`, `focus`, and `investigation` are
78
+ optional. Related follow-ups can pass the returned
79
+ `conversation.id` as `investigation.conversation_id`. Claude uses Read, Grep,
80
+ and Glob; Codex uses a read-only shell and optional Symbols lookup. Neither
81
+ scout receives editing tools or external MCP servers.
82
+
83
+ ## Timeouts and support
84
+
85
+ Warm provider processes may be retained for related work. `session.idle_secs`
86
+ retires an inactive warm process; it is not a total request timeout. The
87
+ optional `model.timeout_ms` limit measures stream inactivity, while
88
+ `explorer.timeout_seconds` limits a whole investigation only in the generic
89
+ OpenAI-compatible engine, not the native scouts. Both default to zero.
90
+
91
+ Node.js 18 or newer is required for the launcher. Published native packages
92
+ target macOS arm64 and x64, Linux arm64 and x64, and Windows x64. The v2
93
+ release candidate has passed GitHub CI on Linux, macOS, and Windows.
54
94
 
55
- Read the [documentation and benchmarks](https://github.com/repotracer/repotracer).
95
+ RepoTracer does not promise lower cost, faster completion, or a particular
96
+ answer quality. Provider and parent-agent behavior affect each result.
56
97
 
57
- MIT licensed.
98
+ MIT licensed. See the [repository documentation](https://github.com/repotracer/repotracer).
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.0",
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.0",
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
  },