shield360 1.0.1 → 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 (53) hide show
  1. package/README.md +65 -37
  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__/pricing-claude-5.test.js +3 -0
  9. package/dist/__tests__/pricing-claude-5.test.js.map +1 -1
  10. package/dist/config.js +1 -1
  11. package/dist/config.js.map +1 -1
  12. package/dist/guard/__tests__/findings.test.js +27 -8
  13. package/dist/guard/__tests__/findings.test.js.map +1 -1
  14. package/dist/guard/base.d.ts +2 -0
  15. package/dist/guard/base.js +4 -0
  16. package/dist/guard/base.js.map +1 -1
  17. package/dist/guard/findings.d.ts +12 -2
  18. package/dist/guard/findings.js +19 -49
  19. package/dist/guard/findings.js.map +1 -1
  20. package/dist/guard/integration.d.ts +24 -3
  21. package/dist/guard/integration.js +102 -30
  22. package/dist/guard/integration.js.map +1 -1
  23. package/dist/guard/pipeline.d.ts +10 -1
  24. package/dist/guard/pipeline.js +14 -0
  25. package/dist/guard/pipeline.js.map +1 -1
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.js +34 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/instrumentation/mcp/wrapper.js +7 -1
  30. package/dist/instrumentation/mcp/wrapper.js.map +1 -1
  31. package/dist/otel/build-info.d.ts +22 -0
  32. package/dist/otel/build-info.js +175 -0
  33. package/dist/otel/build-info.js.map +1 -0
  34. package/dist/otel/code-location.d.ts +49 -0
  35. package/dist/otel/code-location.js +233 -0
  36. package/dist/otel/code-location.js.map +1 -0
  37. package/dist/otel/tracing.js +7 -0
  38. package/dist/otel/tracing.js.map +1 -1
  39. package/dist/pricing.json +100 -42
  40. package/dist/protect/__tests__/protect.test.d.ts +1 -0
  41. package/dist/protect/__tests__/protect.test.js +206 -0
  42. package/dist/protect/__tests__/protect.test.js.map +1 -0
  43. package/dist/protect/index.d.ts +103 -0
  44. package/dist/protect/index.js +191 -0
  45. package/dist/protect/index.js.map +1 -0
  46. package/dist/protect/mcp.d.ts +13 -0
  47. package/dist/protect/mcp.js +49 -0
  48. package/dist/protect/mcp.js.map +1 -0
  49. package/dist/protect/mode.d.ts +89 -0
  50. package/dist/protect/mode.js +134 -0
  51. package/dist/protect/mode.js.map +1 -0
  52. package/dist/types.d.ts +22 -0
  53. 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,169 +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
342
355
  },
343
356
  "claude-sonnet-5": {
344
357
  "promptPrice": 0.002,
345
358
  "completionPrice": 0.01,
346
359
  "cacheReadPrice": 0.0002,
347
- "cacheCreationPrice": 0.0025
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
348
369
  },
349
370
  "claude-opus-5": {
350
371
  "promptPrice": 0.005,
351
372
  "completionPrice": 0.025,
352
373
  "cacheReadPrice": 0.0005,
353
- "cacheCreationPrice": 0.00625
374
+ "cacheCreationPrice": 0.00625,
375
+ "cacheCreation1hPrice": 0.01
354
376
  },
355
377
  "claude-opus-5-5": {
356
378
  "promptPrice": 0.004,
357
379
  "completionPrice": 0.02,
358
380
  "cacheReadPrice": 0.0002,
359
- "cacheCreationPrice": 0.005
381
+ "cacheCreationPrice": 0.005,
382
+ "cacheCreation1hPrice": 0.008
360
383
  },
361
384
  "claude-opus-4-8": {
362
385
  "promptPrice": 0.005,
363
386
  "completionPrice": 0.025,
364
387
  "cacheReadPrice": 0.0005,
365
- "cacheCreationPrice": 0.00625
388
+ "cacheCreationPrice": 0.00625,
389
+ "cacheCreation1hPrice": 0.01
366
390
  },
367
391
  "claude-fable-5": {
368
392
  "promptPrice": 0.01,
369
393
  "completionPrice": 0.05,
370
394
  "cacheReadPrice": 0.001,
371
- "cacheCreationPrice": 0.0125
395
+ "cacheCreationPrice": 0.0125,
396
+ "cacheCreation1hPrice": 0.02
372
397
  },
373
398
  "claude-fable-5-1": {
374
399
  "promptPrice": 0.01,
375
400
  "completionPrice": 0.05,
376
401
  "cacheReadPrice": 0.00025,
377
- "cacheCreationPrice": 0.0125
402
+ "cacheCreationPrice": 0.0125,
403
+ "cacheCreation1hPrice": 0.02
378
404
  },
379
405
  "claude-opus-4-0": {
380
406
  "promptPrice": 0.015,
381
407
  "completionPrice": 0.075,
382
408
  "cacheReadPrice": 0.0015,
383
- "cacheCreationPrice": 0.01875
409
+ "cacheCreationPrice": 0.01875,
410
+ "cacheCreation1hPrice": 0.03
384
411
  },
