@node-llm/core 1.7.0 → 1.9.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 (132) hide show
  1. package/README.md +9 -8
  2. package/dist/aliases.d.ts +216 -0
  3. package/dist/aliases.d.ts.map +1 -1
  4. package/dist/aliases.js +241 -25
  5. package/dist/chat/Chat.d.ts +8 -4
  6. package/dist/chat/Chat.d.ts.map +1 -1
  7. package/dist/chat/Chat.js +33 -5
  8. package/dist/chat/ChatResponse.d.ts +28 -3
  9. package/dist/chat/ChatResponse.d.ts.map +1 -1
  10. package/dist/chat/ChatResponse.js +79 -6
  11. package/dist/chat/ChatStream.d.ts.map +1 -1
  12. package/dist/chat/ChatStream.js +13 -1
  13. package/dist/chat/Content.d.ts +7 -0
  14. package/dist/chat/Content.d.ts.map +1 -1
  15. package/dist/config.d.ts +28 -0
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +58 -6
  18. package/dist/constants.d.ts +6 -0
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +6 -0
  21. package/dist/errors/index.d.ts +20 -2
  22. package/dist/errors/index.d.ts.map +1 -1
  23. package/dist/errors/index.js +31 -3
  24. package/dist/index.d.ts +2 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/llm.d.ts.map +1 -1
  27. package/dist/llm.js +3 -2
  28. package/dist/models/ModelRegistry.d.ts.map +1 -1
  29. package/dist/models/ModelRegistry.js +4 -2
  30. package/dist/models/PricingRegistry.js +3 -3
  31. package/dist/models/models.json +16696 -0
  32. package/dist/providers/Provider.d.ts +5 -0
  33. package/dist/providers/Provider.d.ts.map +1 -1
  34. package/dist/providers/anthropic/AnthropicProvider.d.ts.map +1 -1
  35. package/dist/providers/anthropic/AnthropicProvider.js +2 -1
  36. package/dist/providers/anthropic/Capabilities.d.ts +1 -0
  37. package/dist/providers/anthropic/Capabilities.d.ts.map +1 -1
  38. package/dist/providers/anthropic/Capabilities.js +8 -5
  39. package/dist/providers/anthropic/Chat.d.ts.map +1 -1
  40. package/dist/providers/anthropic/Chat.js +2 -1
  41. package/dist/providers/anthropic/Errors.d.ts.map +1 -1
  42. package/dist/providers/anthropic/Errors.js +15 -1
  43. package/dist/providers/anthropic/Streaming.d.ts.map +1 -1
  44. package/dist/providers/anthropic/Streaming.js +19 -3
  45. package/dist/providers/bedrock/BedrockProvider.d.ts +53 -0
  46. package/dist/providers/bedrock/BedrockProvider.d.ts.map +1 -0
  47. package/dist/providers/bedrock/BedrockProvider.js +107 -0
  48. package/dist/providers/bedrock/Capabilities.d.ts +50 -0
  49. package/dist/providers/bedrock/Capabilities.d.ts.map +1 -0
  50. package/dist/providers/bedrock/Capabilities.js +233 -0
  51. package/dist/providers/bedrock/Chat.d.ts +26 -0
  52. package/dist/providers/bedrock/Chat.d.ts.map +1 -0
  53. package/dist/providers/bedrock/Chat.js +152 -0
  54. package/dist/providers/bedrock/Embeddings.d.ts +22 -0
  55. package/dist/providers/bedrock/Embeddings.d.ts.map +1 -0
  56. package/dist/providers/bedrock/Embeddings.js +100 -0
  57. package/dist/providers/bedrock/Errors.d.ts +2 -0
  58. package/dist/providers/bedrock/Errors.d.ts.map +1 -0
  59. package/dist/providers/bedrock/Errors.js +51 -0
  60. package/dist/providers/bedrock/Image.d.ts +33 -0
  61. package/dist/providers/bedrock/Image.d.ts.map +1 -0
  62. package/dist/providers/bedrock/Image.js +154 -0
  63. package/dist/providers/bedrock/Models.d.ts +34 -0
  64. package/dist/providers/bedrock/Models.d.ts.map +1 -0
  65. package/dist/providers/bedrock/Models.js +131 -0
  66. package/dist/providers/bedrock/Moderation.d.ts +23 -0
  67. package/dist/providers/bedrock/Moderation.d.ts.map +1 -0
  68. package/dist/providers/bedrock/Moderation.js +138 -0
  69. package/dist/providers/bedrock/Streaming.d.ts +21 -0
  70. package/dist/providers/bedrock/Streaming.d.ts.map +1 -0
  71. package/dist/providers/bedrock/Streaming.js +239 -0
  72. package/dist/providers/bedrock/config.d.ts +57 -0
  73. package/dist/providers/bedrock/config.d.ts.map +1 -0
  74. package/dist/providers/bedrock/config.js +33 -0
  75. package/dist/providers/bedrock/index.d.ts +8 -0
  76. package/dist/providers/bedrock/index.d.ts.map +1 -0
  77. package/dist/providers/bedrock/index.js +30 -0
  78. package/dist/providers/bedrock/mapper.d.ts +37 -0
  79. package/dist/providers/bedrock/mapper.d.ts.map +1 -0
  80. package/dist/providers/bedrock/mapper.js +204 -0
  81. package/dist/providers/bedrock/types.d.ts +179 -0
  82. package/dist/providers/bedrock/types.d.ts.map +1 -0
  83. package/dist/providers/bedrock/types.js +7 -0
  84. package/dist/providers/deepseek/Capabilities.d.ts +3 -2
  85. package/dist/providers/deepseek/Capabilities.d.ts.map +1 -1
  86. package/dist/providers/deepseek/Capabilities.js +19 -5
  87. package/dist/providers/deepseek/Chat.d.ts.map +1 -1
  88. package/dist/providers/deepseek/Chat.js +2 -2
  89. package/dist/providers/deepseek/DeepSeekProvider.d.ts.map +1 -1
  90. package/dist/providers/deepseek/DeepSeekProvider.js +2 -1
  91. package/dist/providers/deepseek/Errors.d.ts +2 -0
  92. package/dist/providers/deepseek/Errors.d.ts.map +1 -0
  93. package/dist/providers/deepseek/Errors.js +45 -0
  94. package/dist/providers/deepseek/Streaming.d.ts.map +1 -1
  95. package/dist/providers/deepseek/Streaming.js +13 -2
  96. package/dist/providers/gemini/Capabilities.d.ts +1 -0
  97. package/dist/providers/gemini/Capabilities.d.ts.map +1 -1
  98. package/dist/providers/gemini/Capabilities.js +9 -6
  99. package/dist/providers/gemini/Chat.d.ts.map +1 -1
  100. package/dist/providers/gemini/Chat.js +6 -23
  101. package/dist/providers/gemini/Errors.d.ts.map +1 -1
  102. package/dist/providers/gemini/Errors.js +13 -1
  103. package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -1
  104. package/dist/providers/gemini/GeminiProvider.js +2 -1
  105. package/dist/providers/ollama/Capabilities.d.ts.map +1 -1
  106. package/dist/providers/ollama/Capabilities.js +4 -1
  107. package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -1
  108. package/dist/providers/ollama/OllamaProvider.js +2 -2
  109. package/dist/providers/openai/Capabilities.d.ts +1 -0
  110. package/dist/providers/openai/Capabilities.d.ts.map +1 -1
  111. package/dist/providers/openai/Capabilities.js +14 -11
  112. package/dist/providers/openai/Errors.d.ts.map +1 -1
  113. package/dist/providers/openai/Errors.js +31 -5
  114. package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -1
  115. package/dist/providers/openai/OpenAIProvider.js +2 -1
  116. package/dist/providers/openai/Streaming.d.ts.map +1 -1
  117. package/dist/providers/openai/Streaming.js +10 -0
  118. package/dist/providers/openrouter/OpenRouterProvider.d.ts.map +1 -1
  119. package/dist/providers/openrouter/OpenRouterProvider.js +2 -1
  120. package/dist/providers/registry.d.ts +5 -1
  121. package/dist/providers/registry.d.ts.map +1 -1
  122. package/dist/providers/registry.js +12 -3
  123. package/dist/utils/AwsSigV4.d.ts +51 -0
  124. package/dist/utils/AwsSigV4.d.ts.map +1 -0
  125. package/dist/utils/AwsSigV4.js +209 -0
  126. package/dist/utils/json.d.ts +6 -0
  127. package/dist/utils/json.d.ts.map +1 -0
  128. package/dist/utils/json.js +43 -0
  129. package/package.json +1 -1
  130. package/dist/models/models.d.ts +0 -327
  131. package/dist/models/models.d.ts.map +0 -1
  132. package/dist/models/models.js +0 -11138
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Boring, standard JSON extraction logic.
3
+ * Avoids cleverness in favor of predictable industry-standard patterns.
4
+ */
5
+ export function extractJson(text) {
6
+ const cleaned = text.trim();
7
+ // 1. Fast path: The string is already just JSON
8
+ try {
9
+ JSON.parse(cleaned);
10
+ return cleaned;
11
+ }
12
+ catch {
13
+ // Continue extraction
14
+ }
15
+ // 2. Handle Markdown blocks (the most common LLM artifact)
16
+ const markdownMatch = cleaned.match(/```(?:json)?\s*([\s\S]*?)```/);
17
+ if (markdownMatch?.[1]) {
18
+ const candidate = markdownMatch[1].trim();
19
+ try {
20
+ JSON.parse(candidate);
21
+ return candidate;
22
+ }
23
+ catch {
24
+ // Invalid JSON inside backticks, fall through
25
+ }
26
+ }
27
+ // 3. Last resort: Find the first '{' and last '}'
28
+ // This handles conversational filler like "Here is your data: { ... }"
29
+ const firstBrace = cleaned.indexOf("{");
30
+ const lastBrace = cleaned.lastIndexOf("}");
31
+ if (firstBrace !== -1 && lastBrace !== -1 && lastBrace > firstBrace) {
32
+ const candidate = cleaned.substring(firstBrace, lastBrace + 1);
33
+ try {
34
+ JSON.parse(candidate);
35
+ return candidate;
36
+ }
37
+ catch {
38
+ // Not valid JSON
39
+ }
40
+ }
41
+ // 4. Return as-is and let the final JSON.parse() fail loudly
42
+ return cleaned;
43
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-llm/core",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,327 +0,0 @@
1
- export declare const modelsData: ({
2
- id: string;
3
- name: string;
4
- provider: string;
5
- family: string;
6
- created_at: string;
7
- context_window: number;
8
- max_output_tokens: number;
9
- knowledge_cutoff: string;
10
- modalities: {
11
- input: string[];
12
- output: string[];
13
- };
14
- capabilities: string[];
15
- pricing: {
16
- text_tokens: {
17
- standard: {
18
- input_per_million: number;
19
- output_per_million: number;
20
- cached_input_per_million: number;
21
- reasoning_output_per_million: number;
22
- };
23
- };
24
- };
25
- metadata: {
26
- source: string;
27
- input: number;
28
- output: number;
29
- cache_read: number;
30
- cache_write: number;
31
- context: number;
32
- context_over_200k?: undefined;
33
- input_audio?: undefined;
34
- output_audio?: undefined;
35
- };
36
- } | {
37
- id: string;
38
- name: string;
39
- provider: string;
40
- family: string;
41
- created_at: string;
42
- context_window: number;
43
- max_output_tokens: number;
44
- knowledge_cutoff: string;
45
- modalities: {
46
- input: string[];
47
- output: string[];
48
- };
49
- capabilities: string[];
50
- pricing: {
51
- text_tokens: {
52
- standard: {
53
- input_per_million: number;
54
- output_per_million: number;
55
- cached_input_per_million: number;
56
- reasoning_output_per_million: number;
57
- };
58
- };
59
- };
60
- metadata: {
61
- source: string;
62
- input: number;
63
- output: number;
64
- cache_read: number;
65
- cache_write: number;
66
- context_over_200k: {
67
- input: number;
68
- output: number;
69
- cache_read: number;
70
- cache_write: number;
71
- };
72
- context: number;
73
- input_audio?: undefined;
74
- output_audio?: undefined;
75
- };
76
- } | {
77
- id: string;
78
- name: string;
79
- provider: string;
80
- family: string;
81
- created_at: string;
82
- context_window: number;
83
- max_output_tokens: number;
84
- knowledge_cutoff: string;
85
- modalities: {
86
- input: string[];
87
- output: string[];
88
- };
89
- capabilities: string[];
90
- pricing: {
91
- text_tokens: {
92
- standard: {
93
- input_per_million: number;
94
- output_per_million: number;
95
- cached_input_per_million: number;
96
- reasoning_output_per_million: number;
97
- };
98
- };
99
- };
100
- metadata: {
101
- source: string;
102
- input: number;
103
- output: number;
104
- cache_read: number;
105
- context: number;
106
- cache_write?: undefined;
107
- context_over_200k?: undefined;
108
- input_audio?: undefined;
109
- output_audio?: undefined;
110
- };
111
- } | {
112
- id: string;
113
- name: string;
114
- provider: string;
115
- family: string;
116
- created_at: string;
117
- context_window: number;
118
- max_output_tokens: number;
119
- knowledge_cutoff: string;
120
- modalities: {
121
- input: string[];
122
- output: string[];
123
- };
124
- capabilities: string[];
125
- pricing: {
126
- text_tokens: {
127
- standard: {
128
- input_per_million: number;
129
- output_per_million: number;
130
- reasoning_output_per_million: number;
131
- cached_input_per_million?: undefined;
132
- };
133
- };
134
- };
135
- metadata: {
136
- source: string;
137
- input: number;
138
- output: number;
139
- context: number;
140
- cache_read?: undefined;
141
- cache_write?: undefined;
142
- context_over_200k?: undefined;
143
- input_audio?: undefined;
144
- output_audio?: undefined;
145
- };
146
- } | {
147
- id: string;
148
- name: string;
149
- provider: string;
150
- family: string;
151
- created_at: string;
152
- context_window: number;
153
- max_output_tokens: number;
154
- knowledge_cutoff: string;
155
- modalities: {
156
- input: string[];
157
- output: string[];
158
- };
159
- capabilities: string[];
160
- pricing: {
161
- text_tokens: {
162
- standard: {
163
- input_per_million: number;
164
- output_per_million: number;
165
- cached_input_per_million: number;
166
- reasoning_output_per_million: number;
167
- };
168
- };
169
- };
170
- metadata: {
171
- source: string;
172
- input: number;
173
- output: number;
174
- cache_read: number;
175
- input_audio: number;
176
- context: number;
177
- cache_write?: undefined;
178
- context_over_200k?: undefined;
179
- output_audio?: undefined;
180
- };
181
- } | {
182
- id: string;
183
- name: string;
184
- provider: string;
185
- family: string;
186
- created_at: string;
187
- context_window: number;
188
- max_output_tokens: number;
189
- knowledge_cutoff: string;
190
- modalities: {
191
- input: string[];
192
- output: string[];
193
- };
194
- capabilities: string[];
195
- pricing: {
196
- text_tokens: {
197
- standard: {
198
- input_per_million: number;
199
- output_per_million: number;
200
- cached_input_per_million: number;
201
- reasoning_output_per_million: number;
202
- };
203
- };
204
- };
205
- metadata: {
206
- source: string;
207
- input: number;
208
- output: number;
209
- cache_read: number;
210
- context_over_200k: {
211
- input: number;
212
- output: number;
213
- cache_read: number;
214
- cache_write?: undefined;
215
- };
216
- context: number;
217
- cache_write?: undefined;
218
- input_audio?: undefined;
219
- output_audio?: undefined;
220
- };
221
- } | {
222
- id: string;
223
- name: string;
224
- provider: string;
225
- family: string;
226
- created_at: string;
227
- context_window: number;
228
- max_output_tokens: number;
229
- knowledge_cutoff: string;
230
- modalities: {
231
- input: string[];
232
- output: string[];
233
- };
234
- capabilities: string[];
235
- pricing: {
236
- text_tokens: {
237
- standard: {
238
- input_per_million: number;
239
- output_per_million: number;
240
- reasoning_output_per_million: number;
241
- cached_input_per_million?: undefined;
242
- };
243
- };
244
- };
245
- metadata: {
246
- source: string;
247
- input: number;
248
- output: number;
249
- input_audio: number;
250
- output_audio: number;
251
- context: number;
252
- cache_read?: undefined;
253
- cache_write?: undefined;
254
- context_over_200k?: undefined;
255
- };
256
- } | {
257
- id: string;
258
- name: string;
259
- provider: string;
260
- family: string;
261
- created_at: string;
262
- context_window: number;
263
- max_output_tokens: number;
264
- modalities: {
265
- input: string[];
266
- output: string[];
267
- };
268
- capabilities: string[];
269
- pricing: {
270
- text_tokens: {
271
- standard: {
272
- input_per_million: number;
273
- output_per_million: number;
274
- reasoning_output_per_million: number;
275
- cached_input_per_million?: undefined;
276
- };
277
- };
278
- };
279
- metadata: {
280
- source: string;
281
- input: number;
282
- output: number;
283
- context: number;
284
- cache_read?: undefined;
285
- cache_write?: undefined;
286
- context_over_200k?: undefined;
287
- input_audio?: undefined;
288
- output_audio?: undefined;
289
- };
290
- knowledge_cutoff?: undefined;
291
- } | {
292
- id: string;
293
- name: string;
294
- provider: string;
295
- family: string;
296
- created_at: string;
297
- context_window: number;
298
- max_output_tokens: number;
299
- modalities: {
300
- input: string[];
301
- output: string[];
302
- };
303
- capabilities: string[];
304
- pricing: {
305
- text_tokens: {
306
- standard: {
307
- input_per_million: number;
308
- output_per_million: number;
309
- cached_input_per_million: number;
310
- reasoning_output_per_million: number;
311
- };
312
- };
313
- };
314
- metadata: {
315
- source: string;
316
- input: number;
317
- output: number;
318
- cache_read: number;
319
- cache_write: number;
320
- context: number;
321
- context_over_200k?: undefined;
322
- input_audio?: undefined;
323
- output_audio?: undefined;
324
- };
325
- knowledge_cutoff?: undefined;
326
- })[];
327
- //# sourceMappingURL=models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models/models.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAi4VtB,CAAC"}