review-council 4.1.1 → 4.1.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.
|
@@ -4,6 +4,31 @@ import { stripKnownProviderPrefix, isRetryableStatus, retryDelay, sleep, attempt
|
|
|
4
4
|
function isRetryable(err) {
|
|
5
5
|
return err instanceof Anthropic.APIError && isRetryableStatus(err.status);
|
|
6
6
|
}
|
|
7
|
+
function isRetryableReview(err, stream) {
|
|
8
|
+
if (isRetryable(err))
|
|
9
|
+
return true;
|
|
10
|
+
if (!stream)
|
|
11
|
+
return false;
|
|
12
|
+
// The SDK can reject finalMessage() without an HTTP status when a stream
|
|
13
|
+
// disconnects, receives a transient SSE error, or ends before message_stop.
|
|
14
|
+
// An abort, invalid request, or malformed response stays terminal.
|
|
15
|
+
if (err instanceof Anthropic.APIError && err.status === undefined &&
|
|
16
|
+
(err.type === 'overloaded_error' || err.type === 'api_error' ||
|
|
17
|
+
err.type === 'rate_limit_error' || err.type === 'timeout_error'))
|
|
18
|
+
return true;
|
|
19
|
+
return err instanceof Anthropic.APIConnectionError ||
|
|
20
|
+
(err instanceof Anthropic.AnthropicError &&
|
|
21
|
+
(err.message === 'stream ended without producing a Message with role=assistant' ||
|
|
22
|
+
err.message === 'request ended without sending any chunks'));
|
|
23
|
+
}
|
|
24
|
+
const DEFAULT_PROFILE = { maxTokens: 16384, stream: false };
|
|
25
|
+
const FABLE_51_PROFILE = { maxTokens: 32768, effort: 'medium', stream: true };
|
|
26
|
+
function profileFor(modelId) {
|
|
27
|
+
// Claude 4.6+ uses dateless pinned API IDs; this profile applies to the
|
|
28
|
+
// documented Fable 5.1 ID only, without guessing future model capabilities.
|
|
29
|
+
// https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions
|
|
30
|
+
return modelId === 'claude-fable-5-1' ? FABLE_51_PROFILE : DEFAULT_PROFILE;
|
|
31
|
+
}
|
|
7
32
|
export class AnthropicAdapter {
|
|
8
33
|
name = 'anthropic';
|
|
9
34
|
provider = 'anthropic';
|
|
@@ -23,13 +48,17 @@ export class AnthropicAdapter {
|
|
|
23
48
|
const unlinkAbort = linkAbortSignal(controller, options.signal);
|
|
24
49
|
let lastErr = new Error('no attempts made');
|
|
25
50
|
const modelId = stripKnownProviderPrefix(model);
|
|
51
|
+
// Fable 5.1 counts adaptive thinking against max_tokens. Large review
|
|
52
|
+
// chunks exhausted the old ceiling before any complete findings arrived.
|
|
53
|
+
const profile = profileFor(modelId);
|
|
26
54
|
try {
|
|
27
55
|
for (let attempt = 0; attempt <= (options.maxRetries ?? 3); attempt++) {
|
|
28
56
|
try {
|
|
29
57
|
// Use tool use for reliable JSON extraction
|
|
30
|
-
const
|
|
58
|
+
const request = {
|
|
31
59
|
model: modelId,
|
|
32
|
-
max_tokens:
|
|
60
|
+
max_tokens: profile.maxTokens,
|
|
61
|
+
...(profile.effort ? { output_config: { effort: profile.effort } } : {}),
|
|
33
62
|
system: systemPrompt,
|
|
34
63
|
messages: [{ role: 'user', content: userPrompt }],
|
|
35
64
|
tools: [
|
|
@@ -69,11 +98,17 @@ export class AnthropicAdapter {
|
|
|
69
98
|
},
|
|
70
99
|
],
|
|
71
100
|
tool_choice: { type: 'auto' },
|
|
72
|
-
}
|
|
73
|
-
//
|
|
74
|
-
// (
|
|
75
|
-
//
|
|
76
|
-
|
|
101
|
+
};
|
|
102
|
+
// Fable's larger output budget requires the SDK's streaming path.
|
|
103
|
+
// finalMessage() keeps the same complete-response parsing and
|
|
104
|
+
// truncation checks used by the nonstreaming path.
|
|
105
|
+
const requestOptions = {
|
|
106
|
+
signal: controller.signal,
|
|
107
|
+
timeout: options.timeoutMs + 30_000,
|
|
108
|
+
};
|
|
109
|
+
const response = profile.stream
|
|
110
|
+
? await this.client.messages.stream(request, requestOptions).finalMessage()
|
|
111
|
+
: await this.client.messages.create(request, requestOptions);
|
|
77
112
|
const usage = usageFromAnthropic(response.usage);
|
|
78
113
|
if (response.stop_reason === 'max_tokens') {
|
|
79
114
|
return failedReview({
|
|
@@ -148,7 +183,7 @@ export class AnthropicAdapter {
|
|
|
148
183
|
error: 'Request timed out',
|
|
149
184
|
};
|
|
150
185
|
}
|
|
151
|
-
if (
|
|
186
|
+
if (isRetryableReview(err, profile.stream) && attempt < (options.maxRetries ?? 3)) {
|
|
152
187
|
await sleep(retryDelay(attempt));
|
|
153
188
|
continue;
|
|
154
189
|
}
|
|
@@ -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,UAAU,EACV,KAAK,EACL,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,GAAG,YAAY,SAAS,CAAC,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,OAAO,gBAAgB;IAC3B,IAAI,GAAG,WAAW,CAAC;IACnB,QAAQ,GAAG,WAAW,CAAC;IAEf,MAAM,CAAY;IAE1B,YAAY,MAAe;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAClD,kEAAkE;YAClE,0DAA0D;YAC1D,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,IAAY,EACZ,YAAoB,EACpB,UAAkB,EAClB,OAAuB;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhE,IAAI,OAAO,GAAY,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/dispatch/anthropic.ts"],"names":[],"mappings":"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"}
|