@animalabs/membrane 0.5.41 → 0.5.43

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 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ModelPricing } from '../types/provider.js';
2
+ export declare function getDefaultPricing(modelId: string): ModelPricing | undefined;
3
+ //# sourceMappingURL=default-pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-pricing.d.ts","sourceRoot":"","sources":["../../src/registry/default-pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAkEzD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAU3E"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Built-in pricing table for known models.
3
+ * Prices in USD per million tokens. Last updated: 2025-07.
4
+ *
5
+ * Used as fallback when no ModelRegistry is configured.
6
+ * Registry pricing (if available) takes precedence.
7
+ */
8
+ const PRICING_TABLE = [
9
+ // Anthropic — Claude 4.6
10
+ {
11
+ prefix: 'claude-opus-4-6',
12
+ pricing: { inputPerMillion: 15, outputPerMillion: 75, cacheWritePerMillion: 18.75, cacheReadPerMillion: 1.50, currency: 'USD' },
13
+ },
14
+ {
15
+ prefix: 'claude-sonnet-4-6',
16
+ pricing: { inputPerMillion: 3, outputPerMillion: 15, cacheWritePerMillion: 3.75, cacheReadPerMillion: 0.30, currency: 'USD' },
17
+ },
18
+ // Anthropic — Claude 4.5
19
+ {
20
+ prefix: 'claude-haiku-4-5',
21
+ pricing: { inputPerMillion: 0.80, outputPerMillion: 4, cacheWritePerMillion: 1.00, cacheReadPerMillion: 0.08, currency: 'USD' },
22
+ },
23
+ // Anthropic — Claude 4
24
+ {
25
+ prefix: 'claude-opus-4',
26
+ pricing: { inputPerMillion: 15, outputPerMillion: 75, cacheWritePerMillion: 18.75, cacheReadPerMillion: 1.50, currency: 'USD' },
27
+ },
28
+ {
29
+ prefix: 'claude-sonnet-4',
30
+ pricing: { inputPerMillion: 3, outputPerMillion: 15, cacheWritePerMillion: 3.75, cacheReadPerMillion: 0.30, currency: 'USD' },
31
+ },
32
+ // Anthropic — Claude 3.5
33
+ {
34
+ prefix: 'claude-3-5-sonnet',
35
+ pricing: { inputPerMillion: 3, outputPerMillion: 15, cacheWritePerMillion: 3.75, cacheReadPerMillion: 0.30, currency: 'USD' },
36
+ },
37
+ {
38
+ prefix: 'claude-3-5-haiku',
39
+ pricing: { inputPerMillion: 0.80, outputPerMillion: 4, cacheWritePerMillion: 1.00, cacheReadPerMillion: 0.08, currency: 'USD' },
40
+ },
41
+ // OpenAI — GPT-4o
42
+ {
43
+ prefix: 'gpt-4o-2024',
44
+ pricing: { inputPerMillion: 2.50, outputPerMillion: 10, cacheReadPerMillion: 1.25, currency: 'USD' },
45
+ },
46
+ {
47
+ prefix: 'gpt-4o',
48
+ pricing: { inputPerMillion: 2.50, outputPerMillion: 10, cacheReadPerMillion: 1.25, currency: 'USD' },
49
+ },
50
+ {
51
+ prefix: 'gpt-4o-mini',
52
+ pricing: { inputPerMillion: 0.15, outputPerMillion: 0.60, cacheReadPerMillion: 0.075, currency: 'USD' },
53
+ },
54
+ // Google — Gemini 2.5
55
+ {
56
+ prefix: 'gemini-2.5-pro',
57
+ pricing: { inputPerMillion: 1.25, outputPerMillion: 10, currency: 'USD' },
58
+ },
59
+ {
60
+ prefix: 'gemini-2.5-flash',
61
+ pricing: { inputPerMillion: 0.15, outputPerMillion: 0.60, currency: 'USD' },
62
+ },
63
+ ];
64
+ export function getDefaultPricing(modelId) {
65
+ let best;
66
+ let bestLen = 0;
67
+ for (const entry of PRICING_TABLE) {
68
+ if (modelId.startsWith(entry.prefix) && entry.prefix.length > bestLen) {
69
+ best = entry.pricing;
70
+ bestLen = entry.prefix.length;
71
+ }
72
+ }
73
+ return best;
74
+ }
75
+ //# sourceMappingURL=default-pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-pricing.js","sourceRoot":"","sources":["../../src/registry/default-pricing.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import type { ContentBlock } from './content.js';
11
11
  import type { ToolCall, ToolResult, ToolContext } from './tools.js';
