opencode-review-helper 0.1.1 → 0.1.4

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
@@ -10,57 +10,24 @@ OpenCode plugin for reviewing AI-generated code changes. Helps humans efficientl
10
10
  ## Installation
11
11
 
12
12
  ```bash
13
- npm install -g opencode-review-helper
13
+ bunx opencode-review-helper setup
14
14
  ```
15
15
 
16
- Then add to your `~/.config/opencode/opencode.jsonc`:
16
+ This will:
17
+ 1. Add the plugin to your `~/.config/opencode/opencode.jsonc`
18
+ 2. Let you choose which model to use for the impact-explorer sub-agent (default: `google/gemini-3-flash`)
17
19
 
18
- ```json
19
- {
20
- "plugin": ["opencode-review-helper"]
21
- }
22
- ```
23
-
24
- ## Setup
25
-
26
- Configure the sub-agent model (optional):
27
-
28
- ```bash
29
- npx opencode-review-helper setup
30
- ```
31
-
32
- This lets you choose which model to use for the impact-explorer sub-agent (default: `google/gemini-3-flash`).
20
+ Restart opencode after setup to load the plugin.
33
21
 
34
22
  ## Usage
35
23
 
36
- Once installed, the plugin provides two tools:
37
-
38
- ### `review_order`
39
-
40
- Suggests optimal order to review changed files.
41
-
42
- ```
43
- Use review_order to analyze the changed files
44
- ```
45
-
46
- Output:
47
- - Prioritized file list with rationale
48
- - Dependency graph showing import relationships
49
- - Scores based on: type priority, dependents count, complexity
50
-
51
- ### `impact_analysis`
52
-
53
- Finds code outside the changeset that could break.
24
+ The plugin provides a `review-helper:code-reviewer` agent that combines both tools. It:
54
25
 
55
- ```
56
- Use impact_analysis on these files: ["src/models/user.ts", "src/api/auth.ts"]
57
- ```
26
+ 1. Runs `review_order` to determine file review sequence
27
+ 2. Runs `impact_analysis` to find affected external code
28
+ 3. Formats the tool outputs into a combined report
58
29
 
59
- Output:
60
- - Direct consumers (files that import changed code)
61
- - Transitive impact (files that use files that use changed code)
62
- - Test coverage gaps (changed files without tests)
63
- - Recommendations
30
+ The agent does NOT make up its own recommendations or analysis—it only presents what the tools return. It also does NOT automatically run tests or apply fixes.
64
31
 
65
32
  ## Configuration
66
33
 
@@ -102,15 +69,27 @@ Create `~/.config/opencode/review-helper.json` or `.opencode/review-helper.json`
102
69
  | `impact_analysis.max_results_per_level` | Max results per category | `50` |
103
70
  | `impact_analysis.exclude_patterns` | Glob patterns to skip | Test files |
104
71
 
105
- ## Agents
72
+ ## Tools
106
73
 
107
- The plugin includes a `review-helper:code-reviewer` agent that combines both tools for comprehensive review. It:
74
+ The plugin also exposes two tools directly:
108
75
 
109
- 1. Runs `review_order` to determine file review sequence
110
- 2. Runs `impact_analysis` to find affected external code
111
- 3. Generates a combined report with recommendations
76
+ ### `review_order`
77
+
78
+ Suggests optimal order to review changed files.
112
79
 
113
- The agent does NOT automatically run tests or apply fixes.
80
+ Output:
81
+ - Prioritized file list with rationale
82
+ - Dependency graph showing import relationships
83
+ - Scores based on: type priority, dependents count, complexity
84
+
85
+ ### `impact_analysis`
86
+
87
+ Finds code outside the changeset that could break.
88
+
89
+ Output:
90
+ - Direct consumers (files that import changed code)
91
+ - Transitive impact (files that use files that use changed code)
92
+ - Test coverage gaps (changed files without tests)
114
93
 
115
94
  ## License
116
95
 
@@ -61,9 +61,9 @@ Use the `impact_analysis` tool:
61
61
  - Flags files without test coverage
62
62
  - Reports potential breaking changes
63
63
 
64
- ### Step 3: Generate Report
64
+ ### Step 3: Present Findings
65
65
 
66
- Present findings clearly:
66
+ Format and present the tool outputs clearly:
67
67
 
68
68
  ```
69
69
  ## Review Order
@@ -81,13 +81,10 @@ Present findings clearly:
81
81
 
82
82
  ### Test Coverage Gaps
83
83
  - `src/models/user.ts` has no corresponding test file
84
-
85
- ## Recommendations
86
- - Review migrations first - they affect all downstream code
87
- - Check `src/api/auth.ts` for compatibility with User changes
88
- - Consider adding tests for `src/models/user.ts`
89
84
  ```
90
85
 
86
+ Do NOT add your own recommendations or analysis beyond what the tools return.
87
+
91
88
  ## Key Principles
92
89
 
