shield360 1.0.0 → 1.1.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.
Files changed (72) hide show
  1. package/README.md +29 -1
  2. package/dist/__tests__/build-info.test.d.ts +1 -0
  3. package/dist/__tests__/build-info.test.js +189 -0
  4. package/dist/__tests__/build-info.test.js.map +1 -0
  5. package/dist/__tests__/code-location.test.d.ts +1 -0
  6. package/dist/__tests__/code-location.test.js +180 -0
  7. package/dist/__tests__/code-location.test.js.map +1 -0
  8. package/dist/__tests__/destination.test.d.ts +1 -0
  9. package/dist/__tests__/destination.test.js +76 -0
  10. package/dist/__tests__/destination.test.js.map +1 -0
  11. package/dist/__tests__/pricing-claude-5.test.d.ts +1 -0
  12. package/dist/__tests__/pricing-claude-5.test.js +56 -0
  13. package/dist/__tests__/pricing-claude-5.test.js.map +1 -0
  14. package/dist/config.js +1 -1
  15. package/dist/config.js.map +1 -1
  16. package/dist/destination.d.ts +37 -0
  17. package/dist/destination.js +64 -0
  18. package/dist/destination.js.map +1 -0
  19. package/dist/guard/__tests__/findings.test.js +27 -8
  20. package/dist/guard/__tests__/findings.test.js.map +1 -1
  21. package/dist/guard/base.d.ts +2 -0
  22. package/dist/guard/base.js +4 -0
  23. package/dist/guard/base.js.map +1 -1
  24. package/dist/guard/findings.d.ts +12 -2
  25. package/dist/guard/findings.js +19 -49
  26. package/dist/guard/findings.js.map +1 -1
  27. package/dist/guard/integration.d.ts +24 -3
  28. package/dist/guard/integration.js +102 -30
  29. package/dist/guard/integration.js.map +1 -1
  30. package/dist/guard/pipeline.d.ts +10 -1
  31. package/dist/guard/pipeline.js +14 -0
  32. package/dist/guard/pipeline.js.map +1 -1
  33. package/dist/index.d.ts +2 -0
  34. package/dist/index.js +47 -17
  35. package/dist/index.js.map +1 -1
  36. package/dist/instrumentation/__tests__/anthropic-api-promise.test.d.ts +1 -0
  37. package/dist/instrumentation/__tests__/anthropic-api-promise.test.js +99 -0
  38. package/dist/instrumentation/__tests__/anthropic-api-promise.test.js.map +1 -0
  39. package/dist/instrumentation/__tests__/anthropic-instrumentation.test.d.ts +1 -0
  40. package/dist/instrumentation/__tests__/anthropic-instrumentation.test.js +86 -0
  41. package/dist/instrumentation/__tests__/anthropic-instrumentation.test.js.map +1 -0
  42. package/dist/instrumentation/anthropic/index.d.ts +6 -0
  43. package/dist/instrumentation/anthropic/index.js +41 -4
  44. package/dist/instrumentation/anthropic/index.js.map +1 -1
  45. package/dist/instrumentation/anthropic/wrapper.d.ts +9 -1
  46. package/dist/instrumentation/anthropic/wrapper.js +51 -20
  47. package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
  48. package/dist/instrumentation/mcp/wrapper.js +7 -1
  49. package/dist/instrumentation/mcp/wrapper.js.map +1 -1
  50. package/dist/otel/build-info.d.ts +22 -0
  51. package/dist/otel/build-info.js +175 -0
  52. package/dist/otel/build-info.js.map +1 -0
  53. package/dist/otel/code-location.d.ts +49 -0
  54. package/dist/otel/code-location.js +233 -0
  55. package/dist/otel/code-location.js.map +1 -0
  56. package/dist/otel/tracing.js +7 -0
  57. package/dist/otel/tracing.js.map +1 -1
  58. package/dist/pricing.json +130 -36
  59. package/dist/protect/__tests__/protect.test.d.ts +1 -0
  60. package/dist/protect/__tests__/protect.test.js +206 -0
  61. package/dist/protect/__tests__/protect.test.js.map +1 -0
  62. package/dist/protect/index.d.ts +103 -0
  63. package/dist/protect/index.js +191 -0
  64. package/dist/protect/index.js.map +1 -0
  65. package/dist/protect/mcp.d.ts +13 -0
  66. package/dist/protect/mcp.js +49 -0
  67. package/dist/protect/mcp.js.map +1 -0
  68. package/dist/protect/mode.d.ts +89 -0
  69. package/dist/protect/mode.js +134 -0
  70. package/dist/protect/mode.js.map +1 -0
  71. package/dist/types.d.ts +22 -0
  72. package/package.json +1 -1
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeLocationSpanProcessor = exports.PathNormaliser = exports.ATTR_CODE_LINE_NUMBER = exports.ATTR_CODE_FILE_PATH = exports.ATTR_CODE_FUNCTION_NAME = void 0;
4
+ exports.resolveCaptureCodeLocation = resolveCaptureCodeLocation;
5
+ exports.anonymiseAbsolutePath = anonymiseAbsolutePath;
6
+ /**
7
+ * Code location on GenAI spans: code.function.name, code.file.path and
8
+ * code.line.number of the application call site that started the span.
9
+ *
10
+ * A SpanProcessor's onStart runs synchronously inside tracer.startSpan, so
11
+ * the caller's stack is still live there and one processor covers every
12
+ * instrumentation. Only names, repo-relative paths and line numbers are
13
+ * captured: never argument values, locals or source text.
14
+ */
15
+ const fs_1 = require("fs");
16
+ const os_1 = require("os");
17
+ const path_1 = require("path");
18
+ const url_1 = require("url");
19
+ const constant_1 = require("../constant");
20
+ exports.ATTR_CODE_FUNCTION_NAME = 'code.function.name';
21
+ exports.ATTR_CODE_FILE_PATH = 'code.file.path';
22
+ exports.ATTR_CODE_LINE_NUMBER = 'code.line.number';
23
+ const GEN_AI_OPERATION = 'gen_ai.operation.name';
24
+ // These instrumentations set gen_ai.operation.name after span creation, so
25
+ // their spans are recognised by instrumentation scope instead.
26
+ const LATE_OPERATION_SCOPES = new Set(['langchain', 'mcp', 'browser-use'].map((n) => `${constant_1.INSTRUMENTATION_PREFIX}/instrumentation-${n}`));
27
+ const MAX_CACHE_ENTRIES = 4096;
28
+ const STACK_LIMIT = 64;
29
+ const FALSY = new Set(['false', '0', 'no', 'off']);
30
+ // The SDK's own compiled or source directory (dist/ or src/). Its tests are
31
+ // application code for this purpose.
32
+ const SDK_DIR = toPosix((0, path_1.resolve)(__dirname, '..'));
33
+ /** captureCodeLocation option wins; otherwise SHIELD360_CAPTURE_CODE_LOCATION; default on. */
34
+ function resolveCaptureCodeLocation(option) {
35
+ if (option !== undefined)
36
+ return option;
37
+ const env = process.env.SHIELD360_CAPTURE_CODE_LOCATION;
38
+ return !(env && FALSY.has(env.trim().toLowerCase()));
39
+ }
40
+ function toPosix(p) {
41
+ return p.replace(/\\/g, '/');
42
+ }
43
+ function stripPrefix(path, root) {
44
+ if (!root)
45
+ return undefined;
46
+ const r = toPosix(root).replace(/\/+$/, '');
47
+ if (r && path.startsWith(r + '/'))
48
+ return path.slice(r.length + 1);
49
+ return undefined;
50
+ }
51
+ /** CI workspace and home directory prefixes, CI first (a runner's workspace sits under its home). */
52
+ const BUILD_HOST_PREFIXES = [
53
+ /^\/home\/runner\/work\/[^/]+\/[^/]+\//, // GitHub Actions
54
+ /^\/github\/workspace\//, // GitHub container actions
55
+ /^\/home\/vsts\/work\/[^/]+\/s\//, // Azure Pipelines
56
+ /^\/builds\/[^/]+\/[^/]+\//, // GitLab CI
57
+ /^\/var\/lib\/buildkite-agent\/builds\/[^/]+\/[^/]+\/[^/]+\//, // Buildkite
58
+ /^\/(?:var\/lib\/jenkins|var\/jenkins_home)\/workspace\/[^/]+\//, // Jenkins
59
+ /^\/opt\/atlassian\/pipelines\/agent\/build\//, // Bitbucket Pipelines
60
+ /^\/codebuild\/output\/src[^/]*\/src\//, // AWS CodeBuild
61
+ /^\/home\/[^/]+\//,
62
+ /^\/Users\/[^/]+\//,
63
+ /^[A-Za-z]:\/Users\/[^/]+\//,
64
+ /^\/root\//,
65
+ ];
66
+ /**
67
+ * Drops the first home directory or CI workspace prefix of an absolute path:
68
+ * the last resort for a path under no code root, repository, working directory
69
+ * or the current user's home. Other absolute paths (/srv/app/...) are kept.
70
+ */
71
+ function anonymiseAbsolutePath(path) {
72
+ for (const re of BUILD_HOST_PREFIXES) {
73
+ const m = re.exec(path);
74
+ if (m)
75
+ return path.slice(m[0].length);
76
+ }
77
+ return path;
78
+ }
79
+ class PathNormaliser {
80
+ constructor(options = {}) {
81
+ this.gitDirs = new Map();
82
+ const codeRoot = options.codeRoot ?? process.env.SHIELD360_CODE_ROOT;
83
+ this.codeRoot = codeRoot ? toPosix((0, path_1.resolve)(codeRoot)) : undefined;
84
+ this.cwd = toPosix(options.cwd ?? process.cwd());
85
+ this.home = toPosix(options.home ?? (0, os_1.homedir)());
86
+ }
87
+ /** Repo-relative path for a stack-frame file (path or file:// URL). */
88
+ normalise(file) {
89
+ let path = file;
90
+ if (path.startsWith('file://')) {
91
+ path = (0, url_1.fileURLToPath)(path.replace(/[?#].*$/, ''));
92
+ }
93
+ path = toPosix(path);
94
+ const relative = stripPrefix(path, this.codeRoot) ??
95
+ stripPrefix(path, this.gitRoot(path)) ??
96
+ stripPrefix(path, this.cwd) ??
97
+ stripPrefix(path, this.home) ??
98
+ anonymiseAbsolutePath(path);
99
+ return relative.replace(/^\.\//, '');
100
+ }
101
+ /** Nearest ancestor containing .git; each directory is probed at most once. */
102
+ gitRoot(path) {
103
+ let dir = (0, path_1.dirname)(path);
104
+ for (;;) {
105
+ let hasGit = this.gitDirs.get(dir);
106
+ if (hasGit === undefined) {
107
+ hasGit = (0, fs_1.existsSync)((0, path_1.join)(dir, '.git'));
108
+ if (this.gitDirs.size < MAX_CACHE_ENTRIES)
109
+ this.gitDirs.set(dir, hasGit);
110
+ }
111
+ if (hasGit)
112
+ return toPosix(dir);
113
+ const parent = (0, path_1.dirname)(dir);
114
+ if (parent === dir)
115
+ return undefined;
116
+ dir = parent;
117
+ }
118
+ }
119
+ }
120
+ exports.PathNormaliser = PathNormaliser;
121
+ const FRAME_RE = /^\s*at (?:(.+?) \()?(.+?):(\d+):(\d+)\)?$/;
122
+ function isApplicationFile(file) {
123
+ if (file.startsWith('node:') || file.startsWith('internal/') || file.startsWith('<'))
124
+ return false;
125
+ if (!(file.startsWith('/') || file.startsWith('file://') || /^[A-Za-z]:[\\/]/.test(file))) {
126
+ return false;
127
+ }
128
+ const posix = toPosix(file);
129
+ if (posix.includes('/node_modules/'))
130
+ return false;
131
+ if (posix.startsWith(SDK_DIR + '/') && !posix.includes('/__tests__/'))
132
+ return false;
133
+ return true;
134
+ }
135
+ function cleanFunctionName(raw) {
136
+ if (!raw)
137
+ return undefined;
138
+ const name = raw
139
+ .replace(/^async /, '')
140
+ .replace(/^new /, '')
141
+ .replace(/ \[as [^\]]+\]$/, '')
142
+ .trim();
143
+ if (!name || name.includes('<anonymous>'))
144
+ return undefined;
145
+ return name;
146
+ }
147
+ class CodeLocationSpanProcessor {
148
+ constructor(options = {}) {
149
+ // Raw frame line -> parsed application frame, or null when not one.
150
+ this.cache = new Map();
151
+ this.normaliser = new PathNormaliser(options);
152
+ }
153
+ onStart(span, _parentContext) {
154
+ try {
155
+ if (!isGenAISpan(span))
156
+ return;
157
+ const attrs = span.attributes;
158
+ if (attrs[exports.ATTR_CODE_FUNCTION_NAME] !== undefined ||
159
+ attrs[exports.ATTR_CODE_FILE_PATH] !== undefined ||
160
+ attrs[exports.ATTR_CODE_LINE_NUMBER] !== undefined) {
161
+ return;
162
+ }
163
+ const frame = this.findApplicationFrame(captureStack());
164
+ if (!frame)
165
+ return;
166
+ if (frame.functionName)
167
+ span.setAttribute(exports.ATTR_CODE_FUNCTION_NAME, frame.functionName);
168
+ span.setAttribute(exports.ATTR_CODE_FILE_PATH, frame.filePath);
169
+ span.setAttribute(exports.ATTR_CODE_LINE_NUMBER, frame.lineNumber);
170
+ }
171
+ catch {
172
+ // Never break span creation.
173
+ }
174
+ }
175
+ /** Visible for tests: number of cached frame lines. */
176
+ get cacheSize() {
177
+ return this.cache.size;
178
+ }
179
+ /** First application frame in a V8 stack string. */
180
+ findApplicationFrame(stack) {
181
+ if (!stack)
182
+ return undefined;
183
+ const lines = stack.split('\n');
184
+ for (let i = 1; i < lines.length; i++) {
185
+ const frame = this.parseLine(lines[i]);
186
+ if (frame)
187
+ return frame;
188
+ }
189
+ return undefined;
190
+ }
191
+ parseLine(line) {
192
+ const cached = this.cache.get(line);
193
+ if (cached !== undefined)
194
+ return cached;
195
+ let frame = null;
196
+ const m = FRAME_RE.exec(line);
197
+ if (m && !m[2].includes('(') && isApplicationFile(m[2])) {
198
+ frame = {
199
+ functionName: cleanFunctionName(m[1]),
200
+ filePath: this.normaliser.normalise(m[2]),
201
+ lineNumber: Number(m[3]),
202
+ };
203
+ }
204
+ if (this.cache.size < MAX_CACHE_ENTRIES)
205
+ this.cache.set(line, frame);
206
+ return frame;
207
+ }
208
+ onEnd(_span) { }
209
+ forceFlush() {
210
+ return Promise.resolve();
211
+ }
212
+ shutdown() {
213
+ return Promise.resolve();
214
+ }
215
+ }
216
+ exports.CodeLocationSpanProcessor = CodeLocationSpanProcessor;
217
+ function isGenAISpan(span) {
218
+ if (span.attributes[GEN_AI_OPERATION] !== undefined)
219
+ return true;
220
+ const scope = span.instrumentationScope?.name;
221
+ return scope !== undefined && LATE_OPERATION_SCOPES.has(scope);
222
+ }
223
+ function captureStack() {
224
+ const previous = Error.stackTraceLimit;
225
+ try {
226
+ Error.stackTraceLimit = STACK_LIMIT;
227
+ return new Error().stack;
228
+ }
229
+ finally {
230
+ Error.stackTraceLimit = previous;
231
+ }
232
+ }
233
+ //# sourceMappingURL=code-location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-location.js","sourceRoot":"","sources":["../../src/otel/code-location.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-h
9
9
  const instrumentation_1 = __importDefault(require("../instrumentation"));
10
10
  const config_1 = __importDefault(require("../config"));
11
11
  const utils_1 = require("./utils");
12
+ const code_location_1 = require("./code-location");
12
13
  let TRACER_SET = false;
13
14
  class Tracing {
14
15
  static setup(options) {
@@ -22,6 +23,9 @@ class Tracing {
22
23
  if (isSDKProvider) {
23
24
  // Reuse existing SDK TracerProvider
24
25
  this.traceProvider = existingProvider;
26
+ if (options.captureCodeLocation) {
27
+ existingProvider.addSpanProcessor(new code_location_1.CodeLocationSpanProcessor({ codeRoot: options.codeRoot }));
28
+ }
25
29
  }
26
30
  else {
27
31
  const spanProcessors = Tracing.buildSpanProcessors(options);
@@ -47,6 +51,9 @@ class Tracing {
47
51
  }
48
52
  static buildSpanProcessors(options) {
49
53
  const processors = [];
54
+ if (options.captureCodeLocation) {
55
+ processors.push(new code_location_1.CodeLocationSpanProcessor({ codeRoot: options.codeRoot }));
56
+ }
50
57
  const exporterList = (0, utils_1.parseExporters)('OTEL_TRACES_EXPORTER');
51
58
  if (exporterList) {
52
59
  for (const name of exporterList) {
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/otel/tracing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/otel/tracing.ts"],"names":[],"mappings":"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"}
package/dist/pricing.json CHANGED
@@ -266,133 +266,204 @@
266
266
  "promptPrice": 0.015,
267
267
  "completionPrice": 0.075,
268
268
  "cacheReadPrice": 0.0015,
269
- "cacheCreationPrice": 0.01875
269
+ "cacheCreationPrice": 0.01875,
270
+ "cacheCreation1hPrice": 0.03
270
271
  },
271
272
  "claude-3-sonnet-20240229": {
272
273
  "promptPrice": 0.003,
273
274
  "completionPrice": 0.015,
274
275
  "cacheReadPrice": 0.0003,
275
- "cacheCreationPrice": 0.00375
276
+ "cacheCreationPrice": 0.00375,
277
+ "cacheCreation1hPrice": 0.006
276
278
  },
277
279
  "claude-3-haiku-20240307": {
278
280
  "promptPrice": 0.00025,
279
281
  "completionPrice": 0.00125,
280
282
  "cacheReadPrice": 3e-05,
281
- "cacheCreationPrice": 0.0003
283
+ "cacheCreationPrice": 0.0003,
284
+ "cacheCreation1hPrice": 0.0005
282
285
  },
283
286
  "claude-3-5-sonnet-20240620": {
284
287
  "promptPrice": 0.003,
285
288
  "completionPrice": 0.015,
286
289
  "cacheReadPrice": 0.0003,
287
- "cacheCreationPrice": 0.00375
290
+ "cacheCreationPrice": 0.00375,
291
+ "cacheCreation1hPrice": 0.006
288
292
  },
289
293
  "claude-3-5-sonnet-20241022": {
290
294
  "promptPrice": 0.003,
291
295
  "completionPrice": 0.015,
292
296
  "cacheReadPrice": 0.0003,
293
- "cacheCreationPrice": 0.00375
297
+ "cacheCreationPrice": 0.00375,
298
+ "cacheCreation1hPrice": 0.006
294
299
  },
295
300
  "claude-3-5-haiku-20241022": {
296
301
  "promptPrice": 0.0008,
297
302
  "completionPrice": 0.004,
298
303
  "cacheReadPrice": 8e-05,
299
- "cacheCreationPrice": 0.001
304
+ "cacheCreationPrice": 0.001,
305
+ "cacheCreation1hPrice": 0.0016
300
306
  },
301
307
  "claude-3-7-sonnet-20250219": {
302
308
  "promptPrice": 0.003,
303
309
  "completionPrice": 0.015,
304
310
  "cacheReadPrice": 0.0003,
305
- "cacheCreationPrice": 0.00375
311
+ "cacheCreationPrice": 0.00375,
312
+ "cacheCreation1hPrice": 0.006
306
313
  },
307
314
  "claude-haiku-4-5-20251001": {
308
315
  "promptPrice": 0.001,
309
316
  "completionPrice": 0.005,
310
317
  "cacheReadPrice": 0.0001,
311
- "cacheCreationPrice": 0.00125
318
+ "cacheCreationPrice": 0.00125,
319
+ "cacheCreation1hPrice": 0.002
312
320
  },
313
321
  "claude-haiku-4-5": {
314
322
  "promptPrice": 0.001,
315
323
  "completionPrice": 0.005,
316
324
  "cacheReadPrice": 0.0001,
317
- "cacheCreationPrice": 0.00125
325
+ "cacheCreationPrice": 0.00125,
326
+ "cacheCreation1hPrice": 0.002
318
327
  },
319
328
  "claude-sonnet-4-0": {
320
329
  "promptPrice": 0.003,
321
330
  "completionPrice": 0.015,
322
331
  "cacheReadPrice": 0.0003,
323
- "cacheCreationPrice": 0.00375
332
+ "cacheCreationPrice": 0.00375,
333
+ "cacheCreation1hPrice": 0.006
324
334
  },
325
335
  "claude-sonnet-4-5": {
326
336
  "promptPrice": 0.003,
327
337
  "completionPrice": 0.015,
328
338
  "cacheReadPrice": 0.0003,
329
- "cacheCreationPrice": 0.00375
339
+ "cacheCreationPrice": 0.00375,
340
+ "cacheCreation1hPrice": 0.006
330
341
  },
331
342
  "claude-sonnet-4-6": {
332
343
  "promptPrice": 0.003,
333
344
  "completionPrice": 0.015,
334
345
  "cacheReadPrice": 0.0003,
335
- "cacheCreationPrice": 0.00375
346
+ "cacheCreationPrice": 0.00375,
347
+ "cacheCreation1hPrice": 0.006
336
348
  },
337
349
  "claude-sonnet-4-7": {
338
350
  "promptPrice": 0.003,
339
351
  "completionPrice": 0.015,
340
352
  "cacheReadPrice": 0.0003,
341
- "cacheCreationPrice": 0.00375
353
+ "cacheCreationPrice": 0.00375,
354
+ "cacheCreation1hPrice": 0.006
355
+ },
356
+ "claude-sonnet-5": {
357
+ "promptPrice": 0.002,
358
+ "completionPrice": 0.01,
359
+ "cacheReadPrice": 0.0002,
360
+ "cacheCreationPrice": 0.0025,
361
+ "cacheCreation1hPrice": 0.004
362
+ },
363
+ "claude-sonnet-5-5": {
364
+ "promptPrice": 0.002,
365
+ "completionPrice": 0.01,
366
+ "cacheReadPrice": 0.0001,
367
+ "cacheCreationPrice": 0.0025,
368
+ "cacheCreation1hPrice": 0.004
369
+ },
370
+ "claude-opus-5": {
371
+ "promptPrice": 0.005,
372
+ "completionPrice": 0.025,
373
+ "cacheReadPrice": 0.0005,
374
+ "cacheCreationPrice": 0.00625,
375
+ "cacheCreation1hPrice": 0.01
376
+ },
377
+ "claude-opus-5-5": {
378
+ "promptPrice": 0.004,
379
+ "completionPrice": 0.02,
380
+ "cacheReadPrice": 0.0002,
381
+ "cacheCreationPrice": 0.005,
382
+ "cacheCreation1hPrice": 0.008
383
+ },
384
+ "claude-opus-4-8": {
385
+ "promptPrice": 0.005,
386
+ "completionPrice": 0.025,
387
+ "cacheReadPrice": 0.0005,
388
+ "cacheCreationPrice": 0.00625,
389
+ "cacheCreation1hPrice": 0.01
390
+ },
391
+ "claude-fable-5": {
392
+ "promptPrice": 0.01,
393
+ "completionPrice": 0.05,
394
+ "cacheReadPrice": 0.001,
395
+ "cacheCreationPrice": 0.0125,
396
+ "cacheCreation1hPrice": 0.02
397
+ },
398
+ "claude-fable-5-1": {
399
+ "promptPrice": 0.01,
400
+ "completionPrice": 0.05,
401
+ "cacheReadPrice": 0.00025,
402
+ "cacheCreationPrice": 0.0125,
403
+ "cacheCreation1hPrice": 0.02
342
404
  },
343
405
  "claude-opus-4-0": {
344
406
  "promptPrice": 0.015,
345
407
  "completionPrice": 0.075,
346
408
  "cacheReadPrice": 0.0015,
347
- "cacheCreationPrice": 0.01875
409
+ "cacheCreationPrice": 0.01875,
410
+ "cacheCreation1hPrice": 0.03
348
411
  },
349
412
  "claude-opus-4-1": {
350
413
  "promptPrice": 0.015,
351
414
  "completionPrice": 0.075,
352
415
  "cacheReadPrice": 0.0015,
353
- "cacheCreationPrice": 0.01875
416
+ "cacheCreationPrice": 0.01875,
417
+ "cacheCreation1hPrice": 0.03
354
418
  },
355
419
  "claude-opus-4-5": {
356
420
  "promptPrice": 0.005,
357
421
  "completionPrice": 0.025,
358
422
  "cacheReadPrice": 0.0005,
359
- "cacheCreationPrice": 0.00625
423
+ "cacheCreationPrice": 0.00625,
424
+ "cacheCreation1hPrice": 0.01
360
425
  },
361
426
  "claude-opus-4-6": {
362
427
  "promptPrice": 0.005,
363
428
  "completionPrice": 0.025,
364
429
  "cacheReadPrice": 0.0005,
365
- "cacheCreationPrice": 0.00625
430
+ "cacheCreationPrice": 0.00625,
431
+ "cacheCreation1hPrice": 0.01
366
432
  },
367
433
  "claude-opus-4-7": {
368
434
  "promptPrice": 0.005,
369
435
  "completionPrice": 0.025,
370
436
  "cacheReadPrice": 0.0005,
371
- "cacheCreationPrice": 0.00625
437
+ "cacheCreationPrice": 0.00625,
438
+ "cacheCreation1hPrice": 0.01
372
439
  },
373
440
  "claude-opus-4-7-thinking-xhigh": {
374
441
  "promptPrice": 0.005,
375
442
  "completionPrice": 0.025,
376
443
  "cacheReadPrice": 0.0005,
377
- "cacheCreationPrice": 0.00625
444
+ "cacheCreationPrice": 0.00625,
445
+ "cacheCreation1hPrice": 0.01
378
446
  },
379
447
  "claude-opus-4-7-thinking-high": {
380
448
  "promptPrice": 0.005,
381
449
  "completionPrice": 0.025,
382
450
  "cacheReadPrice": 0.0005,
383
- "cacheCreationPrice": 0.00625
451
+ "cacheCreationPrice": 0.00625,
452
+ "cacheCreation1hPrice": 0.01
384
453
  },
385
454
  "claude-opus-4-7-thinking-medium": {
386
455
  "promptPrice": 0.005,
387
456
  "completionPrice": 0.025,
388
457
  "cacheReadPrice": 0.0005,
389
- "cacheCreationPrice": 0.00625
458
+ "cacheCreationPrice": 0.00625,
459
+ "cacheCreation1hPrice": 0.01
390
460
  },
391
461
  "claude-opus-4-7-thinking-low": {
392
462
  "promptPrice": 0.005,
393
463
  "completionPrice": 0.025,
394
464
  "cacheReadPrice": 0.0005,
395
- "cacheCreationPrice": 0.00625
465
+ "cacheCreationPrice": 0.00625,
466
+ "cacheCreation1hPrice": 0.01
396
467
  },
397
468
  "gpt-5": {
398
469
  "promptPrice": 0.00125,
@@ -455,7 +526,11 @@
455
526
  "gpt-5.4": {
456
527
  "promptPrice": 0.0025,
457
528
  "completionPrice": 0.015,
458
- "cacheReadPrice": 0.00025
529
+ "cacheReadPrice": 0.00025,
530
+ "longContextThreshold": 272000,
531
+ "longContextPromptPrice": 0.005,
532
+ "longContextCompletionPrice": 0.0225,
533
+ "longContextCacheReadPrice": 0.0005
459
534
  },
460
535
  "gpt-5.4-mini": {
461
536
  "promptPrice": 0.00075,
@@ -474,7 +549,11 @@
474
549
  "gpt-5.5": {
475
550
  "promptPrice": 0.005,
476
551
  "completionPrice": 0.03,
477
- "cacheReadPrice": 0.0005
552
+ "cacheReadPrice": 0.0005,
553
+ "longContextThreshold": 272000,
554
+ "longContextPromptPrice": 0.01,
555
+ "longContextCompletionPrice": 0.045,
556
+ "longContextCacheReadPrice": 0.001
478
557
  },
479
558
  "gpt-5.5-pro": {
480
559
  "promptPrice": 0.03,
@@ -900,22 +979,37 @@
900
979
  "completionPrice": 0.00219
901
980
  },
902
981
  "gpt-5.6-sol": {
903
- "promptPrice": 0.005,
904
- "completionPrice": 0.03,
905
- "cacheReadPrice": 0.0005,
906
- "cacheCreationPrice": 0.00625
982
+ "promptPrice": 0.004,
983
+ "completionPrice": 0.02,
984
+ "cacheReadPrice": 0.0004,
985
+ "cacheCreationPrice": 0.005,
986
+ "longContextThreshold": 272000,
987
+ "longContextPromptPrice": 0.008,
988
+ "longContextCompletionPrice": 0.03,
989
+ "longContextCacheReadPrice": 0.0008,
990
+ "longContextCacheCreationPrice": 0.01
907
991
  },
908
992
  "gpt-5.6-terra": {
909
- "promptPrice": 0.0025,
910
- "completionPrice": 0.015,
911
- "cacheReadPrice": 0.00025,
912
- "cacheCreationPrice": 0.003125
993
+ "promptPrice": 0.002,
994
+ "completionPrice": 0.012,
995
+ "cacheReadPrice": 0.0002,
996
+ "cacheCreationPrice": 0.0025,
997
+ "longContextThreshold": 272000,
998
+ "longContextPromptPrice": 0.004,
999
+ "longContextCompletionPrice": 0.018,
1000
+ "longContextCacheReadPrice": 0.0004,
1001
+ "longContextCacheCreationPrice": 0.005
913
1002
  },
914
1003
  "gpt-5.6-luna": {
915
- "promptPrice": 0.001,
916
- "completionPrice": 0.006,
917
- "cacheReadPrice": 0.0001,
918
- "cacheCreationPrice": 0.00125
1004
+ "promptPrice": 0.0002,
1005
+ "completionPrice": 0.0012,
1006
+ "cacheReadPrice": 2e-05,
1007
+ "cacheCreationPrice": 0.00025,
1008
+ "longContextThreshold": 272000,
1009
+ "longContextPromptPrice": 0.0004,
1010
+ "longContextCompletionPrice": 0.0018,
1011
+ "longContextCacheReadPrice": 4e-05,
1012
+ "longContextCacheCreationPrice": 0.0005
919
1013
  },
920
1014
  "moonshotai/kimi-k2-instruct": {
921
1015
  "promptPrice": 0.001,
@@ -0,0 +1 @@
1
+ export {};