@humanbased/crosscheck 1.8.0-beta.17 → 1.8.0-beta.23

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.
Files changed (55) hide show
  1. package/crosscheck.config.example.yml +23 -0
  2. package/dist/__tests__/conflict-resolve.test.js +93 -1
  3. package/dist/__tests__/conflict-resolve.test.js.map +1 -1
  4. package/dist/__tests__/onboard-preservation.test.js +15 -0
  5. package/dist/__tests__/onboard-preservation.test.js.map +1 -1
  6. package/dist/__tests__/opencode-auth.test.js +29 -1
  7. package/dist/__tests__/opencode-auth.test.js.map +1 -1
  8. package/dist/__tests__/opencode-cli-compat.test.d.ts +2 -0
  9. package/dist/__tests__/opencode-cli-compat.test.d.ts.map +1 -0
  10. package/dist/__tests__/opencode-cli-compat.test.js +108 -0
  11. package/dist/__tests__/opencode-cli-compat.test.js.map +1 -0
  12. package/dist/__tests__/opencode-policy.test.js +8 -3
  13. package/dist/__tests__/opencode-policy.test.js.map +1 -1
  14. package/dist/__tests__/opencode-standalone.test.js +42 -30
  15. package/dist/__tests__/opencode-standalone.test.js.map +1 -1
  16. package/dist/__tests__/optimize.test.js +1 -0
  17. package/dist/__tests__/optimize.test.js.map +1 -1
  18. package/dist/__tests__/runner.test.js +65 -21
  19. package/dist/__tests__/runner.test.js.map +1 -1
  20. package/dist/commands/issue.d.ts.map +1 -1
  21. package/dist/commands/issue.js +3 -5
  22. package/dist/commands/issue.js.map +1 -1
  23. package/dist/commands/onboard.d.ts +3 -0
  24. package/dist/commands/onboard.d.ts.map +1 -1
  25. package/dist/commands/onboard.js +92 -12
  26. package/dist/commands/onboard.js.map +1 -1
  27. package/dist/commands/optimize.d.ts.map +1 -1
  28. package/dist/commands/optimize.js +3 -5
  29. package/dist/commands/optimize.js.map +1 -1
  30. package/dist/config/schema.d.ts +37 -0
  31. package/dist/config/schema.d.ts.map +1 -1
  32. package/dist/config/schema.js +14 -0
  33. package/dist/config/schema.js.map +1 -1
  34. package/dist/lib/comment-bodies.d.ts +3 -0
  35. package/dist/lib/comment-bodies.d.ts.map +1 -1
  36. package/dist/lib/comment-bodies.js +2 -3
  37. package/dist/lib/comment-bodies.js.map +1 -1
  38. package/dist/lib/review-memory.d.ts +2 -2
  39. package/dist/lib/runner.d.ts +1 -0
  40. package/dist/lib/runner.d.ts.map +1 -1
  41. package/dist/lib/runner.js +114 -66
  42. package/dist/lib/runner.js.map +1 -1
  43. package/dist/reviewers/conflict-resolve.d.ts +7 -3
  44. package/dist/reviewers/conflict-resolve.d.ts.map +1 -1
  45. package/dist/reviewers/conflict-resolve.js +197 -11
  46. package/dist/reviewers/conflict-resolve.js.map +1 -1
  47. package/dist/reviewers/fix.d.ts.map +1 -1
  48. package/dist/reviewers/fix.js +8 -6
  49. package/dist/reviewers/fix.js.map +1 -1
  50. package/dist/reviewers/opencode.d.ts +25 -2
  51. package/dist/reviewers/opencode.d.ts.map +1 -1
  52. package/dist/reviewers/opencode.js +128 -47
  53. package/dist/reviewers/opencode.js.map +1 -1
  54. package/get-started.md +15 -1
  55. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { execa } from 'execa';
2
- import { rmSync, mkdtempSync, renameSync, existsSync, writeFileSync } from 'fs';
3
- import { join } from 'path';
2
+ import { rmSync, mkdtempSync, renameSync, existsSync, writeFileSync, accessSync, statSync, constants } from 'fs';
3
+ import { join, delimiter } from 'path';
4
4
  import { tmpdir } from 'os';
5
5
  import { stripVTControlCharacters } from 'util';
6
6
  import { DEFAULT_REVIEW_INSTRUCTIONS } from '../lib/workflow.js';