93
90
  - **Focus on integration boundaries** - where AI often misses issues
package/dist/cli.js CHANGED
@@ -1,6 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { saveGlobalConfig } from "./config.js";
3
3
  import { createInterface } from "node:readline";
4
+ import { readFile, writeFile, mkdir } from "node:fs/promises";
5
+ import { existsSync } from "node:fs";
6
+ import { join } from "node:path";
7
+ import { homedir } from "node:os";
8
+ import JSONC from "tiny-jsonc";
9
+ const PLUGIN_NAME = "opencode-review-helper";
4
10
  const MODELS = [
5
11
  { value: "google/gemini-3-flash", label: "Google Gemini 3 Flash (fast, recommended)" },
6
12
  { value: "google/gemini-3-flash-lite", label: "Google Gemini 3 Flash Lite (fastest)" },
@@ -19,9 +25,52 @@ async function prompt(question) {
19
25
  });
20
26
  });
21
27
  }
28
+ function getOpencodeConfigPath() {
29
+ const paths = [
30
+ join(homedir(), ".config", "opencode", "opencode.jsonc"),
31
+ join(homedir(), ".config", "opencode", "opencode.json"),
32
+ ];
33
+ for (const p of paths) {
34
+ if (existsSync(p))
35
+ return p;
36
+ }
37
+ return paths[0];
38
+ }
39
+ async function ensurePluginInConfig() {
40
+ const configPath = getOpencodeConfigPath();
41
+ const configDir = join(homedir(), ".config", "opencode");
42
+ await mkdir(configDir, { recursive: true });
43
+ let config = {};
44
+ if (existsSync(configPath)) {
45
+ const content = await readFile(configPath, "utf-8");
46
+ try {
47
+ config = JSONC.parse(content);
48
+ }
49
+ catch {
50
+ console.error(`Warning: Could not parse ${configPath}`);
51
+ return { added: false, path: configPath };
52
+ }
53
+ }
54
+ const plugins = config.plugin || [];
55
+ const hasPlugin = plugins.some((p) => p === PLUGIN_NAME || p.startsWith(`${PLUGIN_NAME}@`));
56
+ if (hasPlugin) {
57
+ return { added: false, path: configPath };
58
+ }
59
+ config.plugin = [...plugins, PLUGIN_NAME];
60
+ await writeFile(configPath, JSON.stringify(config, null, 2) + "\n");
61
+ return { added: true, path: configPath };
62
+ }
22
63
  async function setup() {
23
64
  console.log("\n🔍 OpenCode Review Helper - Setup\n");
24
- console.log("Select a model for the impact-explorer sub-agent:\n");
65
+ console.log("Step 1: Configuring opencode.jsonc...\n");
66
+ const { added, path } = await ensurePluginInConfig();
67
+ if (added) {
68
+ console.log(` ✅ Added plugin to ${path}\n`);
69
+ }
70
+ else {
71
+ console.log(` ✅ Plugin already configured in ${path}\n`);
72
+ }
73
+ console.log("Step 2: Select model for impact-explorer sub-agent:\n");
25
74
  MODELS.forEach((m, i) => {
26
75
  console.log(` ${i + 1}. ${m.label}`);
27
76
  });
@@ -49,23 +98,19 @@ async function setup() {
49
98
  explorer: selectedModel,
50
99
  },
51
100
  });
52
- console.log(`\n✅ Configuration saved!`);
101
+ console.log(`\n✅ Setup complete!`);
53
102
  console.log(` Explorer model: ${selectedModel}`);
54
- console.log(` Config location: ~/.config/opencode/review-helper.json\n`);
55
- console.log("To use the plugin, add to your opencode.jsonc:\n");
56
- console.log(' { "plugin": ["opencode-review-helper"] }\n');
103
+ console.log(` Plugin config: ~/.config/opencode/review-helper.json`);
104
+ console.log(`\n Restart opencode to use the plugin.\n`);
57
105
  }
58
106
  function showHelp() {
59
107
  console.log(`
60
108
  opencode-review-helper - OpenCode plugin for AI code review
61
109
 
62
110
  Commands:
63
- setup Configure the plugin (model selection)
111
+ setup Configure the plugin (adds to opencode.jsonc + model selection)
64
112
  help Show this help message
65
113
 
66
- Usage in opencode.jsonc:
67
- { "plugin": ["opencode-review-helper"] }
68
-
69
114
  Tools provided:
70
115
  review_order - Suggests optimal order to review changed files
71
116
  impact_analysis - Finds code outside changeset that could be affected
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-review-helper",
3
- "version": "0.1.1",
3
+ "version": "0.1.4",
4
4
  "description": "OpenCode plugin for reviewing AI-generated code changes - suggests review order and analyzes impact",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,6 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@opencode-ai/plugin": "^1.0.209",
27
+ "tiny-jsonc": "^1.0.2",
27
28
  "zod": "^4.1.8"
28
29
  },
29
30
  "devDependencies": {