review-council 4.4.1 → 4.4.2
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 +13 -11
- package/dist/config/defaults.d.ts +2 -2
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/dispatch/anthropic.js +16 -10
- package/dist/dispatch/anthropic.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,7 +55,7 @@ are supplied as shared context to the remaining reviewers. Remove the retired
|
|
|
55
55
|
names from explicit role lists; they follow the usual unknown-role warning and
|
|
56
56
|
skip behavior unless you define a custom role with that name.
|
|
57
57
|
|
|
58
|
-
The default
|
|
58
|
+
The default Opus 5.5 and Sol general reviewers plus specialist assignments schedule
|
|
59
59
|
13 blocking seats, or 14 when a specification enables `spec-compliance`. Gemini
|
|
60
60
|
is eligible for specialist assignments only. The async general reviewer
|
|
61
61
|
and verifier are separate; quorum is calculated from the blocking roster.
|
|
@@ -122,7 +122,7 @@ Review a PR, a local diff, or uncommitted work.
|
|
|
122
122
|
```bash
|
|
123
123
|
# Use explicit model:role pairs
|
|
124
124
|
rcl review owner/repo#7 \
|
|
125
|
-
--reviewer claude-
|
|
125
|
+
--reviewer claude-opus-5-5:security-auditor \
|
|
126
126
|
--reviewer gpt-6-sol:bug-hunter
|
|
127
127
|
|
|
128
128
|
# Spec compliance review with context
|
|
@@ -164,7 +164,7 @@ rcl discuss --report report.json --finding f003 "Is this exploitable given the s
|
|
|
164
164
|
|
|
165
165
|
# Attach code as context, or ask different models
|
|
166
166
|
rcl discuss --report report.json --finding f003 --context src/auth.ts "Does the middleware at line 12 not already cover this?"
|
|
167
|
-
rcl discuss --report report.json --finding f003 --models anthropic/claude-
|
|
167
|
+
rcl discuss --report report.json --finding f003 --models anthropic/claude-opus-5-5 "Summarize the strongest counterargument."
|
|
168
168
|
```
|
|
169
169
|
|
|
170
170
|
Model-generated finding ids can collide; when `--finding <id>` is ambiguous the error lists `<id>:<n>` disambiguators. Findings in the below-threshold appendix are addressable too. Answers come back in parallel, respecting the configured `timeout`, `maxRetries`, and `reasoningEffort`. There is no session state: each `discuss` is one independent round built from the report file.
|
|
@@ -1071,7 +1071,7 @@ Place `.review-council.yml` in your project root and run `rcl` from there. rcl l
|
|
|
1071
1071
|
# Shown here: the actual defaults. Keep slow/aggregator-routed models out of
|
|
1072
1072
|
# this list; give them an async seat instead.
|
|
1073
1073
|
models:
|
|
1074
|
-
- anthropic/claude-
|
|
1074
|
+
- anthropic/claude-opus-5-5
|
|
1075
1075
|
- openai/gpt-6-sol
|
|
1076
1076
|
|
|
1077
1077
|
# Specialist assignments only; no additional general reviewer.
|
|
@@ -1093,7 +1093,7 @@ roles:
|
|
|
1093
1093
|
|
|
1094
1094
|
# Or pin explicit model:role pairs
|
|
1095
1095
|
reviewers:
|
|
1096
|
-
- model: anthropic/claude-
|
|
1096
|
+
- model: anthropic/claude-opus-5-5
|
|
1097
1097
|
role: security-auditor
|
|
1098
1098
|
- model: openai/gpt-6-sol
|
|
1099
1099
|
role: bug-hunter
|
|
@@ -1137,7 +1137,7 @@ output:
|
|
|
1137
1137
|
concurrency: 9 # maximum simultaneous blocking reviewer calls per process
|
|
1138
1138
|
# set to 6 to retain the previous limit
|
|
1139
1139
|
providerConcurrency: # provider admission caps, applied in addition to concurrency
|
|
1140
|
-
anthropic: 2 # default: bound
|
|
1140
|
+
anthropic: 2 # default: bound high-effort Anthropic bursts
|
|
1141
1141
|
timeout: 540000 # ms per blocking model call (matches the current default)
|
|
1142
1142
|
asyncTimeout: 900000 # ms per async-lane call (slow reasoning models get headroom; nothing waits on them)
|
|
1143
1143
|
# quorumFraction: 0.75 # round closes once this share of blocking seats succeeds
|
|
@@ -1172,7 +1172,7 @@ spec: SPEC.md
|
|
|
1172
1172
|
`providerConcurrency` adds stricter provider admission caps; increasing the global
|
|
1173
1173
|
limit never bypasses them. The scheduler scans past a saturated provider so calls
|
|
1174
1174
|
for other providers continue without changing the original result order. Anthropic
|
|
1175
|
-
defaults to two concurrent calls to prevent the observed five-seat
|
|
1175
|
+
defaults to two concurrent calls to prevent the observed five-seat high-effort burst;
|
|
1176
1176
|
the existing 540-second call deadline is unchanged. Providers with no default or
|
|
1177
1177
|
explicit entry use only the global limit. Separate RCL processes do not share these
|
|
1178
1178
|
limits; async reviewers and verification use their own scheduling.
|
|
@@ -1204,10 +1204,12 @@ retain their provider effort defaults and reject this OpenAI-only setting.
|
|
|
1204
1204
|
|
|
1205
1205
|
The top-level `reasoningEffort` applies only to OpenRouter reviewers. Direct
|
|
1206
1206
|
Sol and Gemini reviewers use their provider defaults (currently `medium`).
|
|
1207
|
-
|
|
1208
|
-
ceiling so thinking and findings share adequate headroom.
|
|
1209
|
-
|
|
1210
|
-
|
|
1207
|
+
Opus 5.5 reviews explicitly use `high`, streaming, and a 65,536-token output
|
|
1208
|
+
ceiling so thinking and findings share adequate headroom. Opus 5.5's API default
|
|
1209
|
+
is `medium`; RCL sets `high` because a review gate is intelligence-sensitive work
|
|
1210
|
+
([Anthropic's effort guidance](https://platform.claude.com/docs/en/build-with-claude/effort)).
|
|
1211
|
+
The same profile applies when Fable 5.1 is configured explicitly. RCL's whole-call
|
|
1212
|
+
timeout and rejection of incomplete output are unchanged.
|
|
1211
1213
|
OpenRouter reviewers default to `low`, a supported level for the default Kimi K3;
|
|
1212
1214
|
explicit `reasoningEffort` overrides are preserved. Kimi K3 advertises `low`,
|
|
1213
1215
|
`high`, and `max`, so avoid overriding it to `medium`. Effort labels are
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* topology drops the median round from 14.4 to 2.0 min while 91% of
|
|
8
8
|
* multi-model findings still surface.
|
|
9
9
|
*/
|
|
10
|
-
export declare const DEFAULT_MODELS: readonly ["anthropic/claude-
|
|
10
|
+
export declare const DEFAULT_MODELS: readonly ["anthropic/claude-opus-5-5", "openai/gpt-6-sol"];
|
|
11
11
|
/**
|
|
12
12
|
* Async bonus reviewers — fired with the round but never awaited; whatever
|
|
13
13
|
* has arrived by the NEXT round's dedup is merged then, marked async in the
|
|
@@ -66,7 +66,7 @@ export declare const DEFAULT_REASONING_EFFORT = "low";
|
|
|
66
66
|
export declare const DEFAULT_CONCURRENCY = 9;
|
|
67
67
|
/**
|
|
68
68
|
* Provider admission limits inside the blocking runner. The default prevents
|
|
69
|
-
* the observed five-seat
|
|
69
|
+
* the observed five-seat high-effort Anthropic burst while preserving the
|
|
70
70
|
* existing per-call deadline. Providers absent from this map remain bounded
|
|
71
71
|
* only by the global concurrency limit.
|
|
72
72
|
*/
|
package/dist/config/defaults.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* multi-model findings still surface.
|
|
9
9
|
*/
|
|
10
10
|
export const DEFAULT_MODELS = [
|
|
11
|
-
'anthropic/claude-
|
|
11
|
+
'anthropic/claude-opus-5-5',
|
|
12
12
|
'openai/gpt-6-sol',
|
|
13
13
|
];
|
|
14
14
|
/**
|
|
@@ -69,7 +69,7 @@ export const DEFAULT_REASONING_EFFORT = 'low';
|
|
|
69
69
|
export const DEFAULT_CONCURRENCY = 9;
|
|
70
70
|
/**
|
|
71
71
|
* Provider admission limits inside the blocking runner. The default prevents
|
|
72
|
-
* the observed five-seat
|
|
72
|
+
* the observed five-seat high-effort Anthropic burst while preserving the
|
|
73
73
|
* existing per-call deadline. Providers absent from this map remain bounded
|
|
74
74
|
* only by the global concurrency limit.
|
|
75
75
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,2BAA2B;IAC3B,kBAAkB;CACV,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,+BAA+B,CAAU,CAAC;AAE/E,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,yBAAyB,CAAU,CAAC;AAE7E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iBAAiB,EAAE,GAAG;IACtB,aAAa,EAAE,GAAG;IAClB,gBAAgB,EAAE,CAAC;IACnB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,GAAG;CACb,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,SAAS,EAAE,CAAC,EAAW,CAAC;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,UAAU;IACV,WAAW;IACX,OAAO;IACP,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,GAAG;CACA,CAAC"}
|
|
@@ -25,14 +25,20 @@ function isRetryableReview(err, stream) {
|
|
|
25
25
|
err.message === 'request ended without sending any chunks');
|
|
26
26
|
}
|
|
27
27
|
const DEFAULT_PROFILE = { maxTokens: 16384, stream: false };
|
|
28
|
-
//
|
|
29
|
-
// Keep streaming and the existing whole-call
|
|
30
|
-
|
|
28
|
+
// Always-on thinking counts against max_tokens, so high effort needs headroom
|
|
29
|
+
// for thinking plus findings. Keep streaming and the existing whole-call
|
|
30
|
+
// deadline from RCL-103. Opus 5.5 defaults to medium effort; a review is
|
|
31
|
+
// intelligence-sensitive work, so request high explicitly.
|
|
32
|
+
const THINKING_REVIEW_PROFILE = { maxTokens: 65536, effort: 'high', stream: true };
|
|
33
|
+
// Claude 4.6+ uses dateless pinned API IDs; these profiles apply to the
|
|
34
|
+
// documented IDs only, without guessing future model capabilities.
|
|
35
|
+
// https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions
|
|
36
|
+
const MODEL_PROFILES = {
|
|
37
|
+
'claude-opus-5-5': THINKING_REVIEW_PROFILE,
|
|
38
|
+
'claude-fable-5-1': THINKING_REVIEW_PROFILE,
|
|
39
|
+
};
|
|
31
40
|
function profileFor(modelId) {
|
|
32
|
-
|
|
33
|
-
// documented Fable 5.1 ID only, without guessing future model capabilities.
|
|
34
|
-
// https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions
|
|
35
|
-
return modelId === 'claude-fable-5-1' ? FABLE_51_PROFILE : DEFAULT_PROFILE;
|
|
41
|
+
return MODEL_PROFILES[modelId] ?? DEFAULT_PROFILE;
|
|
36
42
|
}
|
|
37
43
|
export class AnthropicAdapter {
|
|
38
44
|
name = 'anthropic';
|
|
@@ -50,8 +56,8 @@ export class AnthropicAdapter {
|
|
|
50
56
|
const start = Date.now();
|
|
51
57
|
let adapterAttempts = 0;
|
|
52
58
|
const modelId = stripKnownProviderPrefix(model);
|
|
53
|
-
// Fable 5.1
|
|
54
|
-
// chunks exhausted the old ceiling before any
|
|
59
|
+
// Opus 5.5 and Fable 5.1 count adaptive thinking against max_tokens. Large
|
|
60
|
+
// review chunks exhausted the old ceiling before any findings arrived.
|
|
55
61
|
const profile = profileFor(modelId);
|
|
56
62
|
const outcome = await attemptWithRetries({
|
|
57
63
|
timeoutMs: options.timeoutMs,
|
|
@@ -104,7 +110,7 @@ export class AnthropicAdapter {
|
|
|
104
110
|
],
|
|
105
111
|
tool_choice: { type: 'auto' },
|
|
106
112
|
};
|
|
107
|
-
//
|
|
113
|
+
// The larger thinking-model output budget requires the SDK's streaming path.
|
|
108
114
|
// finalMessage() keeps the same complete-response parsing and
|
|
109
115
|
// truncation checks used by the nonstreaming path.
|
|
110
116
|
const requestOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/dispatch/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,SAAS,CAAC,kBAAkB;QAAE,OAAO,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9F,OAAO,GAAG,YAAY,SAAS,CAAC,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY,EAAE,MAAe;IACtD,IAAI,GAAG,YAAY,SAAS,CAAC,kBAAkB,IAAI,GAAG,YAAY,SAAS,CAAC,iBAAiB;QAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IACvH,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,yEAAyE;IACzE,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,GAAG,YAAY,SAAS,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAC7D,CAAC,GAAG,CAAC,IAAI,KAAK,kBAAkB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAC1D,GAAG,CAAC,IAAI,KAAK,kBAAkB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO,GAAG,YAAY,SAAS,CAAC,cAAc;QAC1C,CAAC,GAAG,CAAC,OAAO,KAAK,8DAA8D;YAC7E,GAAG,CAAC,OAAO,KAAK,0CAA0C,CAAC,CAAC;AACpE,CAAC;AAQD,MAAM,eAAe,GAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1E,
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/dispatch/anthropic.ts"],"names":[],"mappings":"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"}
|