@humanbased/crosscheck 0.17.1-beta.2 → 0.18.0-beta.19
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 +45 -6
- package/README.zh.md +11 -1
- package/dist/__tests__/board.test.js +18 -0
- package/dist/__tests__/board.test.js.map +1 -1
- package/dist/__tests__/kickass.test.js +1 -1
- package/dist/__tests__/kickass.test.js.map +1 -1
- package/dist/__tests__/multi-run.test.d.ts +2 -0
- package/dist/__tests__/multi-run.test.d.ts.map +1 -0
- package/dist/__tests__/multi-run.test.js +105 -0
- package/dist/__tests__/multi-run.test.js.map +1 -0
- package/dist/__tests__/pr-spec.test.d.ts +2 -0
- package/dist/__tests__/pr-spec.test.d.ts.map +1 -0
- package/dist/__tests__/pr-spec.test.js +82 -0
- package/dist/__tests__/pr-spec.test.js.map +1 -0
- package/dist/__tests__/review-models.test.js +40 -2
- package/dist/__tests__/review-models.test.js.map +1 -1
- package/dist/__tests__/run.test.js +48 -1
- package/dist/__tests__/run.test.js.map +1 -1
- package/dist/__tests__/tips.test.js +9 -0
- package/dist/__tests__/tips.test.js.map +1 -1
- package/dist/cli.js +70 -29
- package/dist/cli.js.map +1 -1
- package/dist/commands/kickass.d.ts +2 -12
- package/dist/commands/kickass.d.ts.map +1 -1
- package/dist/commands/kickass.js +11 -32
- package/dist/commands/kickass.js.map +1 -1
- package/dist/commands/review.d.ts +8 -0
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +54 -0
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/run.d.ts +8 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +172 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +107 -11
- package/dist/commands/watch.js.map +1 -1
- package/dist/lib/board.d.ts.map +1 -1
- package/dist/lib/board.js +15 -5
- package/dist/lib/board.js.map +1 -1
- package/dist/lib/cli-invocation.d.ts +13 -0
- package/dist/lib/cli-invocation.d.ts.map +1 -0
- package/dist/lib/cli-invocation.js +27 -0
- package/dist/lib/cli-invocation.js.map +1 -0
- package/dist/lib/multi-run.d.ts +34 -0
- package/dist/lib/multi-run.d.ts.map +1 -0
- package/dist/lib/multi-run.js +127 -0
- package/dist/lib/multi-run.js.map +1 -0
- package/dist/lib/pr-spec.d.ts +14 -0
- package/dist/lib/pr-spec.d.ts.map +1 -0
- package/dist/lib/pr-spec.js +85 -0
- package/dist/lib/pr-spec.js.map +1 -0
- package/dist/lib/review-models.d.ts +1 -0
- package/dist/lib/review-models.d.ts.map +1 -1
- package/dist/lib/review-models.js +37 -9
- package/dist/lib/review-models.js.map +1 -1
- package/dist/lib/tips.d.ts +1 -1
- package/dist/lib/tips.d.ts.map +1 -1
- package/dist/lib/tips.js +4 -0
- package/dist/lib/tips.js.map +1 -1
- package/dist/reviewers/claude.d.ts.map +1 -1
- package/dist/reviewers/claude.js +6 -2
- package/dist/reviewers/claude.js.map +1 -1
- package/get-started.md +103 -10
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { modelDisplayName, resolveClaudeModel, resolveCodexModel } from '../lib/review-models.js';
|
|
2
|
+
import { modelDisplayName, primaryModelFromUsage, resolveClaudeModel, resolveCodexModel } from '../lib/review-models.js';
|
|
3
3
|
const quality = (tier) => ({
|
|
4
4
|
tier,
|
|
5
5
|
focus: [],
|
|
@@ -45,7 +45,8 @@ describe('review model resolution', () => {
|
|
|
45
45
|
expect(resolveCodexModel(quality('thorough'), codexVendor('subscription'))).toBe('default');
|
|
46
46
|
expect(modelDisplayName('default')).toBeNull();
|
|
47
47
|
});
|
|
48
|
-
it('
|
|
48
|
+
it('derives display names for current claude and codex models', () => {
|
|
49
|
+
expect(modelDisplayName('claude-opus-4-8')).toBe('Opus 4.8');
|
|
49
50
|
expect(modelDisplayName('claude-opus-4-7')).toBe('Opus 4.7');
|
|
50
51
|
expect(modelDisplayName('claude-sonnet-4-6')).toBe('Sonnet 4.6');
|
|
51
52
|
expect(modelDisplayName('claude-haiku-4-5-20251001')).toBe('Haiku 4.5');
|
|
@@ -53,5 +54,42 @@ describe('review model resolution', () => {
|
|
|
53
54
|
expect(modelDisplayName('o3')).toBe('o3');
|
|
54
55
|
expect(modelDisplayName('gpt-4o-mini')).toBe('gpt-4o-mini');
|
|
55
56
|
});
|
|
57
|
+
it('derives display names for future claude models without code changes', () => {
|
|
58
|
+
expect(modelDisplayName('claude-opus-4-9')).toBe('Opus 4.9');
|
|
59
|
+
expect(modelDisplayName('claude-fable-5')).toBe('Fable 5');
|
|
60
|
+
expect(modelDisplayName('claude-fable-5-1')).toBe('Fable 5.1');
|
|
61
|
+
expect(modelDisplayName('claude-nova-6-2-20270101')).toBe('Nova 6.2');
|
|
62
|
+
});
|
|
63
|
+
it('falls back to the raw ID for IDs outside the regular claude shape', () => {
|
|
64
|
+
expect(modelDisplayName('claude-3-5-sonnet-20241022')).toBe('claude-3-5-sonnet-20241022');
|
|
65
|
+
expect(modelDisplayName('some-custom-model')).toBe('some-custom-model');
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
describe('primaryModelFromUsage', () => {
|
|
69
|
+
it('extracts the model ID from a single-model usage block', () => {
|
|
70
|
+
expect(primaryModelFromUsage({
|
|
71
|
+
'claude-opus-4-8': { inputTokens: 10, outputTokens: 500, costUSD: 0.07 },
|
|
72
|
+
})).toBe('claude-opus-4-8');
|
|
73
|
+
});
|
|
74
|
+
it('picks the model with the most output tokens when several appear', () => {
|
|
75
|
+
expect(primaryModelFromUsage({
|
|
76
|
+
'claude-haiku-4-5-20251001': { outputTokens: 80 },
|
|
77
|
+
'claude-sonnet-4-6': { outputTokens: 4200 },
|
|
78
|
+
})).toBe('claude-sonnet-4-6');
|
|
79
|
+
});
|
|
80
|
+
it('tolerates entries without numeric outputTokens', () => {
|
|
81
|
+
expect(primaryModelFromUsage({
|
|
82
|
+
'claude-sonnet-4-6': { outputTokens: 'n/a' },
|
|
83
|
+
})).toBe('claude-sonnet-4-6');
|
|
84
|
+
});
|
|
85
|
+
it('returns null for missing or malformed input', () => {
|
|
86
|
+
expect(primaryModelFromUsage(undefined)).toBeNull();
|
|
87
|
+
expect(primaryModelFromUsage(null)).toBeNull();
|
|
88
|
+
expect(primaryModelFromUsage('claude-opus-4-8')).toBeNull();
|
|
89
|
+
expect(primaryModelFromUsage(42)).toBeNull();
|
|
90
|
+
expect(primaryModelFromUsage({})).toBeNull();
|
|
91
|
+
// Arrays pass typeof === 'object' but their keys are indices, not model IDs
|
|
92
|
+
expect(primaryModelFromUsage([{ outputTokens: 100 }])).toBeNull();
|
|
93
|
+
});
|
|
56
94
|
});
|
|
57
95
|
//# sourceMappingURL=review-models.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-models.test.js","sourceRoot":"","sources":["../../src/__tests__/review-models.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"review-models.test.js","sourceRoot":"","sources":["../../src/__tests__/review-models.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { buildFixRecheckSteps, resolveWorkflowSteps } from '../commands/run.js';
|
|
2
|
+
import { buildFixRecheckSteps, buildRunChildArgs, resolveWorkflowSteps } from '../commands/run.js';
|
|
3
3
|
const reviewStep = {
|
|
4
4
|
name: 'review',
|
|
5
5
|
type: 'review',
|
|
@@ -57,6 +57,53 @@ describe('resolveWorkflowSteps', () => {
|
|
|
57
57
|
expect(steps.find(step => step.type === 'recheck')?.reviewer).toBe('claude');
|
|
58
58
|
expect(steps.find(step => step.type === 'fix')?.reviewer).toBe('claude');
|
|
59
59
|
});
|
|
60
|
+
it('synthesizes conflict-resolve when --steps asks for it but the workflow has none', () => {
|
|
61
|
+
const steps = resolveWorkflowSteps([reviewStep, fixStep], ['conflict-resolve'], 'claude');
|
|
62
|
+
expect(steps.map(step => step.type)).toEqual(['conflict-resolve']);
|
|
63
|
+
expect(steps[0]).toMatchObject({ name: 'conflict-resolve', type: 'conflict-resolve', reviewer: 'claude' });
|
|
64
|
+
});
|
|
65
|
+
it('pins the synthesized conflict-resolve reviewer to --vendor', () => {
|
|
66
|
+
const steps = resolveWorkflowSteps([reviewStep, fixStep], ['conflict-resolve'], 'codex', { vendor: 'claude' });
|
|
67
|
+
expect(steps[0]).toMatchObject({ type: 'conflict-resolve', reviewer: 'claude' });
|
|
68
|
+
});
|
|
69
|
+
it('selects an existing conflict-resolve step instead of synthesizing', () => {
|
|
70
|
+
const conflictStep = {
|
|
71
|
+
name: 'conflict-resolve', type: 'conflict-resolve', reviewer: 'claude', max_rounds: 1, instructions: 'custom resolve',
|
|
72
|
+
};
|
|
73
|
+
const steps = resolveWorkflowSteps([reviewStep, conflictStep, fixStep], ['conflict-resolve'], 'codex');
|
|
74
|
+
expect(steps).toHaveLength(1);
|
|
75
|
+
expect(steps[0]).toMatchObject({ instructions: 'custom resolve' });
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('buildRunChildArgs', () => {
|
|
79
|
+
const ref = { owner: 'acme', repo: 'web', number: 245, url: 'https://github.com/acme/web/pull/245' };
|
|
80
|
+
it('builds a bare run invocation with the default trigger', () => {
|
|
81
|
+
expect(buildRunChildArgs(ref, {})).toEqual(['run', ref.url, '--trigger', 'run']);
|
|
82
|
+
});
|
|
83
|
+
it('forwards vendor, fixer, steps, and config flags', () => {
|
|
84
|
+
const args = buildRunChildArgs(ref, { config: 'c.yml', reviewer: 'codex', fixer: 'claude', vendor: 'codex', steps: 'fix' });
|
|
85
|
+
expect(args).toEqual(['run', ref.url, '-c', 'c.yml', '--reviewer', 'codex', '--fixer', 'claude', '--vendor', 'codex', '--steps', 'fix', '--trigger', 'run']);
|
|
86
|
+
});
|
|
87
|
+
it('passes --crazy and omits any timeout flag in round mode', () => {
|
|
88
|
+
const args = buildRunChildArgs(ref, { roundMode: 'crazy', timeout: '300s' });
|
|
89
|
+
expect(args).toContain('--crazy');
|
|
90
|
+
expect(args).not.toContain('--timeout');
|
|
91
|
+
expect(args).not.toContain('--no-timeout');
|
|
92
|
+
});
|
|
93
|
+
it('passes --half-crazy for halfcrazy round mode', () => {
|
|
94
|
+
expect(buildRunChildArgs(ref, { roundMode: 'halfcrazy' })).toContain('--half-crazy');
|
|
95
|
+
});
|
|
96
|
+
it('passes --no-timeout when requested outside round mode', () => {
|
|
97
|
+
const args = buildRunChildArgs(ref, { noTimeout: true });
|
|
98
|
+
expect(args).toContain('--no-timeout');
|
|
99
|
+
expect(args).not.toContain('--timeout');
|
|
100
|
+
});
|
|
101
|
+
it('forwards an explicit --timeout outside round mode', () => {
|
|
102
|
+
expect(buildRunChildArgs(ref, { timeout: '600s' })).toEqual(['run', ref.url, '--timeout', '600s', '--trigger', 'run']);
|
|
103
|
+
});
|
|
104
|
+
it('forwards --dry-run', () => {
|
|
105
|
+
expect(buildRunChildArgs(ref, { dryRun: true })).toContain('--dry-run');
|
|
106
|
+
});
|
|
60
107
|
});
|
|
61
108
|
describe('buildFixRecheckSteps', () => {
|
|
62
109
|
it('uses the full workflow for round-mode followups after an initial review-only run', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.test.js","sourceRoot":"","sources":["../../src/__tests__/run.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"run.test.js","sourceRoot":"","sources":["../../src/__tests__/run.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,5 +40,14 @@ describe('selectTip', () => {
|
|
|
40
40
|
}
|
|
41
41
|
expect(seen.size).toBe(TIPS.length);
|
|
42
42
|
});
|
|
43
|
+
it('leads the rotation with high-priority fire tips', () => {
|
|
44
|
+
// Fire-badged (new-feature) tips sit at the front so a fresh session shows them first.
|
|
45
|
+
expect(TIPS[0].badge).toBe('fire');
|
|
46
|
+
expect(selectTip(0, 0).badge).toBe('fire');
|
|
47
|
+
const fireCount = TIPS.filter(t => t.badge === 'fire').length;
|
|
48
|
+
expect(fireCount).toBeGreaterThanOrEqual(1);
|
|
49
|
+
// The leading run of tips are all fire tips (contiguous priority block).
|
|
50
|
+
expect(TIPS.slice(0, fireCount).every(t => t.badge === 'fire')).toBe(true);
|
|
51
|
+
});
|
|
43
52
|
});
|
|
44
53
|
//# sourceMappingURL=tips.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tips.test.js","sourceRoot":"","sources":["../../src/__tests__/tips.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tips.test.js","sourceRoot":"","sources":["../../src/__tests__/tips.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -7,13 +7,13 @@ import { runInit } from './commands/init.js';
|
|
|
7
7
|
import { runOnboard } from './commands/onboard.js';
|
|
8
8
|
import { runServe } from './commands/serve.js';
|
|
9
9
|
import { runWatch } from './commands/watch.js';
|
|
10
|
-
import {
|
|
10
|
+
import { runReviewSpec } from './commands/review.js';
|
|
11
11
|
import { runStatus } from './commands/status.js';
|
|
12
12
|
import { runDiagnose } from './commands/diagnose.js';
|
|
13
13
|
import { runOptimize } from './commands/optimize.js';
|
|
14
14
|
import { runImpact } from './commands/impact.js';
|
|
15
15
|
import { runIssue } from './commands/issue.js';
|
|
16
|
-
import {
|
|
16
|
+
import { runRunSpec, runRecheckSpec, runFixSpec, runResolveSpec } from './commands/run.js';
|
|
17
17
|
import { runDetectStep } from './commands/detect-step.js';
|
|
18
18
|
import { runScan } from './commands/scan.js';
|
|
19
19
|
import { runKickass } from './commands/kickass.js';
|
|
@@ -26,6 +26,47 @@ program
|
|
|
26
26
|
.name(programName)
|
|
27
27
|
.description('Cross-vendor AI code review — Claude Code ↔ Codex')
|
|
28
28
|
.version(`❤️ ${version}`);
|
|
29
|
+
function addStepRunOptions(cmd) {
|
|
30
|
+
return cmd
|
|
31
|
+
.option('-c, --config <path>', 'config file path')
|
|
32
|
+
.option('-r, --reviewer <vendor>', 'force a specific reviewer: codex | claude')
|
|
33
|
+
.option('--fixer <vendor>', 'force a specific fixer for fix steps: codex | claude')
|
|
34
|
+
.option('--vendor <vendor>', 'force one vendor for review, recheck, and fix steps')
|
|
35
|
+
.option('--dry-run', 'run but do not post a comment or apply fixes')
|
|
36
|
+
.option('--crazy', 'loop fix→recheck until APPROVE; disables all timeout constraints')
|
|
37
|
+
.option('--half-crazy', 'loop fix→recheck until verdict is not BLOCK; disables all timeout constraints')
|
|
38
|
+
.option('--halfcrazy', '(deprecated alias for --half-crazy)')
|
|
39
|
+
.option('--timeout <duration>', 'reviewer subprocess timeout, e.g. 300s or 10m')
|
|
40
|
+
.option('--no-timeout', 'remove the reviewer subprocess timeout cap (implied by --crazy/--half-crazy)')
|
|
41
|
+
.option('--concurrent [n]', 'multi-PR: cap parallel agents; omit n for one agent per PR (default)')
|
|
42
|
+
.option('--sequential', 'multi-PR: run PRs one at a time instead of in parallel')
|
|
43
|
+
.option('--stagger <ms>', 'multi-PR: ms delay between concurrent worker starts; default 2000')
|
|
44
|
+
.addOption(new Option('--trigger <source>').hideHelp()); // internal: set by kickass/watch/serve
|
|
45
|
+
}
|
|
46
|
+
function buildRunSpecOpts(opts) {
|
|
47
|
+
const roundMode = opts.crazy ? 'crazy' : (opts.halfCrazy || opts.halfcrazy) ? 'halfcrazy' : undefined;
|
|
48
|
+
// Commander sets opts.timeout = false (not opts.noTimeout) when --no-timeout is passed
|
|
49
|
+
const noTimeout = opts.noTimeout || opts.timeout === false;
|
|
50
|
+
const trigger = opts.trigger ?? 'run';
|
|
51
|
+
const concurrent = opts.concurrent === undefined ? undefined : opts.concurrent === true ? 0 : Number(opts.concurrent);
|
|
52
|
+
const staggerMs = opts.stagger !== undefined ? Number(opts.stagger) : undefined;
|
|
53
|
+
return {
|
|
54
|
+
config: opts.config,
|
|
55
|
+
reviewer: opts.reviewer,
|
|
56
|
+
fixer: opts.fixer,
|
|
57
|
+
vendor: opts.vendor,
|
|
58
|
+
steps: opts.steps,
|
|
59
|
+
dryRun: opts.dryRun,
|
|
60
|
+
expectedHeadSha: opts.expectedHeadSha,
|
|
61
|
+
roundMode,
|
|
62
|
+
noTimeout,
|
|
63
|
+
timeout: typeof opts.timeout === 'string' ? opts.timeout : undefined,
|
|
64
|
+
trigger,
|
|
65
|
+
concurrent,
|
|
66
|
+
sequential: opts.sequential,
|
|
67
|
+
staggerMs,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
29
70
|
program
|
|
30
71
|
.command('init')
|
|
31
72
|
.description('Check environment, verify CLI auth, write starter config')
|
|
@@ -61,35 +102,34 @@ program
|
|
|
61
102
|
.option('--no-backtrace', 'skip startup scan for unreviewed open PRs this session (overrides backtrace.enabled: true)')
|
|
62
103
|
.action((opts) => void runWatch(opts));
|
|
63
104
|
program
|
|
64
|
-
.command('review <pr-
|
|
65
|
-
.description('
|
|
105
|
+
.command('review <pr-urls...>')
|
|
106
|
+
.description('Trigger a review for one or more PRs. Accepts comma-separated URLs, bare numbers, and ranges (e.g. .../pull/245,255 or .../pull/245-256)')
|
|
66
107
|
.option('-c, --config <path>', 'config file path')
|
|
67
108
|
.option('-r, --reviewer <vendor>', 'force a specific reviewer: codex | claude (bypasses auto-detection)')
|
|
68
109
|
.option('--vendor <vendor>', 'alias for --reviewer')
|
|
69
|
-
.
|
|
70
|
-
|
|
71
|
-
.
|
|
72
|
-
.
|
|
73
|
-
.
|
|
74
|
-
|
|
75
|
-
.
|
|
76
|
-
.option('--vendor <vendor>', 'force one vendor for review, recheck, and fix steps')
|
|
77
|
-
.option('--steps <list>', 'run only these step types, comma-separated: review,fix,recheck')
|
|
78
|
-
.option('--dry-run', 'run the review but do not post a comment or apply fixes')
|
|
79
|
-
.option('--expected-head-sha <sha>', 'skip if the PR head changed since selection')
|
|
80
|
-
.option('--crazy', 'loop fix→recheck until APPROVE; disables all timeout constraints')
|
|
81
|
-
.option('--half-crazy', 'loop fix→recheck until verdict is not BLOCK; disables all timeout constraints')
|
|
82
|
-
.option('--halfcrazy', '(deprecated alias for --half-crazy)')
|
|
83
|
-
.option('--timeout <duration>', 'reviewer subprocess timeout, e.g. 300s or 10m (default: 180s for claude, tier-based for codex)')
|
|
84
|
-
.option('--no-timeout', 'remove the reviewer subprocess timeout cap (implied by --crazy/--half-crazy; used internally by kickass fix legs)')
|
|
85
|
-
.addOption(new Option('--trigger <source>').hideHelp()) // internal: set by kickass/watch/serve
|
|
86
|
-
.action((prUrl, opts) => {
|
|
87
|
-
const roundMode = opts.crazy ? 'crazy' : (opts.halfCrazy || opts.halfcrazy) ? 'halfcrazy' : undefined;
|
|
88
|
-
// Commander sets opts.timeout = false (not opts.noTimeout) when --no-timeout is passed
|
|
89
|
-
const noTimeout = opts.noTimeout || opts.timeout === false;
|
|
90
|
-
const trigger = opts.trigger ?? 'run';
|
|
91
|
-
void runRun(prUrl, { ...opts, roundMode, noTimeout, timeout: typeof opts.timeout === 'string' ? opts.timeout : undefined, trigger });
|
|
110
|
+
.option('--concurrent [n]', 'multi-PR: cap parallel agents; omit n for one agent per PR (default)')
|
|
111
|
+
.option('--sequential', 'multi-PR: run PRs one at a time instead of in parallel')
|
|
112
|
+
.option('--stagger <ms>', 'multi-PR: ms delay between concurrent worker starts; default 2000')
|
|
113
|
+
.action((prUrls, opts) => {
|
|
114
|
+
const concurrent = opts.concurrent === undefined ? undefined : opts.concurrent === true ? 0 : Number(opts.concurrent);
|
|
115
|
+
const staggerMs = opts.stagger !== undefined ? Number(opts.stagger) : undefined;
|
|
116
|
+
void runReviewSpec(prUrls.join(','), { config: opts.config, reviewer: opts.reviewer ?? opts.vendor, concurrent, sequential: opts.sequential, staggerMs });
|
|
92
117
|
});
|
|
118
|
+
addStepRunOptions(program
|
|
119
|
+
.command('run <pr-urls...>')
|
|
120
|
+
.description('Execute the full configured workflow against one or more PRs (review → fix → recheck). Accepts comma-separated URLs, bare numbers, and ranges (e.g. .../pull/245,255 or .../pull/245-256)'))
|
|
121
|
+
.option('--steps <list>', 'run only these step types, comma-separated: review,fix,recheck')
|
|
122
|
+
.option('--expected-head-sha <sha>', 'skip if the PR head changed since selection (single PR only)')
|
|
123
|
+
.action((prUrls, opts) => void runRunSpec(prUrls.join(','), buildRunSpecOpts(opts)));
|
|
124
|
+
addStepRunOptions(program
|
|
125
|
+
.command('recheck <pr-urls...>')
|
|
126
|
+
.description('Force the recheck step against one or more PRs (re-evaluate against the latest review). Accepts comma-separated URLs, bare numbers, and ranges')).action((prUrls, opts) => void runRecheckSpec(prUrls.join(','), buildRunSpecOpts(opts)));
|
|
127
|
+
addStepRunOptions(program
|
|
128
|
+
.command('fix <pr-urls...>')
|
|
129
|
+
.description('Force the fix step against one or more PRs (apply fixes for the latest review). Accepts comma-separated URLs, bare numbers, and ranges')).action((prUrls, opts) => void runFixSpec(prUrls.join(','), buildRunSpecOpts(opts)));
|
|
130
|
+
addStepRunOptions(program
|
|
131
|
+
.command('resolve <pr-urls...>')
|
|
132
|
+
.description('Force the conflict-resolve step against one or more PRs (resolve merge conflicts). Accepts comma-separated URLs, bare numbers, and ranges')).action((prUrls, opts) => void runResolveSpec(prUrls.join(','), buildRunSpecOpts(opts)));
|
|
93
133
|
program
|
|
94
134
|
.command('detect-step <pr-url>')
|
|
95
135
|
.description('Show the crosscheck step history for a PR and identify the next step to run')
|
|
@@ -114,8 +154,9 @@ program
|
|
|
114
154
|
.option('--half-crazy', 'loop fix→recheck per PR until verdict is not BLOCK; disables all timeout constraints')
|
|
115
155
|
.option('--halfcrazy', '(deprecated alias for --half-crazy)')
|
|
116
156
|
.option('--timeout <duration>', 'reviewer subprocess timeout, e.g. 300s or 10m (default: 180s for claude, tier-based for codex)')
|
|
117
|
-
.option('--concurrent [n]', '
|
|
118
|
-
.option('--
|
|
157
|
+
.option('--concurrent [n]', 'cap parallel agents; omit n for one agent per PR (default), or set a cap (e.g. --concurrent 3)')
|
|
158
|
+
.option('--sequential', 'run PRs one at a time instead of in parallel')
|
|
159
|
+
.option('--stagger <ms>', 'ms delay between concurrent worker starts; default 2000')
|
|
119
160
|
.action((opts) => {
|
|
120
161
|
const roundMode = opts.crazy ? 'crazy' : (opts.halfCrazy || opts.halfcrazy) ? 'halfcrazy' : undefined;
|
|
121
162
|
const concurrent = opts.concurrent === undefined ? undefined
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export interface KickassOpts {
|
|
|
9
9
|
timeout?: string;
|
|
10
10
|
concurrent?: number;
|
|
11
11
|
staggerMs?: number;
|
|
12
|
+
sequential?: boolean;
|
|
12
13
|
}
|
|
13
14
|
export type KickassAction = 'review' | 'fix' | 'recheck' | 'skip';
|
|
14
15
|
export type KickassSkipReason = 'fork_pr' | 'stale_signature';
|
|
@@ -72,16 +73,5 @@ export declare function printMergeReady(prs: PRStatus[]): void;
|
|
|
72
73
|
export declare function summarizeExecutionResults(results: KickassExecutionResult[]): string;
|
|
73
74
|
export declare function printExecutionSummary(results: KickassExecutionResult[]): void;
|
|
74
75
|
export declare function buildKickassRunArgs(itemOrPR: PreflightItem | PRStatus, roundMode?: 'crazy' | 'halfcrazy', timeout?: string): string[];
|
|
75
|
-
export
|
|
76
|
-
command: string;
|
|
77
|
-
args: string[];
|
|
78
|
-
}
|
|
79
|
-
interface ResolveCliInvocationOptions {
|
|
80
|
-
argvEntry?: string;
|
|
81
|
-
execPath?: string;
|
|
82
|
-
exists?: (path: string) => boolean;
|
|
83
|
-
urlToPath?: (url: URL) => string;
|
|
84
|
-
}
|
|
85
|
-
export declare function resolveCliInvocation(options?: ResolveCliInvocationOptions): CliInvocation;
|
|
86
|
-
export {};
|
|
76
|
+
export { resolveCliInvocation, type CliInvocation } from '../lib/cli-invocation.js';
|
|
87
77
|
//# sourceMappingURL=kickass.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kickass.d.ts","sourceRoot":"","sources":["../../src/commands/kickass.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kickass.d.ts","sourceRoot":"","sources":["../../src/commands/kickass.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/kickass.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import { existsSync } from 'fs';
|
|
3
2
|
import { stdin as input, stdout as output } from 'process';
|
|
4
3
|
import { createInterface } from 'readline/promises';
|
|
5
|
-
import { fileURLToPath } from 'url';
|
|
6
4
|
import { execa } from 'execa';
|
|
5
|
+
import { resolveCliInvocation } from '../lib/cli-invocation.js';
|
|
7
6
|
import { createGithubClient } from '../github/client.js';
|
|
8
7
|
import { getGithubToken, loadConfig } from '../config/loader.js';
|
|
9
8
|
import { parseDuration } from '../lib/durations.js';
|
|
@@ -80,10 +79,12 @@ export async function runKickassWithDeps(opts = {}, deps) {
|
|
|
80
79
|
console.log(chalk.dim('Canceled.'));
|
|
81
80
|
return;
|
|
82
81
|
}
|
|
83
|
-
//
|
|
84
|
-
const resolvedConcurrency = opts.concurrent ===
|
|
85
|
-
?
|
|
86
|
-
:
|
|
82
|
+
// Default: one agent per selected PR. --sequential or --concurrent 1 forces sequential.
|
|
83
|
+
const resolvedConcurrency = (opts.sequential || opts.concurrent === 1)
|
|
84
|
+
? 1
|
|
85
|
+
: (opts.concurrent === undefined || opts.concurrent === 0)
|
|
86
|
+
? selected.length
|
|
87
|
+
: Math.max(1, opts.concurrent);
|
|
87
88
|
const resolvedStagger = resolvedConcurrency > 1 ? (opts.staggerMs ?? 2_000) : 0;
|
|
88
89
|
if (resolvedConcurrency > 1) {
|
|
89
90
|
console.log(chalk.dim(`\n running ${resolvedConcurrency} agents in parallel (${resolvedStagger}ms stagger)`));
|
|
@@ -419,23 +420,8 @@ export function buildKickassRunArgs(itemOrPR, roundMode, timeout) {
|
|
|
419
420
|
args.push('--trigger', 'kickass');
|
|
420
421
|
return args;
|
|
421
422
|
}
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
const urlToPath = options.urlToPath ?? fileURLToPath;
|
|
425
|
-
const execPath = options.execPath ?? process.execPath;
|
|
426
|
-
const argvEntry = options.argvEntry ?? process.argv[1];
|
|
427
|
-
const localTsx = urlToPath(new URL('../../node_modules/.bin/tsx', import.meta.url));
|
|
428
|
-
if (argvEntry && exists(argvEntry)) {
|
|
429
|
-
return invocationForEntry(argvEntry, execPath, localTsx, exists);
|
|
430
|
-
}
|
|
431
|
-
const builtCli = urlToPath(new URL('../cli.js', import.meta.url));
|
|
432
|
-
if (exists(builtCli))
|
|
433
|
-
return { command: execPath, args: [builtCli] };
|
|
434
|
-
const sourceCli = urlToPath(new URL('../cli.ts', import.meta.url));
|
|
435
|
-
if (exists(sourceCli))
|
|
436
|
-
return invocationForEntry(sourceCli, execPath, localTsx, exists);
|
|
437
|
-
throw new Error('Cannot resolve crosscheck CLI entrypoint. Run npm run build before kickass, or run from a source checkout with dev dependencies installed.');
|
|
438
|
-
}
|
|
423
|
+
// Re-exported for backward compatibility — the implementation now lives in lib/cli-invocation.
|
|
424
|
+
export { resolveCliInvocation } from '../lib/cli-invocation.js';
|
|
439
425
|
function defaultKickassDeps(opts = {}, board) {
|
|
440
426
|
let cli;
|
|
441
427
|
const getCli = () => {
|
|
@@ -449,8 +435,8 @@ function defaultKickassDeps(opts = {}, board) {
|
|
|
449
435
|
const timeoutArg = timeoutMs != null ? `${Math.round(timeoutMs / 1000)}s` : opts.timeout;
|
|
450
436
|
const args = [...invocation.args, ...buildKickassRunArgs(item, opts.roundMode, timeoutArg)];
|
|
451
437
|
// When board is active always pipe so output routes through board.log scrollback.
|
|
452
|
-
// Without board, pipe
|
|
453
|
-
if (board || opts.concurrent
|
|
438
|
+
// Without board, pipe for all modes except explicit sequential (--sequential or --concurrent 1).
|
|
439
|
+
if (board || !(opts.sequential || opts.concurrent === 1)) {
|
|
454
440
|
try {
|
|
455
441
|
const result = await execa(invocation.command, args, { stdio: 'pipe', all: true });
|
|
456
442
|
return result.all ?? '';
|
|
@@ -613,11 +599,4 @@ function stepsForItem(item) {
|
|
|
613
599
|
function formatPRSignature(pr) {
|
|
614
600
|
return `${pr.owner}/${pr.repo}#${pr.number}@${pr.headSha.slice(0, 7)}`;
|
|
615
601
|
}
|
|
616
|
-
function invocationForEntry(entry, execPath, localTsx, exists) {
|
|
617
|
-
if (!entry.endsWith('.ts'))
|
|
618
|
-
return { command: execPath, args: [entry] };
|
|
619
|
-
if (exists(localTsx))
|
|
620
|
-
return { command: localTsx, args: [entry] };
|
|
621
|
-
throw new Error('Cannot run kickass actions from a TypeScript entrypoint without the local tsx dev dependency. Run npm run build first.');
|
|
622
|
-
}
|
|
623
602
|
//# sourceMappingURL=kickass.js.map
|