@ank1015/providers 0.0.1 → 0.0.3

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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -383
  3. package/dist/agent/conversation.d.ts +97 -0
  4. package/dist/agent/conversation.d.ts.map +1 -0
  5. package/dist/agent/conversation.js +328 -0
  6. package/dist/agent/conversation.js.map +1 -0
  7. package/dist/agent/runner.d.ts +37 -0
  8. package/dist/agent/runner.d.ts.map +1 -0
  9. package/dist/agent/runner.js +169 -0
  10. package/dist/agent/runner.js.map +1 -0
  11. package/dist/agent/tools/calculate.d.ts +15 -0
  12. package/dist/agent/tools/calculate.d.ts.map +1 -0
  13. package/dist/agent/tools/calculate.js +23 -0
  14. package/dist/agent/tools/calculate.js.map +1 -0
  15. package/dist/agent/tools/get-current-time.d.ts +15 -0
  16. package/dist/agent/tools/get-current-time.d.ts.map +1 -0
  17. package/dist/agent/tools/get-current-time.js +38 -0
  18. package/dist/agent/tools/get-current-time.js.map +1 -0
  19. package/dist/agent/tools/index.d.ts +3 -0
  20. package/dist/agent/tools/index.d.ts.map +1 -0
  21. package/dist/agent/tools/index.js +3 -0
  22. package/dist/agent/tools/index.js.map +1 -0
  23. package/dist/agent/types.d.ts +53 -31
  24. package/dist/agent/types.d.ts.map +1 -1
  25. package/dist/agent/types.js +1 -2
  26. package/dist/agent/utils.d.ts +14 -0
  27. package/dist/agent/utils.d.ts.map +1 -0
  28. package/dist/agent/utils.js +59 -0
  29. package/dist/agent/utils.js.map +1 -0
  30. package/dist/index.d.ts +16 -9
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +16 -28
  33. package/dist/index.js.map +1 -1
  34. package/dist/llm.d.ts +15 -0
  35. package/dist/llm.d.ts.map +1 -0
  36. package/dist/llm.js +92 -0
  37. package/dist/llm.js.map +1 -0
  38. package/dist/models.d.ts +8 -1
  39. package/dist/models.d.ts.map +1 -1
  40. package/dist/models.generated.d.ts +25 -112
  41. package/dist/models.generated.d.ts.map +1 -1
  42. package/dist/models.generated.js +72 -227
  43. package/dist/models.generated.js.map +1 -1
  44. package/dist/models.js +30 -32
  45. package/dist/models.js.map +1 -1
  46. package/dist/providers/google/complete.d.ts +3 -0
  47. package/dist/providers/google/complete.d.ts.map +1 -0
  48. package/dist/providers/google/complete.js +53 -0
  49. package/dist/providers/google/complete.js.map +1 -0
  50. package/dist/providers/google/index.d.ts +6 -0
  51. package/dist/providers/google/index.d.ts.map +1 -0
  52. package/dist/providers/google/index.js +6 -0
  53. package/dist/providers/google/index.js.map +1 -0
  54. package/dist/providers/google/stream.d.ts +3 -0
  55. package/dist/providers/google/stream.d.ts.map +1 -0
  56. package/dist/providers/{google.js → google/stream.js} +67 -231
  57. package/dist/providers/google/stream.js.map +1 -0
  58. package/dist/providers/google/types.d.ts +8 -0
  59. package/dist/providers/google/types.d.ts.map +1 -0
  60. package/dist/providers/google/types.js +2 -0
  61. package/dist/providers/google/types.js.map +1 -0
  62. package/dist/providers/google/utils.d.ts +30 -0
  63. package/dist/providers/google/utils.d.ts.map +1 -0
  64. package/dist/providers/google/utils.js +354 -0
  65. package/dist/providers/google/utils.js.map +1 -0
  66. package/dist/providers/openai/complete.d.ts +3 -0
  67. package/dist/providers/openai/complete.d.ts.map +1 -0
  68. package/dist/providers/openai/complete.js +57 -0
  69. package/dist/providers/openai/complete.js.map +1 -0
  70. package/dist/providers/openai/index.d.ts +4 -0
  71. package/dist/providers/openai/index.d.ts.map +1 -0
  72. package/dist/providers/openai/index.js +4 -0
  73. package/dist/providers/openai/index.js.map +1 -0
  74. package/dist/providers/openai/stream.d.ts +3 -0
  75. package/dist/providers/openai/stream.d.ts.map +1 -0
  76. package/dist/providers/{openai.js → openai/stream.js} +74 -152
  77. package/dist/providers/openai/stream.js.map +1 -0
  78. package/dist/providers/openai/types.d.ts +8 -0
  79. package/dist/providers/openai/types.d.ts.map +1 -0
  80. package/dist/providers/openai/types.js +2 -0
  81. package/dist/providers/openai/types.js.map +1 -0
  82. package/dist/providers/openai/utils.d.ts +13 -0
  83. package/dist/providers/openai/utils.d.ts.map +1 -0
  84. package/dist/providers/openai/utils.js +285 -0
  85. package/dist/providers/openai/utils.js.map +1 -0
  86. package/dist/types.d.ts +95 -87
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js +1 -9
  89. package/dist/types.js.map +1 -1
  90. package/dist/utils/event-stream.d.ts +2 -2
  91. package/dist/utils/event-stream.d.ts.map +1 -1
  92. package/dist/utils/event-stream.js +2 -7
  93. package/dist/utils/event-stream.js.map +1 -1
  94. package/dist/utils/json-parse.js +3 -6
  95. package/dist/utils/json-parse.js.map +1 -1
  96. package/dist/utils/overflow.d.ts +51 -0
  97. package/dist/utils/overflow.d.ts.map +1 -0
  98. package/dist/utils/overflow.js +106 -0
  99. package/dist/utils/overflow.js.map +1 -0
  100. package/dist/utils/sanitize-unicode.js +1 -4
  101. package/dist/utils/sanitize-unicode.js.map +1 -1
  102. package/dist/utils/uuid.d.ts +6 -0
  103. package/dist/utils/uuid.d.ts.map +1 -0
  104. package/dist/utils/uuid.js +9 -0
  105. package/dist/utils/uuid.js.map +1 -0
  106. package/dist/utils/validation.d.ts +10 -3
  107. package/dist/utils/validation.d.ts.map +1 -1
  108. package/dist/utils/validation.js +20 -12
  109. package/dist/utils/validation.js.map +1 -1
  110. package/package.json +47 -8
  111. package/biome.json +0 -43
  112. package/dist/agent/agent-loop.d.ts +0 -5
  113. package/dist/agent/agent-loop.d.ts.map +0 -1
  114. package/dist/agent/agent-loop.js +0 -219
  115. package/dist/agent/agent-loop.js.map +0 -1
  116. package/dist/providers/convert.d.ts +0 -6
  117. package/dist/providers/convert.d.ts.map +0 -1
  118. package/dist/providers/convert.js +0 -207
  119. package/dist/providers/convert.js.map +0 -1
  120. package/dist/providers/google.d.ts +0 -26
  121. package/dist/providers/google.d.ts.map +0 -1
  122. package/dist/providers/google.js.map +0 -1
  123. package/dist/providers/openai.d.ts +0 -17
  124. package/dist/providers/openai.d.ts.map +0 -1
  125. package/dist/providers/openai.js.map +0 -1
  126. package/dist/stream.d.ts +0 -4
  127. package/dist/stream.d.ts.map +0 -1
  128. package/dist/stream.js +0 -40
  129. package/dist/stream.js.map +0 -1
  130. package/dist/test-google-agent-loop.d.ts +0 -2
  131. package/dist/test-google-agent-loop.d.ts.map +0 -1
  132. package/dist/test-google-agent-loop.js +0 -186
  133. package/dist/test-google-agent-loop.js.map +0 -1
  134. package/dist/test-google.d.ts +0 -2
  135. package/dist/test-google.d.ts.map +0 -1
  136. package/dist/test-google.js +0 -41
  137. package/dist/test-google.js.map +0 -1
  138. package/src/agent/agent-loop.ts +0 -275
  139. package/src/agent/types.ts +0 -80
  140. package/src/index.ts +0 -72
  141. package/src/models.generated.ts +0 -314
  142. package/src/models.ts +0 -45
  143. package/src/providers/convert.ts +0 -222
  144. package/src/providers/google.ts +0 -496
  145. package/src/providers/openai.ts +0 -437
  146. package/src/stream.ts +0 -60
  147. package/src/types.ts +0 -198
  148. package/src/utils/event-stream.ts +0 -60
  149. package/src/utils/json-parse.ts +0 -28
  150. package/src/utils/sanitize-unicode.ts +0 -25
  151. package/src/utils/validation.ts +0 -69
  152. package/test/core/agent-loop.test.ts +0 -958
  153. package/test/core/stream.test.ts +0 -409
  154. package/test/data/red-circle.png +0 -0
  155. package/test/data/superintelligentwill.pdf +0 -0
  156. package/test/edge-cases/general.test.ts +0 -565
  157. package/test/integration/e2e.test.ts +0 -530
  158. package/test/models/cost.test.ts +0 -499
  159. package/test/models/registry.test.ts +0 -298
  160. package/test/providers/convert.test.ts +0 -846
  161. package/test/providers/google-schema.test.ts +0 -666
  162. package/test/providers/google-stream.test.ts +0 -369
  163. package/test/providers/openai-stream.test.ts +0 -251
  164. package/test/utils/event-stream.test.ts +0 -289
  165. package/test/utils/json-parse.test.ts +0 -344
  166. package/test/utils/sanitize-unicode.test.ts +0 -329
  167. package/test/utils/validation.test.ts +0 -614
  168. package/tsconfig.json +0 -21
  169. package/vitest.config.ts +0 -9
