@humanbased/crosscheck 1.9.2-beta.7 → 1.10.0-beta.16
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/crosscheck.config.example.yml +33 -16
- package/dist/__tests__/agent-model-scan.test.d.ts +2 -0
- package/dist/__tests__/agent-model-scan.test.d.ts.map +1 -0
- package/dist/__tests__/agent-model-scan.test.js +77 -0
- package/dist/__tests__/agent-model-scan.test.js.map +1 -0
- package/dist/__tests__/detector.test.js +21 -0
- package/dist/__tests__/detector.test.js.map +1 -1
- package/dist/__tests__/init-review-strategy.test.d.ts +2 -0
- package/dist/__tests__/init-review-strategy.test.d.ts.map +1 -0
- package/dist/__tests__/init-review-strategy.test.js +67 -0
- package/dist/__tests__/init-review-strategy.test.js.map +1 -0
- package/dist/__tests__/onboard-preservation.test.js +4 -4
- package/dist/__tests__/onboard-preservation.test.js.map +1 -1
- package/dist/__tests__/opencode-process.test.js +17 -1
- package/dist/__tests__/opencode-process.test.js.map +1 -1
- package/dist/__tests__/review-escalation.test.d.ts +2 -0
- package/dist/__tests__/review-escalation.test.d.ts.map +1 -0
- package/dist/__tests__/review-escalation.test.js +56 -0
- package/dist/__tests__/review-escalation.test.js.map +1 -0
- package/dist/__tests__/review-models.test.js +22 -8
- package/dist/__tests__/review-models.test.js.map +1 -1
- package/dist/__tests__/review-runtime-policy.test.d.ts +2 -0
- package/dist/__tests__/review-runtime-policy.test.d.ts.map +1 -0
- package/dist/__tests__/review-runtime-policy.test.js +97 -0
- package/dist/__tests__/review-runtime-policy.test.js.map +1 -0
- package/dist/__tests__/review-selection.test.d.ts +2 -0
- package/dist/__tests__/review-selection.test.d.ts.map +1 -0
- package/dist/__tests__/review-selection.test.js +38 -0
- package/dist/__tests__/review-selection.test.js.map +1 -0
- package/dist/__tests__/review-strategy.test.js +42 -12
- package/dist/__tests__/review-strategy.test.js.map +1 -1
- package/dist/__tests__/runner.test.js +2 -1
- package/dist/__tests__/runner.test.js.map +1 -1
- package/dist/__tests__/test-gate.test.d.ts +2 -0
- package/dist/__tests__/test-gate.test.d.ts.map +1 -0
- package/dist/__tests__/test-gate.test.js +39 -0
- package/dist/__tests__/test-gate.test.js.map +1 -0
- package/dist/__tests__/watch-models.test.d.ts +2 -0
- package/dist/__tests__/watch-models.test.d.ts.map +1 -0
- package/dist/__tests__/watch-models.test.js +74 -0
- package/dist/__tests__/watch-models.test.js.map +1 -0
- package/dist/commands/init-review-strategy.d.ts +13 -0
- package/dist/commands/init-review-strategy.d.ts.map +1 -0
- package/dist/commands/init-review-strategy.js +140 -0
- package/dist/commands/init-review-strategy.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/onboard.d.ts +6 -6
- package/dist/commands/onboard.d.ts.map +1 -1
- package/dist/commands/onboard.js +6 -11
- package/dist/commands/onboard.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/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +5 -2
- package/dist/commands/watch.js.map +1 -1
- package/dist/config/loader.d.ts +6 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +11 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/review-model-tiers.json +7 -7
- package/dist/config/review-strategy.json +136 -48
- package/dist/config/schema.d.ts +150 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +27 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/github/detector.d.ts.map +1 -1
- package/dist/github/detector.js +9 -7
- package/dist/github/detector.js.map +1 -1
- package/dist/lib/agent-model-scan.d.ts +28 -0
- package/dist/lib/agent-model-scan.d.ts.map +1 -0
- package/dist/lib/agent-model-scan.js +188 -0
- package/dist/lib/agent-model-scan.js.map +1 -0
- package/dist/lib/codex-model-fallback.d.ts +1 -1
- package/dist/lib/codex-model-fallback.d.ts.map +1 -1
- package/dist/lib/codex-model-fallback.js +9 -3
- package/dist/lib/codex-model-fallback.js.map +1 -1
- package/dist/lib/review-models.d.ts +1 -1
- package/dist/lib/review-models.d.ts.map +1 -1
- package/dist/lib/review-models.js +3 -7
- package/dist/lib/review-models.js.map +1 -1
- package/dist/lib/review-selection.d.ts +13 -0
- package/dist/lib/review-selection.d.ts.map +1 -0
- package/dist/lib/review-selection.js +107 -0
- package/dist/lib/review-selection.js.map +1 -0
- package/dist/lib/review-strategy.d.ts +5 -1
- package/dist/lib/review-strategy.d.ts.map +1 -1
- package/dist/lib/review-strategy.js +8 -2
- package/dist/lib/review-strategy.js.map +1 -1
- package/dist/lib/runner.d.ts +5 -2
- package/dist/lib/runner.d.ts.map +1 -1
- package/dist/lib/runner.js +53 -31
- package/dist/lib/runner.js.map +1 -1
- package/dist/lib/watch-models.d.ts +16 -0
- package/dist/lib/watch-models.d.ts.map +1 -0
- package/dist/lib/watch-models.js +69 -0
- package/dist/lib/watch-models.js.map +1 -0
- package/dist/reviewers/claude.d.ts.map +1 -1
- package/dist/reviewers/claude.js +13 -7
- package/dist/reviewers/claude.js.map +1 -1
- package/dist/reviewers/codex.d.ts.map +1 -1
- package/dist/reviewers/codex.js +8 -5
- package/dist/reviewers/codex.js.map +1 -1
- package/dist/reviewers/conflict-resolve.js +2 -2
- package/dist/reviewers/conflict-resolve.js.map +1 -1
- package/dist/reviewers/fix.d.ts.map +1 -1
- package/dist/reviewers/fix.js +3 -5
- package/dist/reviewers/fix.js.map +1 -1
- package/dist/reviewers/opencode-process.d.ts +2 -1
- package/dist/reviewers/opencode-process.d.ts.map +1 -1
- package/dist/reviewers/opencode-process.js +18 -2
- package/dist/reviewers/opencode-process.js.map +1 -1
- package/dist/reviewers/opencode.d.ts +4 -1
- package/dist/reviewers/opencode.d.ts.map +1 -1
- package/dist/reviewers/opencode.js +35 -8
- package/dist/reviewers/opencode.js.map +1 -1
- package/docs/dynamic-thoroughness.md +50 -51
- package/docs/research/review-models-2026-11-01.md +100 -0
- package/get-started.md +77 -23
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/github/detector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/github/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ReviewModel } from '../config/schema.js';
|
|
2
|
+
import { type ReviewerReadiness } from './reviewer-setup.js';
|
|
3
|
+
import type { Vendor } from './vendor.js';
|
|
4
|
+
export interface ScannedModel extends Omit<ReviewModel, 'model_class'> {
|
|
5
|
+
model_class?: ReviewModel['model_class'];
|
|
6
|
+
excluded: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface AgentModelScan extends ReviewerReadiness {
|
|
9
|
+
vendor: Vendor;
|
|
10
|
+
models: ScannedModel[];
|
|
11
|
+
warnings: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare function parseCodexModels(raw: string): ScannedModel[];
|
|
14
|
+
/** OpenCode emits a provider/model header followed by a pretty-printed JSON object. */
|
|
15
|
+
export declare function parseOpenCodeModels(raw: string): ScannedModel[];
|
|
16
|
+
export declare function parseClaudeModels(raw: string, environment?: Record<string, string>): ScannedModel[];
|
|
17
|
+
export interface AgentScanDependencies {
|
|
18
|
+
probe: (vendor: Vendor) => Promise<ReviewerReadiness>;
|
|
19
|
+
read: (path: string) => Promise<string | undefined>;
|
|
20
|
+
run: (vendor: Vendor, args: string[], cwd: string) => Promise<string>;
|
|
21
|
+
paths: {
|
|
22
|
+
claude: string;
|
|
23
|
+
codex: string;
|
|
24
|
+
};
|
|
25
|
+
claudeEnvironment: Record<string, string>;
|
|
26
|
+
}
|
|
27
|
+
export declare function scanAgentModels(deps?: AgentScanDependencies): Promise<AgentModelScan[]>;
|
|
28
|
+
//# sourceMappingURL=agent-model-scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-model-scan.d.ts","sourceRoot":"","sources":["../../src/lib/agent-model-scan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEpF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;IACpE,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;IACxC,QAAQ,EAAE,OAAO,CAAA;CAClB;AACD,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAuBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAU5D;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CA2B/D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,YAAY,EAAE,CA8BvG;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACrD,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACnD,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACrE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1C;AAcD,wBAAsB,eAAe,CAAC,IAAI,GAAE,qBAAoC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA8C3G"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { readFile, mkdtemp, rm } from 'fs/promises';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { parse as parseToml } from 'smol-toml';
|
|
6
|
+
import { stripVTControlCharacters } from 'util';
|
|
7
|
+
import { createRequire } from 'module';
|
|
8
|
+
import { getAgentModelConfigPaths, getClaudeModelEnvironment } from '../config/loader.js';
|
|
9
|
+
import { probeReviewerReadiness } from './reviewer-setup.js';
|
|
10
|
+
import { reviewModelClass, reviewModelExcluded } from './review-selection.js';
|
|
11
|
+
const require = createRequire(import.meta.url);
|
|
12
|
+
const catalog = require('../config/review-strategy.json');
|
|
13
|
+
function record(value) {
|
|
14
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
15
|
+
}
|
|
16
|
+
function id(value) {
|
|
17
|
+
return typeof value === 'string' && /^(?:[\w./:@+#-]|\[|\]){1,200}$/.test(value) ? value : undefined;
|
|
18
|
+
}
|
|
19
|
+
function strings(value) {
|
|
20
|
+
return Array.isArray(value) ? value.flatMap(entry => id(entry) ? [entry] : []) : [];
|
|
21
|
+
}
|
|
22
|
+
function candidate(name, source, family) {
|
|
23
|
+
const known = catalog.models[name];
|
|
24
|
+
return {
|
|
25
|
+
id: name, source, ...(family && { family }), model_class: reviewModelClass(family ?? name),
|
|
26
|
+
excluded: reviewModelExcluded(name) || reviewModelExcluded(family ?? ''),
|
|
27
|
+
efforts: known?.effort_levels ?? [],
|
|
28
|
+
...(known && { input_usd_mtok: known.in_usd_mtok, output_usd_mtok: known.out_usd_mtok }),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function numeric(value) {
|
|
32
|
+
return typeof value === 'number' && Number.isFinite(value) && value >= 0 ? value : undefined;
|
|
33
|
+
}
|
|
34
|
+
export function parseCodexModels(raw) {
|
|
35
|
+
const parsed = JSON.parse(raw);
|
|
36
|
+
if (!record(parsed) || !Array.isArray(parsed.models))
|
|
37
|
+
throw new Error('Unrecognized Codex model catalog');
|
|
38
|
+
return parsed.models.flatMap(entry => {
|
|
39
|
+
if (!record(entry) || entry.visibility === 'hide' || entry.hidden === true)
|
|
40
|
+
return [];
|
|
41
|
+
const name = id(entry.slug ?? entry.model);
|
|
42
|
+
if (!name)
|
|
43
|
+
return [];
|
|
44
|
+
const levels = Array.isArray(entry.supported_reasoning_levels) ? entry.supported_reasoning_levels : [];
|
|
45
|
+
return [{ ...candidate(name, 'cli'), efforts: levels.flatMap(level => record(level) && id(level.effort) ? [level.effort] : []) }];
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/** OpenCode emits a provider/model header followed by a pretty-printed JSON object. */
|
|
49
|
+
export function parseOpenCodeModels(raw) {
|
|
50
|
+
const clean = stripVTControlCharacters(raw);
|
|
51
|
+
const headers = [...clean.matchAll(/^([\w.-]+\/[^\s]+)\r?\n(?=\{)/gm)];
|
|
52
|
+
if (headers.length === 0)
|
|
53
|
+
throw new Error('Unrecognized OpenCode model catalog');
|
|
54
|
+
return headers.flatMap((header, index) => {
|
|
55
|
+
const name = id(header[1]);
|
|
56
|
+
if (!name)
|
|
57
|
+
return [];
|
|
58
|
+
const metadata = JSON.parse(clean.slice(header.index + header[0].length, headers[index + 1]?.index).trim());
|
|
59
|
+
if (!record(metadata))
|
|
60
|
+
return [];
|
|
61
|
+
if (record(metadata.capabilities) && metadata.capabilities.toolcall === false)
|
|
62
|
+
return [];
|
|
63
|
+
const cost = record(metadata.cost) ? metadata.cost : {};
|
|
64
|
+
const variants = record(metadata.variants) ? Object.keys(metadata.variants).filter(level => id(level)) : [];
|
|
65
|
+
const input = numeric(cost.input), output = numeric(cost.output);
|
|
66
|
+
const ambiguousZero = input === 0 && output === 0 && !name.startsWith('opencode/') && !/(?:^|[/_.:-])free(?:$|[/_.:-])/i.test(name);
|
|
67
|
+
const family = id(metadata.family);
|
|
68
|
+
const actual = record(metadata.api) ? id(metadata.api.id) : undefined;
|
|
69
|
+
const native = name.split('/').at(-1);
|
|
70
|
+
const knownClass = actual && catalog.models[actual] ? reviewModelClass(actual) : undefined;
|
|
71
|
+
const modelClass = knownClass ?? (name.startsWith('opencode/') || catalog.models[native] ? reviewModelClass(name) : undefined);
|
|
72
|
+
return [{
|
|
73
|
+
...candidate(name, 'cli', family),
|
|
74
|
+
excluded: reviewModelExcluded(name) || reviewModelExcluded(family ?? '') || reviewModelExcluded(actual ?? ''),
|
|
75
|
+
model_class: modelClass,
|
|
76
|
+
efforts: variants,
|
|
77
|
+
input_usd_mtok: ambiguousZero ? undefined : input, output_usd_mtok: ambiguousZero ? undefined : output,
|
|
78
|
+
}];
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
export function parseClaudeModels(raw, environment = {}) {
|
|
82
|
+
const settings = JSON.parse(raw);
|
|
83
|
+
if (!record(settings))
|
|
84
|
+
throw new Error('Unrecognized Claude settings');
|
|
85
|
+
const env = { ...(record(settings.env) ? settings.env : {}), ...environment };
|
|
86
|
+
const aliases = {
|
|
87
|
+
haiku: id(env.ANTHROPIC_DEFAULT_HAIKU_MODEL) ?? 'claude-haiku-5-5',
|
|
88
|
+
sonnet: id(env.ANTHROPIC_DEFAULT_SONNET_MODEL) ?? 'claude-sonnet-5-5',
|
|
89
|
+
};
|
|
90
|
+
const configured = id(env.ANTHROPIC_MODEL) ?? id(settings.model) ?? id(env.ANTHROPIC_DEFAULT_MODEL);
|
|
91
|
+
const custom = id(env.ANTHROPIC_CUSTOM_MODEL_OPTION);
|
|
92
|
+
const picker = record(settings.modelPicker) && Array.isArray(settings.modelPicker.options) ? settings.modelPicker.options : [];
|
|
93
|
+
const names = Array.isArray(settings.availableModels) ? strings(settings.availableModels)
|
|
94
|
+
: [...Object.keys(aliases), ...(configured ? [configured] : []), ...(custom ? [custom] : []), ...picker.flatMap(option => record(option) && id(option.model) ? [option.model] : [])];
|
|
95
|
+
const overrides = record(settings.modelOverrides) ? settings.modelOverrides : {};
|
|
96
|
+
const denied = Array.isArray(settings.deniedModels) ? settings.deniedModels.filter((value) => typeof value === 'string' && value.length <= 200) : [];
|
|
97
|
+
const models = names.flatMap(name => {
|
|
98
|
+
const canonical = aliases[name] ?? name;
|
|
99
|
+
const requested = id(overrides[canonical]) ?? canonical;
|
|
100
|
+
const option = picker.find(entry => record(entry) && entry.model === name);
|
|
101
|
+
const family = record(option) ? id(option.behavesAs) : undefined;
|
|
102
|
+
const blocked = denied.some(pattern => new RegExp('^' + pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*') + '$').test(requested));
|
|
103
|
+
if (blocked)
|
|
104
|
+
return [];
|
|
105
|
+
const entry = candidate(requested, configured === name || requested !== canonical ? 'configured' : 'catalog', family ?? canonical);
|
|
106
|
+
// Pricing a private deployment by its underlying public model would invent its rate.
|
|
107
|
+
if (requested !== canonical) {
|
|
108
|
+
delete entry.input_usd_mtok;
|
|
109
|
+
delete entry.output_usd_mtok;
|
|
110
|
+
}
|
|
111
|
+
const cap = ['low', 'medium', 'high', 'xhigh', 'max'].indexOf(String(settings.maxEffortLevel));
|
|
112
|
+
if (cap >= 0)
|
|
113
|
+
entry.efforts = entry.efforts.filter(level => ['low', 'medium', 'high', 'xhigh', 'max'].indexOf(level) <= cap);
|
|
114
|
+
return [entry];
|
|
115
|
+
});
|
|
116
|
+
return [...new Map(models.map(entry => [entry.id, entry])).values()];
|
|
117
|
+
}
|
|
118
|
+
const dependencies = {
|
|
119
|
+
probe: probeReviewerReadiness,
|
|
120
|
+
read: async (path) => {
|
|
121
|
+
try {
|
|
122
|
+
return await readFile(path, 'utf8');
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
if (err.code === 'ENOENT')
|
|
126
|
+
return undefined;
|
|
127
|
+
throw new Error('Could not read agent model settings');
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
run: async (vendor, args, cwd) => (await execa(vendor, args, { cwd, timeout: 15_000, maxBuffer: 8 * 1024 * 1024 })).stdout,
|
|
131
|
+
paths: getAgentModelConfigPaths(),
|
|
132
|
+
claudeEnvironment: getClaudeModelEnvironment(),
|
|
133
|
+
};
|
|
134
|
+
export async function scanAgentModels(deps = dependencies) {
|
|
135
|
+
const directory = await mkdtemp(join(tmpdir(), 'crosscheck-model-scan-'));
|
|
136
|
+
try {
|
|
137
|
+
return await Promise.all(['claude', 'codex', 'opencode'].map(async (vendor) => {
|
|
138
|
+
const readiness = await deps.probe(vendor);
|
|
139
|
+
const scan = { vendor, ...readiness, models: [], warnings: [] };
|
|
140
|
+
if (!readiness.installed || (!readiness.authenticated && vendor !== 'opencode'))
|
|
141
|
+
return scan;
|
|
142
|
+
if (vendor === 'opencode' && !readiness.authenticated && /does not support|could not read|capability probe failed/i.test(readiness.detail)) {
|
|
143
|
+
scan.warnings.push('OpenCode needs CLI/auth-probe repair before free-tier discovery can enable it.');
|
|
144
|
+
return scan;
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
if (vendor === 'claude') {
|
|
148
|
+
scan.models = parseClaudeModels(await deps.read(deps.paths.claude) ?? '{}', deps.claudeEnvironment);
|
|
149
|
+
}
|
|
150
|
+
else if (vendor === 'codex') {
|
|
151
|
+
const raw = await deps.read(deps.paths.codex);
|
|
152
|
+
const config = raw ? parseToml(raw) : {};
|
|
153
|
+
const profiles = record(config.profiles) ? config.profiles : {};
|
|
154
|
+
const selectedProfile = typeof config.profile === 'string' ? profiles[config.profile] : undefined;
|
|
155
|
+
const profile = record(selectedProfile) ? selectedProfile : {};
|
|
156
|
+
const active = { ...config, ...profile };
|
|
157
|
+
if (typeof active.model_provider === 'string' && active.model_provider !== 'openai') {
|
|
158
|
+
scan.warnings.push('Custom Codex provider is configured-only: the isolated review runner does not load provider definitions. Use its OpenCode route instead.');
|
|
159
|
+
return scan;
|
|
160
|
+
}
|
|
161
|
+
scan.models = parseCodexModels(await deps.run(vendor, ['debug', 'models'], directory));
|
|
162
|
+
const selected = id(active.model);
|
|
163
|
+
if (selected && !scan.models.some(model => model.id === selected))
|
|
164
|
+
scan.models.push(candidate(selected, 'configured'));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// --pure refuses plugin loading; never retry without it against user configuration.
|
|
168
|
+
scan.models = parseOpenCodeModels(await deps.run(vendor, ['models', '--verbose', '--pure'], directory));
|
|
169
|
+
const raw = await deps.run(vendor, ['debug', 'config', '--pure'], directory);
|
|
170
|
+
const configured = JSON.parse(raw);
|
|
171
|
+
if (record(configured)) {
|
|
172
|
+
const selected = id(configured.model);
|
|
173
|
+
if (selected)
|
|
174
|
+
scan.models = scan.models.map(model => model.id === selected ? { ...model, source: 'configured' } : model);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
scan.warnings.push('Model discovery was incomplete; repair the agent configuration and rerun ck init. Raw diagnostics are withheld because they may contain credentials.');
|
|
180
|
+
}
|
|
181
|
+
return scan;
|
|
182
|
+
}));
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
await rm(directory, { recursive: true, force: true });
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=agent-model-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-model-scan.js","sourceRoot":"","sources":["../../src/lib/agent-model-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ export declare function codexTurnFailureMessage(jsonl: unknown): string | null;
|
|
|
3
3
|
export declare function codexModelRejection(err: unknown): string | null;
|
|
4
4
|
export declare function withCodexJsonlOutput<T>(run: () => Promise<T>): Promise<T>;
|
|
5
5
|
export declare function codexFallbackModel(model: string): string | null;
|
|
6
|
-
export declare function withCodexModelFallback<T>(model: string, step: string, run: (model: string) => Promise<T>, onFallback?: (msg: string) => void): Promise<T>;
|
|
6
|
+
export declare function withCodexModelFallback<T>(model: string, step: string, run: (model: string) => Promise<T>, onFallback?: (msg: string) => void, allowedModels?: readonly string[]): Promise<T>;
|
|
7
7
|
//# sourceMappingURL=codex-model-fallback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-model-fallback.d.ts","sourceRoot":"","sources":["../../src/lib/codex-model-fallback.ts"],"names":[],"mappings":"AAOA,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAQD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAUrE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM/D;AAID,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAY/E;AAUD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK/D;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"codex-model-fallback.d.ts","sourceRoot":"","sources":["../../src/lib/codex-model-fallback.ts"],"names":[],"mappings":"AAOA,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAQD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAUrE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM/D;AAID,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAY/E;AAUD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK/D;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAClC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAChC,OAAO,CAAC,CAAC,CAAC,CAyBZ"}
|
|
@@ -67,10 +67,16 @@ export function codexFallbackModel(model) {
|
|
|
67
67
|
return twin;
|
|
68
68
|
return 'default';
|
|
69
69
|
}
|
|
70
|
-
export async function withCodexModelFallback(model, step, run, onFallback) {
|
|
70
|
+
export async function withCodexModelFallback(model, step, run, onFallback, allowedModels) {
|
|
71
|
+
const nextModel = (current) => {
|
|
72
|
+
if (!allowedModels)
|
|
73
|
+
return codexFallbackModel(current);
|
|
74
|
+
const twin = subscriptionTwin(current);
|
|
75
|
+
return [twin, ...allowedModels].find(candidate => candidate !== undefined && candidate !== current && allowedModels.includes(candidate) && !rejectedModels.has(candidate)) ?? null;
|
|
76
|
+
};
|
|
71
77
|
let current = model;
|
|
72
78
|
while (rejectedModels.has(current)) {
|
|
73
|
-
const next =
|
|
79
|
+
const next = nextModel(current);
|
|
74
80
|
if (!next)
|
|
75
81
|
break;
|
|
76
82
|
current = next;
|
|
@@ -81,7 +87,7 @@ export async function withCodexModelFallback(model, step, run, onFallback) {
|
|
|
81
87
|
}
|
|
82
88
|
catch (err) {
|
|
83
89
|
const rejection = codexModelRejection(err);
|
|
84
|
-
const next = rejection ?
|
|
90
|
+
const next = rejection ? nextModel(current) : null;
|
|
85
91
|
if (!rejection || !next)
|
|
86
92
|
throw err;
|
|
87
93
|
rejectedModels.add(current);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-model-fallback.js","sourceRoot":"","sources":["../../src/lib/codex-model-fallback.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codex-model-fallback.js","sourceRoot":"","sources":["../../src/lib/codex-model-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export declare function resolveClaudeModel(quality: QualityConfig, vendor?: Vend
|
|
|
17
17
|
export declare function resolveCodexModel(quality: QualityConfig, vendor: CodexVendorConfig, strategy?: {
|
|
18
18
|
tier: QualityConfig['tier'] | null;
|
|
19
19
|
} | null): string;
|
|
20
|
-
export declare function resolveOpenCodeModel(
|
|
20
|
+
export declare function resolveOpenCodeModel(quality: QualityConfig, vendor: OpenCodeVendorConfig, strategy?: {
|
|
21
21
|
tier: QualityConfig['tier'] | null;
|
|
22
22
|
} | null): string | undefined;
|
|
23
23
|
export declare function modelDisplayName(model: string): string | null;
|
|
@@ -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,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAmB/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,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAA4C,CAAA;AAE7H;;;;;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;
|
|
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;AAmB/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,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAA4C,CAAA;AAE7H;;;;;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;AAGD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACvD,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"}
|
|
@@ -50,13 +50,9 @@ export function resolveCodexModel(quality, vendor, strategy) {
|
|
|
50
50
|
return 'default';
|
|
51
51
|
return CODEX_TIER_MODELS_API[tier] || CODEX_TIER_MODELS_API.balanced;
|
|
52
52
|
}
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
// to the OpenCode CLI (which reads the user's configured default). Tier drives
|
|
57
|
-
// effort — the `--model provider/model#variant` suffix — in opencodeEffort.
|
|
58
|
-
export function resolveOpenCodeModel(_quality, vendor, _strategy) {
|
|
59
|
-
return vendor?.model ?? undefined;
|
|
53
|
+
// No built-in provider choice: operators opt into tier IDs their account serves.
|
|
54
|
+
export function resolveOpenCodeModel(quality, vendor, strategy) {
|
|
55
|
+
return vendor.model ?? vendor.model_tiers?.[effectiveTier(quality, strategy)];
|
|
60
56
|
}
|
|
61
57
|
// Derives a display name from the regular claude model ID shape:
|
|
62
58
|
// claude-{family}-{major}[-{minor}][-YYYYMMDD]. New models then render
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-models.js","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE9C,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAA;AAEF,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,eAAe;IAC1B,kBAAkB,EAAE,eAAe;CACpC,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAY,OAAO,CAAC,mCAAmC,CAAC,CAAA;AACtF,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;AAEzF,MAAM,CAAC,MAAM,kBAAkB,GAA0C,qBAAqB,CAAC,MAAM,CAAA;AACrG,MAAM,CAAC,MAAM,qBAAqB,GAA0C,qBAAqB,CAAC,SAAS,CAAA;AAC3G,+EAA+E;AAC/E,MAAM,CAAC,MAAM,8BAA8B,GAA0C,qBAAqB,CAAC,kBAAkB,CAAA;AAE7H;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,QAAwD;IAExD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,EAAE,IAAI;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAA;IACpE,OAAO,OAAO,CAAC,IAAI,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAsB,EACtB,MAAqB,EACrB,QAAwD;IAExD,8EAA8E;IAC9E,2EAA2E;IAC3E,sDAAsD;IACtD,IAAI,MAAM,EAAE,KAAK;QAAE,OAAO,MAAM,CAAC,KAAK,CAAA;IACtC,OAAO,kBAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAA;AAC5F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAsB,EACtB,MAAyB,EACzB,QAAwD;IAExD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7C,wEAAwE;IACxE,4EAA4E;IAC5E,yEAAyE;IACzE,yEAAyE;IACzE,kDAAkD;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAA;IAC3D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAA;AACtE,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"review-models.js","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CodexVendorConfig, OpenCodeVendorConfig, QualityConfig, ReviewModel, VendorConfig, Config } from '../config/schema.js';
|
|
2
|
+
import type { Vendor } from './vendor.js';
|
|
3
|
+
export declare function reviewModelExcluded(id: string): boolean;
|
|
4
|
+
export declare function reviewModelClass(id: string): ReviewModel['model_class'] | undefined;
|
|
5
|
+
export declare function reviewCost(model: ReviewModel): number;
|
|
6
|
+
/** The exact effort controls a review may send, including the profile ceiling. */
|
|
7
|
+
export declare function reviewEffortLevels(vendor: Vendor, quality: QualityConfig, model: string): string[];
|
|
8
|
+
export declare function selectReviewModel(vendor: Vendor, quality: QualityConfig, config: VendorConfig | CodexVendorConfig | OpenCodeVendorConfig): {
|
|
9
|
+
model: string;
|
|
10
|
+
effort?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function eligibleReviewConfig(config: Config): Config;
|
|
13
|
+
//# sourceMappingURL=review-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-selection.d.ts","sourceRoot":"","sources":["../../src/lib/review-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEpI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,SAAS,CAKnF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAGrD;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAOlG;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,YAAY,GAAG,iBAAiB,GAAG,oBAAoB,GAC9D;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsCpC;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwB3D"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { CLAUDE_EFFORT_LEVELS, CODEX_EFFORT_LEVELS } from '../config/schema.js';
|
|
2
|
+
import { resolveClaudeModel, resolveCodexModel, resolveOpenCodeModel, CODEX_TIER_MODELS_SUBSCRIPTION } from './review-models.js';
|
|
3
|
+
import { clampToLevels, isModelBanned, openCodeVariantsFor } from './review-strategy.js';
|
|
4
|
+
export function reviewModelExcluded(id) {
|
|
5
|
+
const name = id.toLowerCase().split('#')[0];
|
|
6
|
+
if (isModelBanned(name) || isModelBanned(name.split('/').at(-1) ?? name))
|
|
7
|
+
return true;
|
|
8
|
+
return /(^|[/_.:-])(fable|mythos|opus(?:plan)?|astra|best)([\W_]|$)/.test(name)
|
|
9
|
+
|| /kimi-k[3-9]|glm-5(?:\.\d+)?(?![\w.-]*flash)(?:$|[-#:/])|deepseek-[\w.-]*pro|minimax-m[3-9](?:$|[.:/-])|gemini-(?![\w.-]*flash)[\w.-]*(?:pro|argon|ultra)|qwen[\w.-]*max|grok-[4-9]|gpt-[\w.-]*-pro/.test(name);
|
|
10
|
+
}
|
|
11
|
+
export function reviewModelClass(id) {
|
|
12
|
+
if (reviewModelExcluded(id))
|
|
13
|
+
return undefined;
|
|
14
|
+
if (/flash|haiku|luna|terra|mini|lite/i.test(id))
|
|
15
|
+
return 'fast';
|
|
16
|
+
if (/sonnet|(?:^|-)sol(?:$|[.-])/i.test(id))
|
|
17
|
+
return 'standard';
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
export function reviewCost(model) {
|
|
21
|
+
if (model.input_usd_mtok === undefined || model.output_usd_mtok === undefined)
|
|
22
|
+
return Infinity;
|
|
23
|
+
return .1 * model.input_usd_mtok + .048 * model.output_usd_mtok;
|
|
24
|
+
}
|
|
25
|
+
/** The exact effort controls a review may send, including the profile ceiling. */
|
|
26
|
+
export function reviewEffortLevels(vendor, quality, model) {
|
|
27
|
+
if (model.includes('#'))
|
|
28
|
+
return []; // An explicit OpenCode variant is already fixed.
|
|
29
|
+
const discovered = quality.review_models?.[vendor]?.find(entry => entry.id === model)?.efforts;
|
|
30
|
+
const accepted = discovered ?? (vendor === 'claude' ? CLAUDE_EFFORT_LEVELS
|
|
31
|
+
: vendor === 'codex' ? CODEX_EFFORT_LEVELS : openCodeVariantsFor(model) ?? []);
|
|
32
|
+
const ceiling = quality.preference === 'speed-max' ? ['none', 'low', 'medium'] : ['none', 'low', 'medium', 'high'];
|
|
33
|
+
return accepted.filter(level => ceiling.includes(level));
|
|
34
|
+
}
|
|
35
|
+
export function selectReviewModel(vendor, quality, config) {
|
|
36
|
+
const saved = quality.review_models?.[vendor];
|
|
37
|
+
let model;
|
|
38
|
+
let candidate;
|
|
39
|
+
if (config.model && saved === undefined) {
|
|
40
|
+
model = config.model;
|
|
41
|
+
}
|
|
42
|
+
else if (saved !== undefined) {
|
|
43
|
+
const pool = saved.filter(entry => !reviewModelExcluded(entry.id) && !reviewModelExcluded(entry.family ?? ''));
|
|
44
|
+
if (pool.length === 0)
|
|
45
|
+
throw new Error(`No eligible ${vendor} review models; run ck init.`);
|
|
46
|
+
const preference = quality.preference ?? 'balanced';
|
|
47
|
+
const ordered = [...pool].sort((a, b) => {
|
|
48
|
+
if (preference === 'cost-min')
|
|
49
|
+
return reviewCost(a) - reviewCost(b) || a.id.localeCompare(b.id);
|
|
50
|
+
return Number(a.model_class === 'standard') - Number(b.model_class === 'standard')
|
|
51
|
+
|| reviewCost(a) - reviewCost(b) || a.id.localeCompare(b.id);
|
|
52
|
+
});
|
|
53
|
+
candidate = preference === 'balanced' && quality.tier !== 'fast'
|
|
54
|
+
? ordered.find(entry => entry.model_class === 'standard') ?? ordered[0]
|
|
55
|
+
: ordered[0];
|
|
56
|
+
model = candidate.id;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
model = vendor === 'claude' ? resolveClaudeModel(quality, config)
|
|
60
|
+
: vendor === 'codex' ? resolveCodexModel(quality, config)
|
|
61
|
+
: resolveOpenCodeModel(quality, config) ?? 'default';
|
|
62
|
+
if (model === 'default' && vendor === 'codex')
|
|
63
|
+
model = CODEX_TIER_MODELS_SUBSCRIPTION[quality.tier];
|
|
64
|
+
}
|
|
65
|
+
if (reviewModelExcluded(model) || reviewModelExcluded(candidate?.family ?? '')) {
|
|
66
|
+
throw new Error(`Review model ${model} is excluded by the flagship ceiling; run ck init.`);
|
|
67
|
+
}
|
|
68
|
+
if (saved === undefined && !reviewModelClass(model) && model !== 'default')
|
|
69
|
+
throw new Error(`Unknown custom review model ${model}; classify its non-flagship deployment with ck init.`);
|
|
70
|
+
// OpenCode keeps working with no pin: 'default' leaves the model configured in
|
|
71
|
+
// opencode.json in charge. Claude resolves a tier model and Codex maps its own
|
|
72
|
+
// default before this point, so only OpenCode reaches it.
|
|
73
|
+
const preference = quality.preference ?? 'balanced';
|
|
74
|
+
let target = quality.tier === 'thorough' ? preference === 'speed-max' ? 'medium' : 'high'
|
|
75
|
+
: quality.tier === 'fast' || preference === 'speed-max' ? 'low' : 'medium';
|
|
76
|
+
if (['high', 'xhigh', 'max', 'ultra'].includes(config.effort))
|
|
77
|
+
target = preference === 'speed-max' ? 'medium' : 'high';
|
|
78
|
+
const effort = clampToLevels(target, reviewEffortLevels(vendor, quality, model)) ?? undefined;
|
|
79
|
+
return { model, effort };
|
|
80
|
+
}
|
|
81
|
+
export function eligibleReviewConfig(config) {
|
|
82
|
+
const eligible = (vendor) => {
|
|
83
|
+
const pool = config.quality.review_models?.[vendor];
|
|
84
|
+
return config.vendors[vendor].enabled && (pool === undefined || pool.some(model => !reviewModelExcluded(model.id) && !reviewModelExcluded(model.family ?? '')));
|
|
85
|
+
};
|
|
86
|
+
const selected = { ...config, vendors: {
|
|
87
|
+
claude: { ...config.vendors.claude, enabled: eligible('claude') },
|
|
88
|
+
codex: { ...config.vendors.codex, enabled: eligible('codex') },
|
|
89
|
+
opencode: { ...config.vendors.opencode, enabled: eligible('opencode') },
|
|
90
|
+
} };
|
|
91
|
+
if (!config.quality.preference)
|
|
92
|
+
return selected;
|
|
93
|
+
const order = [...new Set([...config.agent_priority.review, ...['codex', 'claude', 'opencode']])];
|
|
94
|
+
const pool = order.filter(vendor => eligible(vendor) && config.quality.review_models?.[vendor]?.length);
|
|
95
|
+
const chosen = (vendor) => {
|
|
96
|
+
const pick = selectReviewModel(vendor, config.quality, { ...config.vendors[vendor], model: null });
|
|
97
|
+
return config.quality.review_models[vendor].find(model => model.id === pick.model);
|
|
98
|
+
};
|
|
99
|
+
pool.sort((a, b) => {
|
|
100
|
+
const first = chosen(a), second = chosen(b);
|
|
101
|
+
const capacity = Number(first.model_class === 'standard') - Number(second.model_class === 'standard');
|
|
102
|
+
const direction = config.quality.preference === 'balanced' && config.quality.tier !== 'fast' ? -1 : 1;
|
|
103
|
+
return (config.quality.preference === 'cost-min' ? 0 : direction * capacity) || reviewCost(first) - reviewCost(second);
|
|
104
|
+
});
|
|
105
|
+
return { ...selected, agent_priority: { ...config.agent_priority, review: [...pool, ...order.filter(vendor => eligible(vendor) && !pool.includes(vendor))] } };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=review-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-selection.js","sourceRoot":"","sources":["../../src/lib/review-selection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AAChI,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAExF,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACrF,OAAO,6DAA6D,CAAC,IAAI,CAAC,IAAI,CAAC;WAC1E,oMAAoM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACtN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7C,IAAI,mCAAmC,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,MAAM,CAAA;IAC/D,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,UAAU,CAAA;IAC9D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IAC9F,OAAO,EAAE,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,GAAG,KAAK,CAAC,eAAe,CAAA;AACjE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,OAAsB,EAAE,KAAa;IACtF,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA,CAAC,iDAAiD;IACpF,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,CAAA;IAC9F,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB;QACxE,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAClH,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,OAAsB,EACtB,MAA+D;IAE/D,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,KAAa,CAAA;IACjB,IAAI,SAAkC,CAAA;IACtC,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IACtB,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;QAC9G,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,8BAA8B,CAAC,CAAA;QAC3F,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,UAAU,CAAA;QACnD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,UAAU,KAAK,UAAU;gBAAE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAC/F,OAAO,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC;mBAC7E,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QACF,SAAS,GAAG,UAAU,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAC9D,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACd,KAAK,GAAG,SAAS,CAAC,EAAE,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAsB,CAAC;YAC/E,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAA2B,CAAC;gBAC9E,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAA8B,CAAC,IAAI,SAAS,CAAA;QAC9E,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO;YAAE,KAAK,GAAG,8BAA8B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACrG,CAAC;IACD,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,oDAAoD,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,sDAAsD,CAAC,CAAA;IACvL,+EAA+E;IAC/E,+EAA+E;IAC/E,0DAA0D;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,UAAU,CAAA;IACnD,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QACvF,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC5E,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,GAAG,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;IACtH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,SAAS,CAAA;IAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC1B,CAAC;AAGD,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAW,EAAE;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACjK,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE;YACrC,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC9D,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;SACxE,EAAE,CAAA;IACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO,QAAQ,CAAA;IAC/C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAW,CAAC,CAAC,CAAC,CAAA;IAC5G,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IACvG,MAAM,MAAM,GAAG,CAAC,MAAc,EAAe,EAAE;QAC7C,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAClG,OAAO,MAAM,CAAC,OAAO,CAAC,aAAc,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAE,CAAA;IACvF,CAAC,CAAA;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC,CAAA;QACrG,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACxH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAChK,CAAC"}
|
|
@@ -46,8 +46,10 @@ export declare function isDocOnlyChange(files: string[]): boolean;
|
|
|
46
46
|
export declare function detectDomain(files: string[]): Domain;
|
|
47
47
|
/** Classifies a PR against the strategy's ordered class list. First match wins. */
|
|
48
48
|
export declare function resolveReviewStrategy(pr: PRContext): ResolvedStrategy;
|
|
49
|
-
/**
|
|
49
|
+
/** Verified native effort ladder; empty means no ladder is established here. */
|
|
50
50
|
export declare function effortLevelsFor(model: string): string[];
|
|
51
|
+
/** Undefined = custom provider; [] = leave the provider's variant default intact. */
|
|
52
|
+
export declare function openCodeVariantsFor(model: string): string[] | undefined;
|
|
51
53
|
export declare function isModelBanned(model: string): boolean;
|
|
52
54
|
export declare function strategyModelFor(vendor: string, tier: Tier): string | null;
|
|
53
55
|
export declare function strategyVersion(): string;
|
|
@@ -62,6 +64,8 @@ export interface EscalationLane {
|
|
|
62
64
|
model: string;
|
|
63
65
|
/** The vendor CLI's effort flags. Omitted = judge on model capability alone. */
|
|
64
66
|
accepted?: readonly string[];
|
|
67
|
+
/** Live review capabilities, already bounded by profile policy; overrides the catalog. */
|
|
68
|
+
efforts?: readonly string[];
|
|
65
69
|
}
|
|
66
70
|
/**
|
|
67
71
|
* Escalation for round N. Raises effort where the vendor that will actually run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-strategy.d.ts","sourceRoot":"","sources":["../../src/lib/review-strategy.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAIxD,MAAM,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AACxC,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"review-strategy.d.ts","sourceRoot":"","sources":["../../src/lib/review-strategy.ts"],"names":[],"mappings":"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"}
|