12
- import type { BasicUsage, NormalizedResponse } from './response.js';
12
+ import type { DetailedUsage, NormalizedResponse } from './response.js';
13
13
  import type { ChunkMeta, BlockEvent } from './streaming.js';
14
14
  /**
15
15
  * Token/chunk event - raw text as it arrives from the LLM.
@@ -40,7 +40,7 @@ export interface ToolCallsEvent {
40
40
  */
41
41
  export interface UsageEvent {
42
42
  type: 'usage';
43
- usage: BasicUsage;
43
+ usage: DetailedUsage;
44
44
  }
45
45
  /**
46
46
  * Complete event - inference cycle finished successfully.
@@ -1 +1 @@
1
- {"version":3,"file":"yielding-stream.d.ts","sourceRoot":"","sources":["../../src/types/yielding-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yielding-stream.d.ts","sourceRoot":"","sources":["../../src/types/yielding-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CostBreakdown } from '../types/response.js';
2
+ import type { ModelPricing } from '../types/provider.js';
3
+ export interface CostableUsage {
4
+ inputTokens: number;
5
+ outputTokens: number;
6
+ cacheCreationTokens?: number;
7
+ cacheReadTokens?: number;
8
+ }
9
+ export declare function calculateCost(usage: CostableUsage, pricing: ModelPricing): CostBreakdown;
10
+ //# sourceMappingURL=cost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/utils/cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,aAAa,CAkBxF"}
@@ -0,0 +1,19 @@
1
+ export function calculateCost(usage, pricing) {
2
+ const input = usage.inputTokens * pricing.inputPerMillion / 1_000_000;
3
+ const output = usage.outputTokens * pricing.outputPerMillion / 1_000_000;
4
+ const cacheWrite = pricing.cacheWritePerMillion != null
5
+ ? (usage.cacheCreationTokens ?? 0) * pricing.cacheWritePerMillion / 1_000_000
6
+ : undefined;
7
+ const cacheRead = pricing.cacheReadPerMillion != null
8
+ ? (usage.cacheReadTokens ?? 0) * pricing.cacheReadPerMillion / 1_000_000
9
+ : undefined;
10
+ return {
11
+ input,
12
+ output,
13
+ cacheWrite,
14
+ cacheRead,
15
+ total: input + output + (cacheWrite ?? 0) + (cacheRead ?? 0),
16
+ currency: pricing.currency,
17
+ };
18
+ }
19
+ //# sourceMappingURL=cost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/utils/cost.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,aAAa,CAAC,KAAoB,EAAE,OAAqB;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACzE,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,IAAI,IAAI;QACrD,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS;QAC7E,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI;QACnD,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS;QACxE,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,KAAK;QACL,MAAM;QACN,UAAU;QACV,SAAS;QACT,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC"}
@@ -2,4 +2,6 @@
2
2
  * Utility exports
3
3
  */
4
4
  export { parseToolCalls, formatToolResults, formatToolResult, formatToolDefinitions, getToolInstructions, hasUnclosedToolBlock, endsWithPartialToolBlock, unescapeXml, type ToolDefinitionForPrompt, } from './tool-parser.js';
5
+ export { calculateCost } from './cost.js';
6
+ export type { CostableUsage } from './cost.js';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACX,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACX,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
@@ -2,4 +2,5 @@
2
2
  * Utility exports
3
3
  */
4
4
  export { parseToolCalls, formatToolResults, formatToolResult, formatToolDefinitions, getToolInstructions, hasUnclosedToolBlock, endsWithPartialToolBlock, unescapeXml, } from './tool-parser.js';
