@holokai/holo-provider-claude 1.6.0 → 1.9.0

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.
@@ -1,4 +1,5 @@
1
1
  import { BaseAuditor } from '@holokai/holo-sdk/provider';
2
+ import type { TokenBreakdown } from '@holokai/holo-types/entities';
2
3
  import type { ProviderDoneEvent, ProviderEvent } from '@holokai/holo-types/provider';
3
4
  import type { HoloWorkerRequest, WorkerResponseEnvelope } from '@holokai/holo-types/worker';
4
5
  import type { ProviderEnvelope, ProviderResponseMetrics } from '@holokai/holo-types/entities';
@@ -9,6 +10,7 @@ export declare class ClaudeAuditor extends BaseAuditor {
9
10
  mapFinishReason(nativeResponse: any, _protocolName?: string): HoloFinishReason;
10
11
  mapUsage(nativeResponse: any, protocolName?: string): HoloUsage;
11
12
  protected extractRequestOptions(workerRequest: HoloWorkerRequest): Promise<Record<string, any>>;
13
+ mapTokenBreakdown(usage: Record<string, any>): TokenBreakdown;
12
14
  protected mapProviderResponseMetrics(providerEvent: ProviderDoneEvent, protocolName: string): Promise<Partial<ProviderResponseMetrics>>;
13
15
  protected mapResponseStatus(providerEvent: ProviderEvent, envelope: WorkerResponseEnvelope): Promise<ProviderResponseStatus>;
14
16
  protected extractFinishReason(providerEvent: ProviderEvent, _envelope: WorkerResponseEnvelope): Promise<FinishReason | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.auditor.d.ts","sourceRoot":"","sources":["../src/claude.auditor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAsB,MAAM,4BAA4B,CAAC;AAE5E,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAU1E,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAEpB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAgB9E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;cAcxD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAkBrF,0BAA0B,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM;cAyBjF,iBAAiB,CAC7B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,sBAAsB,GACjC,OAAO,CAAC,sBAAsB,CAAC;cAQlB,mBAAmB,CAC/B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,sBAAsB,GAClC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;cAMpB,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CActG"}
1
+ {"version":3,"file":"claude.auditor.d.ts","sourceRoot":"","sources":["../src/claude.auditor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAsB,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAU1E,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAEpB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAgB9E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;cAexD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IA6BrG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc;cAc7C,0BAA0B,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM;cAyBjF,iBAAiB,CAC7B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,sBAAsB,GACjC,OAAO,CAAC,sBAAsB,CAAC;cAQlB,mBAAmB,CAC/B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,sBAAsB,GAClC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;cAMpB,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CActG"}
@@ -43,11 +43,12 @@ let ClaudeAuditor = class ClaudeAuditor extends BaseAuditor {
43
43
  input_tokens: usage.input_tokens,
44
44
  output_tokens: usage.output_tokens,
45
45
  total_tokens: usage.input_tokens + usage.output_tokens,
46
+ reasoning_tokens: usage.output_tokens_details?.thinking_tokens || undefined,
46
47
  });
47
48
  }