@@ -1,72 +1,6 @@
1
1
  export declare const MODELS: {
2
- readonly google: {
3
- readonly "gemini-2.5-flash-preview-05-20": {
4
- id: string;
5
- name: string;
6
- api: "google";
7
- baseUrl: string;
8
- reasoning: true;
9
- input: ("text" | "image")[];
10
- cost: {
11
- input: number;
12
- output: number;
13
- cacheRead: number;
14
- cacheWrite: number;
15
- };
16
- contextWindow: number;
17
- maxTokens: number;
18
- };
19
- readonly "gemini-flash-lite-latest": {
20
- id: string;
21
- name: string;
22
- api: "google";
23
- baseUrl: string;
24
- reasoning: true;
25
- input: ("text" | "image" | "file")[];
26
- cost: {
27
- input: number;
28
- output: number;
29
- cacheRead: number;
30
- cacheWrite: number;
31
- };
32
- contextWindow: number;
33
- maxTokens: number;
34
- };
35
- readonly "gemini-3-pro-preview": {
36
- id: string;
37
- name: string;
38
- api: "google";
39
- baseUrl: string;
40
- reasoning: true;
41
- input: ("text" | "image" | "file")[];
42
- cost: {
43
- input: number;
44
- output: number;
45
- cacheRead: number;
46
- cacheWrite: number;
47
- };
48
- contextWindow: number;
49
- maxTokens: number;
50
- };
51
- readonly "gemini-2.5-flash": {
52
- id: string;
53
- name: string;
54
- api: "google";
55
- baseUrl: string;
56
- reasoning: true;
57
- input: ("text" | "image" | "file")[];
58
- cost: {
59
- input: number;
60
- output: number;
61
- cacheRead: number;
62
- cacheWrite: number;
63
- };
64
- contextWindow: number;
65
- maxTokens: number;
66
- };
67
- };
68
- readonly openai: {
69
- readonly "gpt-5.1-codex": {
2
+ openai: {
3
+ "gpt-5.2": {
70
4
  id: string;
71
5
  name: string;
72
6
  api: "openai";
@@ -81,8 +15,9 @@ export declare const MODELS: {
81
15
  };
82
16
  contextWindow: number;
83
17
  maxTokens: number;
18
+ tools: string[];
84
19
  };
85
- readonly "gpt-5.1-codex-mini": {
20
+ "gpt-5.2-pro": {
86
21
  id: string;
87
22
  name: string;
88
23
  api: "openai";
@@ -97,8 +32,9 @@ export declare const MODELS: {
97
32
  };
98
33
  contextWindow: number;
99
34
  maxTokens: number;
35
+ tools: string[];
100
36
  };
101
- readonly "gpt-5.1": {
37
+ "gpt-5.1-codex-max": {
102
38
  id: string;
103
39
  name: string;
104
40
  api: "openai";
@@ -113,24 +49,9 @@ export declare const MODELS: {
113
49
  };
114
50
  contextWindow: number;
115
51
  maxTokens: number;
52
+ tools: string[];
116
53
  };
117
- readonly "codex-mini-latest": {
118
- id: string;
119
- name: string;
120
- api: "openai";
121
- baseUrl: string;
122
- reasoning: true;
123
- input: "text"[];
124
- cost: {
125
- input: number;
126
- output: number;
127
- cacheRead: number;
128
- cacheWrite: number;
129
- };
130
- contextWindow: number;
131
- maxTokens: number;
132
- };
133
- readonly "gpt-5-nano": {
54
+ "gpt-5-mini": {
134
55
  id: string;
135
56
  name: string;
136
57
  api: "openai";
@@ -145,8 +66,9 @@ export declare const MODELS: {
145
66
  };
146
67
  contextWindow: number;
147
68
  maxTokens: number;
69
+ tools: string[];
148
70
  };
149
- readonly "gpt-5-codex": {
71
+ "gpt-5-nano": {
150
72
  id: string;
151
73
  name: string;
152
74
  api: "openai";
@@ -161,8 +83,9 @@ export declare const MODELS: {
161
83
  };
162
84
  contextWindow: number;
163
85
  maxTokens: number;
86
+ tools: string[];
164
87
  };
165
- readonly "gpt-5-mini": {
88
+ "gpt-5": {
166
89
  id: string;
167
90
  name: string;
168
91
  api: "openai";
@@ -177,27 +100,14 @@ export declare const MODELS: {
177
100
  };
178
101
  contextWindow: number;
179
102
  maxTokens: number;
103
+ tools: string[];
180
104
  };
181
- readonly "gpt-5.1-codex-max": {
182
- id: string;
183
- name: string;
184
- api: "openai";
185
- baseUrl: string;
186
- reasoning: true;
187
- input: ("text" | "image" | "file")[];
188
- cost: {
189
- input: number;
190
- output: number;
191
- cacheRead: number;
192
- cacheWrite: number;
193
- };
194
- contextWindow: number;
195
- maxTokens: number;
196
- };
197
- readonly "gpt-5": {
105
+ };
106
+ google: {
107
+ "gemini-3-pro-preview": {
198
108
  id: string;
199
109
  name: string;
200
- api: "openai";
110
+ api: "google";
201
111
  baseUrl: string;
202
112
  reasoning: true;
203
113
  input: ("text" | "image" | "file")[];
@@ -209,11 +119,12 @@ export declare const MODELS: {
209
119
  };
210
120
  contextWindow: number;
211
121
  maxTokens: number;
122
+ tools: string[];
212
123
  };
213
- readonly "gpt-5-pro": {
124
+ "gemini-3-flash-preview": {
214
125
  id: string;
215
126
  name: string;
216
- api: "openai";
127
+ api: "google";
217
128
  baseUrl: string;
218
129
  reasoning: true;
219
130
  input: ("text" | "image" | "file")[];
@@ -225,14 +136,15 @@ export declare const MODELS: {
225
136
  };
226
137
  contextWindow: number;
227
138
  maxTokens: number;
139
+ tools: string[];
228
140
  };
229
- readonly "gpt-5.1-chat-latest": {
141
+ "gemini-3-pro-image-preview": {
230
142
  id: string;
231
143
  name: string;
232
- api: "openai";
144
+ api: "google";
233
145
  baseUrl: string;
234
146
  reasoning: true;
235
- input: ("text" | "image" | "file")[];
147
+ input: ("text" | "image")[];
236
148
  cost: {
237
149
  input: number;
238
150
  output: number;
@@ -241,6 +153,7 @@ export declare const MODELS: {
241
153
  };
242
154
  contextWindow: number;
243
155
  maxTokens: number;
156
+ tools: never[];
244
157
  };
245
158
  };
246
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"models.generated.d.ts","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoTT,CAAC"}
1
+ {"version":3,"file":"models.generated.d.ts","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8JlB,CAAA"}
@@ -1,212 +1,42 @@
1
- "use strict";
2
- // This file is auto-generated by scripts/generate-models.ts
3
- // Do not edit manually - run 'npm run generate-models' to update
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.MODELS = void 0;
6
- exports.MODELS = {
7
- // anthropic: {
8
- // "claude-haiku-4-5": {
9
- // id: "claude-haiku-4-5",
10
- // name: "Claude Haiku 4.5 (latest)",
11
- // api: "anthropic-messages",
12
- // provider: "anthropic",
13
- // baseUrl: "https://api.anthropic.com",
14
- // reasoning: true,
15
- // input: ["text", "image"],
16
- // cost: {
17
- // input: 1,
18
- // output: 5,
19
- // cacheRead: 0.1,
20
- // cacheWrite: 1.25,
21
- // },
22
- // contextWindow: 200000,
23
- // maxTokens: 64000,
24
- // } satisfies Model<"anthropic-messages">,
25
- // "claude-opus-4-5": {
26
- // id: "claude-opus-4-5",
27
- // name: "Claude Opus 4.5 (latest)",
28
- // api: "anthropic-messages",
29
- // provider: "anthropic",
30
- // baseUrl: "https://api.anthropic.com",
31
- // reasoning: true,
32
- // input: ["text", "image"],
33
- // cost: {
34
- // input: 5,
35
- // output: 25,
36
- // cacheRead: 0.5,
37
- // cacheWrite: 6.25,
38
- // },
39
- // contextWindow: 200000,
40
- // maxTokens: 64000,
41
- // } satisfies Model<"anthropic-messages">,
42
- // "claude-sonnet-4-5": {
43
- // id: "claude-sonnet-4-5",
44
- // name: "Claude Sonnet 4.5 (latest)",
45
- // api: "anthropic-messages",
46
- // provider: "anthropic",
47
- // baseUrl: "https://api.anthropic.com",
48
- // reasoning: true,
49
- // input: ["text", "image"],
50
- // cost: {
51
- // input: 3,
52
- // output: 15,
53
- // cacheRead: 0.3,
54
- // cacheWrite: 3.75,
55
- // },
56
- // contextWindow: 200000,
57
- // maxTokens: 64000,
58
- // } satisfies Model<"anthropic-messages">,
59
- // },
60
- google: {
61
- "gemini-2.5-flash-preview-05-20": {
62
- id: "gemini-2.5-flash-preview-05-20",
63
- name: "Gemini 2.5 Flash Preview 05-20",
64
- api: "google",
65
- baseUrl: "https://generativelanguage.googleapis.com/v1beta",
66
- reasoning: true,
67
- input: ["text", "image"],
68
- cost: {
69
- input: 0.15,
70
- output: 0.6,
71
- cacheRead: 0.0375,
72
- cacheWrite: 0,
73
- },
74
- contextWindow: 1048576,
75
- maxTokens: 65536,
76
- },
77
- "gemini-flash-lite-latest": {
78
- id: "gemini-flash-lite-latest",
79
- name: "Gemini Flash-Lite Latest",
80
- api: "google",
81
- baseUrl: "https://generativelanguage.googleapis.com/v1beta",
82
- reasoning: true,
83
- input: ["text", "image", "file"],
84
- cost: {
85
- input: 0.1,
86
- output: 0.4,
87
- cacheRead: 0.025,
88
- cacheWrite: 0,
89
- },
90
- contextWindow: 1048576,
91
- maxTokens: 65536,
92
- },
93
- "gemini-3-pro-preview": {
94
- id: "gemini-3-pro-preview",
95
- name: "Gemini 3 Pro Preview",
96
- api: "google",
97
- baseUrl: "https://generativelanguage.googleapis.com/v1beta",
98
- reasoning: true,
99
- input: ["text", "image", "file"],
100
- cost: {
101
- input: 2,
102
- output: 12,
103
- cacheRead: 0.2,
104
- cacheWrite: 0,
105
- },
106
- contextWindow: 1000000,
107
- maxTokens: 64000,
108
- },
109
- "gemini-2.5-flash": {
110
- id: "gemini-2.5-flash",
111
- name: "Gemini 2.5 Flash",
112
- api: "google",
113
- baseUrl: "https://generativelanguage.googleapis.com/v1beta",
114
- reasoning: true,
115
- input: ["text", "image", "file"],
116
- cost: {
117
- input: 0.3,
118
- output: 2.5,
119
- cacheRead: 0.075,
120
- cacheWrite: 0,
121
- },
122
- contextWindow: 1048576,
123
- maxTokens: 65536,
124
- },
125
- },
1
+ export const MODELS = {
126
2
  openai: {
127
- "gpt-5.1-codex": {
128
- id: "gpt-5.1-codex",
129
- name: "GPT-5.1 Codex",
3
+ "gpt-5.2": {
4
+ id: "gpt-5.2",
5
+ name: "GPT-5.2",
130
6
  api: "openai",
131
7
  baseUrl: "https://api.openai.com/v1",
132
8
  reasoning: true,
133
9
  input: ["text", "image", "file"],
134
10
  cost: {
135
- input: 1.25,
136
- output: 10,
137
- cacheRead: 0.125,
11
+ input: 1.75,
12
+ output: 14,
13
+ cacheRead: 0.175,
138
14
  cacheWrite: 0,
139
15
  },
140
16
  contextWindow: 400000,
141
17
  maxTokens: 128000,
18
+ tools: ['function_calling'],
142
19
  },
143
- "gpt-5.1-codex-mini": {
144
- id: "gpt-5.1-codex-mini",
145
- name: "GPT-5.1 Codex mini",
20
+ "gpt-5.2-pro": {
21
+ id: "gpt-5.2-pro",
22
+ name: "GPT-5.2 Pro",
146
23
  api: "openai",
147
24
  baseUrl: "https://api.openai.com/v1",
148
25
  reasoning: true,
149
26
  input: ["text", "image", "file"],
150
27
  cost: {
151
- input: 0.25,
152
- output: 2,
153
- cacheRead: 0.025,
28
+ input: 21,
29
+ output: 168,
30
+ cacheRead: 21,
154
31
  cacheWrite: 0,
155
32
  },
156
33
  contextWindow: 400000,
157
34
  maxTokens: 128000,
35
+ tools: ['function_calling'],
158
36
  },
159
- "gpt-5.1": {
160
- id: "gpt-5.1",
161
- name: "GPT-5.1",
162
- api: "openai",
163
- baseUrl: "https://api.openai.com/v1",
164
- reasoning: true,
165
- input: ["text", "image", "file"],
166
- cost: {
167
- input: 1.25,
168
- output: 10,
169
- cacheRead: 0.13,
170
- cacheWrite: 0,
171
- },
172
- contextWindow: 400000,
173
- maxTokens: 128000,
174
- },
175
- "codex-mini-latest": {
176
- id: "codex-mini-latest",
177
- name: "Codex Mini",
178
- api: "openai",
179
- baseUrl: "https://api.openai.com/v1",
180
- reasoning: true,
181
- input: ["text"],
182
- cost: {
183
- input: 1.5,
184
- output: 6,
185
- cacheRead: 0.375,
186
- cacheWrite: 0,
187
- },
188
- contextWindow: 200000,
189
- maxTokens: 100000,
190
- },
191
- "gpt-5-nano": {
192
- id: "gpt-5-nano",
193
- name: "GPT-5 Nano",
194
- api: "openai",
195
- baseUrl: "https://api.openai.com/v1",
196
- reasoning: true,
197
- input: ["text", "image", "file"],
198
- cost: {
199
- input: 0.05,
200
- output: 0.4,
201
- cacheRead: 0.01,
202
- cacheWrite: 0,
203
- },
204
- contextWindow: 400000,
205
- maxTokens: 128000,
206
- },
207
- "gpt-5-codex": {
208
- id: "gpt-5-codex",
209
- name: "GPT-5-Codex",
37
+ "gpt-5.1-codex-max": {
38
+ id: "gpt-5.1-codex-max",
39
+ name: "GPT-5.1 Codex Max",
210
40
  api: "openai",
211
41
  baseUrl: "https://api.openai.com/v1",
212
42
  reasoning: true,
@@ -219,6 +49,7 @@ exports.MODELS = {
219
49
  },
220
50
  contextWindow: 400000,
221
51
  maxTokens: 128000,
52
+ tools: ['function_calling'],
222
53
  },
223
54
  "gpt-5-mini": {
224
55
  id: "gpt-5-mini",
@@ -230,27 +61,29 @@ exports.MODELS = {
230
61
  cost: {
231
62
  input: 0.25,
232
63
  output: 2,
233
- cacheRead: 0.03,
64
+ cacheRead: 0.025,
234
65
  cacheWrite: 0,
235
66
  },
236
67
  contextWindow: 400000,
237
68
  maxTokens: 128000,
69
+ tools: ['function_calling'],
238
70
  },
239
- "gpt-5.1-codex-max": {
240
- id: "gpt-5.1-codex-max",
241
- name: "GPT-5.1 Codex Max",
71
+ "gpt-5-nano": {
72
+ id: "gpt-5-nano",
73
+ name: "GPT-5 Nano",
242
74
  api: "openai",
243
75
  baseUrl: "https://api.openai.com/v1",
244
76
  reasoning: true,
245
77
  input: ["text", "image", "file"],
246
78
  cost: {
247
- input: 1.25,
248
- output: 10,
249
- cacheRead: 0.125,
79
+ input: 0.05,
80
+ output: 0.4,
81
+ cacheRead: 0.005,
250
82
  cacheWrite: 0,
251
83
  },
252
84
  contextWindow: 400000,
253
85
  maxTokens: 128000,
86
+ tools: ['function_calling'],
254
87
  },
255
88
  "gpt-5": {
256
89
  id: "gpt-5",
@@ -262,54 +95,66 @@ exports.MODELS = {
262
95
  cost: {
263
96
  input: 1.25,
264
97
  output: 10,
265
- cacheRead: 0.13,
98
+ cacheRead: 0.125,
266
99
  cacheWrite: 0,
267
100
  },
268
101
  contextWindow: 400000,
269
102
  maxTokens: 128000,
103
+ tools: ['function_calling'],
270
104
  },
271
- "gpt-5-pro": {
272
- id: "gpt-5-pro",
273
- name: "GPT-5 Pro",
274
- api: "openai",
275
- baseUrl: "https://api.openai.com/v1",
105
+ },
106
+ google: {
107
+ "gemini-3-pro-preview": {
108
+ id: "gemini-3-pro-preview",
109
+ name: "Gemini 3 Pro Preview",
110
+ api: "google",
111
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
276
112
  reasoning: true,
277
113
  input: ["text", "image", "file"],
278
114
  cost: {
279
- input: 15,
280
- output: 120,
281
- cacheRead: 0,
115
+ input: 2,
116
+ output: 12,
117
+ cacheRead: 0.2,
282
118
  cacheWrite: 0,
283
119
  },
284
- contextWindow: 400000,
285
- maxTokens: 272000,
120
+ contextWindow: 1048576,
121
+ maxTokens: 65536,
122
+ tools: ['function_calling'],
286
123
  },
287
- "gpt-5.1-chat-latest": {
288
- id: "gpt-5.1-chat-latest",
289
- name: "GPT-5.1 Chat",
290
- api: "openai",
291
- baseUrl: "https://api.openai.com/v1",
124
+ "gemini-3-flash-preview": {
125
+ id: "gemini-3-flash-preview",
126
+ name: "Gemini 3 Flash Preview",
127
+ api: "google",
128
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
292
129
  reasoning: true,
293
130
  input: ["text", "image", "file"],
294
131
  cost: {
295
- input: 1.25,
296
- output: 10,
297
- cacheRead: 0.125,
132
+ input: 0.50,
133
+ output: 3,
134
+ cacheRead: 0.05,
298
135
  cacheWrite: 0,
299
136
  },
300
- contextWindow: 128000,
301
- maxTokens: 16384,
137
+ contextWindow: 1048576,
138
+ maxTokens: 65536,
139
+ tools: ['function_calling'],
302
140
  },
303
- },
304
- // groq: {
305
- // },
306
- // cerebras: {
307
- // },
308
- // xai: {
309
- // },
310
- // zai: {
311
- // },
312
- // openrouter: {
313
- // }
141
+ "gemini-3-pro-image-preview": {
142
+ id: "gemini-3-pro-image-preview",
143
+ name: "Gemini 3 Pro Image Preview",
144
+ api: "google",
145
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
146
+ reasoning: true,
147
+ input: ["text", "image"],
148
+ cost: {
149
+ input: 2,
150
+ output: 12,
151
+ cacheRead: 2,
152
+ cacheWrite: 0,
153
+ },
154
+ contextWindow: 65536,
155
+ maxTokens: 32768,
156
+ tools: [],
157
+ },
158
+ }
314
159
  };
315
160
  //# sourceMappingURL=models.generated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.generated.js","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,iEAAiE;;;AAIpD,QAAA,MAAM,GAAG;IACrB,eAAe;IACf,yBAAyB;IACzB,4BAA4B;IAC5B,uCAAuC;IACvC,+BAA+B;IAC/B,2BAA2B;IAC3B,0CAA0C;IAC1C,qBAAqB;IACrB,8BAA8B;IAC9B,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,uBAAuB;IACvB,OAAO;IACP,2BAA2B;IAC3B,sBAAsB;IACtB,4CAA4C;IAC5C,wBAAwB;IACxB,2BAA2B;IAC3B,sCAAsC;IACtC,+BAA+B;IAC/B,2BAA2B;IAC3B,0CAA0C;IAC1C,qBAAqB;IACrB,8BAA8B;IAC9B,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,qBAAqB;IACrB,uBAAuB;IACvB,OAAO;IACP,2BAA2B;IAC3B,sBAAsB;IACtB,4CAA4C;IAC5C,0BAA0B;IAC1B,6BAA6B;IAC7B,wCAAwC;IACxC,+BAA+B;IAC/B,2BAA2B;IAC3B,0CAA0C;IAC1C,qBAAqB;IACrB,8BAA8B;IAC9B,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,qBAAqB;IACrB,uBAAuB;IACvB,OAAO;IACP,2BAA2B;IAC3B,sBAAsB;IACtB,4CAA4C;IAC5C,KAAK;IACL,MAAM,EAAE;QACP,gCAAgC,EAAE;YACjC,EAAE,EAAE,gCAAgC;YACpC,IAAI,EAAE,gCAAgC;YACtC,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,kDAAkD;YAC3D,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACxB,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,OAAO;YACtB,SAAS,EAAE,KAAK;SACU;QAC3B,0BAA0B,EAAE;YAC3B,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,0BAA0B;YAChC,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,kDAAkD;YAC3D,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,OAAO;YACtB,SAAS,EAAE,KAAK;SACU;QAC3B,sBAAsB,EAAE;YACvB,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,sBAAsB;YAC5B,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,kDAAkD;YAC3D,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,OAAO;YACtB,SAAS,EAAE,KAAK;SACU;QAC3B,kBAAkB,EAAE;YACnB,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,kBAAkB;YACxB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,kDAAkD;YAC3D,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,OAAO;YACtB,SAAS,EAAE,KAAK;SACU;KAC3B;IACD,MAAM,EAAE;QACP,eAAe,EAAE;YAChB,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,oBAAoB,EAAE;YACrB,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,SAAS,EAAE;YACV,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,mBAAmB,EAAE;YACpB,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,IAAI,EAAE;gBACL,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,YAAY,EAAE;YACb,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,aAAa,EAAE;YACd,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,YAAY,EAAE;YACb,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,mBAAmB,EAAE;YACpB,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,mBAAmB;YACzB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,OAAO,EAAE;YACR,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,WAAW,EAAE;YACZ,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,MAAM;SACS;QAC3B,qBAAqB,EAAE;YACtB,EAAE,EAAE,qBAAqB;YACzB,IAAI,EAAE,cAAc;YACpB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,2BAA2B;YACpC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;YAChC,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;aACb;YACD,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,KAAK;SACU;KAC3B;IACD,UAAU;IACV,KAAK;IACL,cAAc;IACd,KAAK;IACL,SAAS;IACT,KAAK;IACL,SAAS;IACT,KAAK;IACL,gBAAgB;IAChB,IAAI;CACK,CAAC"}
1
+ {"version":3,"file":"models.generated.js","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":"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"}