@sentry/warden 0.39.0 → 0.40.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.
- package/dist/sdk/pricing.d.ts +1 -0
- package/dist/sdk/pricing.d.ts.map +1 -1
- package/dist/sdk/pricing.js +44 -98
- package/dist/sdk/pricing.js.map +1 -1
- package/package.json +3 -5
- package/dist/sdk/model-pricing.json +0 -162
package/dist/sdk/pricing.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface UsageCostBreakdown {
|
|
|
9
9
|
webSearchUSD: number;
|
|
10
10
|
totalUSD: number;
|
|
11
11
|
}
|
|
12
|
+
/** Return categorized costs when the Anthropic model resolves to Pi's catalog. */
|
|
12
13
|
export declare function estimateUsageCostBreakdown(model: string | undefined, usage: UsageStats): UsageCostBreakdown | undefined;
|
|
13
14
|
/**
|
|
14
15
|
* Usage shape returned by the Anthropic Messages API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwBD,kFAAkF;AAClF,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,UAAU,GAChB,kBAAkB,GAAG,SAAS,CA+DhC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,2BAA2B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE;QACf,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1C,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3C,GAAG,IAAI,CAAC;IACT,eAAe,CAAC,EAAE;QAChB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACrC,GAAG,IAAI,CAAC;CACV;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAiCzF;AAED,6CAA6C;AAC7C,eAAO,MAAM,eAAe,8BAAwB,CAAC"}
|
package/dist/sdk/pricing.js
CHANGED
|
@@ -1,70 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
inputPerToken: p.inputPerMTok / 1_000_000,
|
|
10
|
-
outputPerToken: p.outputPerMTok / 1_000_000,
|
|
11
|
-
cacheReadPerToken: p.cacheReadPerMTok / 1_000_000,
|
|
12
|
-
cacheCreationPerToken: p.cacheWritePerMTok / 1_000_000,
|
|
13
|
-
cacheCreation1hPerToken: p.cacheWrite1hPerMTok / 1_000_000,
|
|
14
|
-
webSearchPerRequest: p.webSearchPer1K / 1_000,
|
|
15
|
-
},
|
|
16
|
-
]));
|
|
17
|
-
const MODEL_ALIASES = {
|
|
18
|
-
'claude-sonnet-4': 'claude-sonnet-4-0',
|
|
19
|
-
'claude-4-sonnet': 'claude-sonnet-4-0',
|
|
20
|
-
'claude-sonnet-4-6': 'claude-sonnet-4-5',
|
|
21
|
-
'claude-sonnet-4-7': 'claude-sonnet-4-6',
|
|
22
|
-
'claude-opus-4': 'claude-opus-4-0',
|
|
23
|
-
'claude-4-opus': 'claude-opus-4-0',
|
|
24
|
-
'claude-opus-4-6': 'claude-opus-4-5',
|
|
25
|
-
};
|
|
26
|
-
function hasModelPricing(pricing) {
|
|
27
|
-
return pricing !== undefined && (pricing.inputPerToken > 0 ||
|
|
28
|
-
pricing.outputPerToken > 0 ||
|
|
29
|
-
pricing.cacheReadPerToken > 0 ||
|
|
30
|
-
pricing.cacheCreationPerToken > 0 ||
|
|
31
|
-
pricing.cacheCreation1hPerToken > 0);
|
|
32
|
-
}
|
|
33
|
-
function lookupModelPricing(model) {
|
|
34
|
-
const pricing = MODEL_PRICING[model];
|
|
35
|
-
return hasModelPricing(pricing) ? pricing : undefined;
|
|
1
|
+
import { calculateCost } from '@earendil-works/pi-ai';
|
|
2
|
+
import { anthropicProvider } from '@earendil-works/pi-ai/providers/anthropic';
|
|
3
|
+
const WEB_SEARCH_PER_REQUEST_USD = 0.01;
|
|
4
|
+
const ANTHROPIC_MODELS = new Map(anthropicProvider().getModels().map((model) => [model.id, model]));
|
|
5
|
+
/** Resolve exact Pi IDs or dated API response IDs whose base model Pi owns. */
|
|
6
|
+
function findAnthropicModel(model) {
|
|
7
|
+
return ANTHROPIC_MODELS.get(model)
|
|
8
|
+
?? ANTHROPIC_MODELS.get(model.replace(/-\d{8}$/, ''));
|
|
36
9
|
}
|
|
37
|
-
function
|
|
38
|
-
const undated = model.replace(/-\d{8}$/, '');
|
|
39
|
-
if (lookupModelPricing(undated))
|
|
40
|
-
return undated;
|
|
41
|
-
return MODEL_ALIASES[undated] ?? undated;
|
|
42
|
-
}
|
|
43
|
-
function applyLongContextPricing(model, pricing, inputTokens) {
|
|
44
|
-
const canonical = normalizeModelId(model);
|
|
45
|
-
const sonnetLongContext = inputTokens > 200_000 &&
|
|
46
|
-
(canonical === 'claude-sonnet-4-0' || canonical === 'claude-sonnet-4-5');
|
|
47
|
-
if (!sonnetLongContext) {
|
|
48
|
-
return pricing;
|
|
49
|
-
}
|
|
50
|
-
const inputPerToken = pricing.inputPerToken * 2;
|
|
10
|
+
function createPiUsage(input, output, cacheRead, cacheWrite, cacheWrite1h) {
|
|
51
11
|
return {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
12
|
+
input,
|
|
13
|
+
output,
|
|
14
|
+
cacheRead,
|
|
15
|
+
cacheWrite,
|
|
16
|
+
cacheWrite1h,
|
|
17
|
+
totalTokens: input + output + cacheRead + cacheWrite,
|
|
18
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
|
|
58
19
|
};
|
|
59
20
|
}
|
|
60
|
-
|
|
61
|
-
const exact = lookupModelPricing(model);
|
|
62
|
-
if (exact)
|
|
63
|
-
return applyLongContextPricing(model, exact, inputTokens);
|
|
64
|
-
const canonical = normalizeModelId(model);
|
|
65
|
-
const pricing = lookupModelPricing(canonical) ?? lookupModelPricing(`${canonical}-latest`);
|
|
66
|
-
return pricing ? applyLongContextPricing(model, pricing, inputTokens) : undefined;
|
|
67
|
-
}
|
|
21
|
+
/** Return categorized costs when the Anthropic model resolves to Pi's catalog. */
|
|
68
22
|
export function estimateUsageCostBreakdown(model, usage) {
|
|
69
23
|
if (!model)
|
|
70
24
|
return undefined;
|
|
@@ -76,31 +30,34 @@ export function estimateUsageCostBreakdown(model, usage) {
|
|
|
76
30
|
const uncategorizedCacheCreationInputTokens = Math.max(0, cacheCreationInputTokens - cacheCreationInputTokensByTier);
|
|
77
31
|
const freshInputTokens = Math.max(0, usage.inputTokens - cacheReadInputTokens - cacheCreationInputTokens);
|
|
78
32
|
const webSearchRequests = usage.webSearchRequests ?? 0;
|
|
79
|
-
const
|
|
80
|
-
if (!
|
|
33
|
+
const piModel = findAnthropicModel(model);
|
|
34
|
+
if (!piModel)
|
|
81
35
|
return undefined;
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
36
|
+
const piUsage = createPiUsage(freshInputTokens, usage.outputTokens, cacheReadInputTokens, cacheCreationInputTokens, cacheCreation1hInputTokens);
|
|
37
|
+
const piCost = calculateCost(piModel, piUsage);
|
|
38
|
+
const shortCacheCreationInputTokens = uncategorizedCacheCreationInputTokens + cacheCreation5mInputTokens;
|
|
39
|
+
let cacheCreation1hUSD = 0;
|
|
40
|
+
if (cacheCreation1hInputTokens > 0) {
|
|
41
|
+
// Keep total input constant so Pi selects the same pricing tier while isolating 1h writes.
|
|
42
|
+
const longWriteUsage = createPiUsage(freshInputTokens + shortCacheCreationInputTokens, 0, cacheReadInputTokens, cacheCreation1hInputTokens, cacheCreation1hInputTokens);
|
|
43
|
+
cacheCreation1hUSD = calculateCost(piModel, longWriteUsage).cacheWrite;
|
|
44
|
+
}
|
|
45
|
+
const shortCacheCreationUSD = piCost.cacheWrite - cacheCreation1hUSD;
|
|
46
|
+
const cacheCreationUSD = shortCacheCreationInputTokens > 0
|
|
47
|
+
? shortCacheCreationUSD * uncategorizedCacheCreationInputTokens / shortCacheCreationInputTokens
|
|
48
|
+
: 0;
|
|
49
|
+
const cacheCreation5mUSD = shortCacheCreationUSD - cacheCreationUSD;
|
|
50
|
+
// Pi calculates token costs; Anthropic's server-side web search charge is separate.
|
|
51
|
+
const webSearchUSD = webSearchRequests * WEB_SEARCH_PER_REQUEST_USD;
|
|
89
52
|
return {
|
|
90
|
-
freshInputUSD,
|
|
91
|
-
outputUSD,
|
|
92
|
-
cacheReadUSD,
|
|
53
|
+
freshInputUSD: piCost.input,
|
|
54
|
+
outputUSD: piCost.output,
|
|
55
|
+
cacheReadUSD: piCost.cacheRead,
|
|
93
56
|
cacheCreationUSD,
|
|
94
57
|
cacheCreation5mUSD,
|
|
95
58
|
cacheCreation1hUSD,
|
|
96
59
|
webSearchUSD,
|
|
97
|
-
totalUSD:
|
|
98
|
-
outputUSD +
|
|
99
|
-
cacheReadUSD +
|
|
100
|
-
cacheCreationUSD +
|
|
101
|
-
cacheCreation5mUSD +
|
|
102
|
-
cacheCreation1hUSD +
|
|
103
|
-
webSearchUSD,
|
|
60
|
+
totalUSD: piCost.total + webSearchUSD,
|
|
104
61
|
};
|
|
105
62
|
}
|
|
106
63
|
/**
|
|
@@ -128,21 +85,7 @@ export function anthropicUsageToStats(model, usage) {
|
|
|
128
85
|
const webSearchRequests = usage.server_tool_use?.web_search_requests ?? 0;
|
|
129
86
|
// inputTokens is the total: raw API input_tokens + cache subsets.
|
|
130
87
|
const inputTokens = usage.input_tokens + cacheReadInputTokens + cacheCreationInputTokens;
|
|
131
|
-
const
|
|
132
|
-
// Cost: deduct cache subsets from total to get the non-cached portion,
|
|
133
|
-
// then charge each category at its respective rate.
|
|
134
|
-
let costUSD = 0;
|
|
135
|
-
if (pricing) {
|
|
136
|
-
const freshInputTokens = inputTokens - cacheReadInputTokens - cacheCreationInputTokens;
|
|
137
|
-
costUSD =
|
|
138
|
-
freshInputTokens * pricing.inputPerToken +
|
|
139
|
-
outputTokens * pricing.outputPerToken +
|
|
140
|
-
cacheReadInputTokens * pricing.cacheReadPerToken +
|
|
141
|
-
(cacheCreation5mInputTokens + uncategorizedCacheCreationInputTokens) * pricing.cacheCreationPerToken +
|
|
142
|
-
cacheCreation1hInputTokens * pricing.cacheCreation1hPerToken +
|
|
143
|
-
webSearchRequests * pricing.webSearchPerRequest;
|
|
144
|
-
}
|
|
145
|
-
return {
|
|
88
|
+
const stats = {
|
|
146
89
|
inputTokens,
|
|
147
90
|
outputTokens,
|
|
148
91
|
cacheReadInputTokens,
|
|
@@ -150,8 +93,11 @@ export function anthropicUsageToStats(model, usage) {
|
|
|
150
93
|
cacheCreation5mInputTokens: cacheCreation5mInputTokens + uncategorizedCacheCreationInputTokens,
|
|
151
94
|
cacheCreation1hInputTokens,
|
|
152
95
|
webSearchRequests,
|
|
153
|
-
costUSD,
|
|
96
|
+
costUSD: 0,
|
|
154
97
|
};
|
|
98
|
+
const breakdown = estimateUsageCostBreakdown(model, stats);
|
|
99
|
+
stats.costUSD = breakdown?.totalUSD ?? 0;
|
|
100
|
+
return stats;
|
|
155
101
|
}
|
|
156
102
|
/** @deprecated Use anthropicUsageToStats. */
|
|
157
103
|
export const apiUsageToStats = anthropicUsageToStats;
|
package/dist/sdk/pricing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/sdk/pricing.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentry/warden",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.40.0",
|
|
4
4
|
"description": "Event-driven agent that reacts to GitHub events and executes code-review skills",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@anthropic-ai/claude-agent-sdk": "^0.3.150",
|
|
35
35
|
"@anthropic-ai/sdk": "^0.98.0",
|
|
36
|
-
"@earendil-works/pi-ai": "^0.80.
|
|
37
|
-
"@earendil-works/pi-coding-agent": "^0.80.
|
|
36
|
+
"@earendil-works/pi-ai": "^0.80.6",
|
|
37
|
+
"@earendil-works/pi-coding-agent": "^0.80.6",
|
|
38
38
|
"@inquirer/select": "^5.1.5",
|
|
39
39
|
"@octokit/rest": "^22.0.1",
|
|
40
40
|
"@sentry/dotagents-lib": "^1.17.0",
|
|
@@ -65,8 +65,6 @@
|
|
|
65
65
|
"test:watch": "vitest --config vitest.config.ts",
|
|
66
66
|
"test:examples": "vitest run --config vitest.integration.config.ts",
|
|
67
67
|
"typecheck": "tsc --noEmit",
|
|
68
|
-
"update-pricing": "tsx scripts/update-pricing.ts",
|
|
69
|
-
"update-pricing-pr": "tsx scripts/create-pricing-update-pr.ts",
|
|
70
68
|
"generate:jsonl-schema": "tsx scripts/generate-jsonl-schema.ts"
|
|
71
69
|
}
|
|
72
70
|
}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"claude-2": {
|
|
3
|
-
"inputPerMTok": 8,
|
|
4
|
-
"outputPerMTok": 24,
|
|
5
|
-
"cacheReadPerMTok": 0,
|
|
6
|
-
"cacheWritePerMTok": 0,
|
|
7
|
-
"cacheWrite1hPerMTok": 16,
|
|
8
|
-
"webSearchPer1K": 10
|
|
9
|
-
},
|
|
10
|
-
"claude-3-5-haiku-latest": {
|
|
11
|
-
"inputPerMTok": 0.8,
|
|
12
|
-
"outputPerMTok": 4,
|
|
13
|
-
"cacheReadPerMTok": 0.08,
|
|
14
|
-
"cacheWritePerMTok": 1,
|
|
15
|
-
"cacheWrite1hPerMTok": 1.6,
|
|
16
|
-
"webSearchPer1K": 10
|
|
17
|
-
},
|
|
18
|
-
"claude-3-5-sonnet": {
|
|
19
|
-
"inputPerMTok": 3,
|
|
20
|
-
"outputPerMTok": 15,
|
|
21
|
-
"cacheReadPerMTok": 0.3,
|
|
22
|
-
"cacheWritePerMTok": 3.75,
|
|
23
|
-
"cacheWrite1hPerMTok": 6,
|
|
24
|
-
"webSearchPer1K": 10
|
|
25
|
-
},
|
|
26
|
-
"claude-3-7-sonnet-latest": {
|
|
27
|
-
"inputPerMTok": 3,
|
|
28
|
-
"outputPerMTok": 15,
|
|
29
|
-
"cacheReadPerMTok": 0.3,
|
|
30
|
-
"cacheWritePerMTok": 3.75,
|
|
31
|
-
"cacheWrite1hPerMTok": 6,
|
|
32
|
-
"webSearchPer1K": 10
|
|
33
|
-
},
|
|
34
|
-
"claude-3-haiku": {
|
|
35
|
-
"inputPerMTok": 0.25,
|
|
36
|
-
"outputPerMTok": 1.25,
|
|
37
|
-
"cacheReadPerMTok": 0.03,
|
|
38
|
-
"cacheWritePerMTok": 0.3,
|
|
39
|
-
"cacheWrite1hPerMTok": 0.5,
|
|
40
|
-
"webSearchPer1K": 10
|
|
41
|
-
},
|
|
42
|
-
"claude-3-opus-latest": {
|
|
43
|
-
"inputPerMTok": 15,
|
|
44
|
-
"outputPerMTok": 75,
|
|
45
|
-
"cacheReadPerMTok": 1.5,
|
|
46
|
-
"cacheWritePerMTok": 18.75,
|
|
47
|
-
"cacheWrite1hPerMTok": 30,
|
|
48
|
-
"webSearchPer1K": 10
|
|
49
|
-
},
|
|
50
|
-
"claude-3-sonnet": {
|
|
51
|
-
"inputPerMTok": 3,
|
|
52
|
-
"outputPerMTok": 15,
|
|
53
|
-
"cacheReadPerMTok": 0.3,
|
|
54
|
-
"cacheWritePerMTok": 3.75,
|
|
55
|
-
"cacheWrite1hPerMTok": 6,
|
|
56
|
-
"webSearchPer1K": 10
|
|
57
|
-
},
|
|
58
|
-
"claude-fable-5": {
|
|
59
|
-
"inputPerMTok": 10,
|
|
60
|
-
"outputPerMTok": 50,
|
|
61
|
-
"cacheReadPerMTok": 1,
|
|
62
|
-
"cacheWritePerMTok": 12.5,
|
|
63
|
-
"cacheWrite1hPerMTok": 20,
|
|
64
|
-
"webSearchPer1K": 10
|
|
65
|
-
},
|
|
66
|
-
"claude-haiku-4-5": {
|
|
67
|
-
"inputPerMTok": 1,
|
|
68
|
-
"outputPerMTok": 5,
|
|
69
|
-
"cacheReadPerMTok": 0.1,
|
|
70
|
-
"cacheWritePerMTok": 1.25,
|
|
71
|
-
"cacheWrite1hPerMTok": 2,
|
|
72
|
-
"webSearchPer1K": 10
|
|
73
|
-
},
|
|
74
|
-
"claude-opus-4-0": {
|
|
75
|
-
"inputPerMTok": 15,
|
|
76
|
-
"outputPerMTok": 75,
|
|
77
|
-
"cacheReadPerMTok": 1.5,
|
|
78
|
-
"cacheWritePerMTok": 18.75,
|
|
79
|
-
"cacheWrite1hPerMTok": 30,
|
|
80
|
-
"webSearchPer1K": 10
|
|
81
|
-
},
|
|
82
|
-
"claude-opus-4-1": {
|
|
83
|
-
"inputPerMTok": 15,
|
|
84
|
-
"outputPerMTok": 75,
|
|
85
|
-
"cacheReadPerMTok": 1.5,
|
|
86
|
-
"cacheWritePerMTok": 18.75,
|
|
87
|
-
"cacheWrite1hPerMTok": 30,
|
|
88
|
-
"webSearchPer1K": 10
|
|
89
|
-
},
|
|
90
|
-
"claude-opus-4-5": {
|
|
91
|
-
"inputPerMTok": 5,
|
|
92
|
-
"outputPerMTok": 25,
|
|
93
|
-
"cacheReadPerMTok": 0.5,
|
|
94
|
-
"cacheWritePerMTok": 6.25,
|
|
95
|
-
"cacheWrite1hPerMTok": 10,
|
|
96
|
-
"webSearchPer1K": 10
|
|
97
|
-
},
|
|
98
|
-
"claude-opus-4-6": {
|
|
99
|
-
"inputPerMTok": 5,
|
|
100
|
-
"outputPerMTok": 25,
|
|
101
|
-
"cacheReadPerMTok": 0.5,
|
|
102
|
-
"cacheWritePerMTok": 6.25,
|
|
103
|
-
"cacheWrite1hPerMTok": 10,
|
|
104
|
-
"webSearchPer1K": 10
|
|
105
|
-
},
|
|
106
|
-
"claude-opus-4-7": {
|
|
107
|
-
"inputPerMTok": 5,
|
|
108
|
-
"outputPerMTok": 25,
|
|
109
|
-
"cacheReadPerMTok": 0.5,
|
|
110
|
-
"cacheWritePerMTok": 6.25,
|
|
111
|
-
"cacheWrite1hPerMTok": 10,
|
|
112
|
-
"webSearchPer1K": 10
|
|
113
|
-
},
|
|
114
|
-
"claude-opus-4-8": {
|
|
115
|
-
"inputPerMTok": 5,
|
|
116
|
-
"outputPerMTok": 25,
|
|
117
|
-
"cacheReadPerMTok": 0.5,
|
|
118
|
-
"cacheWritePerMTok": 6.25,
|
|
119
|
-
"cacheWrite1hPerMTok": 10,
|
|
120
|
-
"webSearchPer1K": 10
|
|
121
|
-
},
|
|
122
|
-
"claude-sonnet-4-0": {
|
|
123
|
-
"inputPerMTok": 3,
|
|
124
|
-
"outputPerMTok": 15,
|
|
125
|
-
"cacheReadPerMTok": 0.3,
|
|
126
|
-
"cacheWritePerMTok": 3.75,
|
|
127
|
-
"cacheWrite1hPerMTok": 6,
|
|
128
|
-
"webSearchPer1K": 10
|
|
129
|
-
},
|
|
130
|
-
"claude-sonnet-4-5": {
|
|
131
|
-
"inputPerMTok": 3,
|
|
132
|
-
"outputPerMTok": 15,
|
|
133
|
-
"cacheReadPerMTok": 0.3,
|
|
134
|
-
"cacheWritePerMTok": 3.75,
|
|
135
|
-
"cacheWrite1hPerMTok": 6,
|
|
136
|
-
"webSearchPer1K": 10
|
|
137
|
-
},
|
|
138
|
-
"claude-sonnet-4-6": {
|
|
139
|
-
"inputPerMTok": 3,
|
|
140
|
-
"outputPerMTok": 15,
|
|
141
|
-
"cacheReadPerMTok": 0.3,
|
|
142
|
-
"cacheWritePerMTok": 3.75,
|
|
143
|
-
"cacheWrite1hPerMTok": 6,
|
|
144
|
-
"webSearchPer1K": 10
|
|
145
|
-
},
|
|
146
|
-
"claude-sonnet-5": {
|
|
147
|
-
"inputPerMTok": 2,
|
|
148
|
-
"outputPerMTok": 10,
|
|
149
|
-
"cacheReadPerMTok": 0.2,
|
|
150
|
-
"cacheWritePerMTok": 2.5,
|
|
151
|
-
"cacheWrite1hPerMTok": 4,
|
|
152
|
-
"webSearchPer1K": 10
|
|
153
|
-
},
|
|
154
|
-
"claude-v1": {
|
|
155
|
-
"inputPerMTok": 8,
|
|
156
|
-
"outputPerMTok": 24,
|
|
157
|
-
"cacheReadPerMTok": 0,
|
|
158
|
-
"cacheWritePerMTok": 0,
|
|
159
|
-
"cacheWrite1hPerMTok": 16,
|
|
160
|
-
"webSearchPer1K": 10
|
|
161
|
-
}
|
|
162
|
-
}
|