repotracer 1.0.1 → 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 +69 -28
- package/bin/repotracer.js +17 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# repotracer
|
|
2
2
|
|
|
3
|
-
RepoTracer is an MCP server
|
|
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
|
-
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
19
|
-
npx repotracer@latest setup
|
|
20
|
-
|
|
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
|
-
|
|
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
|
|
40
|
+
npx repotracer@latest settings
|
|
28
41
|
```
|
|
29
42
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
51
|
+
For automation, use explicit settings flags:
|
|
36
52
|
|
|
37
53
|
```bash
|
|
38
|
-
repotracer
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
59
|
+
Use `--dry-run` to preview changes. Parent profiles are independent.
|
|
60
|
+
|
|
61
|
+
## Commands
|
|
46
62
|
|
|
47
63
|
```bash
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) || !
|
|
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
|
|
4
|
-
"description": "
|
|
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
|
},
|