@humanbased/crosscheck 1.6.1-beta.5 → 1.7.0-beta.25
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 +3 -1
- package/crosscheck.config.example.yml +20 -4
- package/dist/__tests__/detector.test.js +22 -0
- package/dist/__tests__/detector.test.js.map +1 -1
- package/dist/__tests__/onboard-preservation.test.js +27 -5
- package/dist/__tests__/onboard-preservation.test.js.map +1 -1
- package/dist/__tests__/onboard-vendors.test.d.ts +2 -0
- package/dist/__tests__/onboard-vendors.test.d.ts.map +1 -0
- package/dist/__tests__/onboard-vendors.test.js +122 -0
- package/dist/__tests__/onboard-vendors.test.js.map +1 -0
- package/dist/__tests__/optimize.test.js +18 -2
- package/dist/__tests__/optimize.test.js.map +1 -1
- package/dist/__tests__/review-models.test.js +5 -5
- package/dist/__tests__/review-models.test.js.map +1 -1
- package/dist/__tests__/review-strategy.test.js +10 -10
- package/dist/__tests__/review-strategy.test.js.map +1 -1
- package/dist/__tests__/reviewer-setup.test.d.ts +2 -0
- package/dist/__tests__/reviewer-setup.test.d.ts.map +1 -0
- package/dist/__tests__/reviewer-setup.test.js +134 -0
- package/dist/__tests__/reviewer-setup.test.js.map +1 -0
- package/dist/__tests__/runner.test.js +12 -2
- package/dist/__tests__/runner.test.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +14 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/issue.d.ts.map +1 -1
- package/dist/commands/issue.js +40 -16
- package/dist/commands/issue.js.map +1 -1
- package/dist/commands/onboard.d.ts +8 -4
- package/dist/commands/onboard.d.ts.map +1 -1
- package/dist/commands/onboard.js +144 -88
- package/dist/commands/onboard.js.map +1 -1
- package/dist/commands/optimize.d.ts +1 -1
- package/dist/commands/optimize.d.ts.map +1 -1
- package/dist/commands/optimize.js +53 -13
- package/dist/commands/optimize.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +9 -3
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/run.d.ts +2 -2
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +1 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +12 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +6 -3
- package/dist/commands/watch.js.map +1 -1
- package/dist/config/review-model-tiers.json +9 -9
- package/dist/config/review-strategy.json +12 -12
- package/dist/config/schema.d.ts +102 -16
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +28 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/github/client.js +1 -1
- package/dist/github/client.js.map +1 -1
- package/dist/github/detector.d.ts +2 -2
- package/dist/github/detector.d.ts.map +1 -1
- package/dist/github/detector.js +46 -11
- package/dist/github/detector.js.map +1 -1
- package/dist/lib/comment-bodies.d.ts.map +1 -1
- package/dist/lib/comment-bodies.js +4 -2
- package/dist/lib/comment-bodies.js.map +1 -1
- package/dist/lib/review-models.d.ts +4 -1
- package/dist/lib/review-models.d.ts.map +1 -1
- package/dist/lib/review-models.js +8 -0
- package/dist/lib/review-models.js.map +1 -1
- package/dist/lib/reviewer-error.d.ts.map +1 -1
- package/dist/lib/reviewer-error.js +12 -8
- package/dist/lib/reviewer-error.js.map +1 -1
- package/dist/lib/reviewer-setup.d.ts +25 -0
- package/dist/lib/reviewer-setup.d.ts.map +1 -0
- package/dist/lib/reviewer-setup.js +126 -0
- package/dist/lib/reviewer-setup.js.map +1 -0
- package/dist/lib/runner.d.ts +8 -7
- package/dist/lib/runner.d.ts.map +1 -1
- package/dist/lib/runner.js +71 -20
- package/dist/lib/runner.js.map +1 -1
- package/dist/lib/smart-switch.d.ts +7 -6
- package/dist/lib/smart-switch.d.ts.map +1 -1
- package/dist/lib/smart-switch.js +9 -2
- package/dist/lib/smart-switch.js.map +1 -1
- package/dist/lib/vendor.d.ts +2 -2
- package/dist/lib/vendor.d.ts.map +1 -1
- package/dist/lib/vendor.js +12 -2
- package/dist/lib/vendor.js.map +1 -1
- package/dist/lib/workflow.d.ts +8 -8
- package/dist/lib/workflow.js +1 -1
- package/dist/lib/workflow.js.map +1 -1
- package/dist/reviewers/fix.d.ts +6 -0
- package/dist/reviewers/fix.d.ts.map +1 -1
- package/dist/reviewers/fix.js +61 -0
- package/dist/reviewers/fix.js.map +1 -1
- package/dist/reviewers/opencode-env.d.ts +13 -0
- package/dist/reviewers/opencode-env.d.ts.map +1 -0
- package/dist/reviewers/opencode-env.js +52 -0
- package/dist/reviewers/opencode-env.js.map +1 -0
- package/dist/reviewers/opencode.d.ts +17 -0
- package/dist/reviewers/opencode.d.ts.map +1 -0
- package/dist/reviewers/opencode.js +293 -0
- package/dist/reviewers/opencode.js.map +1 -0
- package/get-started.md +46 -8
- package/get-started.zh.md +4 -0
- package/package.json +1 -1
package/dist/github/detector.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getPRCommits } from './client.js';
|
|
2
2
|
import { checkCodexAuth } from '../reviewers/codex.js';
|
|
3
3
|
import { checkClaudeAuth } from '../reviewers/claude.js';
|
|
4
|
+
import { checkOpenCodeAuth } from '../reviewers/opencode.js';
|
|
4
5
|
// Crosscheck's own attribution on work crosscheck wrote. Not part of
|
|
5
6
|
// routing.*_reviews_patterns on purpose: Zod defaults apply only when a field is
|
|
6
7
|
// absent, so an install that pinned its own pattern list would never receive
|
|
@@ -16,11 +17,13 @@ const SELF_AUTHORED_PATTERNS = [
|
|
|
16
17
|
// Fix-PR body footer — buildAttributionFooter({ action: 'Fixed', ... }).
|
|
17
18
|
{ pattern: /Fixed with \[Claude Code\]/i, origin: 'claude' },
|
|
18
19
|
{ pattern: /Fixed with \[OpenAI Codex\]/i, origin: 'codex' },
|
|
20
|
+
{ pattern: /Fixed with \[OpenCode\]/i, origin: 'opencode' },
|
|
19
21
|
// Commit trailer — buildCommitTrailers on fix and conflict-resolve commits.
|
|
20
22
|
// Anchored to its own line: the field name is quoted in prose (this repo's
|
|
21
23
|
// changelog and docs do it), and prose is not a trailer.
|
|
22
24
|
{ pattern: /^Crosscheck-Reviewer:[^\S\n]*claude[^\S\n]*$/im, origin: 'claude' },
|
|
23
25
|
{ pattern: /^Crosscheck-Reviewer:[^\S\n]*codex[^\S\n]*$/im, origin: 'codex' },
|
|
26
|
+
{ pattern: /^Crosscheck-Reviewer:[^\S\n]*opencode[^\S\n]*$/im, origin: 'opencode' },
|
|
24
27
|
];
|
|
25
28
|
// Applies codex_reviews_patterns / claude_reviews_patterns against a single text
|
|
26
29
|
// block, then crosscheck's own always-on markers. Configured patterns are
|
|
@@ -35,6 +38,10 @@ function matchPatterns(text, config) {
|
|
|
35
38
|
if (new RegExp(pattern, 'i').test(text))
|
|
36
39
|
return 'codex';
|
|
37
40
|
}
|
|
41
|
+
for (const pattern of config.routing.opencode_reviews_patterns) {
|
|
42
|
+
if (new RegExp(pattern, 'i').test(text))
|
|
43
|
+
return 'opencode';
|
|
44
|
+
}
|
|
38
45
|
for (const { pattern, origin } of SELF_AUTHORED_PATTERNS) {
|
|
39
46
|
if (pattern.test(text))
|
|
40
47
|
return origin;
|
|
@@ -64,6 +71,10 @@ export function detectOriginFromBranch(headRef, config) {
|
|
|
64
71
|
if (headRef.startsWith(prefix))
|
|
65
72
|
return 'codex';
|
|
66
73
|
}
|
|
74
|
+
for (const prefix of config.routing.opencode_branch_prefixes) {
|
|
75
|
+
if (headRef.startsWith(prefix))
|
|
76
|
+
return 'opencode';
|
|
77
|
+
}
|
|
67
78
|
return null;
|
|
68
79
|
}
|
|
69
80
|
// Full detection chain: body → commits → branch → author_routes → human
|
|
@@ -92,14 +103,16 @@ export async function detectOriginFull(prBody, headRef, owner, repo, prNumber, c
|
|
|
92
103
|
if (fromBranch !== null)
|
|
93
104
|
return { origin: fromBranch, method: 'branch' };
|
|
94
105
|
if (author && config.routing.author_routes[author]) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
106
|
+
// Any two vendors enabled in cross-vendor mode defeat a static author→vendor
|
|
107
|
+
// map (the author may write via either), not just the claude+codex pair.
|
|
108
|
+
const enabledVendors = [config.vendors.claude, config.vendors.codex, config.vendors.opencode]
|
|
109
|
+
.filter(v => v.enabled).length;
|
|
110
|
+
const bypassed = config.mode === 'cross-vendor' && enabledVendors >= 2;
|
|
111
|
+
if (!bypassed) {
|
|
99
112
|
return { origin: config.routing.author_routes[author], method: 'author_routes' };
|
|
100
113
|
}
|
|
101
|
-
// Cross-vendor with
|
|
102
|
-
// in logs without changing reviewer selection silently.
|
|
114
|
+
// Cross-vendor with multiple vendors enabled: log the bypass so users can spot
|
|
115
|
+
// it in logs without changing reviewer selection silently.
|
|
103
116
|
return { origin: 'human', method: 'author_routes_bypassed' };
|
|
104
117
|
}
|
|
105
118
|
return { origin: 'human', method: 'none' };
|
|
@@ -119,13 +132,19 @@ async function resolveFallback(config) {
|
|
|
119
132
|
return config.vendors.codex.enabled ? 'codex' : null;
|
|
120
133
|
if (fb === 'claude')
|
|
121
134
|
return config.vendors.claude.enabled ? 'claude' : null;
|
|
135
|
+
if (fb === 'opencode')
|
|
136
|
+
return config.vendors.opencode.enabled ? 'opencode' : null;
|
|
122
137
|
// 'auto': use runtime capability checks so a Claude-only install doesn't
|
|
123
138
|
// attempt Codex just because both vendors are enabled in config by default.
|
|
124
|
-
|
|
139
|
+
// OpenCode is opt-in, so its auth check alone is not enough — a configured
|
|
140
|
+
// opt-out must never be overridden by an authenticated CLI.
|
|
141
|
+
const [codexAuth, claudeAuth, opencodeAuth] = await Promise.all([checkCodexAuth(), checkClaudeAuth(), checkOpenCodeAuth()]);
|
|
125
142
|
if (codexAuth.ok)
|
|
126
143
|
return 'codex';
|
|
127
144
|
if (claudeAuth.ok)
|
|
128
145
|
return 'claude';
|
|
146
|
+
if (opencodeAuth.ok && config.vendors.opencode.enabled)
|
|
147
|
+
return 'opencode';
|
|
129
148
|
return null;
|
|
130
149
|
}
|
|
131
150
|
export async function assignReviewer(origin, config) {
|
|
@@ -134,12 +153,28 @@ export async function assignReviewer(origin, config) {
|
|
|
134
153
|
return 'codex';
|
|
135
154
|
if (config.vendors.claude.enabled)
|
|
136
155
|
return 'claude';
|
|
156
|
+
if (config.vendors.opencode.enabled)
|
|
157
|
+
return 'opencode';
|
|
137
158
|
return null;
|
|
138
159
|
}
|
|
139
|
-
if (origin === 'claude'
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
160
|
+
if (origin === 'claude') {
|
|
161
|
+
if (config.vendors.codex.enabled)
|
|
162
|
+
return 'codex';
|
|
163
|
+
if (config.vendors.opencode.enabled)
|
|
164
|
+
return 'opencode';
|
|
165
|
+
}
|
|
166
|
+
if (origin === 'codex') {
|
|
167
|
+
if (config.vendors.claude.enabled)
|
|
168
|
+
return 'claude';
|
|
169
|
+
if (config.vendors.opencode.enabled)
|
|
170
|
+
return 'opencode';
|
|
171
|
+
}
|
|
172
|
+
if (origin === 'opencode') {
|
|
173
|
+
if (config.vendors.claude.enabled)
|
|
174
|
+
return 'claude';
|
|
175
|
+
if (config.vendors.codex.enabled)
|
|
176
|
+
return 'codex';
|
|
177
|
+
}
|
|
143
178
|
if (origin === 'human')
|
|
144
179
|
return resolveFallback(config);
|
|
145
180
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/github/detector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/github/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-bodies.d.ts","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMxD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"comment-bodies.d.ts","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMxD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAqB5E;AA0BD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uEAAuE;IACvE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAuChF;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAiB9E;AAKD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMnF;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,aAAa,GAAG,kBAAkB,CAAA;AAE/E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,kBAAkB,CAAA;IAE1B,OAAO,EAAE,MAAM,CAAA;IAGf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAMD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CA+BpF;AAQD,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,CAyB5F"}
|
|
@@ -9,8 +9,10 @@ import { renderSkillAttributionLine } from '../skills/attribution.js';
|
|
|
9
9
|
export function buildAttributionFooter(input) {
|
|
10
10
|
// Same name the commit subjects credit, from the same helper — a card and the
|
|
11
11
|
// commit it describes must not disagree about who did the work.
|
|
12
|
-
const vendor = input.vendor === 'codex' ? 'codex' : 'claude';
|
|
13
|
-
const vendorUrl = vendor === 'codex' ? 'https://openai.com/codex'
|
|
12
|
+
const vendor = input.vendor === 'codex' ? 'codex' : input.vendor === 'opencode' ? 'opencode' : 'claude';
|
|
13
|
+
const vendorUrl = vendor === 'codex' ? 'https://openai.com/codex'
|
|
14
|
+
: vendor === 'opencode' ? 'https://opencode.ai'
|
|
15
|
+
: 'https://claude.ai/code';
|
|
14
16
|
const vendorLink = `[${vendorDisplayName(vendor)}](${vendorUrl})`;
|
|
15
17
|
const sentence = input.override
|
|
16
18
|
|| `_${input.action} with ${vendorLink} via [Crosscheck](${CROSSCHECK_REPO_URL})_`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-bodies.js","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,yEAAyE;AACzE,iCAAiC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAuBrE,MAAM,UAAU,sBAAsB,CAAC,KAA6B;IAClE,8EAA8E;IAC9E,gEAAgE;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"comment-bodies.js","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CodexVendorConfig, QualityConfig, VendorConfig } from '../config/schema.js';
|
|
1
|
+
import type { CodexVendorConfig, OpenCodeVendorConfig, QualityConfig, VendorConfig } from '../config/schema.js';
|
|
2
2
|
export declare const CLAUDE_TIER_MODELS: Record<QualityConfig['tier'], string>;
|
|
3
3
|
export declare const CODEX_TIER_MODELS_API: Record<QualityConfig['tier'], string>;
|
|
4
4
|
/**
|
|
@@ -16,6 +16,9 @@ export declare function resolveClaudeModel(quality: QualityConfig, vendor?: Vend
|
|
|
16
16
|
export declare function resolveCodexModel(quality: QualityConfig, vendor: CodexVendorConfig, strategy?: {
|
|
17
17
|
tier: QualityConfig['tier'] | null;
|
|
18
18
|
} | null): string;
|
|
19
|
+
export declare function resolveOpenCodeModel(_quality: QualityConfig, vendor: OpenCodeVendorConfig, _strategy?: {
|
|
20
|
+
tier: QualityConfig['tier'] | null;
|
|
21
|
+
} | null): string | undefined;
|
|
19
22
|
export declare function modelDisplayName(model: string): string | null;
|
|
20
23
|
export declare function primaryModelFromUsage(modelUsage: unknown): string | null;
|
|
21
24
|
//# sourceMappingURL=review-models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-models.d.ts","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"review-models.d.ts","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAkB/G,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAgC,CAAA;AACrG,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAmC,CAAA;AAE3G;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACvD,aAAa,CAAC,MAAM,CAAC,CAGvB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,YAAY,EACrB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACvD,MAAM,CAMR;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACvD,MAAM,CAWR;AAOD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACxD,MAAM,GAAG,SAAS,CAEpB;AAcD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG7D;AAQD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAgBxE"}
|
|
@@ -47,6 +47,14 @@ export function resolveCodexModel(quality, vendor, strategy) {
|
|
|
47
47
|
return 'default';
|
|
48
48
|
return CODEX_TIER_MODELS_API[tier] || CODEX_TIER_MODELS_API.balanced;
|
|
49
49
|
}
|
|
50
|
+
// OpenCode's model is user-configured in opencode.json, not a vendor catalog
|
|
51
|
+
// crosscheck ships. So there is no built-in tier mapping: crosscheck only pins
|
|
52
|
+
// a model when `vendors.opencode.model` is set, and otherwise leaves the choice
|
|
53
|
+
// to the OpenCode CLI (which reads the user's configured default). Tier drives
|
|
54
|
+
// effort — the `--model provider/model#variant` suffix — in opencodeEffort.
|
|
55
|
+
export function resolveOpenCodeModel(_quality, vendor, _strategy) {
|
|
56
|
+
return vendor?.model ?? undefined;
|
|
57
|
+
}
|
|
50
58
|
// Derives a display name from the regular claude model ID shape:
|
|
51
59
|
// claude-{family}-{major}[-{minor}][-YYYYMMDD]. New models then render
|
|
52
60
|
// nicely without code changes. Returns null when the shape differs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-models.js","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review-models.js","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer-error.d.ts","sourceRoot":"","sources":["../../src/lib/reviewer-error.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAU7D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAE1B,OAAO,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"reviewer-error.d.ts","sourceRoot":"","sources":["../../src/lib/reviewer-error.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAU7D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAE1B,OAAO,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAuElF"}
|
|
@@ -3,18 +3,20 @@
|
|
|
3
3
|
// caller (watch.ts catch) can skip posting on fix/conflict-resolve/setup
|
|
4
4
|
// failures — those have their own handling.
|
|
5
5
|
//
|
|
6
|
-
// Reviewer errors carry a `claude: ` or `
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
6
|
+
// Reviewer errors carry a `claude: `, `codex: `, or `opencode: ` message prefix
|
|
7
|
+
// (set by the vendor runners when they wrap the underlying execa error) plus
|
|
8
|
+
// optional `timedOut`, `effectiveTimeoutMs`, `retryDelayMs`, `exitCode`, and
|
|
9
|
+
// `stderr` annotations.
|
|
10
10
|
import { isSubscriptionLimitError } from './smart-switch.js';
|
|
11
11
|
export function classifyReviewerError(err) {
|
|
12
12
|
if (!(err instanceof Error))
|
|
13
13
|
return null;
|
|
14
|
-
if (!/^(claude|codex):\s/.test(err.message))
|
|
14
|
+
if (!/^(claude|codex|opencode):\s/.test(err.message))
|
|
15
15
|
return null;
|
|
16
16
|
const ann = err;
|
|
17
|
-
const vendor = err.message.startsWith('claude:') ? 'claude'
|
|
17
|
+
const vendor = err.message.startsWith('claude:') ? 'claude'
|
|
18
|
+
: err.message.startsWith('opencode:') ? 'opencode'
|
|
19
|
+
: 'codex';
|
|
18
20
|
if (ann.timedOut === true) {
|
|
19
21
|
const timeoutSec = ann.effectiveTimeoutMs !== undefined
|
|
20
22
|
? Math.round(ann.effectiveTimeoutMs / 1000)
|
|
@@ -47,7 +49,9 @@ export function classifyReviewerError(err) {
|
|
|
47
49
|
// Auth failure — surface a specific login command rather than a generic message.
|
|
48
50
|
const msgBody = stripVendorPrefix(err.message);
|
|
49
51
|
if (/not logged in|auth failure|authentication required|bad credentials|unauthorized/i.test(msgBody)) {
|
|
50
|
-
const loginCmd = vendor === 'claude' ? 'claude auth login'
|
|
52
|
+
const loginCmd = vendor === 'claude' ? 'claude auth login'
|
|
53
|
+
: vendor === 'opencode' ? 'opencode auth login'
|
|
54
|
+
: 'codex login';
|
|
51
55
|
return {
|
|
52
56
|
reason: 'subprocess_error',
|
|
53
57
|
summary: `${vendor} auth expired — run \`${loginCmd}\` on the crosscheck host`,
|
|
@@ -75,6 +79,6 @@ export function classifyReviewerError(err) {
|
|
|
75
79
|
};
|
|
76
80
|
}
|
|
77
81
|
function stripVendorPrefix(msg) {
|
|
78
|
-
return msg.replace(/^(claude|codex):\s*/, '');
|
|
82
|
+
return msg.replace(/^(claude|codex|opencode):\s*/, '');
|
|
79
83
|
}
|
|
80
84
|
//# sourceMappingURL=reviewer-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer-error.js","sourceRoot":"","sources":["../../src/lib/reviewer-error.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,4CAA4C;AAC5C,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"reviewer-error.js","sourceRoot":"","sources":["../../src/lib/reviewer-error.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,4CAA4C;AAC5C,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,wBAAwB;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAmB5D,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAEjE,MAAM,GAAG,GAAG,GAAuC,CAAA;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ;QACzD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU;YAClD,CAAC,CAAC,OAAO,CAAA;IAEX,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,KAAK,SAAS;YACrD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,KAAK,SAAS;YAClD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;YACrC,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS;YACtC,CAAC,CAAC,GAAG,MAAM,wCAAwC,UAAU,GAAG;YAChE,CAAC,CAAC,GAAG,MAAM,gCAAgC,CAAA;QAC7C,MAAM,WAAW,GAAG;YAClB,aAAa,MAAM,IAAI;SACxB,CAAA;QACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,uBAAuB,UAAU,GAAG,CAAC,CAAA;QACxD,CAAC;QACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,WAAW,CAAC,IAAI,CAAC,wBAAwB,aAAa,yCAAyC,CAAC,CAAA;QAClG,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,kGAAkG,CAAC,CAAA;QACxH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACxE,CAAC;IAED,IAAI,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,GAAG,MAAM,oCAAoC;YACtD,OAAO,EAAE,aAAa,MAAM,cAAc,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;SAC3E,CAAA;IACH,CAAC;IAED,iFAAiF;IACjF,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC9C,IAAI,kFAAkF,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrG,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB;YACxD,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB;gBAC/C,CAAC,CAAC,aAAa,CAAA;QACjB,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,GAAG,MAAM,yBAAyB,QAAQ,2BAA2B;YAC9E,OAAO,EAAE;gBACP,aAAa,MAAM,IAAI;gBACvB,cAAc,QAAQ,0DAA0D;gBAChF,EAAE;gBACF,UAAU,OAAO,EAAE;aACpB,CAAC,IAAI,CAAC,IAAI,CAAC;SACb,CAAA;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,WAAW,GAAG,CAAC,aAAa,MAAM,IAAI,CAAC,CAAA;IAC7C,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9E,WAAW,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;IACrC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/D,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO;QACL,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,GAAG,MAAM,6BAA6B;QAC/C,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;KAChC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAA;AACxD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type PickerItem, type PickerOptions } from './repo-picker.js';
|
|
2
|
+
import type { Vendor } from './vendor.js';
|
|
3
|
+
export interface ReviewerReadiness {
|
|
4
|
+
installed: boolean;
|
|
5
|
+
authenticated: boolean;
|
|
6
|
+
detail: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ReviewerSetupResult {
|
|
9
|
+
selected: Vendor[];
|
|
10
|
+
skipped: Vendor[];
|
|
11
|
+
}
|
|
12
|
+
export interface ReviewerSetupDependencies {
|
|
13
|
+
probe: (vendor: Vendor) => Promise<ReviewerReadiness>;
|
|
14
|
+
select: (items: string[], options: PickerOptions) => Promise<string[]>;
|
|
15
|
+
choose: (items: PickerItem[], options: {
|
|
16
|
+
title: string;
|
|
17
|
+
defaultIndex?: number;
|
|
18
|
+
}) => Promise<number>;
|
|
19
|
+
run: (command: string, args: string[]) => Promise<void>;
|
|
20
|
+
report: (message: string) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function probeReviewerReadiness(vendor: Vendor): Promise<ReviewerReadiness>;
|
|
23
|
+
/** Interactive only. Missing tools remain selectable; no config is written here. */
|
|
24
|
+
export declare function setupReviewerTools(existingSelection?: Vendor[], dependencies?: ReviewerSetupDependencies): Promise<ReviewerSetupResult>;
|
|
25
|
+
//# sourceMappingURL=reviewer-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewer-setup.d.ts","sourceRoot":"","sources":["../../src/lib/reviewer-setup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AACD,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACrD,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACtE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACnG,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC;AAWD,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqBvF;AAeD,oFAAoF;AACpF,wBAAsB,kBAAkB,CACtC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAC5B,YAAY,GAAE,yBAAgD,GAC7D,OAAO,CAAC,mBAAmB,CAAC,CAkE9B"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { checkCodexAuth } from '../reviewers/codex.js';
|
|
3
|
+
import { checkOpenCodeAuth } from '../reviewers/opencode.js';
|
|
4
|
+
import { promptRepoPicker, promptSinglePicker } from './repo-picker.js';
|
|
5
|
+
const VENDORS = ['claude', 'codex', 'opencode'];
|
|
6
|
+
const PACKAGES = {
|
|
7
|
+
claude: '@anthropic-ai/claude-code', codex: '@openai/codex', opencode: '@opencode/cli',
|
|
8
|
+
};
|
|
9
|
+
const LOGIN_ARGS = {
|
|
10
|
+
claude: ['auth', 'login'], codex: ['login', '--device-auth'], opencode: ['auth', 'login'],
|
|
11
|
+
};
|
|
12
|
+
const AUTH_CHECKS = { codex: checkCodexAuth, opencode: checkOpenCodeAuth };
|
|
13
|
+
export async function probeReviewerReadiness(vendor) {
|
|
14
|
+
try {
|
|
15
|
+
await execa(vendor, ['--version'], { timeout: 10_000 });
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
// Only ENOENT means missing. A broken install needs repair, not a false
|
|
19
|
+
// authenticated signal or a login attempt against a nonexistent tool.
|
|
20
|
+
const error = err;
|
|
21
|
+
return { installed: error.code !== 'ENOENT', authenticated: false, detail: error.code === 'ENOENT' ? 'not installed' : 'CLI could not start; reinstall or repair it' };
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
if (vendor === 'claude') {
|
|
25
|
+
const { stdout } = await execa('claude', ['auth', 'status', '--json'], { timeout: 10_000 });
|
|
26
|
+
const auth = JSON.parse(stdout);
|
|
27
|
+
const authenticated = typeof auth === 'object' && auth !== null && 'loggedIn' in auth && auth.loggedIn === true;
|
|
28
|
+
return { installed: true, authenticated, detail: authenticated ? 'logged in' : 'login needed' };
|
|
29
|
+
}
|
|
30
|
+
const auth = await AUTH_CHECKS[vendor]();
|
|
31
|
+
return { installed: true, authenticated: auth.ok, detail: auth.detail };
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return { installed: true, authenticated: false, detail: 'authentication check failed; log in and retry' };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const DEFAULT_DEPENDENCIES = {
|
|
38
|
+
probe: probeReviewerReadiness,
|
|
39
|
+
select: promptRepoPicker,
|
|
40
|
+
choose: promptSinglePicker,
|
|
41
|
+
run: async (command, args) => {
|
|
42
|
+
// Pickers resume the parent stream. Pause it so it cannot consume keys
|
|
43
|
+
// intended for the login CLI sharing this terminal; the next picker resumes it.
|
|
44
|
+
process.stdin.pause();
|
|
45
|
+
await execa(command, args, { stdio: 'inherit' });
|
|
46
|
+
},
|
|
47
|
+
report: message => console.log(message),
|
|
48
|
+
};
|
|
49
|
+
/** Interactive only. Missing tools remain selectable; no config is written here. */
|
|
50
|
+
export async function setupReviewerTools(existingSelection, dependencies = DEFAULT_DEPENDENCIES) {
|
|
51
|
+
const statuses = await Promise.all(VENDORS.map(async (vendor) => ({ vendor, status: await dependencies.probe(vendor) })));
|
|
52
|
+
const readiness = Object.fromEntries(statuses.map(({ vendor, status }) => [vendor, status]));
|
|
53
|
+
const initialSelected = existingSelection ?? VENDORS.filter(vendor => readiness[vendor].authenticated && vendor !== 'opencode');
|
|
54
|
+
dependencies.report('Select the tools you want to use. Missing tools can be installed next; space toggles, enter continues.');
|
|
55
|
+
const requested = await dependencies.select(VENDORS, {
|
|
56
|
+
title: 'Which reviewer tools would you like to use?', initialSelected,
|
|
57
|
+
getDescription: vendor => {
|
|
58
|
+
const status = readiness[vendor];
|
|
59
|
+
return status.authenticated ? 'ready' : status.installed ? 'login or repair needed' : 'not installed — setup available';
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
if (requested.length === 0)
|
|
63
|
+
throw new Error('No reviewer tools selected; config was not written.');
|
|
64
|
+
if (requested.some(vendor => !VENDORS.includes(vendor)))
|
|
65
|
+
throw new Error('Invalid reviewer tool selected; config was not written.');
|
|
66
|
+
const selected = [];
|
|
67
|
+
const skipped = [];
|
|
68
|
+
async function prepare(vendor, status) {
|
|
69
|
+
if (status.installed && status.authenticated)
|
|
70
|
+
return true;
|
|
71
|
+
const install = ['install', '--global', PACKAGES[vendor]];
|
|
72
|
+
const login = LOGIN_ARGS[vendor];
|
|
73
|
+
dependencies.report(` ${vendor}: ${status.detail}`);
|
|
74
|
+
dependencies.report(` Install/update: npm ${install.join(' ')}`);
|
|
75
|
+
dependencies.report(` Log in: ${vendor} ${login.join(' ')}`);
|
|
76
|
+
const actions = [
|
|
77
|
+
...(status.installed ? [{ action: 'login', label: 'Log in now', description: `Run ${vendor} ${login.join(' ')}` }] : []),
|
|
78
|
+
{ action: 'install', label: status.installed ? 'Reinstall/update' : 'Install now', description: `Run npm ${install.join(' ')}` },
|
|
79
|
+
{ action: 'retry', label: 'Check again', description: 'After installing or logging in in another terminal' },
|
|
80
|
+
{ action: 'skip', label: 'Skip this tool', description: 'Continue with the other selected tools' },
|
|
81
|
+
{ action: 'abort', label: 'Cancel setup', description: 'Leave existing configuration unchanged' },
|
|
82
|
+
];
|
|
83
|
+
const index = await dependencies.choose(actions, { title: `Set up ${vendor}` });
|
|
84
|
+
const action = actions[index]?.action;
|
|
85
|
+
if (action === 'skip')
|
|
86
|
+
return false;
|
|
87
|
+
if (action === 'abort')
|
|
88
|
+
throw new Error('Reviewer setup canceled; config was not written.');
|
|
89
|
+
if (!action)
|
|
90
|
+
throw new Error('Invalid setup action; config was not written.');
|
|
91
|
+
if (action === 'install' || action === 'login') {
|
|
92
|
+
try {
|
|
93
|
+
await dependencies.run(action === 'install' ? 'npm' : vendor, action === 'install' ? install : login);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
dependencies.report(` ${vendor}: command failed or was canceled. Fix it in another terminal, check again, or skip this tool.`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// A successful installer/login exit is not readiness evidence: re-probe.
|
|
100
|
+
return prepare(vendor, await dependencies.probe(vendor));
|
|
101
|
+
}
|
|
102
|
+
async function prepareNext(index) {
|
|
103
|
+
if (index >= requested.length)
|
|
104
|
+
return;
|
|
105
|
+
const vendor = requested[index];
|
|
106
|
+
if (await prepare(vendor, readiness[vendor]))
|
|
107
|
+
selected.push(vendor);
|
|
108
|
+
else
|
|
109
|
+
skipped.push(vendor);
|
|
110
|
+
await prepareNext(index + 1);
|
|
111
|
+
}
|
|
112
|
+
await prepareNext(0);
|
|
113
|
+
if (selected.length === 0)
|
|
114
|
+
throw new Error('No selected reviewer is ready; config was not written. Rerun onboard after installing and logging in.');
|
|
115
|
+
// Recheck all retained tools after setup, before allowing persistence. A tool
|
|
116
|
+
// that lost auth while another was being installed must not be enabled.
|
|
117
|
+
const verified = await Promise.all(selected.map(async (vendor) => ({ vendor, status: await dependencies.probe(vendor) })));
|
|
118
|
+
if (verified.some(({ status }) => !status.installed || !status.authenticated)) {
|
|
119
|
+
throw new Error('A selected reviewer is no longer ready; rerun onboard. Config was not written.');
|
|
120
|
+
}
|
|
121
|
+
dependencies.report(` Ready: ${selected.join(', ')}`);
|
|
122
|
+
if (skipped.length > 0)
|
|
123
|
+
dependencies.report(` Skipped (disabled): ${skipped.join(', ')}`);
|
|
124
|
+
return { selected, skipped };
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=reviewer-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewer-setup.js","sourceRoot":"","sources":["../../src/lib/reviewer-setup.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/runner.d.ts
CHANGED
|
@@ -76,7 +76,7 @@ export interface WorkflowContext {
|
|
|
76
76
|
linearAuth?: ResolvedLinearAuth | null;
|
|
77
77
|
steps?: import('./workflow.js').WorkflowStep[];
|
|
78
78
|
stepsExplicitlyScoped?: boolean;
|
|
79
|
-
smartSwitchFallback?:
|
|
79
|
+
smartSwitchFallback?: Vendor;
|
|
80
80
|
pushedShas?: string[];
|
|
81
81
|
initialReviewComment?: {
|
|
82
82
|
id?: number;
|
|
@@ -171,15 +171,15 @@ export declare function mergeStepOutcomes(base: StepOutcomes | undefined, next:
|
|
|
171
171
|
export declare function fixCommitSubject(appliedCount: number, vendor: Vendor): string;
|
|
172
172
|
export declare function fixPRCommitSubject(prNumber: number, vendor: Vendor): string;
|
|
173
173
|
export declare function conflictResolveCommitSubject(conflictCount: number, vendor: Vendor): string;
|
|
174
|
-
export declare function resolveFixVendor(stepReviewer: string, origin: PROrigin, config: Config, fallback?:
|
|
175
|
-
vendor:
|
|
174
|
+
export declare function resolveFixVendor(stepReviewer: string, origin: PROrigin, config: Config, fallback?: Vendor): {
|
|
175
|
+
vendor: Vendor | null;
|
|
176
176
|
usedHumanFallback: boolean;
|
|
177
|
-
substitutedOriginVendor?:
|
|
177
|
+
substitutedOriginVendor?: Vendor;
|
|
178
178
|
};
|
|
179
|
-
export declare function resolveConflictResolveVendor(stepReviewer: string, origin: PROrigin, config: Config, fallback?:
|
|
180
|
-
vendor:
|
|
179
|
+
export declare function resolveConflictResolveVendor(stepReviewer: string, origin: PROrigin, config: Config, fallback?: Vendor): {
|
|
180
|
+
vendor: Vendor | null;
|
|
181
181
|
usedHumanFallback: boolean;
|
|
182
|
-
substitutedOriginVendor?:
|
|
182
|
+
substitutedOriginVendor?: Vendor;
|
|
183
183
|
};
|
|
184
184
|
/**
|
|
185
185
|
* The clone and the PR fields classification reads. Narrower than
|
|
@@ -274,6 +274,7 @@ export interface RoundExecution {
|
|
|
274
274
|
quality: Config['quality'];
|
|
275
275
|
claudeVendor: Config['vendors']['claude'];
|
|
276
276
|
codexVendor: Config['vendors']['codex'];
|
|
277
|
+
opencodeVendor: Config['vendors']['opencode'];
|
|
277
278
|
/** `config` with the above folded in, for callees that take the whole config. */
|
|
278
279
|
roundConfig: Config;
|
|
279
280
|
escalated: boolean;
|
package/dist/lib/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
|