@@ -93,11 +93,19 @@ export function opencodePolicy(allowEdit, format) {
93
93
  if (format === 'v1') {
94
94
  return {
95
95
  permission: {
96
+ // Conflict resolution edits untrusted paths. Keep OpenCode from
97
+ // following a path the checkout redirects outside its own workspace.
98
+ external_directory: 'deny',
96
99
  bash: {
97
100
  '*': 'deny',
101
+ // A `verb *` pattern may not match the bare command, so allow both.
102
+ 'git status': 'allow',
98
103
  'git status *': 'allow',
104
+ 'git diff': 'allow',
99
105
  'git diff *': 'allow',
106
+ 'git log': 'allow',
100
107
  'git log *': 'allow',
108
+ 'git show': 'allow',
101
109
  'git show *': 'allow',
102
110
  // Keep the read-only allowlist from turning git diff into a file write.
103
111
  'git diff --output*': 'deny',
@@ -109,6 +117,7 @@ export function opencodePolicy(allowEdit, format) {
109
117
  }
110
118
  return {
111
119
  permissions: [
120
+ { action: 'external_directory', resource: '*', effect: 'deny' },
112
121
  { action: 'shell', resource: '*', effect: 'deny' },
113
122
  { action: 'shell', resource: 'git status *', effect: 'allow' },
114
123
  { action: 'shell', resource: 'git diff *', effect: 'allow' },
@@ -206,7 +215,8 @@ export async function runOpenCodeReview(repoDir, baseBranch, prTitle, quality, v
206
215
  // without it. The env allowlist and the throwaway clone bound the blast
207
216
  // radius of the widened permissions. `--standalone` (a private server, so a
208
217
  // review never shares a session with the operator) is v2-only and is added
209
- // only when the installed CLI accepts it.
218
+ // only when the installed CLI accepts it; a CLI without `--auto` is refused
219
+ // up front (see requireOpenCodeRun).
210
220
  //
211
221
  // OpenCode has no separate effort flag — reasoning effort is the `#variant`
212
222
  // suffix on `--model provider/model#variant`. Without a pinned model there is
@@ -215,10 +225,8 @@ export async function runOpenCodeReview(repoDir, baseBranch, prTitle, quality, v
215
225
  // default model AND its default variant run, and `effort` is reported but
216
226
  // not applied (it is not a claim the CLI was given).
217
227
  const modelArgs = model ? ['--model', `${model}#${effort}`] : [];
218
- const standaloneSupported = await opencodeSupportsStandalone();
219
- const policyFormat = standaloneSupported ? 'v2' : 'v1';
220
- const standaloneArgs = standaloneSupported ? ['--standalone'] : [];
221
- const args = ['run', '--format', 'json', '--auto', ...standaloneArgs, ...modelArgs];
228
+ const { baseArgs, policyFormat } = await requireOpenCodeRun();
229
+ const args = [...baseArgs, ...modelArgs];
222
230
  onLog?.(` running: opencode ${args.join(' ')}`);
223
231
  let lastErr = undefined;
224
232
  for (let attempt = 1; attempt <= MAX_OPENCODE_RETRIES; attempt++) {
@@ -254,7 +262,8 @@ export async function runOpenCodeReview(repoDir, baseBranch, prTitle, quality, v
254
262
  const execa = err;
255
263
  const rawStderr = execa.stderr ?? '';
256
264
  const fullMessage = rawStderr || execa.message || '';
257
- if (isRetryableOpenCodeError(fullMessage) && attempt < MAX_OPENCODE_RETRIES) {
265
+ const usageRejected = isOpenCodeUsageOutput(rawStderr);
266
+ if (!usageRejected && isRetryableOpenCodeError(fullMessage) && attempt < MAX_OPENCODE_RETRIES) {
258
267
  const delay = OPENCODE_RETRY_DELAY_MS * attempt; // 5s, 10s
259
268
  onLog?.(` opencode: transient error (${fullMessage.slice(0, 80)}), retrying in ${delay / 1000}s (attempt ${attempt}/${MAX_OPENCODE_RETRIES})...`);
260
269
  await new Promise(resolve => setTimeout(resolve, delay));
@@ -265,7 +274,9 @@ export async function runOpenCodeReview(repoDir, baseBranch, prTitle, quality, v
265
274
  const retryNote = execa.retryDelayMs !== undefined ? ' (retried once)' : '';
266
275
  const summary = execa.timedOut
267
276
  ? `timed out after ${effectiveMs !== undefined ? effectiveMs / 1000 : '?'}s${retryNote} — PR diff may be too large (tier: ${quality.tier})`
268
- : vendorFailureSummary(execa, extractOpenCodeErrorSummary);
277
+ : usageRejected
278
+ ? OPENCODE_USAGE_SUMMARY
279
+ : vendorFailureSummary(execa, extractOpenCodeErrorSummary);
269
280
  const thrown = Object.assign(new Error(`opencode: ${summary}`), {
270
281
  exitCode: execa.exitCode,
271
282
  timedOut: execa.timedOut,
@@ -280,53 +291,112 @@ export async function runOpenCodeReview(repoDir, baseBranch, prTitle, quality, v
280
291
  throw lastErr;
281
292
  throw new Error('opencode: unexpected retry loop exit');
282
293
  }
283
- // `--standalone` exists only in the v2 CLI. The v1 `opencode` rejects the flag
284
- // before reading stdin, so every review and fix fails with yargs help text and
285
- // exit code 1. Probe `run --help` for each invocation and pass the flag only
286
- // when the installed binary actually lists it. The probe is deliberately not
287
- // cached: a long-lived crosscheck process can outlive an OpenCode upgrade, and
288
- // either cached answer would then be wrong.
289
- //
290
- // On v2, omitting `--standalone` would attach to the operator's shared
291
- // background server, so an unreadable probe must fail the run rather than
292
- // guess "unsupported". The v1 CLI has no shared server: its `run` starts an
293
- // in-process server unless the caller passes `--attach` (opencode v1.19.3,
294
- // cli/cmd/run.ts:129-131), and Crosscheck never passes `--attach`. Accept the
295
- // flagless path only for a help listing with the v1 shape — an `Options:`
296
- // section plus the opt-in `--attach` and the local server's `--port`.
297
- export function parseOpenCodeStandaloneSupport(helpOutput) {
298
- return /(?:^|\s)--standalone\b/m.test(stripVTControlCharacters(helpOutput));
299
- }
300
- function looksLikeV1RunHelp(helpOutput) {
294
+ export function parseOpenCodeRunHelp(helpOutput) {
301
295
  const help = stripVTControlCharacters(helpOutput);
302
- return /(?:^|\n)[ \t]*Options:[ \t]*(?:\n|$)/.test(help) && /--attach\b/.test(help) && /--port\b/.test(help);
296
+ // `(?![\w-])` so a longer flag such as `--auto-approve` does not count.
297
+ const lists = (flag) => new RegExp(`(?:^|\\s)--${flag}(?![\\w-])`, 'm').test(help);
298
+ return {
299
+ supportsAuto: lists('auto'),
300
+ supportsStandalone: lists('standalone'),
301
+ v1Shape: /(?:^|\n)[ \t]*Options:[ \t]*(?:\n|$)/.test(help) && /--attach\b/.test(help) && /--port\b/.test(help),
302
+ };
303
+ }
304
+ // First executable named `opencode` on the PATH the subprocess will see, so the
305
+ // reported path is the one a review would actually run.
306
+ function resolveOpenCodePath(pathEnv) {
307
+ const names = process.platform === 'win32' ? ['opencode.exe', 'opencode.cmd', 'opencode'] : ['opencode'];
308
+ for (const dir of (pathEnv ?? '').split(delimiter)) {
309
+ if (!dir)
310
+ continue;
311
+ for (const name of names) {
312
+ const candidate = join(dir, name);
313
+ try {
314
+ if (!statSync(candidate).isFile())
315
+ continue;
316
+ accessSync(candidate, constants.X_OK);
317
+ return candidate;
318
+ }
319
+ catch { /* not here — keep walking */ }
320
+ }
321
+ }
322
+ return undefined;
303
323
  }
304
- export async function opencodeSupportsStandalone() {
305
- let stdout = '';
306
- let stderr = '';
307
- let exitCode;
324
+ async function readOpenCodeVersion(env) {
308
325
  try {
309
- const result = await execa('opencode', ['run', '--help'], {
326
+ const { stdout } = await execa('opencode', ['--version'], { timeout: 10_000, extendEnv: false, env });
327
+ return /\d+\.\d+\.\d+\S*/.exec(stdout ?? '')?.[0];
328
+ }
329
+ catch {
330
+ return undefined; // best effort: only used to make an error message specific
331
+ }
332
+ }
333
+ export async function probeOpenCodeCli() {
334
+ const env = buildOpenCodeEnv();
335
+ const [helpAttempt, version] = await Promise.all([
336
+ execa('opencode', ['run', '--help'], {
310
337
  timeout: 10_000,
311
338
  reject: false,
312
339
  extendEnv: false,
313
- env: buildOpenCodeEnv(),
314
- });
315
- stdout = result.stdout ?? '';
316
- stderr = result.stderr ?? '';
317
- exitCode = result.exitCode;
340
+ env,
341
+ }).then(result => ({ result }), (error) => ({ error })),
342
+ readOpenCodeVersion(env),
343
+ ]);
344
+ if ('error' in helpAttempt) {
345
+ const detail = helpAttempt.error instanceof Error ? helpAttempt.error.message : String(helpAttempt.error);
346
+ throw new Error(`opencode: CLI capability probe failed (${detail}); refusing to run without session isolation`);
318
347
  }
319
- catch (err) {
320
- const detail = err instanceof Error ? err.message : String(err);
321
- throw new Error(`opencode: --standalone support probe failed (${detail}); refusing to run without session isolation`);
322
- }
323
- const help = `${stdout}\n${stderr}`;
324
- if (parseOpenCodeStandaloneSupport(help))
325
- return true;
326
- if (exitCode !== 0 || !looksLikeV1RunHelp(help)) {
348
+ const { stdout, stderr, exitCode } = helpAttempt.result;
349
+ const parsed = parseOpenCodeRunHelp(`${stdout ?? ''}\n${stderr ?? ''}`);
350
+ if (!parsed.supportsStandalone && (exitCode !== 0 || !parsed.v1Shape)) {
327
351
  throw new Error(`opencode: could not read 'opencode run --help' (exit ${exitCode ?? 'unknown'}); refusing to run without session isolation`);
328
352
  }
329
- return false;
353
+ return {
354
+ version,
355
+ path: resolveOpenCodePath(env.PATH),
356
+ supportsAuto: parsed.supportsAuto,
357
+ supportsStandalone: parsed.supportsStandalone,
358
+ policyFormat: parsed.supportsStandalone ? 'v2' : 'v1',
359
+ };
360
+ }
361
+ // Why this CLI cannot be driven, or undefined when it can. `--auto` is required
362
+ // for every headless run (see runOpenCodeReview), so a CLI without it is
363
+ // unusable rather than degraded.
364
+ export function openCodeIncompatibility(info) {
365
+ if (info.supportsAuto)
366
+ return undefined;
367
+ const who = `opencode${info.version ? ` ${info.version}` : ''}${info.path ? ` at ${info.path}` : ''}`;
368
+ return `${who} does not support 'run --auto' — upgrade it, or a newer install is shadowed on PATH (check: which -a opencode)`;
369
+ }
370
+ // The args every headless `opencode run` shares, from an already-probed CLI.
371
+ // Throws the incompatibility message instead of letting the CLI print usage.
372
+ export function opencodeRunBaseArgs(info) {
373
+ const incompatibility = openCodeIncompatibility(info);
374
+ if (incompatibility)
375
+ throw new Error(`opencode: ${incompatibility}`);
376
+ return ['run', '--format', 'json', '--auto', ...(info.supportsStandalone ? ['--standalone'] : [])];
377
+ }
378
+ /** Probes the installed CLI and returns the shared run args plus the policy format it accepts. */
379
+ export async function requireOpenCodeRun() {
380
+ const info = await probeOpenCodeCli();
381
+ return { baseArgs: opencodeRunBaseArgs(info), policyFormat: info.policyFormat };
382
+ }
383
+ // What a CLI prints (to stderr) when yargs rejects the arguments: the full
384
+ // usage for the command. A real run failure never looks like this.
385
+ export function isOpenCodeUsageOutput(stderr) {
386
+ const text = stripVTControlCharacters(stderr);
387
+ return /^[ \t]*opencode run \[message\.\.\]/m.test(text)
388
+ || (/^[ \t]*Positionals:/m.test(text) && /^[ \t]*Options:/m.test(text));
389
+ }
390
+ export const OPENCODE_USAGE_SUMMARY = 'opencode CLI rejected the arguments (printed usage) — incompatible opencode version; check: which -a opencode';
391
+ // Auth failures the fix step should relabel. Matched against stderr only, never
392
+ // against usage text: the usage listing mentions "basic auth password", which
393
+ // the old `/auth/` test mistook for a login problem on every CLI mismatch.
394
+ const OPENCODE_AUTH_FAILURE = /not logged in|no (?:providers|credentials)|unauthori[sz]ed|\b401\b|invalid api key|auth(?:entication)? (?:failed|error|required)|run: opencode auth login/i;
395
+ export function isOpenCodeAuthFailure(stderr, message) {
396
+ const text = stderr && stderr.trim() ? stderr : message;
397
+ if (isOpenCodeUsageOutput(text))
398
+ return false;
399
+ return OPENCODE_AUTH_FAILURE.test(stripVTControlCharacters(text));
330
400
  }
331
401
  // `opencode auth list` has no machine-readable mode: `--format json`,
332
402
  // `--format=json`, and `--json` all exit 1 and print help on every CLI tested
@@ -357,6 +427,17 @@ export async function checkOpenCodeAuth() {
357
427
  if (providerCount === 0) {
358
428
  return { ok: false, detail: 'no providers configured — run: opencode auth login' };
359
429
  }
430
+ // A readiness check, not only an auth check: a logged-in CLI that cannot run
431
+ // headless (no `--auto`) must not be assigned reviews, and the reason should
432
+ // show up in `status`/`init`.
433
+ try {
434
+ const incompatibility = openCodeIncompatibility(await probeOpenCodeCli());
435
+ if (incompatibility)
436
+ return { ok: false, detail: incompatibility };
437
+ }
438
+ catch (probeErr) {
439
+ return { ok: false, detail: probeErr instanceof Error ? probeErr.message : String(probeErr) };
440
+ }
360
441
  return { ok: true, detail: `${providerCount} provider(s) configured` };
361
442
  }
362
443
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/reviewers/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/reviewers/opencode.ts"],"names":[],"mappings":"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"}
package/get-started.md CHANGED
@@ -661,7 +661,7 @@ crosscheck fix https://github.com/owner/repo/pull/245,255 --fixer claude
661
661
  crosscheck resolve https://github.com/owner/repo/pull/245-256 --vendor claude
662
662
  ```
663
663
 
664
- When the named step is not present in the active `workflow.yml`, `recheck` and `conflict-resolve` are synthesized with built-in defaults so the command still runs. `resolve` only supports `claude` (Codex conflict resolution is not yet supported); pass `--vendor claude` if the PR's assigned reviewer is Codex.
664
+ When the named step is not present in the active `workflow.yml`, `recheck` and `conflict-resolve` are synthesized with built-in defaults so the command still runs. `resolve` uses the PR's assigned agent; pass `--vendor claude|codex|opencode` to force a different one.
665
665
 
666
666
  ---
667
667
 
@@ -1342,6 +1342,20 @@ routing:
1342
1342
  # 'codex' | 'claude' | 'opencode' always uses that vendor; null = skip the PR.
1343
1343
  fallback_reviewer: auto
1344
1344
 
1345
+ # ── Agent priority ────────────────────────────────────────────────────────────
1346
+ # Per-task order for choosing among enabled vendors. `crosscheck onboard` writes
1347
+ # this from your answers. Omit it to keep the legacy routing below.
1348
+ #
1349
+ # review — cross-vendor still applies: the author's own agent is
1350
+ # skipped while another enabled vendor can review.
1351
+ # fix / conflict_resolve — the author's own agent still runs first when enabled;
1352
+ # this order picks the agent for human-authored PRs and
1353
+ # fallbacks.
1354
+ agent_priority:
1355
+ review: [codex, claude] # enabled vendors not listed are appended
1356
+ fix: [codex, claude]
1357
+ conflict_resolve: [claude, codex]
1358
+
1345
1359
  # ── Tunnel (watch mode only) ──────────────────────────────────────────────────
1346
1360
  # localhost.run (default) — SSH tunnel, zero install, URL changes on reconnect.
1347
1361
  # smee — stable relay via smee.io; events queued while offline.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humanbased/crosscheck",
3
- "version": "1.8.0-beta.17",
3
+ "version": "1.8.0-beta.23",
4
4
  "description": "AI code review pipeline that turns agent-written PRs into merge-ready patches",
5
5
  "bin": {
6
6
  "crosscheck": "dist/cli.js",