48
49
  async extractRequestOptions(workerRequest) {
49
50
  const payload = workerRequest.payload;
50
- const { max_tokens, metadata, stop_sequences, stream, temperature, top_k, top_p } = payload;
51
+ const { max_tokens, metadata, output_config, stop_sequences, stream, temperature, thinking, top_k, top_p } = payload;
51
52
  return {
52
53
  ...pickDefined({
53
54
  max_tokens,
@@ -56,10 +57,32 @@ let ClaudeAuditor = class ClaudeAuditor extends BaseAuditor {
56
57
  temperature,
57
58
  top_k,
58
59
  top_p,
60
+ // Reasoning depth drives token spend, so it belongs in the audit record
61
+ // alongside the sampling knobs rather than only in the token counts.
62
+ thinking,
63
+ effort: output_config?.effort ?? undefined,
59
64
  }),
60
65
  ...(metadata ?? {}),
61
66
  };
62
67
  }
68
+ // `input_tokens` already excludes cache tokens; total prompt = input + cache_read + cache_creation.
69
+ //
70
+ // Thinking lands in `reasoning`, never `thinking`. Anthropic counts reasoning *inside*
71
+ // `output_tokens` and bills it at the output rate, so the `thinking` bucket — which
72
+ // `completionTokens` adds on top of `output` — would bill every reasoning request twice.
73
+ // `reasoning` is the informational bucket: recorded for inspection, never priced, never summed.
74
+ mapTokenBreakdown(usage) {
75
+ const write1h = usage.cache_creation?.ephemeral_1h_input_tokens ?? 0;
76
+ const write5m = usage.cache_creation?.ephemeral_5m_input_tokens ?? (usage.cache_creation_input_tokens ?? 0) - write1h;
77
+ return pickDefined({
78
+ input: usage.input_tokens ?? 0,
79
+ output: usage.output_tokens ?? 0,
80
+ cache_read: usage.cache_read_input_tokens ?? 0,
81
+ cache_write: Math.max(write5m, 0),
82
+ cache_write_1h: write1h || undefined,
83
+ reasoning: usage.output_tokens_details?.thinking_tokens || undefined,
84
+ });
85
+ }
63
86
  async mapProviderResponseMetrics(providerEvent, protocolName) {
64
87
  if (protocolName === ClaudeProtocols.COUNT_TOKENS) {
65
88
  return pickDefined({
@@ -102,7 +125,7 @@ let ClaudeAuditor = class ClaudeAuditor extends BaseAuditor {
102
125
  async createProviderEnvelope(workerRequest) {
103
126
  const payload = workerRequest.payload;
104
127
  const last_user_prompt = extractPromptByRole(payload.messages, 'user', 'last', msg => extractTextContent(msg.content));
105
- const system_prompt = workerRequest.systemPrompt?.system_prompt ?? extractTopLevelPrompt(payload.system);
128
+ const system_prompt = extractTopLevelPrompt(payload.system);
106
129
  return pickDefined({
107
130
  last_user_prompt,
108
131
  access_model: payload.model,
@@ -1 +1 @@
1
- {"version":3,"file":"claude.auditor.js","sourceRoot":"","sources":["../src/claude.auditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.auditor.js","sourceRoot":"","sources":["../src/claude.auditor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { MessageStreamParams } from '@anthropic-ai/sdk/resources/messages/messages';
2
+ interface WireInput {
3
+ messages?: MessageStreamParams['messages'] | undefined;
4
+ system?: MessageStreamParams['system'] | undefined;
5
+ tools?: MessageStreamParams['tools'] | undefined;
6
+ /** Non-streaming requests are bounded harder — see {@link nonStreamingCeilingFor}. */
7
+ stream?: boolean | undefined;
8
+ }
9
+ /**
10
+ * A deliberately high estimate of a request's input tokens, from the WIRE shape: every
11
+ * character of the serialized messages, system and tools at three to a token, plus a flat
12
+ * cost per embedded image or document in place of its base64 payload. Over-counting only
13
+ * lowers the cap a little; under-counting is a rejected request. Both translation directions
14
+ * measure the same wire objects so they agree exactly.
15
+ */
16
+ export declare function estimateInputTokens(params: WireInput): number;
17
+ /** The `max_tokens` a request that named none gets: the model's limit, held under every bound that applies. */
18
+ export declare function defaultMaxTokens(model: string | undefined, params: WireInput): number;
19
+ export {};
20
+ //# sourceMappingURL=claude.max-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.max-tokens.d.ts","sourceRoot":"","sources":["../src/claude.max-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+CAA+C,CAAC;AAgCvF,UAAU,SAAS;IACf,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACvD,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACnD,KAAK,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IACjD,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAQ7D;AAED,+GAA+G;AAC/G,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAKrF"}
@@ -0,0 +1,71 @@
1
+ import { contextWindowFor, maxOutputTokensFor, nonStreamingCeilingFor } from './claude.model.capabilities.js';
2
+ /**
3
+ * What to send as `max_tokens` when the caller sent nothing.
4
+ *
5
+ * Anthropic's Messages API requires the field, rejects a value above the model's output
6
+ * limit, and — from Claude 4 on — rejects a request whose input plus `max_tokens` exceeds
7
+ * the context window rather than shrinking the cap. A fixed default therefore fails one way
8
+ * or the other: 4096 truncated answers on models whose thinking alone spends more than that
9
+ * (thinking counts inside the cap; HOL-3552), while any one large number is a 400 on the
10
+ * models it exceeds and on every long prompt. The default is the largest value THIS model
11
+ * accepts for THIS request — its published output limit, held under what the window leaves
12
+ * after the input, and under what the SDK will post without streaming.
13
+ */
14
+ /** Kept back from the window so an estimate that runs a little low still fits. */
15
+ const WINDOW_MARGIN = 1_000;
16
+ /** The smallest cap worth sending; below this an answer could not hold anything. */
17
+ const MIN_MAX_TOKENS = 1_024;
18
+ /** English text runs closer to four characters a token; three over-counts, which is the safe direction for a cap. */
19
+ const CHARS_PER_TOKEN = 3;
20
+ /**
21
+ * An image costs about (width × height) / 750 tokens; Anthropic downsizes to ~1.15MP, which
22
+ * is ~1,600. This is the WHOLE cost of an image: its base64 payload is excluded from the
23
+ * character count, or a 1MB screenshot would price as ~470k tokens and collapse the cap.
24
+ */
25
+ const TOKENS_PER_IMAGE = 1_600;
26
+ /**
27
+ * A deliberately high estimate of a request's input tokens, from the WIRE shape: every
28
+ * character of the serialized messages, system and tools at three to a token, plus a flat
29
+ * cost per embedded image or document in place of its base64 payload. Over-counting only
30
+ * lowers the cap a little; under-counting is a rejected request. Both translation directions
31
+ * measure the same wire objects so they agree exactly.
32
+ */
33
+ export function estimateInputTokens(params) {
34
+ const { embeddedCount, embeddedChars } = countEmbedded(params.messages);
35
+ const serialized = JSON.stringify(params.messages ?? []) +
36
+ JSON.stringify(params.system ?? '') +
37
+ JSON.stringify(params.tools ?? []);
38
+ const textChars = Math.max(0, serialized.length - embeddedChars);
39
+ return Math.ceil(textChars / CHARS_PER_TOKEN) + embeddedCount * TOKENS_PER_IMAGE;
40
+ }
41
+ /** The `max_tokens` a request that named none gets: the model's limit, held under every bound that applies. */
42
+ export function defaultMaxTokens(model, params) {
43
+ const roomInWindow = contextWindowFor(model) - estimateInputTokens(params) - WINDOW_MARGIN;
44
+ // A non-streaming request cannot carry a cap the SDK would refuse to post at all.
45
+ const transportCeiling = params.stream === true ? Number.POSITIVE_INFINITY : nonStreamingCeilingFor(model);
46
+ return Math.max(MIN_MAX_TOKENS, Math.min(maxOutputTokensFor(model), roomInWindow, transportCeiling));
47
+ }
48
+ /**
49
+ * The embedded (base64) blocks in a message list: how many, and how many characters of the
50
+ * serialized form they account for. Content that is not a block array carries neither — a
51
+ * string is ordinary text, and anything else is malformed input this must not throw on,
52
+ * because `toHolo` runs it over a request the caller supplied.
53
+ */
54
+ function countEmbedded(messages) {
55
+ let embeddedCount = 0;
56
+ let embeddedChars = 0;
57
+ for (const message of messages ?? []) {
58
+ if (!Array.isArray(message?.content))
59
+ continue;
60
+ for (const block of message.content) {
61
+ if (block?.type !== 'image' && block?.type !== 'document')
62
+ continue;
63
+ embeddedCount += 1;
64
+ const source = block.source;
65
+ if (typeof source?.data === 'string')
66
+ embeddedChars += source.data.length;
67
+ }
68
+ }
69
+ return { embeddedCount, embeddedChars };
70
+ }
71
+ //# sourceMappingURL=claude.max-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.max-tokens.js","sourceRoot":"","sources":["../src/claude.max-tokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAEzG;;;;;;;;;;;GAWG;AAEH,kFAAkF;AAClF,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,oFAAoF;AACpF,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,qHAAqH;AACrH,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAU/B;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACjD,MAAM,EAAC,aAAa,EAAE,aAAa,EAAC,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,UAAU,GACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,GAAG,aAAa,GAAG,gBAAgB,CAAC;AACrF,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,MAAiB;IACzE,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;IAC3F,kFAAkF;IAClF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC3G,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACzG,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAAqD;IAIxE,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,SAAS;QAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU;gBAAE,SAAS;YACpE,aAAa,IAAI,CAAC,CAAC;YACnB,MAAM,MAAM,GAAI,KAAqC,CAAC,MAAM,CAAC;YAC7D,IAAI,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ;gBAAE,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9E,CAAC;IACL,CAAC;IACD,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { HoloEffort } from '@holokai/holo-types/holo';
2
+ /** The effort levels Anthropic's `output_config.effort` accepts — Holo's `none`/`minimal` have no slot. */
3
+ export type ClaudeEffort = Exclude<HoloEffort, 'none' | 'minimal'>;
4
+ /**
5
+ * What a given Claude model's request surface actually accepts.
6
+ *
7
+ * Anthropic removed parameters across the 4.6 → 5 generations rather than deprecating them,
8
+ * so a field that is merely ignored on one model is a 400 on the next. Translators consult
9
+ * this instead of scattering model-name checks through the mapping code.
10
+ */
11
+ export interface ClaudeModelCapabilities {
12
+ /** `temperature` / `top_p` / `top_k`. Removed (400) on Anthropic's current generation. */
13
+ sampling: boolean;
14
+ /** `thinking.budget_tokens`. Removed (400) on the current generation, deprecated on 4.6. */
15
+ budgetTokens: boolean;
16
+ /** `thinking: {type: 'adaptive'}` and the `display` visibility switch. */
17
+ adaptiveThinking: boolean;
18
+ /**
19
+ * The model thinks even when the request says nothing about thinking.
20
+ *
21
+ * This flag is a **cost guard**, and is the only thing that lets Holo add a `thinking` field
22
+ * a caller never sent. Where it holds, reasoning already runs and already bills, so Holo can
23
+ * opt into *visibility* for free. Where it does not, sending `{type: 'adaptive'}` would turn
24
+ * reasoning on for someone who never asked and raise their bill, so Holo leaves the request
25
+ * untouched.
26
+ *
27
+ * Set it `true` only for a model confirmed to reason with no `thinking` field present.
28
+ * Guessing wrong here charges customers for work they did not request.
29
+ */
30
+ thinkingOnByDefault: boolean;
31
+ /** Levels accepted at `output_config.effort`. Empty when the model has no effort dial. */
32
+ effort: readonly ClaudeEffort[];
33
+ /** When `thinking: {type: 'disabled'}` is accepted. `effort-gated` means effort `high` or below only. */
34
+ allowsDisabled: 'always' | 'never' | 'effort-gated';
35
+ }
36
+ /** Every Claude 3+ model has at least this window. */
37
+ export declare const CLAUDE_CONTEXT_WINDOW = 200000;
38
+ /** The published output limit for a model id, or the conservative fallback for one the table does not name. */
39
+ export declare function maxOutputTokensFor(model: string | undefined): number;
40
+ /** The context window for a model id, or the 200k floor. */
41
+ export declare function contextWindowFor(model: string | undefined): number;
42
+ /** The largest cap the SDK will send without streaming for a model id. */
43
+ export declare function nonStreamingCeilingFor(model: string | undefined): number;
44
+ /** Capabilities for a model id. Unrecognised ids get the permissive {@link LEGACY} tier. */
45
+ export declare function capabilitiesFor(model: string | undefined): ClaudeModelCapabilities;
46
+ //# sourceMappingURL=claude.model.capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.model.capabilities.d.ts","sourceRoot":"","sources":["../src/claude.model.capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEzD,2GAA2G;AAC3G,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACpC,0FAA0F;IAC1F,QAAQ,EAAE,OAAO,CAAC;IAClB,4FAA4F;IAC5F,YAAY,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;OAWG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0FAA0F;IAC1F,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,yGAAyG;IACzG,cAAc,EAAE,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;CACvD;AAgDD,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,SAAU,CAAC;AAuB7C,+GAA+G;AAC/G,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEpE;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAElE;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAExE;AAqGD,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,uBAAuB,CAOlF"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * The largest `max_tokens` a family accepts — Anthropic's published output limit.
3
+ *
4
+ * Kept apart from the capability tiers because it is known for families the tiers leave to
5
+ * {@link LEGACY} (a Sonnet 4.5 has a 64k limit and no capability quirks), and because the two
6
+ * fail differently: a wrong capability is a 400 on one field, a limit set too HIGH is a 400 on
7
+ * EVERY call to that model.
8
+ *
9
+ * POSITIVE IDENTIFICATION ONLY, like {@link capabilitiesFor}. An id no row names — an alias
10
+ * spelling Anthropic adds, a region prefix this file has not seen, or a third-party endpoint
11
+ * speaking the Claude protocol (LM Studio, vLLM) — gets {@link FALLBACK_OUTPUT_LIMIT}, which is
12
+ * the pre-2025 floor every Claude model has ever accepted. That direction is deliberate: too
13
+ * low truncates an answer and the caller can raise it, too high is a hard 400 nobody can work
14
+ * around. A new family therefore gets a SMALL cap until its figure is recorded here, never a
15
+ * guessed large one.
16
+ */
17
+ const OUTPUT_LIMITS = [
18
+ [/^claude-3-(?:opus|sonnet|haiku)$/, 4_096],
19
+ [/^claude-3-5-(?:sonnet|haiku)(?:-v2)?$/, 8_192],
20
+ [/^claude-3-7-sonnet$/, 64_000],
21
+ // Opus 4 and 4.1, in every spelling Anthropic ships them under (`-0` is its own alias).
22
+ [/^claude-(?:opus-4(?:-[01])?|4-opus)$/, 32_000],
23
+ [/^claude-(?:sonnet-4(?:-[05])?|4-sonnet|haiku-4-5|opus-4-5)$/, 64_000],
24
+ // The current generation. Each accepts more than this; 64k is what the capability tiers
25
+ // above were verified against, and raising a row is a one-line change once confirmed.
26
+ [/^claude-(?:opus|sonnet)-4-6$/, 64_000],
27
+ [/^claude-opus-4-[78]$/, 64_000],
28
+ [/^claude-(?:opus|sonnet)-5$/, 64_000],
29
+ [/^claude-(?:fable|mythos)-5(?:-\d+)?$/, 64_000],
30
+ [/^claude-(?:2|instant)/, 4_096],
31
+ ];
32
+ /**
33
+ * The floor for an id no row names: the smallest limit any Claude model has ever had, which is
34
+ * therefore accepted by all of them and by every third-party endpoint speaking this protocol.
35
+ * NEVER raise this to cover a new family — add the family to {@link OUTPUT_LIMITS} instead.
36
+ */
37
+ const FALLBACK_OUTPUT_LIMIT = 4_096;
38
+ /** The context window per family; 200k is the floor every Claude 3+ model has. */
39
+ const CONTEXT_WINDOWS = [
40
+ [/^claude-(?:opus|sonnet)-4-[678]$/, 1_000_000],
41
+ [/^claude-(?:opus|sonnet)-5$/, 1_000_000],
42
+ [/^claude-(?:fable|mythos)-5(?:-\d+)?$/, 1_000_000],
43
+ ];
44
+ /** Every Claude 3+ model has at least this window. */
45
+ export const CLAUDE_CONTEXT_WINDOW = 200_000;
46
+ /**
47
+ * What the SDK will post without streaming. `@anthropic-ai/sdk` refuses a non-streaming request
48
+ * whose cap implies more than ten minutes of generation — above 21_333 in general, and above a
49
+ * smaller per-model figure for the models it names — and it throws BEFORE any HTTP call, so a
50
+ * default above this line would break the non-streaming path outright rather than being clamped
51
+ * by the server. Mirrors `MODEL_NONSTREAMING_TOKENS` + `calculateNonstreamingTimeout`.
52
+ */
53
+ const NONSTREAMING_GENERAL_CEILING = 21_333;
54
+ const NONSTREAMING_MODEL_CEILINGS = [
55
+ [/^claude-(?:opus-4(?:-[01])?|4-opus)$/, 8_192],
56
+ ];
57
+ function lookup(table, model) {
58
+ if (!model)
59
+ return undefined;
60
+ const normalized = normalizeModelId(model);
61
+ for (const [pattern, value] of table) {
62
+ if (pattern.test(normalized))
63
+ return value;
64
+ }
65
+ return undefined;
66
+ }
67
+ /** The published output limit for a model id, or the conservative fallback for one the table does not name. */
68
+ export function maxOutputTokensFor(model) {
69
+ return lookup(OUTPUT_LIMITS, model) ?? FALLBACK_OUTPUT_LIMIT;
70
+ }
71
+ /** The context window for a model id, or the 200k floor. */
72
+ export function contextWindowFor(model) {
73
+ return lookup(CONTEXT_WINDOWS, model) ?? CLAUDE_CONTEXT_WINDOW;
74
+ }
75
+ /** The largest cap the SDK will send without streaming for a model id. */
76
+ export function nonStreamingCeilingFor(model) {
77
+ return lookup(NONSTREAMING_MODEL_CEILINGS, model) ?? NONSTREAMING_GENERAL_CEILING;
78
+ }
79
+ const EFFORT_FULL = ['low', 'medium', 'high', 'xhigh', 'max'];
80
+ const EFFORT_NO_XHIGH = ['low', 'medium', 'high', 'max'];
81
+ const EFFORT_BASIC = ['low', 'medium', 'high'];
82
+ /** Fable / Mythos 5.x — thinking is always on and cannot be disabled. */
83
+ const FRONTIER = {
84
+ sampling: false,
85
+ budgetTokens: false,
86
+ adaptiveThinking: true,
87
+ thinkingOnByDefault: true,
88
+ effort: EFFORT_FULL,
89
+ allowsDisabled: 'never',
90
+ };
91
+ /** Opus 5 — thinking on by default; disable accepted only at effort `high` or below. */
92
+ const OPUS_5 = {
93
+ sampling: false,
94
+ budgetTokens: false,
95
+ adaptiveThinking: true,
96
+ thinkingOnByDefault: true,
97
+ effort: EFFORT_FULL,
98
+ allowsDisabled: 'effort-gated',
99
+ };
100
+ /** Opus 4.7 / 4.8 and Sonnet 5 — sampling and budgets gone, adaptive thinking opt-in. */
101
+ const GEN_4_7 = {
102
+ sampling: false,
103
+ budgetTokens: false,
104
+ adaptiveThinking: true,
105
+ thinkingOnByDefault: false,
106
+ effort: EFFORT_FULL,
107
+ allowsDisabled: 'always',
108
+ };
109
+ /** Opus 4.6 / Sonnet 4.6 — the transitional generation: adaptive thinking plus legacy dials. */
110
+ const GEN_4_6 = {
111
+ sampling: true,
112
+ budgetTokens: true,
113
+ adaptiveThinking: true,
114
+ thinkingOnByDefault: false,
115
+ effort: EFFORT_NO_XHIGH,
116
+ allowsDisabled: 'always',
117
+ };
118
+ /** Opus 4.5 — effort exists, adaptive thinking does not. */
119
+ const OPUS_4_5 = {
120
+ sampling: true,
121
+ budgetTokens: true,
122
+ adaptiveThinking: false,
123
+ thinkingOnByDefault: false,
124
+ effort: EFFORT_BASIC,
125
+ allowsDisabled: 'always',
126
+ };
127
+ /**
128
+ * Everything not positively identified: older Anthropic models, and any third-party endpoint
129
+ * speaking the Claude protocol (LM Studio, vLLM).
130
+ *
131
+ * Permissive on purpose. This tier matches Holo's behaviour before per-model gating existed,
132
+ * so an unrecognised model keeps working exactly as it did. The cost is that a *new* Anthropic
133
+ * model fails loudly until it is added here, which is the right way round: the alternative
134
+ * silently strips `temperature` from every custom endpoint.
135
+ */
136
+ const LEGACY = {
137
+ sampling: true,
138
+ budgetTokens: true,
139
+ adaptiveThinking: false,
140
+ thinkingOnByDefault: false,
141
+ effort: [],
142
+ allowsDisabled: 'always',
143
+ };
144
+ const TIERS = [
145
+ [/^claude-(?:fable|mythos)-5(?:-\d+)?$/, FRONTIER],
146
+ [/^claude-opus-5$/, OPUS_5],
147
+ [/^claude-opus-4-[78]$/, GEN_4_7],
148
+ [/^claude-sonnet-5$/, GEN_4_7],
149
+ [/^claude-(?:opus|sonnet)-4-6$/, GEN_4_6],
150
+ [/^claude-opus-4-5$/, OPUS_4_5],
151
+ ];
152
+ /**
153
+ * Reduce a wire model id to its bare Anthropic name so one table covers first-party,
154
+ * Bedrock (`us.anthropic.claude-…-v1:0`) and Vertex (`claude-…@20251101`) spellings.
155
+ */
156
+ function normalizeModelId(model) {
157
+ return (model
158
+ .toLowerCase()
159
+ // Bedrock region prefixes include hyphenated regions (`us-gov.anthropic.…`).
160
+ .replace(/^(?:[a-z][a-z-]{1,9}\.)?anthropic\./, '')
161
+ .replace(/[@:].*$/, '')
162
+ .replace(/-v\d+$/, '')
163
+ .replace(/-\d{8}$/, '')
164
+ // Anthropic's rolling alias for a family's newest dated build.
165
+ .replace(/-latest$/, ''));
166
+ }
167
+ /** Capabilities for a model id. Unrecognised ids get the permissive {@link LEGACY} tier. */
168
+ export function capabilitiesFor(model) {
169
+ if (!model)
170
+ return LEGACY;
171
+ const normalized = normalizeModelId(model);
172
+ for (const [pattern, capabilities] of TIERS) {
173
+ if (pattern.test(normalized))
174
+ return capabilities;
175
+ }
176
+ return LEGACY;
177
+ }
178
+ //# sourceMappingURL=claude.model.capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.model.capabilities.js","sourceRoot":"","sources":["../src/claude.model.capabilities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude.pricing.d.ts","sourceRoot":"","sources":["../src/claude.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAsB/D,eAAO,MAAM,sBAAsB,EAAE,cA8nBpC,CAAC"}
1
+ {"version":3,"file":"claude.pricing.d.ts","sourceRoot":"","sources":["../src/claude.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAuB/D,eAAO,MAAM,sBAAsB,EAAE,cA6nBpC,CAAC"}
@@ -5,14 +5,15 @@
5
5
  const M = 1_000_000;
6
6
  // Standard Anthropic pricing modifiers (Claude 3+):
7
7
  // cache_read = 0.1x input
8
- // cache_write = 1.25x input (5-min TTL tier)
8
+ // cache_write = 1.25x input (5-min TTL tier); 2x input for the 1-hour tier
9
9
  // batch = 0.5x
10
- function withCache(input, output) {
10
+ function withCache(input, output, tokenCosts = {}) {
11
11
  return {
12
12
  cache_read_cost: input * 0.1,
13
13
  cache_write_cost: input * 1.25,
14
14
  batch_input_cost: input * 0.5,
15
15
  batch_output_cost: output * 0.5,
16
+ token_costs: { cache_write_1h: input * 2, ...tokenCosts },
16
17
  };
17
18
  }
18
19
  export const CLAUDE_PRICING_DATASET = {
@@ -141,8 +142,7 @@ export const CLAUDE_PRICING_DATASET = {
141
142
  model_name: 'claude-3.7-sonnet',
142
143
  input_cost: 3.0 / M,
143
144
  output_cost: 15.0 / M,
144
- token_costs: { thinking: 15.0 / M },
145
- ...withCache(3.0 / M, 15.0 / M),
145
+ ...withCache(3.0 / M, 15.0 / M, { thinking: 15.0 / M }),
146
146
  },
147
147
  ],
148
148
  },
@@ -1 +1 @@
1
- {"version":3,"file":"claude.pricing.js","sourceRoot":"","sources":["../src/claude.pricing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.pricing.js","sourceRoot":"","sources":["../src/claude.pricing.ts"],"names":[],"mappings":"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"}
package/dist/plugin.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { BasePlugin } from '@holokai/holo-sdk/plugin';
2
- import type { IProviderPlugin, PluginContext, PluginPricingSheet, PluginSchema } from '@holokai/holo-types/plugin';
3
- import type { PricingSheetModel } from '@holokai/holo-types/entities';
2
+ import type { HoloResponseFormat } from '@holokai/holo-types/holo';
3
+ import type { IProviderPlugin, OutputTextRewriter, PluginContext, PluginPricingSheet, PluginSchema } from '@holokai/holo-types/plugin';
4
4
  import type { DiscoveredModel, IProvider, IWireAdapter, ProviderCapabilities, WireAdapterParams } from '@holokai/holo-types/provider';
5
5
  import { type RouteDefinition } from '@holokai/holo-types/routing';
6
6
  export declare const ClaudeProtocols: {
@@ -22,6 +22,9 @@ export declare class ClaudeProviderPlugin extends BasePlugin implements IProvide
22
22
  createProvider(id: string, name: string, config: any): Promise<IProvider>;
23
23
  createWireAdapter(params: WireAdapterParams): Promise<IWireAdapter>;
24
24
  setSystemPromptInRequest(payload: any, systemPrompt: string): void;
25
+ getResponseFormatFromRequest(payload: any): HoloResponseFormat | undefined;
26
+ rewriteResponseText(message: any, rewrite: (text: string) => string): any;
27
+ rewriteStreamEventText(event: any, rewrite: OutputTextRewriter): any;
25
28
  formatModelsResponse(models: DiscoveredModel[]): unknown;
26
29
  getSchema(): PluginSchema;
27
30
  getCapabilities(): ProviderCapabilities;
@@ -29,19 +32,6 @@ export declare class ClaudeProviderPlugin extends BasePlugin implements IProvide
29
32
  getPricingSheets(): Map<string, PluginPricingSheet>;
30
33
  getPricingModelIds(): import("@holokai/holo-types").PricingModelId[];
31
34
  getDefaultPricing(): PluginPricingSheet;
32
- protected calculateExtraCosts(tokens: Record<string, number>, pricing: PricingSheetModel): {
33
- total: number;
34
- detail: {
35
- cache_read: {
36
- tokens: number;
37
- cost: number;
38
- };
39
- cache_write: {
40
- tokens: number;
41
- cost: number;
42
- };
43
- };
44
- };
45
35
  protected onInitialize(_context: PluginContext): Promise<void>;
46
36
  protected onDestroy(): Promise<void>;
47
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAC,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACjH,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,KAAK,eAAe,EAAe,MAAM,6BAA6B,CAAC;AAM/E,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF,qBAAa,oBAAqB,SAAQ,UAAW,YAAW,eAAe;IAC3E,QAAQ,+CAAY;IACpB,UAAU,oDAA+B;IACzC,mBAAmB,gBAA4B;IAC/C,SAAS;;;;MAAmB;IAC5B,eAAe,oBAA4B;IAErC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAIzE,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzE,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQlE,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO;IAcxD,SAAS,IAAI,YAAY;IAwBzB,eAAe,IAAI,oBAAoB;IAUvC,SAAS,IAAI,eAAe,EAAE;IA2C9B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAInD,kBAAkB;IAIlB,iBAAiB,IAAI,kBAAkB;IAMvC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;IAcxF,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EACR,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,KAAK,eAAe,EAAe,MAAM,6BAA6B,CAAC;AAO/E,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF,qBAAa,oBAAqB,SAAQ,UAAW,YAAW,eAAe;IAC3E,QAAQ,+CAAY;IACpB,UAAU,oDAA+B;IACzC,mBAAmB,gBAA4B;IAC/C,SAAS;;;;MAAmB;IAC5B,eAAe,oBAA4B;IAErC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAIzE,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzE,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQlE,4BAA4B,CAAC,OAAO,EAAE,GAAG,GAAG,kBAAkB,GAAG,SAAS;IAI1E,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,GAAG;IAYzE,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,GAAG,GAAG;IAUpE,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO;IAcxD,SAAS,IAAI,YAAY;IAwBzB,eAAe,IAAI,oBAAoB;IAUvC,SAAS,IAAI,eAAe,EAAE;IA2C9B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAInD,kBAAkB;IAIlB,iBAAiB,IAAI,kBAAkB;IAMvC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC"}
package/dist/plugin.js CHANGED
@@ -5,6 +5,7 @@ import { RouteHandler } from '@holokai/holo-types/routing';
5
5
  import { ClaudeProvider } from './claude.provider.js';
6
6
  import { ClaudeWireAdapter } from './claude.wire.adapter.js';
7
7
  import { ClaudeTranslator } from './claude.translator.js';
8
+ import { responseFormatFromRequest } from './translators/claude.request.translators.js';
8
9
  import { CLAUDE_PRICING_DATASET } from './claude.pricing.js';
9
10
  export const ClaudeProtocols = {
10
11
  MESSAGES: 'claude.messages',
@@ -30,6 +31,28 @@ export class ClaudeProviderPlugin extends BasePlugin {
30
31
  return;
31
32
  payload.system = systemPrompt;
32
33
  }
34
+ getResponseFormatFromRequest(payload) {
35
+ return responseFormatFromRequest(payload);
36
+ }
37
+ rewriteResponseText(message, rewrite) {
38
+ if (!Array.isArray(message?.content))
39
+ return message;
40
+ return {
41
+ ...message,
42
+ content: message.content.map((block) => block?.type === 'text' && typeof block.text === 'string'
43
+ ? { ...block, text: rewrite(block.text) }
44
+ : block),
45
+ };
46
+ }
47
+ rewriteStreamEventText(event, rewrite) {
48
+ if (event?.type === 'content_block_delta' && event.delta?.type === 'text_delta') {
49
+ return { ...event, delta: { ...event.delta, text: rewrite.delta(event.delta.text ?? '') } };
50
+ }
51
+ if (event?.type === 'content_block_start' && event.content_block?.type === 'text' && event.content_block.text) {
52
+ return { ...event, content_block: { ...event.content_block, text: rewrite.delta(event.content_block.text) } };
53
+ }
54
+ return event;
55
+ }
33
56
  formatModelsResponse(models) {
34
57
  return {
35
58
  data: models.map(m => ({
@@ -128,19 +151,6 @@ export class ClaudeProviderPlugin extends BasePlugin {
128
151
  const sorted = Array.from(sheets.values()).sort((a, b) => b.effective_from.localeCompare(a.effective_from));
129
152
  return sorted[0];
130
153
  }
131
- calculateExtraCosts(tokens, pricing) {
132
- const cacheReadRate = pricing.token_costs?.cache_read ?? Number(pricing.cache_read_cost ?? 0);
133
- const cacheWriteRate = pricing.token_costs?.cache_write ?? Number(pricing.cache_write_cost ?? 0);
134
- const cacheReadCost = (tokens.cache_read ?? 0) * cacheReadRate;
135
- const cacheWriteCost = (tokens.cache_write ?? 0) * cacheWriteRate;
136
- return {
137
- total: cacheReadCost + cacheWriteCost,
138
- detail: {
139
- cache_read: { tokens: tokens.cache_read ?? 0, cost: cacheReadCost },
140
- cache_write: { tokens: tokens.cache_write ?? 0, cost: cacheWriteCost },
141
- },
142
- };
143
- }
144
154
  onInitialize(_context) {
145
155
  return Promise.resolve();
146
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import 'reflect-metadata';
2
2
  import { ClaudeMessageTranslator } from './claude.message.translators.js';
3
3
  import { ClaudeToolChoiceTranslator, ClaudeToolTranslator } from './claude.tool.translators.js';
4
- import type { HoloRequest } from '@holokai/holo-types/holo';
4
+ import type { HoloRequest, HoloResponseFormat } from '@holokai/holo-types/holo';
5
5
  import { BaseTranslator } from '@holokai/holo-sdk/provider';
6
6
  import { type MessageStreamParams } from '@anthropic-ai/sdk/resources/messages/messages';
7
7
  export declare class ClaudeRequestTranslator extends BaseTranslator<HoloRequest, MessageStreamParams> {
@@ -20,4 +20,6 @@ export declare class ClaudeRequestTranslator extends BaseTranslator<HoloRequest,
20
20
  private extractSystemAndResponseFormat;
21
21
  private parseRfMarker;
22
22
  }
23
+ /** The output format a native request asks for: `output_config.format`, else the marker block Holo carries `json_object` through. */
24
+ export declare function responseFormatFromRequest(request: Pick<MessageStreamParams, 'output_config' | 'system'> | undefined): HoloResponseFormat | undefined;
23
25
  //# sourceMappingURL=claude.request.translators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.request.translators.d.ts","sourceRoot":"","sources":["../../src/translators/claude.request.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAG3F,OAAO,KAAK,EAER,WAAW,EAMd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAEH,KAAK,mBAAmB,EAI3B,MAAM,+CAA+C,CAAC;AAsBvD,qBACa,uBAAwB,SAAQ,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAKrF,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IANzC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAA+B;gBAGlE,iBAAiB,EAAE,uBAAuB,EAC1C,cAAc,EAAE,oBAAoB,EACpC,oBAAoB,EAAE,0BAA0B;cAKrD,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;cAsCxE,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAmCtF,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,yBAAyB;IAwBjC,OAAO,CAAC,8BAA8B;IAsCtC,OAAO,CAAC,aAAa;CAUxB"}
1
+ {"version":3,"file":"claude.request.translators.d.ts","sourceRoot":"","sources":["../../src/translators/claude.request.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAG3F,OAAO,KAAK,EAER,WAAW,EACX,kBAAkB,EAKrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAEH,KAAK,mBAAmB,EAK3B,MAAM,+CAA+C,CAAC;AAsBvD,qBACa,uBAAwB,SAAQ,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAKrF,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IANzC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAA+B;gBAGlE,iBAAiB,EAAE,uBAAuB,EAC1C,cAAc,EAAE,oBAAoB,EACpC,oBAAoB,EAAE,0BAA0B;cAKrD,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;cA6DxE,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAuCtF,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,yBAAyB;IAwBjC,OAAO,CAAC,8BAA8B;IAsCtC,OAAO,CAAC,aAAa;CAGxB;AA4CD,qIAAqI;AACrI,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,GAAG,QAAQ,CAAC,GAAG,SAAS,GAC3E,kBAAkB,GAAG,SAAS,CAEhC"}
@@ -14,23 +14,23 @@ import { injectable } from 'tsyringe';
14
14
  import { pickDefined } from '@holokai/holo-sdk';
15
15
  import { BaseTranslator } from '@holokai/holo-sdk/provider';
16
16
  import {} from '@anthropic-ai/sdk/resources/messages/messages';
17
- // Claude request defaults. Anthropic's Messages API rejects requests without
18
- // `max_tokens`, so fromHolo injects this when the canonical request omits it.
19
- // toHoloImpl mirrors the rule in reverse: a wire `max_tokens` equal to the
20
- // default is treated as default-injected and stripped from canonical Holo
21
- // otherwise a Holo (no max_tokens) Claude wire Holo round trip would
22
- // silently introduce 4096 the caller never set. The known cost is that callers
23
- // who legitimately request 4096 lose that value across the round trip.
24
- const CLAUDE_DEFAULT_MAX_TOKENS = 4096;
25
- const MessageStreamParamsDefaults = {
26
- max_tokens: CLAUDE_DEFAULT_MAX_TOKENS,
27
- };
28
- // Sentinel wrapping the synthesized response_format boilerplate in Claude's
29
- // system prompt. The encoded body is the original HoloResponseFormat as
30
- // base64url JSON; toHolo recognizes the marker, restores response_format, and
31
- // strips the synthesized block. Without this, a Holo→Claude→Holo round trip
32
- // would land the boilerplate in canonical holo.system and silently drop
33
- // holo.response_format.
17
+ import { capabilitiesFor } from '../claude.model.capabilities.js';
18
+ import { defaultMaxTokens } from '../claude.max-tokens.js';
19
+ import { thinkingFromHolo, thinkingIsOn, thinkingToHolo } from './claude.thinking.translators.js';
20
+ // Anthropic's Messages API rejects requests without `max_tokens`, so fromHolo fills one in
21
+ // when the canonical request omits it the model's own output limit held under the context
22
+ // window (`claude.max-tokens.ts`), never a fixed number. toHoloImpl mirrors the rule in
23
+ // reverse: a wire `max_tokens` equal to what the default would have been for that model and
24
+ // input is treated as default-injected and stripped from canonical Holo — otherwise a Holo
25
+ // (no max_tokens) → Claude wire → Holo round trip would silently introduce a cap the caller
26
+ // never set. The known cost is that a caller who asks for exactly the default loses that
27
+ // value across the round trip. Both directions measure the WIRE shape so they agree exactly.
28
+ const MessageStreamParamsDefaults = {};
29
+ // `json_schema` rides Claude's native `output_config.format`. `json_object` has no native
30
+ // slot, so it becomes a prose instruction in the system prompt wrapped in this sentinel:
31
+ // the encoded body is the original HoloResponseFormat as base64url JSON, and toHolo
32
+ // recognizes the marker, restores response_format, and strips the synthesized block so a
33
+ // Holo→Claude→Holo round trip neither pollutes holo.system nor drops the format.
34
34
  const HOLO_RF_MARKER_RE = /<!--holo:rf:([A-Za-z0-9_-]+)-->/;
35
35
  let ClaudeRequestTranslator = class ClaudeRequestTranslator extends BaseTranslator {
36
36
  messageTranslator;
@@ -56,25 +56,46 @@ let ClaudeRequestTranslator = class ClaudeRequestTranslator extends BaseTranslat
56
56
  ? this.toolChoiceTranslator.fromHolo(source.tool_choice)
57
57
  : Promise.resolve(undefined),
58
58
  ]);
59
- const system = this.buildSystem(source.system, source.response_format);
59
+ const caps = capabilitiesFor(source.model);
60
+ const format = outputFormatFromResponseFormat(source.response_format);
61
+ const system = this.buildSystem(source.system, format ? undefined : source.response_format);
62
+ const wireMessages = messages && messages.length ? messages : undefined;
63
+ const wireTools = tools && tools.length ? tools : undefined;
64
+ const max_tokens = source.max_tokens ??
65
+ defaultMaxTokens(source.model, {
66
+ messages: wireMessages ?? [],
67
+ system,
68
+ tools: wireTools,
69
+ // The value this translator is about to emit, so toHolo — which reads `stream`
70
+ // off the wire request — recomputes the identical default and strips it again.
71
+ stream: source.stream,
72
+ });
73
+ const reasoning = thinkingFromHolo(source.thinking, caps, max_tokens);
74
+ // Two independent reasons Anthropic rejects a sampling control: the model's generation
75
+ // removed it outright, or extended thinking is on (which pins temperature and forbids
76
+ // top_p / top_k entirely). Either one drops all three.
77
+ const allowSampling = caps.sampling && !thinkingIsOn(reasoning);
78
+ const output_config = buildOutputConfig(format, reasoning.effort);
60
79
  const finalToolChoice = applyParallelToolCalls(tool_choice, source.parallel_tool_calls);
61
80
  return pickDefined({
62
81
  model: source.model,
63
82
  stream: source.stream,
64
- max_tokens: source.max_tokens,
65
- temperature: source.temperature,
66
- top_p: source.top_p,
67
- top_k: source.top_k,
83
+ max_tokens,
84
+ temperature: allowSampling ? source.temperature : undefined,
85
+ top_p: allowSampling ? source.top_p : undefined,
86
+ top_k: allowSampling ? source.top_k : undefined,
68
87
  stop_sequences: source.stop_sequences,
69
88
  system,
89
+ output_config,
90
+ thinking: reasoning.thinking,
70
91
  service_tier: source.service_tier === 'auto'
71
92
  ? 'auto'
72
93
  : source.service_tier === 'standard_only'
73
94
  ? 'standard_only'
74
95
  : undefined,
75
96
  metadata: source.metadata?.user_id ? { user_id: source.metadata.user_id } : undefined,
76
- messages: messages && messages.length ? messages : undefined,
77
- tools: tools && tools.length ? tools : undefined,
97
+ messages: wireMessages,
98
+ tools: wireTools,
78
99
  tool_choice: finalToolChoice,
79
100
  });
80
101
  }
@@ -90,18 +111,22 @@ let ClaudeRequestTranslator = class ClaudeRequestTranslator extends BaseTranslat
90
111
  ? this.toolChoiceTranslator.toHolo(source.tool_choice)
91
112
  : Promise.resolve(undefined),
92
113
  ]);
93
- const { system, response_format } = this.extractSystemAndResponseFormat(source.system);
114
+ const extracted = this.extractSystemAndResponseFormat(source.system);
115
+ const system = extracted.system;
116
+ const response_format = responseFormatFromOutputConfig(source.output_config) ?? extracted.response_format;
94
117
  const parallel_tool_calls = readParallelToolCalls(source.tool_choice);
118
+ const thinking = thinkingToHolo(source.thinking, source.output_config?.effort ?? undefined);
95
119
  return pickDefined({
96
120
  model: source.model,
97
121
  stream: source.stream,
98
- max_tokens: source.max_tokens === CLAUDE_DEFAULT_MAX_TOKENS ? undefined : source.max_tokens,
122
+ max_tokens: source.max_tokens === defaultMaxTokens(source.model, source) ? undefined : source.max_tokens,
99
123
  temperature: source.temperature,
100
124
  top_p: source.top_p,
101
125
  top_k: source.top_k,
102
126
  stop_sequences: source.stop_sequences,
103
127
  system,
104
128
  response_format,
129
+ thinking,
105
130
  service_tier: source.service_tier,
106
131
  metadata: source.metadata?.user_id ? { user_id: source.metadata.user_id } : undefined,
107
132
  messages: messages && messages.length ? messages : undefined,
@@ -201,16 +226,7 @@ let ClaudeRequestTranslator = class ClaudeRequestTranslator extends BaseTranslat
201
226
  return { system: cleanedSystem, response_format };
202
227
  }
203
228
  parseRfMarker(text) {
204
- const m = HOLO_RF_MARKER_RE.exec(text);
205
- if (!m)
206
- return undefined;
207
- try {
208
- const rf = JSON.parse(Buffer.from(m[1], 'base64url').toString('utf8'));
209
- return { rf, index: m.index, length: m[0].length };
210
- }
211
- catch {
212
- return undefined;
213
- }
229
+ return parseResponseFormatMarker(text);
214
230
  }
215
231
  };
216
232
  ClaudeRequestTranslator = __decorate([
@@ -220,6 +236,49 @@ ClaudeRequestTranslator = __decorate([
220
236
  ClaudeToolChoiceTranslator])
221
237
  ], ClaudeRequestTranslator);
222
238
  export { ClaudeRequestTranslator };
239
+ function parseResponseFormatMarker(text) {
240
+ const m = HOLO_RF_MARKER_RE.exec(text);
241
+ if (!m)
242
+ return undefined;
243
+ try {
244
+ const rf = JSON.parse(Buffer.from(m[1], 'base64url').toString('utf8'));
245
+ return { rf, index: m.index, length: m[0].length };
246
+ }
247
+ catch {
248
+ return undefined;
249
+ }
250
+ }
251
+ function responseFormatFromSystem(system) {
252
+ if (typeof system === 'string')
253
+ return parseResponseFormatMarker(system)?.rf;
254
+ if (!Array.isArray(system))
255
+ return undefined;
256
+ for (const block of system) {
257
+ if (block.type !== 'text' || block.cache_control)
258
+ continue;
259
+ const parsed = parseResponseFormatMarker(block.text);
260
+ if (parsed)
261
+ return parsed.rf;
262
+ }
263
+ return undefined;
264
+ }
265
+ function outputFormatFromResponseFormat(rf) {
266
+ return rf?.type === 'json_schema' ? { type: 'json_schema', schema: rf.schema } : undefined;
267
+ }
268
+ /** `output_config` carries both structured output and reasoning depth; emit it only when one is set. */
269
+ function buildOutputConfig(format, effort) {
270
+ if (!format && !effort)
271
+ return undefined;
272
+ return pickDefined({ format, effort });
273
+ }
274
+ function responseFormatFromOutputConfig(output_config) {
275
+ const format = output_config?.format;
276
+ return format?.type === 'json_schema' ? { type: 'json_schema', schema: format.schema } : undefined;
277
+ }
278
+ /** The output format a native request asks for: `output_config.format`, else the marker block Holo carries `json_object` through. */
279
+ export function responseFormatFromRequest(request) {
280
+ return responseFormatFromOutputConfig(request?.output_config) ?? responseFormatFromSystem(request?.system);
281
+ }
223
282
  // Claude encodes "no parallel tool use" as `disable_parallel_tool_use: true` on the
224
283
  // `auto` / `any` / `tool` variants of `tool_choice`, not as a top-level request field.
225
284
  // Map Holo's top-level `parallel_tool_calls: false` onto that flag, synthesizing
@@ -1 +1 @@
1
- {"version":3,"file":"claude.request.translators.js","sourceRoot":"","sources":["../../src/translators/claude.request.translators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.request.translators.js","sourceRoot":"","sources":["../../src/translators/claude.request.translators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { HoloEffort, HoloThinking } from '@holokai/holo-types/holo';
2
+ import type { MessageStreamParams, ThinkingConfigParam } from '@anthropic-ai/sdk/resources/messages/messages';
3
+ import type { ClaudeEffort, ClaudeModelCapabilities } from '../claude.model.capabilities.js';
4
+ export interface ClaudeThinkingRequest {
5
+ thinking?: ThinkingConfigParam | undefined;
6
+ effort?: ClaudeEffort | undefined;
7
+ }
8
+ /** True once the emitted config actually turns reasoning on. */
9
+ export declare function thinkingIsOn(request: ClaudeThinkingRequest): boolean;
10
+ /**
11
+ * Map canonical thinking onto this model's request surface.
12
+ *
13
+ * The two dials are not interchangeable across generations: current models take
14
+ * `output_config.effort` and reject `budget_tokens`, older ones take only a budget. Callers set
15
+ * whichever they have and this derives the rest.
16
+ */
17
+ export declare function thinkingFromHolo(thinking: HoloThinking | undefined, caps: ClaudeModelCapabilities, effectiveMaxTokens: number): ClaudeThinkingRequest;
18
+ /** Read a native Claude request's reasoning configuration back into canonical form. */
19
+ export declare function thinkingToHolo(native: MessageStreamParams['thinking'], effort: HoloEffort | undefined): HoloThinking | undefined;
20
+ //# sourceMappingURL=claude.thinking.translators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.thinking.translators.d.ts","sourceRoot":"","sources":["../../src/translators/claude.thinking.translators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAC,mBAAmB,EAAE,mBAAmB,EAAC,MAAM,+CAA+C,CAAC;AAU5G,OAAO,KAAK,EAAC,YAAY,EAAE,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAQxF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACrC;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAEpE;AA4DD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,IAAI,EAAE,uBAAuB,EAC7B,kBAAkB,EAAE,MAAM,GAC3B,qBAAqB,CAoDvB;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAC1B,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC,EACvC,MAAM,EAAE,UAAU,GAAG,SAAS,GAC/B,YAAY,GAAG,SAAS,CAiB1B"}
@@ -0,0 +1,128 @@
1
+ import { clampEffort, isThinkingOff, MIN_THINKING_BUDGET, resolveBudget, resolveEffort, toHoloThinking, wantsThoughts, } from '@holokai/holo-sdk/provider';
2
+ /** Effort levels at which Opus 5 refuses `thinking: {type: 'disabled'}`. */
3
+ const DISABLE_BLOCKING_EFFORT = new Set(['xhigh', 'max']);
4
+ /** Deepest effort Opus 5 will accept alongside a disabled-thinking request. */
5
+ const DISABLE_MAX_EFFORT = 'high';
6
+ /** True once the emitted config actually turns reasoning on. */
7
+ export function thinkingIsOn(request) {
8
+ return request.thinking?.type === 'enabled' || request.thinking?.type === 'adaptive';
9
+ }
10
+ /** Shallowest level this model offers, independent of how its list is ordered. */
11
+ function lowestEffort(caps) {
12
+ return caps.effort.length ? clampEffort('none', caps.effort) : undefined;
13
+ }
14
+ /** Whether the caller named a depth at all, rather than Holo inferring one. */
15
+ function depthWasStated(thinking) {
16
+ return thinking.effort !== undefined || thinking.budget_tokens !== undefined;
17
+ }
18
+ /**
19
+ * Turn a "no reasoning" request into something this model actually accepts.
20
+ *
21
+ * Two models refuse the obvious encoding. Fable/Mythos reject `{type: 'disabled'}` outright, so
22
+ * the closest honest request is simply the shallowest effort. Opus 5 accepts it, but not paired
23
+ * with effort above `high` — there, turning thinking off is the stronger and more consequential
24
+ * intent, so the depth dial gives way rather than the disable being dropped.
25
+ *
26
+ * Effort is echoed back only when the caller named one: synthesizing a depth onto a request that
27
+ * asked for no reasoning would put a level on the wire that nobody chose.
28
+ */
29
+ function disabledRequest(thinking, caps, effort) {
30
+ if (caps.allowsDisabled === 'never') {
31
+ return { effort: lowestEffort(caps) };
32
+ }
33
+ if (caps.allowsDisabled === 'effort-gated' && effort !== undefined && DISABLE_BLOCKING_EFFORT.has(effort)) {
34
+ return { thinking: { type: 'disabled' }, effort: DISABLE_MAX_EFFORT };
35
+ }
36
+ return { thinking: { type: 'disabled' }, effort: depthWasStated(thinking) ? effort : undefined };
37
+ }
38
+ /**
39
+ * A legacy `{type: 'enabled', budget_tokens}` request.
40
+ *
41
+ * Anthropic requires the budget to sit strictly below `max_tokens`, so it is clamped under the
42
+ * ceiling that will actually be sent — the caller's, or the default the request translator
43
+ * fills in, which is the model's own output limit (`claude.max-tokens.ts`). Holo deliberately
44
+ * does **not** widen that ceiling to fit a deeper budget: above the model's limit it is a hard
45
+ * 400, and above a caller's explicit cap it is the caller's number to raise.
46
+ */
47
+ function budgetRequest(thinking, effectiveMaxTokens, effort) {
48
+ const ceiling = effectiveMaxTokens - 1;
49
+ if (ceiling < MIN_THINKING_BUDGET)
50
+ return { effort };
51
+ const budget = resolveBudget(thinking, { min: MIN_THINKING_BUDGET, max: ceiling }, effort);
52
+ if (budget === undefined)
53
+ return { effort };
54
+ return { thinking: { type: 'enabled', budget_tokens: budget }, effort };
55
+ }
56
+ /**
57
+ * Map canonical thinking onto this model's request surface.
58
+ *
59
+ * The two dials are not interchangeable across generations: current models take
60
+ * `output_config.effort` and reject `budget_tokens`, older ones take only a budget. Callers set
61
+ * whichever they have and this derives the rest.
62
+ */
63
+ export function thinkingFromHolo(thinking, caps, effectiveMaxTokens) {
64
+ // `resolveEffort` clamps into `caps.effort`, so the result is always one of that model's
65
+ // accepted levels — narrowing off Holo's `none`/`minimal`, which Anthropic has no slot for.
66
+ const effort = caps.effort.length ? resolveEffort(thinking, caps.effort) : undefined;
67
+ // Nothing configured by the caller.
68
+ //
69
+ // COST INVARIANT — this branch must never raise what a request spends. It fires only where
70
+ // `thinkingOnByDefault` holds, and there it restates the provider's own defaults:
71
+ // - `type: 'adaptive'` IS the default mode on these models, so reasoning already runs and
72
+ // already bills whether or not Holo sends this. The mode is unchanged.
73
+ // - NO `effort` is emitted (`resolveEffort` returns undefined for an absent `thinking`),
74
+ // so depth stays at the provider default. Adding one here would change spend directly.
75
+ // Do not "helpfully" set a level in this branch.
76
+ // - `display` is the one thing deliberately *not* left at its default. It controls
77
+ // visibility only: Anthropic bills thinking identically under `omitted` and
78
+ // `summarized`, and `thinking_tokens` counts the raw reasoning either way, not the
79
+ // shorter summary that comes back.
80
+ //
81
+ // So the caller pays exactly what they would have paid with no `thinking` field at all, and
82
+ // gets to read the reasoning they are already being charged for. Left at the API default,
83
+ // `omitted` streams thinking blocks with empty text, which Holo filters out entirely — the
84
+ // spend still lands on the bill with nothing to show for it.
85
+ if (!thinking) {
86
+ return caps.adaptiveThinking && caps.thinkingOnByDefault
87
+ ? { thinking: { type: 'adaptive', display: 'summarized' } }
88
+ : {};
89
+ }
90
+ if (isThinkingOff(thinking)) {
91
+ return disabledRequest(thinking, caps, effort);
92
+ }
93
+ // An explicit budget is honoured wherever the model still accepts one, even on a generation
94
+ // that also has adaptive thinking — the caller named a hard ceiling, which adaptive cannot
95
+ // express. Without one, adaptive is the better mode where it exists.
96
+ if (caps.budgetTokens && thinking.budget_tokens !== undefined) {
97
+ return budgetRequest(thinking, effectiveMaxTokens, effort);
98
+ }
99
+ if (caps.adaptiveThinking) {
100
+ return {
101
+ thinking: { type: 'adaptive', display: wantsThoughts(thinking) ? 'summarized' : 'omitted' },
102
+ effort,
103
+ };
104
+ }
105
+ if (caps.budgetTokens) {
106
+ return budgetRequest(thinking, effectiveMaxTokens, effort);
107
+ }
108
+ return { effort };
109
+ }
110
+ /** Read a native Claude request's reasoning configuration back into canonical form. */
111
+ export function thinkingToHolo(native, effort) {
112
+ if (!native) {
113
+ return effort === undefined ? undefined : toHoloThinking({ type: 'auto', effort });
114
+ }
115
+ switch (native.type) {
116
+ case 'disabled':
117
+ return toHoloThinking({ type: 'disabled', effort });
118
+ case 'enabled':
119
+ return toHoloThinking({ type: 'enabled', effort, budget_tokens: native.budget_tokens });
120
+ default:
121
+ return toHoloThinking({
122
+ type: 'auto',
123
+ effort,
124
+ include_thoughts: native.display === 'omitted' ? false : undefined,
125
+ });
126
+ }
127
+ }
128
+ //# sourceMappingURL=claude.thinking.translators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.thinking.translators.js","sourceRoot":"","sources":["../../src/translators/claude.thinking.translators.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "1.6.0";
1
+ export declare const VERSION = "1.9.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Auto-generated — do not edit
2
- export const VERSION = "1.6.0";
2
+ export const VERSION = "1.9.0";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holokai/holo-provider-claude",
3
- "version": "1.6.0",
3
+ "version": "1.9.0",
4
4
  "type": "module",
5
5
  "description": "Claude provider plugin for Holo LLM Gateway",
6
6
  "author": "Holokai",
@@ -48,7 +48,7 @@
48
48
  ],
49
49
  "sideEffects": false,
50
50
  "peerDependencies": {
51
- "@holokai/holo-sdk": "^1.6.0"
51
+ "@holokai/holo-sdk": "^1.9.0"
52
52
  },
53
53
  "dependencies": {
54
54
  "@anthropic-ai/sdk": "^0.111.0"
@@ -56,7 +56,7 @@
56
56
  "devDependencies": {
57
57
  "@types/node": "^26.1.1",
58
58
  "typescript": "^6.0.3",
59
- "@holokai/holo-test": "1.5.3"
59
+ "@holokai/holo-test": "1.9.0"
60
60
  },
61
61
  "holoPlugin": {
62
62
  "type": "PROVIDER"