@artemiskit/core 0.2.0 → 0.2.2

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.
@@ -22,6 +22,7 @@ export declare const ProviderConfigSchema: z.ZodOptional<z.ZodObject<{
22
22
  deploymentName: z.ZodOptional<z.ZodString>;
23
23
  apiVersion: z.ZodOptional<z.ZodString>;
24
24
  embeddingDeploymentName: z.ZodOptional<z.ZodString>;
25
+ modelFamily: z.ZodOptional<z.ZodString>;
25
26
  underlyingProvider: z.ZodOptional<z.ZodEnum<["openai", "azure", "anthropic", "google", "mistral"]>>;
26
27
  }, "strip", z.ZodTypeAny, {
27
28
  apiKey?: string | undefined;
@@ -34,6 +35,7 @@ export declare const ProviderConfigSchema: z.ZodOptional<z.ZodObject<{
34
35
  deploymentName?: string | undefined;
35
36
  apiVersion?: string | undefined;
36
37
  embeddingDeploymentName?: string | undefined;
38
+ modelFamily?: string | undefined;
37
39
  underlyingProvider?: "openai" | "anthropic" | "google" | "mistral" | "azure" | undefined;
38
40
  }, {
39
41
  apiKey?: string | undefined;
@@ -46,6 +48,7 @@ export declare const ProviderConfigSchema: z.ZodOptional<z.ZodObject<{
46
48
  deploymentName?: string | undefined;
47
49
  apiVersion?: string | undefined;
48
50
  embeddingDeploymentName?: string | undefined;
51
+ modelFamily?: string | undefined;
49
52
  underlyingProvider?: "openai" | "anthropic" | "google" | "mistral" | "azure" | undefined;
50
53
  }>>;
51
54
  /**
@@ -1137,6 +1140,7 @@ export declare const ScenarioSchema: z.ZodObject<{
1137
1140
  deploymentName: z.ZodOptional<z.ZodString>;
1138
1141
  apiVersion: z.ZodOptional<z.ZodString>;
1139
1142
  embeddingDeploymentName: z.ZodOptional<z.ZodString>;
1143
+ modelFamily: z.ZodOptional<z.ZodString>;
1140
1144
  underlyingProvider: z.ZodOptional<z.ZodEnum<["openai", "azure", "anthropic", "google", "mistral"]>>;
1141
1145
  }, "strip", z.ZodTypeAny, {
1142
1146
  apiKey?: string | undefined;
@@ -1149,6 +1153,7 @@ export declare const ScenarioSchema: z.ZodObject<{
1149
1153
  deploymentName?: string | undefined;
1150
1154
  apiVersion?: string | undefined;
1151
1155
  embeddingDeploymentName?: string | undefined;
1156
+ modelFamily?: string | undefined;
1152
1157
  underlyingProvider?: "openai" | "anthropic" | "google" | "mistral" | "azure" | undefined;
1153
1158
  }, {
1154
1159
  apiKey?: string | undefined;
@@ -1161,6 +1166,7 @@ export declare const ScenarioSchema: z.ZodObject<{
1161
1166
  deploymentName?: string | undefined;
1162
1167
  apiVersion?: string | undefined;
1163
1168
  embeddingDeploymentName?: string | undefined;
1169
+ modelFamily?: string | undefined;
1164
1170
  underlyingProvider?: "openai" | "anthropic" | "google" | "mistral" | "azure" | undefined;
1165
1171
  }>>;
1166
1172
  seed: z.ZodOptional<z.ZodNumber>;
@@ -2000,6 +2006,7 @@ export declare const ScenarioSchema: z.ZodObject<{
2000
2006
  deploymentName?: string | undefined;
2001
2007
  apiVersion?: string | undefined;
2002
2008
  embeddingDeploymentName?: string | undefined;
2009
+ modelFamily?: string | undefined;
2003
2010
  underlyingProvider?: "openai" | "anthropic" | "google" | "mistral" | "azure" | undefined;
2004
2011
  } | undefined;
2005
2012
  seed?: number | undefined;
@@ -2156,6 +2163,7 @@ export declare const ScenarioSchema: z.ZodObject<{
2156
2163
  deploymentName?: string | undefined;
2157
2164
  apiVersion?: string | undefined;
2158
2165
  embeddingDeploymentName?: string | undefined;
2166
+ modelFamily?: string | undefined;
2159
2167
  underlyingProvider?: "openai" | "anthropic" | "google" | "mistral" | "azure" | undefined;
2160
2168
  } | undefined;
2161
2169
  seed?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/scenario/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/scenario/schema.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,10 @@
2
2
  * Local filesystem storage adapter
3
3
  */
4
4
  import type { AnyManifest, RedTeamManifest, RunManifest, StressManifest } from '../artifacts/types';
5
- import type { ComparisonResult, ListOptions, RunListItem, StorageAdapter } from './types';
6
- export declare class LocalStorageAdapter implements StorageAdapter {
5
+ import type { BaselineMetadata, BaselineStorageAdapter, ComparisonResult, ListOptions, RunListItem } from './types';
6
+ export declare class LocalStorageAdapter implements BaselineStorageAdapter {
7
7
  private basePath;
8
+ private baselinesPath;
8
9
  constructor(basePath?: string);
9
10
  save(manifest: AnyManifest): Promise<string>;
10
11
  load(runId: string): Promise<AnyManifest>;
@@ -16,5 +17,46 @@ export declare class LocalStorageAdapter implements StorageAdapter {
16
17
  compare(baselineId: string, currentId: string): Promise<ComparisonResult>;
17
18
  private listDirectories;
18
19
  private listFiles;
20
+ /**
21
+ * Load baselines file
22
+ */
23
+ private loadBaselinesFile;
24
+ /**
25
+ * Save baselines file
26
+ */
27
+ private saveBaselinesFile;
28
+ /**
29
+ * Set a baseline for a scenario
30
+ */
31
+ setBaseline(scenario: string, runId: string, tag?: string): Promise<BaselineMetadata>;
32
+ /**
33
+ * Get the baseline for a scenario
34
+ */
35
+ getBaseline(scenario: string): Promise<BaselineMetadata | null>;
36
+ /**
37
+ * Get a baseline by run ID
38
+ */
39
+ getBaselineByRunId(runId: string): Promise<BaselineMetadata | null>;
40
+ /**
41
+ * List all baselines
42
+ */
43
+ listBaselines(): Promise<BaselineMetadata[]>;
44
+ /**
45
+ * Remove a baseline by scenario name
46
+ */
47
+ removeBaseline(scenario: string): Promise<boolean>;
48
+ /**
49
+ * Remove a baseline by run ID
50
+ */
51
+ removeBaselineByRunId(runId: string): Promise<boolean>;
52
+ /**
53
+ * Compare a run against its baseline (if exists)
54
+ */
55
+ compareToBaseline(runId: string, regressionThreshold?: number): Promise<{
56
+ baseline: BaselineMetadata;
57
+ comparison: ComparisonResult;
58
+ hasRegression: boolean;
59
+ regressionThreshold: number;
60
+ } | null>;
19
61
  }
20
62
  //# sourceMappingURL=local.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAkC1F,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,SAAmB;IAIjC,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAczC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQpD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQlD,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmDnD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAiBjE,eAAe;YASf,SAAS;CAQxB"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACZ,MAAM,SAAS,CAAC;AA0CjB,qBAAa,mBAAoB,YAAW,sBAAsB;IAChE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAS;gBAElB,QAAQ,SAAmB;IAKjC,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAczC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQpD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQlD,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmDnD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAiBjE,eAAe;YASf,SAAS;IAWvB;;OAEG;YACW,iBAAiB;IAS/B;;OAEG;YACW,iBAAiB;IAM/B;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4B3F;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAKrE;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAMzE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAOlD;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxD;;OAEG;IACG,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW5D;;OAEG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,mBAAmB,SAAO,GACzB,OAAO,CAAC;QACT,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,UAAU,EAAE,gBAAgB,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,GAAG,IAAI,CAAC;CAwBV"}
@@ -83,4 +83,66 @@ export interface StorageConfig {
83
83
  bucket?: string;
84
84
  basePath?: string;
85
85
  }
86
+ /**
87
+ * Baseline metadata for regression comparison
88
+ */
89
+ export interface BaselineMetadata {
90
+ /** Scenario name or identifier */
91
+ scenario: string;
92
+ /** Run ID of the baseline */
93
+ runId: string;
94
+ /** ISO timestamp when baseline was set */
95
+ createdAt: string;
96
+ /** Key metrics captured at baseline time */
97
+ metrics: {
98
+ successRate: number;
99
+ medianLatencyMs: number;
100
+ totalTokens: number;
101
+ passedCases: number;
102
+ failedCases: number;
103
+ totalCases: number;
104
+ };
105
+ /** Optional description or tag */
106
+ tag?: string;
107
+ }
108
+ /**
109
+ * Extended storage adapter with baseline support
110
+ */
111
+ export interface BaselineStorageAdapter extends StorageAdapter {
112
+ /**
113
+ * Set a baseline for a scenario
114
+ */
115
+ setBaseline(scenario: string, runId: string, tag?: string): Promise<BaselineMetadata>;
116
+ /**
117
+ * Get the baseline by scenario name
118
+ */
119
+ getBaseline(scenario: string): Promise<BaselineMetadata | null>;
120
+ /**
121
+ * Get the baseline by run ID
122
+ */
123
+ getBaselineByRunId(runId: string): Promise<BaselineMetadata | null>;
124
+ /**
125
+ * List all baselines
126
+ */
127
+ listBaselines(): Promise<BaselineMetadata[]>;
128
+ /**
129
+ * Remove a baseline by scenario name
130
+ */
131
+ removeBaseline(scenario: string): Promise<boolean>;
132
+ /**
133
+ * Remove a baseline by run ID
134
+ */
135
+ removeBaselineByRunId(runId: string): Promise<boolean>;
136
+ /**
137
+ * Compare a run against its baseline (if exists)
138
+ * @param runId - The run ID to compare
139
+ * @param regressionThreshold - Threshold for regression detection (0-1), default 0.05
140
+ */
141
+ compareToBaseline?(runId: string, regressionThreshold?: number): Promise<{
142
+ baseline: BaselineMetadata;
143
+ comparison: ComparisonResult;
144
+ hasRegression: boolean;
145
+ regressionThreshold: number;
146
+ } | null>;
147
+ }
86
148
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9C;;OAEG;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtD;;OAEG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpD;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artemiskit/core",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Core runner, evaluators, and storage for ArtemisKit LLM evaluation toolkit",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -157,6 +157,11 @@ export interface AzureOpenAIAdapterConfig extends BaseAdapterConfig {
157
157
  apiVersion: string;
158
158
  /** Optional separate deployment name for embedding models */
159
159
  embeddingDeploymentName?: string;
160
+ /**
161
+ * Model family for parameter detection (e.g., 'gpt-5-mini' when deployment is '5-mini')
162
+ * Used to determine which API parameters to use (max_tokens vs max_completion_tokens)
163
+ */
164
+ modelFamily?: string;
160
165
  }
161
166
 
162
167
  /**
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Pricing is per 1,000 tokens (1K tokens) in USD
5
5
  * Data is updated periodically - always verify with provider's official pricing
6
+ * Last comprehensive update: January 2026
6
7
  */
7
8
 
8
9
  export interface ModelPricing {
@@ -34,132 +35,230 @@ export interface CostEstimate {
34
35
  * Prices are in USD per 1,000 tokens
35
36
  */
36
37
  export const MODEL_PRICING: Record<string, ModelPricing> = {
37
- // OpenAI GPT-4 family
38
- 'gpt-4': {
39
- promptPer1K: 0.03,
40
- completionPer1K: 0.06,
41
- lastUpdated: '2024-01',
38
+ // ============================================
39
+ // OpenAI GPT-5 family (Latest - 2025)
40
+ // ============================================
41
+ 'gpt-5': {
42
+ promptPer1K: 0.00125,
43
+ completionPer1K: 0.01,
44
+ lastUpdated: '2026-01',
45
+ notes: '400K context window',
42
46
  },
43
- 'gpt-4-32k': {
44
- promptPer1K: 0.06,
45
- completionPer1K: 0.12,
46
- lastUpdated: '2024-01',
47
+ 'gpt-5.1': {
48
+ promptPer1K: 0.00125,
49
+ completionPer1K: 0.01,
50
+ lastUpdated: '2026-01',
47
51
  },
48
- 'gpt-4-turbo': {
49
- promptPer1K: 0.01,
50
- completionPer1K: 0.03,
51
- lastUpdated: '2024-01',
52
+ 'gpt-5.2': {
53
+ promptPer1K: 0.00175,
54
+ completionPer1K: 0.014,
55
+ lastUpdated: '2026-01',
52
56
  },
53
- 'gpt-4-turbo-preview': {
54
- promptPer1K: 0.01,
55
- completionPer1K: 0.03,
56
- lastUpdated: '2024-01',
57
+ 'gpt-5-mini': {
58
+ promptPer1K: 0.00025,
59
+ completionPer1K: 0.002,
60
+ lastUpdated: '2026-01',
61
+ },
62
+ 'gpt-5-nano': {
63
+ promptPer1K: 0.00005,
64
+ completionPer1K: 0.0004,
65
+ lastUpdated: '2026-01',
66
+ },
67
+
68
+ // ============================================
69
+ // OpenAI GPT-4.1 family (2025)
70
+ // ============================================
71
+ 'gpt-4.1': {
72
+ promptPer1K: 0.002,
73
+ completionPer1K: 0.008,
74
+ lastUpdated: '2026-01',
75
+ notes: '1M context window',
76
+ },
77
+ 'gpt-4.1-mini': {
78
+ promptPer1K: 0.0004,
79
+ completionPer1K: 0.0016,
80
+ lastUpdated: '2026-01',
81
+ },
82
+ 'gpt-4.1-nano': {
83
+ promptPer1K: 0.0001,
84
+ completionPer1K: 0.0004,
85
+ lastUpdated: '2026-01',
57
86
  },
87
+
88
+ // ============================================
89
+ // OpenAI GPT-4o family (2024-2025)
90
+ // ============================================
58
91
  'gpt-4o': {
59
- promptPer1K: 0.005,
60
- completionPer1K: 0.015,
61
- lastUpdated: '2024-05',
92
+ promptPer1K: 0.0025,
93
+ completionPer1K: 0.01,
94
+ lastUpdated: '2026-01',
95
+ notes: '128K context window',
62
96
  },
63
97
  'gpt-4o-mini': {
64
98
  promptPer1K: 0.00015,
65
99
  completionPer1K: 0.0006,
66
- lastUpdated: '2024-07',
100
+ lastUpdated: '2026-01',
101
+ notes: '128K context window',
67
102
  },
68
103
 
69
- // OpenAI GPT-3.5 family
104
+ // ============================================
105
+ // OpenAI O-series (Reasoning models)
106
+ // ============================================
107
+ o1: {
108
+ promptPer1K: 0.015,
109
+ completionPer1K: 0.06,
110
+ lastUpdated: '2026-01',
111
+ notes: 'Reasoning model - internal thinking tokens billed as output',
112
+ },
113
+ o3: {
114
+ promptPer1K: 0.002,
115
+ completionPer1K: 0.008,
116
+ lastUpdated: '2026-01',
117
+ },
118
+ 'o3-mini': {
119
+ promptPer1K: 0.0011,
120
+ completionPer1K: 0.0044,
121
+ lastUpdated: '2026-01',
122
+ },
123
+ 'o4-mini': {
124
+ promptPer1K: 0.0011,
125
+ completionPer1K: 0.0044,
126
+ lastUpdated: '2026-01',
127
+ },
128
+
129
+ // ============================================
130
+ // OpenAI Legacy GPT-4 family
131
+ // ============================================
132
+ 'gpt-4-turbo': {
133
+ promptPer1K: 0.01,
134
+ completionPer1K: 0.03,
135
+ lastUpdated: '2026-01',
136
+ },
137
+ 'gpt-4': {
138
+ promptPer1K: 0.03,
139
+ completionPer1K: 0.06,
140
+ lastUpdated: '2026-01',
141
+ },
70
142
  'gpt-3.5-turbo': {
71
143
  promptPer1K: 0.0005,
72
144
  completionPer1K: 0.0015,
73
- lastUpdated: '2024-01',
145
+ lastUpdated: '2026-01',
74
146
  },
75
- 'gpt-3.5-turbo-16k': {
147
+
148
+ // ============================================
149
+ // Anthropic Claude 4.5 family (Latest - 2025)
150
+ // ============================================
151
+ 'claude-opus-4.5': {
152
+ promptPer1K: 0.005,
153
+ completionPer1K: 0.025,
154
+ lastUpdated: '2026-01',
155
+ notes: 'Most capable Claude model',
156
+ },
157
+ 'claude-sonnet-4.5': {
76
158
  promptPer1K: 0.003,
77
- completionPer1K: 0.004,
78
- lastUpdated: '2024-01',
159
+ completionPer1K: 0.015,
160
+ lastUpdated: '2026-01',
161
+ notes: 'Balanced performance and cost',
162
+ },
163
+ 'claude-haiku-4.5': {
164
+ promptPer1K: 0.001,
165
+ completionPer1K: 0.005,
166
+ lastUpdated: '2026-01',
167
+ notes: 'Fastest Claude model',
79
168
  },
80
169
 
81
- // Anthropic Claude family
82
- 'claude-3-opus-20240229': {
170
+ // ============================================
171
+ // Anthropic Claude 4 family (2025)
172
+ // ============================================
173
+ 'claude-opus-4': {
83
174
  promptPer1K: 0.015,
84
175
  completionPer1K: 0.075,
85
- lastUpdated: '2024-03',
176
+ lastUpdated: '2026-01',
86
177
  },
87
- 'claude-3-sonnet-20240229': {
178
+ 'claude-opus-4.1': {
179
+ promptPer1K: 0.015,
180
+ completionPer1K: 0.075,
181
+ lastUpdated: '2026-01',
182
+ },
183
+ 'claude-sonnet-4': {
88
184
  promptPer1K: 0.003,
89
185
  completionPer1K: 0.015,
90
- lastUpdated: '2024-03',
186
+ lastUpdated: '2026-01',
91
187
  },
92
- 'claude-3-haiku-20240307': {
93
- promptPer1K: 0.00025,
94
- completionPer1K: 0.00125,
95
- lastUpdated: '2024-03',
188
+
189
+ // ============================================
190
+ // Anthropic Claude 3.7 family
191
+ // ============================================
192
+ 'claude-sonnet-3.7': {
193
+ promptPer1K: 0.003,
194
+ completionPer1K: 0.015,
195
+ lastUpdated: '2026-01',
96
196
  },
97
- 'claude-3-5-sonnet-20240620': {
197
+ 'claude-3-7-sonnet': {
98
198
  promptPer1K: 0.003,
99
199
  completionPer1K: 0.015,
100
- lastUpdated: '2024-06',
200
+ lastUpdated: '2026-01',
101
201
  },
202
+
203
+ // ============================================
204
+ // Anthropic Claude 3.5 family (Legacy)
205
+ // ============================================
102
206
  'claude-3-5-sonnet-20241022': {
103
207
  promptPer1K: 0.003,
104
208
  completionPer1K: 0.015,
105
- lastUpdated: '2024-10',
209
+ lastUpdated: '2026-01',
106
210
  },
107
211
  'claude-3-5-haiku-20241022': {
108
212
  promptPer1K: 0.0008,
109
213
  completionPer1K: 0.004,
110
- lastUpdated: '2024-10',
214
+ lastUpdated: '2026-01',
111
215
  },
112
- // Aliases
216
+ 'claude-haiku-3.5': {
217
+ promptPer1K: 0.0008,
218
+ completionPer1K: 0.004,
219
+ lastUpdated: '2026-01',
220
+ },
221
+
222
+ // ============================================
223
+ // Anthropic Claude 3 family (Legacy)
224
+ // ============================================
113
225
  'claude-3-opus': {
114
226
  promptPer1K: 0.015,
115
227
  completionPer1K: 0.075,
116
- lastUpdated: '2024-03',
228
+ lastUpdated: '2026-01',
117
229
  },
118
230
  'claude-3-sonnet': {
119
231
  promptPer1K: 0.003,
120
232
  completionPer1K: 0.015,
121
- lastUpdated: '2024-03',
233
+ lastUpdated: '2026-01',
122
234
  },
123
235
  'claude-3-haiku': {
124
236
  promptPer1K: 0.00025,
125
237
  completionPer1K: 0.00125,
126
- lastUpdated: '2024-03',
238
+ lastUpdated: '2026-01',
127
239
  },
240
+
241
+ // Aliases for common naming patterns
128
242
  'claude-3.5-sonnet': {
129
243
  promptPer1K: 0.003,
130
244
  completionPer1K: 0.015,
131
- lastUpdated: '2024-10',
245
+ lastUpdated: '2026-01',
132
246
  },
133
247
  'claude-3.5-haiku': {
134
248
  promptPer1K: 0.0008,
135
249
  completionPer1K: 0.004,
136
- lastUpdated: '2024-10',
137
- },
138
-
139
- // Legacy Claude
140
- 'claude-2': {
141
- promptPer1K: 0.008,
142
- completionPer1K: 0.024,
143
- lastUpdated: '2024-01',
250
+ lastUpdated: '2026-01',
144
251
  },
145
- 'claude-instant-1': {
146
- promptPer1K: 0.0008,
147
- completionPer1K: 0.0024,
148
- lastUpdated: '2024-01',
149
- },
150
-
151
- // Azure OpenAI (same pricing as OpenAI typically)
152
- // Add 'azure-' prefix versions if needed
153
252
  };
154
253
 
155
254
  /**
156
255
  * Default pricing for unknown models
157
- * Uses conservative estimates
256
+ * Uses conservative estimates based on mid-tier model pricing
158
257
  */
159
258
  export const DEFAULT_PRICING: ModelPricing = {
160
- promptPer1K: 0.01,
161
- completionPer1K: 0.03,
162
- lastUpdated: '2024-01',
259
+ promptPer1K: 0.003,
260
+ completionPer1K: 0.015,
261
+ lastUpdated: '2026-01',
163
262
  notes: 'Default pricing - verify with provider',
164
263
  };
165
264
 
@@ -183,12 +282,57 @@ export function getModelPricing(model: string): ModelPricing {
183
282
  }
184
283
 
185
284
  // Try partial match for common patterns
285
+ // GPT-5 family
286
+ if (lowerModel.includes('gpt-5.2')) {
287
+ return MODEL_PRICING['gpt-5.2'];
288
+ }
289
+ if (lowerModel.includes('gpt-5.1')) {
290
+ return MODEL_PRICING['gpt-5.1'];
291
+ }
292
+ if (lowerModel.includes('gpt-5-mini')) {
293
+ return MODEL_PRICING['gpt-5-mini'];
294
+ }
295
+ if (lowerModel.includes('gpt-5-nano')) {
296
+ return MODEL_PRICING['gpt-5-nano'];
297
+ }
298
+ if (lowerModel.includes('gpt-5')) {
299
+ return MODEL_PRICING['gpt-5'];
300
+ }
301
+
302
+ // GPT-4.1 family
303
+ if (lowerModel.includes('gpt-4.1-mini')) {
304
+ return MODEL_PRICING['gpt-4.1-mini'];
305
+ }
306
+ if (lowerModel.includes('gpt-4.1-nano')) {
307
+ return MODEL_PRICING['gpt-4.1-nano'];
308
+ }
309
+ if (lowerModel.includes('gpt-4.1')) {
310
+ return MODEL_PRICING['gpt-4.1'];
311
+ }
312
+
313
+ // GPT-4o family
186
314
  if (lowerModel.includes('gpt-4o-mini')) {
187
315
  return MODEL_PRICING['gpt-4o-mini'];
188
316
  }
189
317
  if (lowerModel.includes('gpt-4o')) {
190
318
  return MODEL_PRICING['gpt-4o'];
191
319
  }
320
+
321
+ // O-series
322
+ if (lowerModel.includes('o4-mini')) {
323
+ return MODEL_PRICING['o4-mini'];
324
+ }
325
+ if (lowerModel.includes('o3-mini')) {
326
+ return MODEL_PRICING['o3-mini'];
327
+ }
328
+ if (lowerModel.includes('o3')) {
329
+ return MODEL_PRICING.o3;
330
+ }
331
+ if (lowerModel.includes('o1')) {
332
+ return MODEL_PRICING.o1;
333
+ }
334
+
335
+ // Legacy GPT
192
336
  if (lowerModel.includes('gpt-4-turbo')) {
193
337
  return MODEL_PRICING['gpt-4-turbo'];
194
338
  }
@@ -198,12 +342,43 @@ export function getModelPricing(model: string): ModelPricing {
198
342
  if (lowerModel.includes('gpt-3.5')) {
199
343
  return MODEL_PRICING['gpt-3.5-turbo'];
200
344
  }
345
+
346
+ // Claude 4.5 family
347
+ if (lowerModel.includes('opus-4.5') || lowerModel.includes('opus-4-5')) {
348
+ return MODEL_PRICING['claude-opus-4.5'];
349
+ }
350
+ if (lowerModel.includes('sonnet-4.5') || lowerModel.includes('sonnet-4-5')) {
351
+ return MODEL_PRICING['claude-sonnet-4.5'];
352
+ }
353
+ if (lowerModel.includes('haiku-4.5') || lowerModel.includes('haiku-4-5')) {
354
+ return MODEL_PRICING['claude-haiku-4.5'];
355
+ }
356
+
357
+ // Claude 4 family
358
+ if (lowerModel.includes('opus-4.1') || lowerModel.includes('opus-4-1')) {
359
+ return MODEL_PRICING['claude-opus-4.1'];
360
+ }
361
+ if (lowerModel.includes('opus-4')) {
362
+ return MODEL_PRICING['claude-opus-4'];
363
+ }
364
+ if (lowerModel.includes('sonnet-4')) {
365
+ return MODEL_PRICING['claude-sonnet-4'];
366
+ }
367
+
368
+ // Claude 3.7 family
369
+ if (lowerModel.includes('sonnet-3.7') || lowerModel.includes('sonnet-3-7')) {
370
+ return MODEL_PRICING['claude-sonnet-3.7'];
371
+ }
372
+
373
+ // Claude 3.5 family
201
374
  if (lowerModel.includes('claude-3-5-sonnet') || lowerModel.includes('claude-3.5-sonnet')) {
202
375
  return MODEL_PRICING['claude-3.5-sonnet'];
203
376
  }
204
377
  if (lowerModel.includes('claude-3-5-haiku') || lowerModel.includes('claude-3.5-haiku')) {
205
378
  return MODEL_PRICING['claude-3.5-haiku'];
206
379
  }
380
+
381
+ // Claude 3 family
207
382
  if (lowerModel.includes('claude-3-opus')) {
208
383
  return MODEL_PRICING['claude-3-opus'];
209
384
  }
@@ -213,8 +388,10 @@ export function getModelPricing(model: string): ModelPricing {
213
388
  if (lowerModel.includes('claude-3-haiku')) {
214
389
  return MODEL_PRICING['claude-3-haiku'];
215
390
  }
391
+
392
+ // Generic Claude fallback
216
393
  if (lowerModel.includes('claude')) {
217
- return MODEL_PRICING['claude-2'];
394
+ return MODEL_PRICING['claude-sonnet-4.5'];
218
395
  }
219
396
 
220
397
  return DEFAULT_PRICING;