5
+ export { calculateCost } from './cost.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,GAEZ,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,GAEZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animalabs/membrane",
3
- "version": "0.5.41",
3
+ "version": "0.5.43",
4
4
  "description": "LLM middleware - a selective boundary that transforms what passes through",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -63,6 +63,14 @@ export interface CompletionsFormatterConfig extends FormatterConfig {
63
63
  */
64
64
  maxParticipantsForStop?: number;
65
65
 
66
+ /**
67
+ * Add lowercased variants of participant stop sequences.
68
+ * Useful for models whose tokenizer doesn't normalize casing,
69
+ * allowing simmed names with different casing to still trigger stops.
70
+ * Default: false
71
+ */
72
+ caseInsensitiveStops?: boolean;
73
+
66
74
  /**
67
75
  * Whether to warn when images are stripped.
68
76
  * Default: true
@@ -187,6 +195,7 @@ export class CompletionsFormatter implements PrefillFormatter {
187
195
  nameFormat: config.nameFormat ?? '{name}: ',
188
196
  messageSeparator: config.messageSeparator ?? '\n\n',
189
197
  maxParticipantsForStop: config.maxParticipantsForStop ?? 10,
198
+ caseInsensitiveStops: config.caseInsensitiveStops ?? false,
190
199
  warnOnImageStrip: config.warnOnImageStrip ?? true,
191
200
  // Completions models don't support images - always strip
192
201
  unsupportedMedia: 'strip',
@@ -364,6 +373,16 @@ export class CompletionsFormatter implements PrefillFormatter {
364
373
  const prefix = this.config.nameFormat.replace('{name}', participant).trimEnd();
365
374
  stops.push(`\n\n${prefix}`);
366
375
  stops.push(`\n${prefix}`);
376
+
377
+ // Add lowercased variants if casing differs (for models that generate mixed-case names)
378
+ if (this.config.caseInsensitiveStops) {
379
+ const lower = this.config.nameFormat.replace('{name}', participant.toLowerCase()).trimEnd();
380
+ if (lower !== prefix) {
381
+ stops.push(`\n\n${lower}`);
382
+ stops.push(`\n${lower}`);
383
+ }
384
+ }
385
+
367
386
  count++;
368
387
  }
369
388
 
package/src/membrane.ts CHANGED
@@ -53,6 +53,8 @@ import type {
53
53
  import type { PrefillFormatter, StreamParser } from './formatters/types.js';
54
54
  import { AnthropicXmlFormatter } from './formatters/anthropic-xml.js';
55
55
  import { YieldingStreamImpl } from './yielding-stream.js';
56
+ import { calculateCost } from './utils/cost.js';
57
+ import { getDefaultPricing } from './registry/default-pricing.js';
56
58
 
57
59
  // ============================================================================
58
60
  // Membrane Class
@@ -273,6 +275,7 @@ export class Membrane {
273
275
  const parser = formatter.createStreamParser();
274
276
  let toolDepth = 0;
275
277
  let totalUsage: DetailedUsage = { inputTokens: 0, outputTokens: 0 };
278
+ const pricing = this.resolvePricing(request.config.model);
276
279
  const contentBlocks: ContentBlock[] = [];
277
280
  let lastStopReason: StopReason = 'end_turn';
278
281
  let lastStopSequence: string | undefined;
@@ -425,6 +428,7 @@ export class Membrane {
425
428
  if (streamResult.usage.cacheReadTokens) {
426
429
  totalUsage.cacheReadTokens = (totalUsage.cacheReadTokens ?? 0) + streamResult.usage.cacheReadTokens;
427
430
  }
431
+ if (pricing) totalUsage.estimatedCost = calculateCost(totalUsage, pricing);
428
432
  onUsage?.(totalUsage);
429
433
 
430
434
  // Flush the parser to complete any in-progress streaming block
@@ -737,6 +741,7 @@ export class Membrane {
737
741
 
738
742
  let toolDepth = 0;
739
743
  let totalUsage: DetailedUsage = { inputTokens: 0, outputTokens: 0 };
744
+ const pricing = this.resolvePricing(request.config.model);
740
745
  let lastStopReason: StopReason = 'end_turn';
741
746
  let lastStopSequence: string | undefined;
742
747
  let rawRequest: unknown;
@@ -807,6 +812,7 @@ export class Membrane {
807
812
  if (streamResult.usage.cacheReadTokens) {
808
813
  totalUsage.cacheReadTokens = (totalUsage.cacheReadTokens ?? 0) + streamResult.usage.cacheReadTokens;
809
814
  }
815
+ if (pricing) totalUsage.estimatedCost = calculateCost(totalUsage, pricing);
810
816
  onUsage?.(totalUsage);
811
817
 
812
818
  // Parse content blocks from response
@@ -960,10 +966,13 @@ export class Membrane {
960
966
  const assistantName = request.assistantParticipant
961
967
  ?? this.config.assistantParticipant ?? 'Claude';
962
968
 
969
+ const promptCaching = request.promptCaching ?? true;
970
+ const cacheControl = promptCaching ? { type: 'ephemeral' as const, ...(request.cacheTtl ? { ttl: request.cacheTtl } : {}) } : undefined;
971
+
963
972
  for (const msg of messages) {
964
973
  const isAssistant = msg.participant === assistantName;
965
974
  const role = isAssistant ? 'assistant' : 'user';
966
-
975
+
967
976
  // Convert content blocks
968
977
  const content: any[] = [];
969
978
  for (const block of msg.content) {
@@ -1005,19 +1014,42 @@ export class Membrane {
1005
1014
  }
1006
1015
  }
1007
1016
  }
1008
-
1017
+
1018
+ // Apply cache_control to last block of messages with cacheBreakpoint
1019
+ if (msg.cacheBreakpoint && cacheControl && content.length > 0) {
1020
+ content[content.length - 1].cache_control = cacheControl;
1021
+ }
1022
+
1009
1023
  providerMessages.push({ role, content });
1010
1024
  }
1011
1025
 
1012
1026
  // Convert tools to provider format.
1013
1027
  // Native tool names must match ^[a-zA-Z0-9_-]{1,128}$ — sanitize colons
1014
1028
  // from the module:tool namespace convention. Reversed in parseProviderContent.
1015
- const tools = request.tools?.map(tool => ({
1016
- name: sanitizeToolName(tool.name),
1017
- description: tool.description,
1018
- input_schema: tool.inputSchema,
1019
- }));
1020
-
1029
+ const tools = request.tools?.map((tool, idx) => {
1030
+ const t: Record<string, unknown> = {
1031
+ name: sanitizeToolName(tool.name),
1032
+ description: tool.description,
1033
+ input_schema: tool.inputSchema,
1034
+ };
1035
+ // Cache the tool list — mark the last tool with cache_control
1036
+ if (cacheControl && request.tools && idx === request.tools.length - 1) {
1037
+ t.cache_control = cacheControl;
1038
+ }
1039
+ return t;
1040
+ });
1041
+
1042
+ // Wrap system prompt with cache_control if prompt caching is enabled
1043
+ let system: unknown = request.system;
1044
+ if (cacheControl && typeof system === 'string' && system.length > 0) {
1045
+ system = [{ type: 'text', text: system, cache_control: cacheControl }];
1046
+ } else if (cacheControl && Array.isArray(system) && system.length > 0) {
1047
+ const blocks = system as Record<string, unknown>[];
1048
+ system = blocks.map((block, idx) =>
1049
+ idx === blocks.length - 1 ? { ...block, cache_control: cacheControl } : block
1050
+ );
1051
+ }
1052
+
1021
1053
  // Build thinking config for native extended thinking
1022
1054
  const thinking = request.config.thinking?.enabled
1023
1055
  ? {
@@ -1034,7 +1066,7 @@ export class Membrane {
1034
1066
  maxTokens: request.config.maxTokens,
1035
1067
  temperature,
1036
1068
  messages: providerMessages,
1037
- system: request.system,
1069
+ system,
1038
1070
  tools,
1039
1071
  thinking,
1040
1072
  extra: request.providerParams,
@@ -1377,6 +1409,7 @@ export class Membrane {
1377
1409
  outputTokens: providerResponse.usage.outputTokens,
1378
1410
  cacheCreationTokens: providerResponse.usage.cacheCreationTokens,
1379
1411
  cacheReadTokens: providerResponse.usage.cacheReadTokens,
1412
+ estimatedCost: this.estimateCost(providerResponse.usage, request.config.model),
1380
1413
  },
1381
1414
  timing: {
1382
1415
  totalDurationMs: durationMs,
@@ -1458,6 +1491,7 @@ export class Membrane {
1458
1491
  },
1459
1492
  usage: {
1460
1493
  ...usage,
1494
+ estimatedCost: usage.estimatedCost ?? this.estimateCost(usage, request.config.model),
1461
1495
  },
1462
1496
  timing: {
1463
1497
  totalDurationMs: durationMs,
@@ -1497,13 +1531,23 @@ export class Membrane {
1497
1531
  }
1498
1532
  }
1499
1533
 
1500
- private calculateCacheHitRatio(usage: any): number {
1534
+ private calculateCacheHitRatio(usage: Pick<DetailedUsage, 'inputTokens' | 'cacheReadTokens'>): number {
1501
1535
  const cacheRead = usage.cacheReadTokens ?? 0;
1502
1536
  const total = usage.inputTokens ?? 0;
1503
1537
  if (total === 0) return 0;
1504
1538
  return cacheRead / total;
1505
1539
  }
1506
1540
 
1541
+ private resolvePricing(model: string): import('./types/provider.js').ModelPricing | undefined {
1542
+ return this.registry?.getPricing(model) ?? getDefaultPricing(model);
1543
+ }
1544
+
1545
+ /** Resolve pricing + calculate cost in one call (for one-shot use outside loops). */
1546
+ private estimateCost(usage: import('./utils/cost.js').CostableUsage, model: string): import('./types/response.js').CostBreakdown | undefined {
1547
+ const pricing = this.resolvePricing(model);
1548
+ return pricing ? calculateCost(usage, pricing) : undefined;
1549
+ }
1550
+
1507
1551
  private calculateRetryDelay(attempt: number): number {
1508
1552
  const { retryDelayMs, backoffMultiplier, maxRetryDelayMs } = this.retryConfig;
1509
1553
  const delay = retryDelayMs * Math.pow(backoffMultiplier, attempt - 1);
@@ -1639,7 +1683,8 @@ export class Membrane {
1639
1683
  const formatter = this.formatter;
1640
1684
  const parser = formatter.createStreamParser();
1641
1685
  let toolDepth = 0;
1642
- let totalUsage: BasicUsage = { inputTokens: 0, outputTokens: 0 };
1686
+ let totalUsage: DetailedUsage = { inputTokens: 0, outputTokens: 0 };
1687
+ const pricing = this.resolvePricing(request.config.model);
1643
1688
  const contentBlocks: ContentBlock[] = [];
1644
1689
  let lastStopReason: StopReason = 'end_turn';
1645
1690
  let lastStopSequence: string | undefined;
@@ -1768,9 +1813,16 @@ export class Membrane {
1768
1813
  lastStopReason = this.mapStopReason(streamResult.stopReason);
1769
1814
  lastStopSequence = streamResult.stopSequence ?? undefined;
1770
1815
 
1771
- // Accumulate usage
1816
+ // Accumulate usage (including cache metrics)
1772
1817
  totalUsage.inputTokens += streamResult.usage.inputTokens;
1773
1818
  totalUsage.outputTokens += streamResult.usage.outputTokens;
1819
+ if (streamResult.usage.cacheCreationTokens) {
1820
+ totalUsage.cacheCreationTokens = (totalUsage.cacheCreationTokens ?? 0) + streamResult.usage.cacheCreationTokens;
1821
+ }
1822
+ if (streamResult.usage.cacheReadTokens) {
1823
+ totalUsage.cacheReadTokens = (totalUsage.cacheReadTokens ?? 0) + streamResult.usage.cacheReadTokens;
1824
+ }
1825
+ if (pricing) totalUsage.estimatedCost = calculateCost(totalUsage, pricing);
1774
1826
  if (emitUsage) {
1775
1827
  stream.emit({ type: 'usage', usage: { ...totalUsage } });
1776
1828
  }
@@ -2075,7 +2127,8 @@ export class Membrane {
2075
2127
  } = options;
2076
2128
 
2077
2129
  let toolDepth = 0;
2078
- let totalUsage: BasicUsage = { inputTokens: 0, outputTokens: 0 };
2130
+ let totalUsage: DetailedUsage = { inputTokens: 0, outputTokens: 0 };
2131
+ const pricing = this.resolvePricing(request.config.model);
2079
2132
  let lastStopReason: StopReason = 'end_turn';
2080
2133
  let lastStopSequence: string | undefined;
2081
2134
  let rawRequest: unknown;
@@ -2141,9 +2194,16 @@ export class Membrane {
2141
2194
  lastStopReason = this.mapStopReason(streamResult.stopReason);
2142
2195
  lastStopSequence = streamResult.stopSequence ?? undefined;
2143
2196
 
2144
- // Accumulate usage
2197
+ // Accumulate usage (including cache metrics)
2145
2198
  totalUsage.inputTokens += streamResult.usage.inputTokens;
2146
2199
  totalUsage.outputTokens += streamResult.usage.outputTokens;
2200
+ if (streamResult.usage.cacheCreationTokens) {
2201
+ totalUsage.cacheCreationTokens = (totalUsage.cacheCreationTokens ?? 0) + streamResult.usage.cacheCreationTokens;
2202
+ }
2203
+ if (streamResult.usage.cacheReadTokens) {
2204
+ totalUsage.cacheReadTokens = (totalUsage.cacheReadTokens ?? 0) + streamResult.usage.cacheReadTokens;
2205
+ }
2206
+ if (pricing) totalUsage.estimatedCost = calculateCost(totalUsage, pricing);
2147
2207
  if (emitUsage) {
2148
2208
  stream.emit({ type: 'usage', usage: { ...totalUsage } });
2149
2209
  }
@@ -2252,9 +2312,9 @@ export class Membrane {
2252
2312
  },
2253
2313
  cache: {
2254
2314
  markersInRequest: 0,
2255
- tokensCreated: 0,
2256
- tokensRead: 0,
2257
- hitRatio: 0,
2315
+ tokensCreated: totalUsage.cacheCreationTokens ?? 0,
2316
+ tokensRead: totalUsage.cacheReadTokens ?? 0,
2317
+ hitRatio: this.calculateCacheHitRatio(totalUsage),
2258
2318
  },
2259
2319
  },
2260
2320
  raw: {
@@ -178,7 +178,19 @@ export class AnthropicAdapter implements ProviderAdapter {
178
178
  const delta = event.delta as { stop_reason?: string; stop_sequence?: string };
179
179
  stopReason = delta.stop_reason ?? 'end_turn';
180
180
  stopSequence = delta.stop_sequence ?? undefined;
181
- outputTokens = (event.usage as { output_tokens: number }).output_tokens ?? 0;
181
+ const deltaUsage = event.usage as unknown as {
182
+ output_tokens: number;
183
+ cache_creation_input_tokens?: number | null;
184
+ cache_read_input_tokens?: number | null;
185
+ };
186
+ outputTokens = deltaUsage.output_tokens ?? 0;
187
+ // message_delta carries cumulative cache metrics — use as authoritative
188
+ if (deltaUsage.cache_creation_input_tokens != null) {
189
+ cacheCreationTokens = deltaUsage.cache_creation_input_tokens;
190
+ }
191
+ if (deltaUsage.cache_read_input_tokens != null) {
192
+ cacheReadTokens = deltaUsage.cache_read_input_tokens;
193
+ }
182
194
  break;
183
195
  }
184
196
  }
@@ -275,8 +275,8 @@ export class BedrockAdapter implements ProviderAdapter {
275
275
 
276
276
  // If already in Bedrock format, use as-is
277
277
  // Supports both direct model IDs (anthropic.claude-...) and
278
- // cross-region inference profile IDs (us.anthropic.claude-..., eu.anthropic.claude-...)
279
- if (modelId.startsWith('anthropic.') || /^[a-z]{2}\.anthropic\./.test(modelId)) {
278
+ // cross-region inference profile IDs (us.anthropic.claude-..., eu.anthropic.claude-..., apac.anthropic.claude-...)
279
+ if (modelId.startsWith('anthropic.') || /^[a-z]{2,4}\.anthropic\./.test(modelId)) {
280
280
  return modelId;
281
281
  }
282
282
 
@@ -0,0 +1,77 @@
1
+ import type { ModelPricing } from '../types/provider.js';
2
+
3
+ /**
4
+ * Built-in pricing table for known models.
5
+ * Prices in USD per million tokens. Last updated: 2025-07.
6
+ *
7
+ * Used as fallback when no ModelRegistry is configured.
8
+ * Registry pricing (if available) takes precedence.
9
+ */
10
+ const PRICING_TABLE: Array<{ prefix: string; pricing: ModelPricing }> = [
11
+ // Anthropic — Claude 4.6
12
+ {
13
+ prefix: 'claude-opus-4-6',
14
+ pricing: { inputPerMillion: 15, outputPerMillion: 75, cacheWritePerMillion: 18.75, cacheReadPerMillion: 1.50, currency: 'USD' },
15
+ },
16
+ {
17
+ prefix: 'claude-sonnet-4-6',
18
+ pricing: { inputPerMillion: 3, outputPerMillion: 15, cacheWritePerMillion: 3.75, cacheReadPerMillion: 0.30, currency: 'USD' },
19
+ },
20
+ // Anthropic — Claude 4.5
21
+ {
22
+ prefix: 'claude-haiku-4-5',
23
+ pricing: { inputPerMillion: 0.80, outputPerMillion: 4, cacheWritePerMillion: 1.00, cacheReadPerMillion: 0.08, currency: 'USD' },
24
+ },
25
+ // Anthropic — Claude 4
26
+ {
27
+ prefix: 'claude-opus-4',
28
+ pricing: { inputPerMillion: 15, outputPerMillion: 75, cacheWritePerMillion: 18.75, cacheReadPerMillion: 1.50, currency: 'USD' },
29
+ },
30
+ {
31
+ prefix: 'claude-sonnet-4',
32
+ pricing: { inputPerMillion: 3, outputPerMillion: 15, cacheWritePerMillion: 3.75, cacheReadPerMillion: 0.30, currency: 'USD' },
33
+ },
34
+ // Anthropic — Claude 3.5
35
+ {
36
+ prefix: 'claude-3-5-sonnet',
37
+ pricing: { inputPerMillion: 3, outputPerMillion: 15, cacheWritePerMillion: 3.75, cacheReadPerMillion: 0.30, currency: 'USD' },
38
+ },
39
+ {
40
+ prefix: 'claude-3-5-haiku',
41
+ pricing: { inputPerMillion: 0.80, outputPerMillion: 4, cacheWritePerMillion: 1.00, cacheReadPerMillion: 0.08, currency: 'USD' },
42
+ },
43
+ // OpenAI — GPT-4o
44
+ {
45
+ prefix: 'gpt-4o-2024',
46
+ pricing: { inputPerMillion: 2.50, outputPerMillion: 10, cacheReadPerMillion: 1.25, currency: 'USD' },
47
+ },
48
+ {
49
+ prefix: 'gpt-4o',
50
+ pricing: { inputPerMillion: 2.50, outputPerMillion: 10, cacheReadPerMillion: 1.25, currency: 'USD' },
51
+ },
52
+ {
53
+ prefix: 'gpt-4o-mini',
54
+ pricing: { inputPerMillion: 0.15, outputPerMillion: 0.60, cacheReadPerMillion: 0.075, currency: 'USD' },
55
+ },
56
+ // Google — Gemini 2.5
57
+ {
58
+ prefix: 'gemini-2.5-pro',
59
+ pricing: { inputPerMillion: 1.25, outputPerMillion: 10, currency: 'USD' },
60
+ },
61
+ {
62
+ prefix: 'gemini-2.5-flash',
63
+ pricing: { inputPerMillion: 0.15, outputPerMillion: 0.60, currency: 'USD' },
64
+ },
65
+ ];
66
+
67
+ export function getDefaultPricing(modelId: string): ModelPricing | undefined {
68
+ let best: ModelPricing | undefined;
69
+ let bestLen = 0;
70
+ for (const entry of PRICING_TABLE) {
71
+ if (modelId.startsWith(entry.prefix) && entry.prefix.length > bestLen) {
72
+ best = entry.pricing;
73
+ bestLen = entry.prefix.length;
74
+ }
75
+ }
76
+ return best;
77
+ }