@moxxy/plugin-provider-anthropic 0.2.0 → 0.2.1
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/dist/provider.d.ts +6 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +187 -35
- package/dist/provider.js.map +1 -1
- package/dist/translate.d.ts.map +1 -1
- package/dist/translate.js +53 -8
- package/dist/translate.js.map +1 -1
- package/dist/validate.js +23 -1
- package/dist/validate.js.map +1 -1
- package/package.json +5 -5
- package/src/hardening.test.ts +376 -0
- package/src/oauth-refresh.test.ts +54 -0
- package/src/provider.test.ts +46 -0
- package/src/provider.ts +196 -34
- package/src/translate.test.ts +52 -0
- package/src/translate.ts +55 -9
- package/src/validate.test.ts +29 -0
- package/src/validate.ts +20 -1
package/dist/provider.d.ts
CHANGED
|
@@ -60,6 +60,7 @@ export declare class AnthropicProvider implements LLMProvider {
|
|
|
60
60
|
private readonly oauth?;
|
|
61
61
|
private oauthToken?;
|
|
62
62
|
private oauthExpiresAt?;
|
|
63
|
+
private refreshing?;
|
|
63
64
|
constructor(config?: AnthropicProviderConfig);
|
|
64
65
|
/**
|
|
65
66
|
* Build an Anthropic client in OAuth (bearer) mode. `apiKey: null` stops
|
|
@@ -70,7 +71,11 @@ export declare class AnthropicProvider implements LLMProvider {
|
|
|
70
71
|
private makeOauthClient;
|
|
71
72
|
/** Proactively refresh the bearer token when it's within the skew window. */
|
|
72
73
|
private ensureFreshOauth;
|
|
73
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* Force a token refresh and rebuild the client with the new bearer.
|
|
76
|
+
* Coalesces concurrent calls onto a single in-flight refresh so the endpoint
|
|
77
|
+
* is hit once and the client is swapped once.
|
|
78
|
+
*/
|
|
74
79
|
private refreshOauthNow;
|
|
75
80
|
/**
|
|
76
81
|
* Build the `system` request field. In OAuth mode the Claude Code identity
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe,EAGhB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe,EAGhB,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChG;AAaD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,eAAe,CAO1D,CAAC;AAEF,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAGhD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAElC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAIrB;IACF,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAS;IAKhC,OAAO,CAAC,UAAU,CAAC,CAAgB;gBAEvB,MAAM,GAAE,uBAA4B;IAyBhD;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAUvB,6EAA6E;YAC/D,gBAAgB;IAO9B;;;;OAIG;YACW,eAAe;IAe7B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAwBjB,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC;IA2GjE;;;;;OAKG;YACY,UAAU;IA6MnB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CA4C1G"}
|
package/dist/provider.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Anthropic from '@anthropic-ai/sdk';
|
|
2
|
-
import {
|
|
2
|
+
import { toFriendlyError } from '@moxxy/sdk';
|
|
3
3
|
import { toAnthropicMessages, toAnthropicTools } from './translate.js';
|
|
4
4
|
// Hardcoded model catalog (re-exported to @moxxy/plugin-provider-claude-code, which
|
|
5
5
|
// reuses this provider class for the subscription path). Deriving it from the Models
|
|
@@ -32,6 +32,11 @@ export class AnthropicProvider {
|
|
|
32
32
|
oauth;
|
|
33
33
|
oauthToken;
|
|
34
34
|
oauthExpiresAt;
|
|
35
|
+
// Single in-flight refresh shared by concurrent callers (parallel streams /
|
|
36
|
+
// countTokens near expiry) so the refresh endpoint is hit once and the
|
|
37
|
+
// client is swapped once — a second refresh can rotate/invalidate the token
|
|
38
|
+
// and poison state on providers that rotate refresh tokens.
|
|
39
|
+
refreshing;
|
|
35
40
|
constructor(config = {}) {
|
|
36
41
|
this.name = config.name ?? 'anthropic';
|
|
37
42
|
this.models = config.models ?? anthropicModels;
|
|
@@ -82,14 +87,26 @@ export class AnthropicProvider {
|
|
|
82
87
|
return;
|
|
83
88
|
await this.refreshOauthNow();
|
|
84
89
|
}
|
|
85
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* Force a token refresh and rebuild the client with the new bearer.
|
|
92
|
+
* Coalesces concurrent calls onto a single in-flight refresh so the endpoint
|
|
93
|
+
* is hit once and the client is swapped once.
|
|
94
|
+
*/
|
|
86
95
|
async refreshOauthNow() {
|
|
87
|
-
if (
|
|
96
|
+
if (this.refreshing)
|
|
97
|
+
return this.refreshing;
|
|
98
|
+
const refresh = this.oauth?.refresh;
|
|
99
|
+
if (!refresh)
|
|
88
100
|
throw new Error('no refresh callback');
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
101
|
+
this.refreshing = (async () => {
|
|
102
|
+
const next = await refresh();
|
|
103
|
+
this.oauthToken = next.token;
|
|
104
|
+
this.oauthExpiresAt = next.expiresAt;
|
|
105
|
+
this.client = this.makeOauthClient(next.token);
|
|
106
|
+
})().finally(() => {
|
|
107
|
+
this.refreshing = undefined;
|
|
108
|
+
});
|
|
109
|
+
return this.refreshing;
|
|
93
110
|
}
|
|
94
111
|
/**
|
|
95
112
|
* Build the `system` request field. In OAuth mode the Claude Code identity
|
|
@@ -145,9 +162,11 @@ export class AnthropicProvider {
|
|
|
145
162
|
// req.system (hook-injected extra system text) is appended last.
|
|
146
163
|
const systemParam = this.buildSystemParam(system, cacheSystem, req.system);
|
|
147
164
|
const model = req.model || this.defaultModel;
|
|
148
|
-
yield { type: 'message_start', model };
|
|
149
165
|
// In OAuth mode refresh the bearer proactively when it's near expiry, so
|
|
150
166
|
// we don't fire a request on a token we already knew was about to die.
|
|
167
|
+
// Done BEFORE emitting message_start so a turn that never reaches the API
|
|
168
|
+
// (proactive refresh throws) doesn't leave a dangling open message for
|
|
169
|
+
// consumers that pair message_start/message_end.
|
|
151
170
|
if (this.oauth) {
|
|
152
171
|
try {
|
|
153
172
|
await this.ensureFreshOauth();
|
|
@@ -157,6 +176,17 @@ export class AnthropicProvider {
|
|
|
157
176
|
return;
|
|
158
177
|
}
|
|
159
178
|
}
|
|
179
|
+
yield { type: 'message_start', model };
|
|
180
|
+
// Default + clamp max_tokens to the active model's output ceiling. We hold
|
|
181
|
+
// the catalog, so default to the descriptor's `maxOutputTokens` (4096 when
|
|
182
|
+
// unknown) and never forward a caller-supplied value above the ceiling —
|
|
183
|
+
// an over-ceiling request 400s server-side after the whole body is built.
|
|
184
|
+
const ceiling = this.models.find((m) => m.id === model)?.maxOutputTokens;
|
|
185
|
+
const maxTokens = req.maxTokens !== undefined
|
|
186
|
+
? ceiling !== undefined
|
|
187
|
+
? Math.min(req.maxTokens, ceiling)
|
|
188
|
+
: req.maxTokens
|
|
189
|
+
: (ceiling ?? 4096);
|
|
160
190
|
// NARROW cast: `messages`/`tools`/`systemParam` are our hand-rolled
|
|
161
191
|
// Anthropic shapes (e.g. `media_type: string`) which the SDK narrows to
|
|
162
192
|
// literal unions it can't see we never violate. The body is otherwise
|
|
@@ -164,7 +194,7 @@ export class AnthropicProvider {
|
|
|
164
194
|
// `temperature` are checked at compile time.
|
|
165
195
|
const requestBody = {
|
|
166
196
|
model,
|
|
167
|
-
max_tokens:
|
|
197
|
+
max_tokens: maxTokens,
|
|
168
198
|
system: systemParam,
|
|
169
199
|
messages: messages,
|
|
170
200
|
tools: tools,
|
|
@@ -186,13 +216,19 @@ export class AnthropicProvider {
|
|
|
186
216
|
if (effort)
|
|
187
217
|
body.output_config = { effort };
|
|
188
218
|
}
|
|
189
|
-
// A 401
|
|
190
|
-
// a single refresh and replay the request
|
|
219
|
+
// A genuine auth 401 arrives before any SSE body, so in OAuth mode we can
|
|
220
|
+
// force a single refresh and replay the request. But `isUnauthorized()`
|
|
221
|
+
// also matches a 401 surfaced MID-stream (token revoked during a long
|
|
222
|
+
// generation, proxy 401 on a chunk); replaying after content already
|
|
223
|
+
// streamed would duplicate text/tool calls into the same turn. Track
|
|
224
|
+
// whether the first attempt produced any output and only replay when it
|
|
225
|
+
// produced none.
|
|
226
|
+
const progress = { produced: false };
|
|
191
227
|
try {
|
|
192
|
-
yield* this.streamOnce(requestBody, req.signal);
|
|
228
|
+
yield* this.streamOnce(requestBody, req.signal, progress);
|
|
193
229
|
}
|
|
194
230
|
catch (err) {
|
|
195
|
-
if (this.oauth?.refresh && isUnauthorized(err)) {
|
|
231
|
+
if (this.oauth?.refresh && isUnauthorized(err) && !progress.produced) {
|
|
196
232
|
try {
|
|
197
233
|
await this.refreshOauthNow();
|
|
198
234
|
yield* this.streamOnce(requestBody, req.signal);
|
|
@@ -212,7 +248,12 @@ export class AnthropicProvider {
|
|
|
212
248
|
* yields content events plus a terminal `message_end` on the happy path.
|
|
213
249
|
* Abort is terminal here (yields the abort error and returns).
|
|
214
250
|
*/
|
|
215
|
-
async *streamOnce(requestBody, signal
|
|
251
|
+
async *streamOnce(requestBody, signal,
|
|
252
|
+
// Set to `true` the moment this attempt yields any content event (anything
|
|
253
|
+
// past message_start). `stream()` reads it to decide whether a 401 is safe
|
|
254
|
+
// to refresh-and-replay (replaying after output already streamed would
|
|
255
|
+
// duplicate text/tool calls). Optional so the replay attempt can omit it.
|
|
256
|
+
progress) {
|
|
216
257
|
const stream = this.client.messages.stream(requestBody,
|
|
217
258
|
// Pass the AbortSignal into the SDK request options so cancelling
|
|
218
259
|
// tears down the underlying HTTP request. Without this, Esc only
|
|
@@ -236,6 +277,10 @@ export class AnthropicProvider {
|
|
|
236
277
|
// rather than the cache fields sneaking in only via a spread (which bypasses
|
|
237
278
|
// the excess-property check) against a narrower declared type.
|
|
238
279
|
let usage;
|
|
280
|
+
// Set once the stream is fully drained on the happy path; gates the
|
|
281
|
+
// finally-block teardown so we only force-abort on an early exit
|
|
282
|
+
// (abort/throw/consumer abandonment), never on a clean completion.
|
|
283
|
+
let drained = false;
|
|
239
284
|
try {
|
|
240
285
|
for await (const event of stream) {
|
|
241
286
|
if (signal?.aborted) {
|
|
@@ -263,6 +308,8 @@ export class AnthropicProvider {
|
|
|
263
308
|
break;
|
|
264
309
|
}
|
|
265
310
|
case 'content_block_start': {
|
|
311
|
+
if (progress)
|
|
312
|
+
progress.produced = true;
|
|
266
313
|
const block = event.content_block;
|
|
267
314
|
if (block && block.type === 'tool_use') {
|
|
268
315
|
pendingToolUses.set(block.id, { name: block.name, partial: '' });
|
|
@@ -284,6 +331,8 @@ export class AnthropicProvider {
|
|
|
284
331
|
break;
|
|
285
332
|
}
|
|
286
333
|
case 'content_block_delta': {
|
|
334
|
+
if (progress)
|
|
335
|
+
progress.produced = true;
|
|
287
336
|
const delta = event.delta;
|
|
288
337
|
if (!delta)
|
|
289
338
|
break;
|
|
@@ -297,7 +346,7 @@ export class AnthropicProvider {
|
|
|
297
346
|
pendingThinkingSig += delta.signature;
|
|
298
347
|
}
|
|
299
348
|
else if (delta.type === 'input_json_delta' && typeof delta.partial_json === 'string') {
|
|
300
|
-
const id = idOfBlock(event, blockIndexToId);
|
|
349
|
+
const id = idOfBlock(event, blockIndexToId, pendingToolUses);
|
|
301
350
|
if (id) {
|
|
302
351
|
const t = pendingToolUses.get(id);
|
|
303
352
|
if (t) {
|
|
@@ -309,6 +358,8 @@ export class AnthropicProvider {
|
|
|
309
358
|
break;
|
|
310
359
|
}
|
|
311
360
|
case 'content_block_stop': {
|
|
361
|
+
if (progress)
|
|
362
|
+
progress.produced = true;
|
|
312
363
|
if (typeof event.index === 'number' && thinkingBlockIndices.has(event.index)) {
|
|
313
364
|
thinkingBlockIndices.delete(event.index);
|
|
314
365
|
if (pendingThinkingSig)
|
|
@@ -316,36 +367,59 @@ export class AnthropicProvider {
|
|
|
316
367
|
pendingThinkingSig = '';
|
|
317
368
|
break;
|
|
318
369
|
}
|
|
319
|
-
const id = idOfBlock(event, blockIndexToId);
|
|
370
|
+
const id = idOfBlock(event, blockIndexToId, pendingToolUses);
|
|
320
371
|
if (id) {
|
|
321
372
|
const t = pendingToolUses.get(id);
|
|
322
373
|
if (t) {
|
|
323
|
-
let parsed
|
|
374
|
+
let parsed;
|
|
324
375
|
try {
|
|
325
376
|
parsed = t.partial ? JSON.parse(t.partial) : {};
|
|
326
377
|
}
|
|
327
378
|
catch {
|
|
328
|
-
|
|
379
|
+
// A truncated/malformed tool-input stream is a real failure, not
|
|
380
|
+
// a valid call with junk args. Surface it as an error (the loop
|
|
381
|
+
// treats a stream-level error as authoritative) and mark the turn
|
|
382
|
+
// `error`, instead of feeding `{ _rawPartial }` into the tool —
|
|
383
|
+
// which erased all signal that the model's call was garbage.
|
|
384
|
+
pendingToolUses.delete(id);
|
|
385
|
+
pruneBlockIndex(blockIndexToId, event.index, id);
|
|
386
|
+
stopReason = 'error';
|
|
387
|
+
yield {
|
|
388
|
+
type: 'error',
|
|
389
|
+
message: `tool_use input JSON was malformed/truncated for ${id}`,
|
|
390
|
+
retryable: false,
|
|
391
|
+
};
|
|
392
|
+
break;
|
|
329
393
|
}
|
|
330
394
|
yield { type: 'tool_use_end', id, input: parsed };
|
|
331
395
|
pendingToolUses.delete(id);
|
|
332
|
-
|
|
333
|
-
blockIndexToId.delete(event.index);
|
|
396
|
+
pruneBlockIndex(blockIndexToId, event.index, id);
|
|
334
397
|
}
|
|
335
398
|
}
|
|
336
399
|
break;
|
|
337
400
|
}
|
|
338
401
|
case 'message_delta': {
|
|
339
|
-
|
|
402
|
+
// STICKY error: once a malformed/truncated tool-input stream marked
|
|
403
|
+
// the turn `error` at content_block_stop, a trailing message_delta
|
|
404
|
+
// (which a truncated tool-use turn still reports as `tool_use`) must
|
|
405
|
+
// NOT clobber it back to a clean completion — that would re-run the
|
|
406
|
+
// junk tool. Usage numbers below still merge as usual.
|
|
407
|
+
if (event.delta?.stop_reason && stopReason !== 'error') {
|
|
340
408
|
stopReason = mapStopReason(event.delta.stop_reason);
|
|
341
409
|
}
|
|
342
410
|
if (event.usage) {
|
|
343
|
-
//
|
|
344
|
-
//
|
|
411
|
+
// Prefer delta-reported input/cache numbers when present (some
|
|
412
|
+
// streaming modes report or correct them here), but fall back to
|
|
413
|
+
// the message_start values otherwise — mirroring the defensive
|
|
414
|
+
// `?? previous` pattern used for outputTokens.
|
|
415
|
+
const du = event.usage;
|
|
416
|
+
const cacheRead = du.cache_read_input_tokens ?? usage?.cacheReadTokens;
|
|
417
|
+
const cacheCreation = du.cache_creation_input_tokens ?? usage?.cacheCreationTokens;
|
|
345
418
|
usage = {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
419
|
+
inputTokens: du.input_tokens ?? usage?.inputTokens ?? 0,
|
|
420
|
+
outputTokens: du.output_tokens ?? usage?.outputTokens ?? 0,
|
|
421
|
+
...(cacheRead !== undefined ? { cacheReadTokens: cacheRead } : {}),
|
|
422
|
+
...(cacheCreation !== undefined ? { cacheCreationTokens: cacheCreation } : {}),
|
|
349
423
|
};
|
|
350
424
|
}
|
|
351
425
|
break;
|
|
@@ -354,6 +428,7 @@ export class AnthropicProvider {
|
|
|
354
428
|
break;
|
|
355
429
|
}
|
|
356
430
|
}
|
|
431
|
+
drained = true;
|
|
357
432
|
}
|
|
358
433
|
catch (err) {
|
|
359
434
|
// A cancel surfaces as a thrown AbortError mid-await — report it as the
|
|
@@ -365,6 +440,23 @@ export class AnthropicProvider {
|
|
|
365
440
|
}
|
|
366
441
|
throw err;
|
|
367
442
|
}
|
|
443
|
+
finally {
|
|
444
|
+
// Guarantee socket teardown independent of whether the AbortSignal
|
|
445
|
+
// propagated into the SDK. On any early exit (abort, throw, or the
|
|
446
|
+
// consumer abandoning the generator — at which point the JS runtime
|
|
447
|
+
// runs this finally) explicitly abort the SDK stream so a half-open
|
|
448
|
+
// HTTP connection can't linger under repeated rapid cancellation.
|
|
449
|
+
if (!drained) {
|
|
450
|
+
const s = stream;
|
|
451
|
+
try {
|
|
452
|
+
s.abort?.();
|
|
453
|
+
s.controller?.abort?.();
|
|
454
|
+
}
|
|
455
|
+
catch {
|
|
456
|
+
// Best-effort cleanup — a fake/partial stream may expose neither.
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
368
460
|
yield { type: 'message_end', stopReason, usage };
|
|
369
461
|
}
|
|
370
462
|
async countTokens(req) {
|
|
@@ -394,26 +486,86 @@ export class AnthropicProvider {
|
|
|
394
486
|
return result.input_tokens;
|
|
395
487
|
}
|
|
396
488
|
catch {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
489
|
+
// Estimate WITHOUT serializing megabytes of base64 into one mega-string:
|
|
490
|
+
// a media block's bytes have nothing to do with its token cost, and
|
|
491
|
+
// stringifying them both spikes memory on a large multimodal history and
|
|
492
|
+
// wildly inflates the estimate. Sum char-lengths of textual content and
|
|
493
|
+
// charge each media block a small fixed allowance instead.
|
|
494
|
+
let chars = systemForCount?.length ?? 0;
|
|
495
|
+
for (const m of messages) {
|
|
496
|
+
for (const block of m.content) {
|
|
497
|
+
chars += estimateBlockChars(block);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
chars += JSON.stringify(tools ?? []).length;
|
|
501
|
+
// Mirror estimateTextTokens (≈4 chars/token) on the accumulated length
|
|
502
|
+
// without ever materializing the concatenated string.
|
|
503
|
+
return Math.ceil(chars / 4);
|
|
401
504
|
}
|
|
402
505
|
}
|
|
403
506
|
}
|
|
404
|
-
|
|
507
|
+
/** Rough per-image/-document token allowance for the offline estimate fallback. */
|
|
508
|
+
const MEDIA_BLOCK_TOKENS = 1500;
|
|
509
|
+
/**
|
|
510
|
+
* Char-length contribution of one Anthropic content block for the offline
|
|
511
|
+
* token estimate. Skips the base64 `data` of image/document blocks (charging a
|
|
512
|
+
* fixed token allowance, scaled back to chars) so a multi-MB blob never gets
|
|
513
|
+
* stringified just to be divided by 4.
|
|
514
|
+
*/
|
|
515
|
+
function estimateBlockChars(block) {
|
|
516
|
+
switch (block.type) {
|
|
517
|
+
case 'text':
|
|
518
|
+
return block.text.length;
|
|
519
|
+
case 'tool_use':
|
|
520
|
+
return block.name.length + JSON.stringify(block.input ?? {}).length;
|
|
521
|
+
case 'tool_result':
|
|
522
|
+
return block.content.length;
|
|
523
|
+
case 'thinking':
|
|
524
|
+
return block.thinking.length + block.signature.length;
|
|
525
|
+
case 'redacted_thinking':
|
|
526
|
+
return block.data.length;
|
|
527
|
+
case 'image':
|
|
528
|
+
case 'document':
|
|
529
|
+
// Charge a fixed allowance instead of the base64 byte length.
|
|
530
|
+
return MEDIA_BLOCK_TOKENS * 4;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
function idOfBlock(event, blockIndexToId, pendingToolUses) {
|
|
405
534
|
if (typeof event.index === 'number') {
|
|
406
535
|
return blockIndexToId.get(event.index) ?? null;
|
|
407
536
|
}
|
|
408
537
|
// Fallback when `index` is missing (older SDKs / hand-rolled fakes): only
|
|
409
|
-
// unambiguous when exactly one tool_use is pending
|
|
410
|
-
//
|
|
538
|
+
// unambiguous when exactly one tool_use is pending. `pruneBlockIndex` deletes
|
|
539
|
+
// a finished block's entry on content_block_stop even in an index-less stream,
|
|
540
|
+
// so a stale entry can't linger to falsely satisfy size===1 for a later block;
|
|
541
|
+
// we still require the id to be PENDING as a belt-and-suspenders guard.
|
|
411
542
|
if (blockIndexToId.size === 1) {
|
|
412
|
-
for (const id of blockIndexToId.values())
|
|
413
|
-
|
|
543
|
+
for (const id of blockIndexToId.values()) {
|
|
544
|
+
if (!pendingToolUses || pendingToolUses.has(id))
|
|
545
|
+
return id;
|
|
546
|
+
}
|
|
414
547
|
}
|
|
415
548
|
return null;
|
|
416
549
|
}
|
|
550
|
+
/**
|
|
551
|
+
* Remove a finished tool block's index→id mapping. Prefers the numeric index
|
|
552
|
+
* (real Anthropic streams), but falls back to deleting by VALUE (`id`) so an
|
|
553
|
+
* index-less stream doesn't leave a stale entry lingering — which would break
|
|
554
|
+
* the size===1 fallback for the next serial tool block (its deltas would route
|
|
555
|
+
* nowhere). Index-less streams therefore stay correct for strictly-serial tools.
|
|
556
|
+
*/
|
|
557
|
+
function pruneBlockIndex(blockIndexToId, index, id) {
|
|
558
|
+
if (typeof index === 'number') {
|
|
559
|
+
blockIndexToId.delete(index);
|
|
560
|
+
return;
|
|
561
|
+
}
|
|
562
|
+
for (const [k, v] of blockIndexToId) {
|
|
563
|
+
if (v === id) {
|
|
564
|
+
blockIndexToId.delete(k);
|
|
565
|
+
return;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
417
569
|
function mapStopReason(s) {
|
|
418
570
|
if (s === 'tool_use')
|
|
419
571
|
return 'tool_use';
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/translate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../src/translate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGzE,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../src/translate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGzE,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAW1C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GAC5F;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,GAID;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACpD;AAMD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,IAAI,GAAE,0BAA+B,GACpC;IACD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAkEA;AAmFD,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAC7B,IAAI,GAAE,uBAA4B,GACjC,gBAAgB,EAAE,CAUpB"}
|
package/dist/translate.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { zodToJsonSchema } from '@moxxy/sdk';
|
|
2
|
+
/** Media types Anthropic's Messages API accepts for `image`/`document` blocks. */
|
|
3
|
+
const IMAGE_MEDIA_TYPES = new Set([
|
|
4
|
+
'image/png',
|
|
5
|
+
'image/jpeg',
|
|
6
|
+
'image/gif',
|
|
7
|
+
'image/webp',
|
|
8
|
+
]);
|
|
9
|
+
const DOCUMENT_MEDIA_TYPES = new Set(['application/pdf']);
|
|
2
10
|
function markCache(block) {
|
|
3
11
|
if (block)
|
|
4
12
|
block.cache_control = { type: 'ephemeral' };
|
|
@@ -17,15 +25,21 @@ export function toAnthropicMessages(messages, opts = {}) {
|
|
|
17
25
|
messages.forEach((msg, i) => {
|
|
18
26
|
const wantCache = cacheIdx?.has(i) ?? false;
|
|
19
27
|
if (msg.role === 'system') {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
// Join ALL text blocks of a system message (not just the first) so a
|
|
29
|
+
// multi-block system prompt isn't silently truncated; mirrors the
|
|
30
|
+
// cross-message join below.
|
|
31
|
+
const text = msg.content
|
|
32
|
+
.filter((c) => c.type === 'text')
|
|
33
|
+
.map((c) => c.text)
|
|
34
|
+
.join('\n\n');
|
|
35
|
+
if (text) {
|
|
36
|
+
system = system ? `${system}\n\n${text}` : text;
|
|
23
37
|
}
|
|
24
38
|
return;
|
|
25
39
|
}
|
|
26
40
|
if (msg.role === 'user') {
|
|
27
41
|
flushUser();
|
|
28
|
-
const content = msg.content
|
|
42
|
+
const content = mapBlocks(msg.content);
|
|
29
43
|
if (wantCache)
|
|
30
44
|
markCache(content[content.length - 1]);
|
|
31
45
|
out.push({ role: 'user', content });
|
|
@@ -33,7 +47,7 @@ export function toAnthropicMessages(messages, opts = {}) {
|
|
|
33
47
|
}
|
|
34
48
|
if (msg.role === 'assistant') {
|
|
35
49
|
flushUser();
|
|
36
|
-
const content = msg.content
|
|
50
|
+
const content = mapBlocks(msg.content);
|
|
37
51
|
if (wantCache)
|
|
38
52
|
markCache(content[content.length - 1]);
|
|
39
53
|
out.push({ role: 'assistant', content });
|
|
@@ -62,6 +76,16 @@ export function toAnthropicMessages(messages, opts = {}) {
|
|
|
62
76
|
flushUser();
|
|
63
77
|
return { system, messages: out };
|
|
64
78
|
}
|
|
79
|
+
/** Translate a message's blocks, dropping any that translate to nothing. */
|
|
80
|
+
function mapBlocks(blocks) {
|
|
81
|
+
const out = [];
|
|
82
|
+
for (const b of blocks) {
|
|
83
|
+
const t = toAnthropicBlock(b);
|
|
84
|
+
if (t)
|
|
85
|
+
out.push(t);
|
|
86
|
+
}
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
65
89
|
function toAnthropicBlock(block) {
|
|
66
90
|
switch (block.type) {
|
|
67
91
|
case 'text':
|
|
@@ -76,12 +100,29 @@ function toAnthropicBlock(block) {
|
|
|
76
100
|
is_error: block.isError,
|
|
77
101
|
};
|
|
78
102
|
case 'image':
|
|
103
|
+
// Reject unsupported media types locally (degrade to a placeholder, as
|
|
104
|
+
// audio does) rather than uploading bytes that 400 deep in the SDK. A
|
|
105
|
+
// resumed session or hostile channel can supply an out-of-allow-list
|
|
106
|
+
// type; the documented Anthropic image set is png/jpeg/gif/webp.
|
|
107
|
+
if (!IMAGE_MEDIA_TYPES.has(block.mediaType)) {
|
|
108
|
+
return {
|
|
109
|
+
type: 'text',
|
|
110
|
+
text: `[image attachment dropped: ${block.mediaType} not a supported image type]`,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
79
113
|
return {
|
|
80
114
|
type: 'image',
|
|
81
115
|
source: { type: 'base64', media_type: block.mediaType, data: block.data },
|
|
82
116
|
};
|
|
83
117
|
case 'document':
|
|
84
118
|
// Native document support (PDF). Claude reads text + figures/layout.
|
|
119
|
+
// Documented Anthropic document set is application/pdf only.
|
|
120
|
+
if (!DOCUMENT_MEDIA_TYPES.has(block.mediaType)) {
|
|
121
|
+
return {
|
|
122
|
+
type: 'text',
|
|
123
|
+
text: `[document attachment dropped: ${block.mediaType} not a supported document type]`,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
85
126
|
return {
|
|
86
127
|
type: 'document',
|
|
87
128
|
source: { type: 'base64', media_type: block.mediaType, data: block.data },
|
|
@@ -100,15 +141,19 @@ function toAnthropicBlock(block) {
|
|
|
100
141
|
case 'reasoning':
|
|
101
142
|
// Replayed verbatim so Anthropic accepts an interleaved-thinking tool-use
|
|
102
143
|
// continuation. `redacted` → the opaque encrypted blob; otherwise the
|
|
103
|
-
// signed thinking block
|
|
104
|
-
//
|
|
144
|
+
// signed thinking block. Drop an unsigned/unredacted reasoning block
|
|
145
|
+
// rather than degrading it to a stray assistant text block: Anthropic
|
|
146
|
+
// rejects an unsigned thinking block, and emitting it as text could leak
|
|
147
|
+
// raw reasoning into assistant output or 400 a tool-use turn. The
|
|
148
|
+
// translator stays self-consistent without depending on the upstream
|
|
149
|
+
// projection invariant (maintained in a different package).
|
|
105
150
|
if (block.redacted && block.encrypted) {
|
|
106
151
|
return { type: 'redacted_thinking', data: block.encrypted };
|
|
107
152
|
}
|
|
108
153
|
if (block.signature) {
|
|
109
154
|
return { type: 'thinking', thinking: block.text, signature: block.signature };
|
|
110
155
|
}
|
|
111
|
-
return
|
|
156
|
+
return null;
|
|
112
157
|
}
|
|
113
158
|
}
|
|
114
159
|
export function toAnthropicTools(tools, opts = {}) {
|
package/dist/translate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../src/translate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../src/translate.ts"],"names":[],"mappings":"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"}
|