385
412
  "claude-opus-4-1": {
386
413
  "promptPrice": 0.015,
387
414
  "completionPrice": 0.075,
388
415
  "cacheReadPrice": 0.0015,
389
- "cacheCreationPrice": 0.01875
416
+ "cacheCreationPrice": 0.01875,
417
+ "cacheCreation1hPrice": 0.03
390
418
  },
391
419
  "claude-opus-4-5": {
392
420
  "promptPrice": 0.005,
393
421
  "completionPrice": 0.025,
394
422
  "cacheReadPrice": 0.0005,
395
- "cacheCreationPrice": 0.00625
423
+ "cacheCreationPrice": 0.00625,
424
+ "cacheCreation1hPrice": 0.01
396
425
  },
397
426
  "claude-opus-4-6": {
398
427
  "promptPrice": 0.005,
399
428
  "completionPrice": 0.025,
400
429
  "cacheReadPrice": 0.0005,
401
- "cacheCreationPrice": 0.00625
430
+ "cacheCreationPrice": 0.00625,
431
+ "cacheCreation1hPrice": 0.01
402
432
  },
403
433
  "claude-opus-4-7": {
404
434
  "promptPrice": 0.005,
405
435
  "completionPrice": 0.025,
406
436
  "cacheReadPrice": 0.0005,
407
- "cacheCreationPrice": 0.00625
437
+ "cacheCreationPrice": 0.00625,
438
+ "cacheCreation1hPrice": 0.01
408
439
  },
409
440
  "claude-opus-4-7-thinking-xhigh": {
410
441
  "promptPrice": 0.005,
411
442
  "completionPrice": 0.025,
412
443
  "cacheReadPrice": 0.0005,
413
- "cacheCreationPrice": 0.00625
444
+ "cacheCreationPrice": 0.00625,
445
+ "cacheCreation1hPrice": 0.01
414
446
  },
415
447
  "claude-opus-4-7-thinking-high": {
416
448
  "promptPrice": 0.005,
417
449
  "completionPrice": 0.025,
418
450
  "cacheReadPrice": 0.0005,
419
- "cacheCreationPrice": 0.00625
451
+ "cacheCreationPrice": 0.00625,
452
+ "cacheCreation1hPrice": 0.01
420
453
  },
421
454
  "claude-opus-4-7-thinking-medium": {
422
455
  "promptPrice": 0.005,
423
456
  "completionPrice": 0.025,
424
457
  "cacheReadPrice": 0.0005,
425
- "cacheCreationPrice": 0.00625
458
+ "cacheCreationPrice": 0.00625,
459
+ "cacheCreation1hPrice": 0.01
426
460
  },
427
461
  "claude-opus-4-7-thinking-low": {
428
462
  "promptPrice": 0.005,
429
463
  "completionPrice": 0.025,
430
464
  "cacheReadPrice": 0.0005,
431
- "cacheCreationPrice": 0.00625
465
+ "cacheCreationPrice": 0.00625,
466
+ "cacheCreation1hPrice": 0.01
432
467
  },
433
468
  "gpt-5": {
434
469
  "promptPrice": 0.00125,
@@ -491,7 +526,11 @@
491
526
  "gpt-5.4": {
492
527
  "promptPrice": 0.0025,
493
528
  "completionPrice": 0.015,
494
- "cacheReadPrice": 0.00025
529
+ "cacheReadPrice": 0.00025,
530
+ "longContextThreshold": 272000,
531
+ "longContextPromptPrice": 0.005,
532
+ "longContextCompletionPrice": 0.0225,
533
+ "longContextCacheReadPrice": 0.0005
495
534
  },
496
535
  "gpt-5.4-mini": {
497
536
  "promptPrice": 0.00075,
@@ -510,7 +549,11 @@
510
549
  "gpt-5.5": {
511
550
  "promptPrice": 0.005,
512
551
  "completionPrice": 0.03,
513
- "cacheReadPrice": 0.0005
552
+ "cacheReadPrice": 0.0005,
553
+ "longContextThreshold": 272000,
554
+ "longContextPromptPrice": 0.01,
555
+ "longContextCompletionPrice": 0.045,
556
+ "longContextCacheReadPrice": 0.001
514
557
  },
515
558
  "gpt-5.5-pro": {
516
559
  "promptPrice": 0.03,
@@ -936,22 +979,37 @@
936
979
  "completionPrice": 0.00219
937
980
  },
938
981
  "gpt-5.6-sol": {
939
- "promptPrice": 0.005,
940
- "completionPrice": 0.03,
941
- "cacheReadPrice": 0.0005,
942
- "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
943
991
  },
944
992
  "gpt-5.6-terra": {
945
- "promptPrice": 0.0025,
946
- "completionPrice": 0.015,
947
- "cacheReadPrice": 0.00025,
948
- "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
949
1002
  },
950
1003
  "gpt-5.6-luna": {
951
- "promptPrice": 0.001,
952
- "completionPrice": 0.006,
953
- "cacheReadPrice": 0.0001,
954
- "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
955
1013
  },
956
1014
  "moonshotai/kimi-k2-instruct": {
957
1015
  "promptPrice": 0.001,
@@ -0,0 +1 @@
1
+ export {};