@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
package/dist/aliases.js CHANGED
@@ -1,80 +1,125 @@
1
1
  export default {
2
+ "claude-2": {
3
+ "bedrock": "anthropic.claude-v2"
4
+ },
5
+ "claude-2.1": {
6
+ "bedrock": "anthropic.claude-v2:1"
7
+ },
2
8
  "claude-3-5-haiku": {
3
9
  "anthropic": "claude-3-5-haiku-20241022",
4
- "openrouter": "anthropic/claude-3.5-haiku"
10
+ "openrouter": "anthropic/claude-3.5-haiku",
11
+ "bedrock": "anthropic.claude-3-5-haiku-20241022-v1:0"
5
12
  },
6
13
  "claude-3-5-sonnet": {
7
14
  "anthropic": "claude-3-5-sonnet-20241022",
8
- "openrouter": "anthropic/claude-3.5-sonnet"
15
+ "openrouter": "anthropic/claude-3.5-sonnet",
16
+ "bedrock": "anthropic.claude-3-5-sonnet-20241022-v2:0"
9
17
  },
10
18
  "claude-3-7-sonnet": {
11
19
  "anthropic": "claude-3-7-sonnet-20250219",
12
- "openrouter": "anthropic/claude-3.7-sonnet"
20
+ "openrouter": "anthropic/claude-3.7-sonnet",
21
+ "bedrock": "anthropic.claude-3-7-sonnet-20250219-v1:0"
22
+ },
23
+ "claude-4-1-opus": {
24
+ "bedrock": "anthropic.claude-opus-4-1-20250805-v1:0"
25
+ },
26
+ "claude-4-5-haiku": {
27
+ "bedrock": "anthropic.claude-haiku-4-5-20251001-v1:0"
28
+ },
29
+ "claude-4-5-opus": {
30
+ "bedrock": "anthropic.claude-opus-4-5-20251101-v1:0"
31
+ },
32
+ "claude-4-5-sonnet": {
33
+ "bedrock": "anthropic.claude-sonnet-4-5-20250929-v1:0"
34
+ },
35
+ "claude-4-opus": {
36
+ "bedrock": "anthropic.claude-opus-4-20250514-v1:0"
37
+ },
38
+ "claude-4-sonnet": {
39
+ "bedrock": "anthropic.claude-sonnet-4-20250514-v1:0"
13
40
  },
14
41
  "claude-haiku-3": {
15
- "anthropic": "claude-3-haiku-20240307"
42
+ "anthropic": "claude-3-haiku-20240307",
43
+ "bedrock": "anthropic.claude-3-haiku-20240307-v1:0"
16
44
  },
17
45
  "claude-haiku-3.5": {
18
46
  "openrouter": "anthropic/claude-3.5-haiku",
19
- "anthropic": "claude-3-5-haiku-20241022"
47
+ "anthropic": "claude-3-5-haiku-20241022",
48
+ "bedrock": "anthropic.claude-3-5-haiku-20241022-v1:0"
20
49
  },
21
50
  "claude-haiku-3.5-latest": {
22
51
  "anthropic": "claude-3-5-haiku-latest"
23
52
  },
24
53
  "claude-haiku-4.5": {
25
54
  "openrouter": "anthropic/claude-haiku-4.5",
26
- "anthropic": "claude-haiku-4-5-20251001"
55
+ "anthropic": "claude-haiku-4-5-20251001",
56
+ "bedrock": "anthropic.claude-haiku-4-5-20251001-v1:0"
27
57
  },
28
58
  "claude-haiku-4.5-latest": {
29
59
  "anthropic": "claude-haiku-4-5"
30
60
  },
61
+ "claude-instant": {
62
+ "bedrock": "anthropic.claude-instant-v1"
63
+ },
31
64
  "claude-opus-3": {
32
- "anthropic": "claude-3-opus-20240229"
65
+ "anthropic": "claude-3-opus-20240229",
66
+ "bedrock": "anthropic.claude-3-opus-20240229-v1:0"
33
67
  },
34
68
  "claude-opus-4": {
35
69
  "openrouter": "anthropic/claude-opus-4",
36
- "anthropic": "claude-opus-4-20250514"
70
+ "anthropic": "claude-opus-4-20250514",
71
+ "bedrock": "anthropic.claude-opus-4-20250514-v1:0"
37
72
  },
38
73
  "claude-opus-4-latest": {
39
74
  "anthropic": "claude-opus-4-0"
40
75
  },
41
76
  "claude-opus-4.1": {
42
77
  "openrouter": "anthropic/claude-opus-4.1",
43
- "anthropic": "claude-opus-4-1-20250805"
78
+ "anthropic": "claude-opus-4-1-20250805",
79
+ "bedrock": "anthropic.claude-opus-4-1-20250805-v1:0"
44
80
  },
45
81
  "claude-opus-4.1-latest": {
46
82
  "anthropic": "claude-opus-4-1"
47
83
  },
48
84
  "claude-opus-4.5": {
49
85
  "openrouter": "anthropic/claude-opus-4.5",
50
- "anthropic": "claude-opus-4-5-20251101"
86
+ "anthropic": "claude-opus-4-5-20251101",
87
+ "bedrock": "anthropic.claude-opus-4-5-20251101-v1:0"
88
+ },
89
+ "claude-opus-4.5-global": {
90
+ "bedrock": "global.anthropic.claude-opus-4-5-20251101-v1:0"
51
91
  },
52
92
  "claude-opus-4.5-latest": {
53
93
  "anthropic": "claude-opus-4-5"
54
94
  },
55
95
  "claude-sonnet-3": {
56
- "anthropic": "claude-3-sonnet-20240229"
96
+ "anthropic": "claude-3-sonnet-20240229",
97
+ "bedrock": "anthropic.claude-3-sonnet-20240229-v1:0"
57
98
  },
58
99
  "claude-sonnet-3.5": {
59
- "anthropic": "claude-3-5-sonnet-20240620"
100
+ "anthropic": "claude-3-5-sonnet-20240620",
101
+ "bedrock": "anthropic.claude-3-5-sonnet-20241022-v2:0"
60
102
  },
61
103
  "claude-sonnet-3.7": {
62
104
  "openrouter": "anthropic/claude-3.7-sonnet",
63
- "anthropic": "claude-3-7-sonnet-20250219"
105
+ "anthropic": "claude-3-7-sonnet-20250219",
106
+ "bedrock": "anthropic.claude-3-7-sonnet-20250219-v1:0"
64
107
  },
65
108
  "claude-sonnet-3.7-latest": {
66
109
  "anthropic": "claude-3-7-sonnet-latest"
67
110
  },
68
111
  "claude-sonnet-4": {
69
112
  "openrouter": "anthropic/claude-sonnet-4",
70
- "anthropic": "claude-sonnet-4-20250514"
113
+ "anthropic": "claude-sonnet-4-20250514",
114
+ "bedrock": "anthropic.claude-sonnet-4-20250514-v1:0"
71
115
  },
72
116
  "claude-sonnet-4-latest": {
73
117
  "anthropic": "claude-sonnet-4-0"
74
118
  },
75
119
  "claude-sonnet-4.5": {
76
120
  "openrouter": "anthropic/claude-sonnet-4.5",
77
- "anthropic": "claude-sonnet-4-5-20250929"
121
+ "anthropic": "claude-sonnet-4-5-20250929",
122
+ "bedrock": "anthropic.claude-sonnet-4-5-20250929-v1:0"
78
123
  },
79
124
  "claude-sonnet-4.5-latest": {
80
125
  "anthropic": "claude-sonnet-4-5"
@@ -85,12 +130,25 @@ export default {
85
130
  "codex-mini": {
86
131
  "openai": "codex-mini-latest"
87
132
  },
133
+ "command": {
134
+ "bedrock": "cohere.command-text-v14"
135
+ },
136
+ "command-light": {
137
+ "bedrock": "cohere.command-light-text-v14"
138
+ },
139
+ "command-r": {
140
+ "bedrock": "cohere.command-r-v1:0"
141
+ },
88
142
  "deephermes-3-llama-3-8b-preview": {
89
143
  "openrouter": "nousresearch/deephermes-3-llama-3-8b-preview"
90
144
  },
91
145
  "deepseek-chat": {
92
146
  "deepseek": "deepseek-chat",
93
- "openrouter": "deepseek/deepseek-chat"
147
+ "openrouter": "deepseek/deepseek-chat",
148
+ "bedrock": "deepseek.v3-v1:0"
149
+ },
150
+ "deepseek-r1": {
151
+ "bedrock": "deepseek.r1-v1:0"
94
152
  },
95
153
  "deepseek-r1-0528-qwen3-8b-free": {
96
154
  "openrouter": "deepseek/deepseek-r1-0528-qwen3-8b:free"
@@ -106,7 +164,8 @@ export default {
106
164
  },
107
165
  "deepseek-reasoner": {
108
166
  "deepseek": "deepseek-reasoner",
109
- "openrouter": "deepseek/deepseek-reasoner"
167
+ "openrouter": "deepseek/deepseek-reasoner",
168
+ "bedrock": "deepseek.r1-v1:0"
110
169
  },
111
170
  "deepseek-v3-0324": {
112
171
  "openrouter": "deepseek/deepseek-chat-v3-0324"
@@ -115,7 +174,8 @@ export default {
115
174
  "openrouter": "deepseek/deepseek-v3-base:free"
116
175
  },
117
176
  "deepseek-v3.1": {
118
- "openrouter": "deepseek/deepseek-chat-v3.1"
177
+ "openrouter": "deepseek/deepseek-chat-v3.1",
178
+ "bedrock": "deepseek.v3-v1:0"
119
179
  },
120
180
  "deepseek-v3.1-terminus": {
121
181
  "openrouter": "deepseek/deepseek-v3.1-terminus"
@@ -254,6 +314,9 @@ export default {
254
314
  "gemma-3-27b-it": {
255
315
  "openrouter": "google/gemma-3-27b-it"
256
316
  },
317
+ "gemma-3-4b-it": {
318
+ "bedrock": "google.gemma-3-4b-it"
319
+ },
257
320
  "gemma-3n-4b-free": {
258
321
  "openrouter": "google/gemma-3n-e4b-it:free"
259
322
  },
@@ -285,6 +348,12 @@ export default {
285
348
  "glm-z1-32b-free": {
286
349
  "openrouter": "thudm/glm-z1-32b:free"
287
350
  },
351
+ "google-gemma-3-12b": {
352
+ "bedrock": "google.gemma-3-12b-it"
353
+ },
354
+ "google-gemma-3-27b-instruct": {
355
+ "bedrock": "google.gemma-3-27b-it"
356
+ },
288
357
  "gpt-3.5-turbo": {
289
358
  "openai": "gpt-3.5-turbo"
290
359
  },
@@ -387,17 +456,23 @@ export default {
387
456
  },
388
457
  "gpt-oss-120b": {
389
458
  "gemini": "openai/gpt-oss-120b-maas",
390
- "openrouter": "openai/gpt-oss-120b"
459
+ "openrouter": "openai/gpt-oss-120b",
460
+ "bedrock": "openai.gpt-oss-120b-1:0"
391
461
  },
392
462
  "gpt-oss-120b-exacto": {
393
463
  "openrouter": "openai/gpt-oss-120b:exacto"
394
464
  },
395
465
  "gpt-oss-20b": {
396
466
  "gemini": "openai/gpt-oss-20b-maas",
397
- "openrouter": "openai/gpt-oss-20b"
467
+ "openrouter": "openai/gpt-oss-20b",
468
+ "bedrock": "openai.gpt-oss-20b-1:0"
469
+ },
470
+ "gpt-oss-safeguard-120b": {
471
+ "bedrock": "openai.gpt-oss-safeguard-120b"
398
472
  },
399
473
  "gpt-oss-safeguard-20b": {
400
- "openrouter": "openai/gpt-oss-safeguard-20b"
474
+ "openrouter": "openai/gpt-oss-safeguard-20b",
475
+ "bedrock": "openai.gpt-oss-safeguard-20b"
401
476
  },
402
477
  "grok-3": {
403
478
  "openrouter": "x-ai/grok-3"
@@ -429,6 +504,12 @@ export default {
429
504
  "hermes-4-70b": {
430
505
  "openrouter": "nousresearch/hermes-4-70b"
431
506
  },
507
+ "jamba-1.5-large": {
508
+ "bedrock": "ai21.jamba-1-5-large-v1:0"
509
+ },
510
+ "jamba-1.5-mini": {
511
+ "bedrock": "ai21.jamba-1-5-mini-v1:0"
512
+ },
432
513
  "kat-coder-pro-free": {
433
514
  "openrouter": "kwaipilot/kat-coder-pro:free"
434
515
  },
@@ -448,14 +529,85 @@ export default {
448
529
  "openrouter": "moonshotai/kimi-k2-0905:exacto"
449
530
  },
450
531
  "kimi-k2-thinking": {
451
- "openrouter": "moonshotai/kimi-k2-thinking"
532
+ "openrouter": "moonshotai/kimi-k2-thinking",
533
+ "bedrock": "moonshot.kimi-k2-thinking"
534
+ },
535
+ "kimi-k2.5": {
536
+ "openrouter": "moonshotai/kimi-k2.5"
537
+ },
538
+ "llama-3-1-70b": {
539
+ "bedrock": "meta.llama3-1-70b-instruct-v1:0",
540
+ "openrouter": "meta-llama/llama-3.1-70b-instruct"
541
+ },
542
+ "llama-3-1-7b": {
543
+ "bedrock": "meta.llama3-1-8b-instruct-v1:0",
544
+ "openrouter": "meta-llama/llama-3.1-8b-instruct"
545
+ },
546
+ "llama-3-2-11b": {
547
+ "bedrock": "meta.llama3-2-11b-instruct-v1:0",
548
+ "openrouter": "meta-llama/llama-3.2-11b-instruct"
549
+ },
550
+ "llama-3-2-1b": {
551
+ "bedrock": "meta.llama3-2-1b-instruct-v1:0",
552
+ "openrouter": "meta-llama/llama-3.2-1b-instruct"
553
+ },
554
+ "llama-3-2-3b": {
555
+ "bedrock": "meta.llama3-2-3b-instruct-v1:0",
556
+ "openrouter": "meta-llama/llama-3.2-3b-instruct"
557
+ },
558
+ "llama-3-2-90b": {
559
+ "bedrock": "meta.llama3-2-90b-instruct-v1:0",
560
+ "openrouter": "meta-llama/llama-3.2-90b-instruct"
561
+ },
562
+ "llama-3-3-70b": {
563
+ "bedrock": "meta.llama3-3-70b-instruct-v1:0",
564
+ "openrouter": "meta-llama/llama-3.3-70b-instruct"
565
+ },
566
+ "llama-3-70b-instruct": {
567
+ "bedrock": "meta.llama3-70b-instruct-v1:0"
568
+ },
569
+ "llama-3-8b-instruct": {
570
+ "bedrock": "meta.llama3-8b-instruct-v1:0"
571
+ },
572
+ "llama-3.1-70b-instruct": {
573
+ "bedrock": "meta.llama3-1-70b-instruct-v1:0"
574
+ },
575
+ "llama-3.1-8b-instruct": {
576
+ "bedrock": "meta.llama3-1-8b-instruct-v1:0"
577
+ },
578
+ "llama-3.2-11b-instruct": {
579
+ "bedrock": "meta.llama3-2-11b-instruct-v1:0"
452
580
  },
453
581
  "llama-3.2-11b-vision-instruct": {
454
582
  "openrouter": "meta-llama/llama-3.2-11b-vision-instruct"
455
583
  },
584
+ "llama-3.2-1b-instruct": {
585
+ "bedrock": "meta.llama3-2-1b-instruct-v1:0"
586
+ },
587
+ "llama-3.2-3b-instruct": {
588
+ "bedrock": "meta.llama3-2-3b-instruct-v1:0"
589
+ },
590
+ "llama-3.2-90b-instruct": {
591
+ "bedrock": "meta.llama3-2-90b-instruct-v1:0"
592
+ },
593
+ "llama-3.3-70b-instruct": {
594
+ "bedrock": "meta.llama3-3-70b-instruct-v1:0"
595
+ },
456
596
  "llama-3.3-70b-instruct-free": {
457
597
  "openrouter": "meta-llama/llama-3.3-70b-instruct:free"
458
598
  },
599
+ "llama-4-maverick": {
600
+ "bedrock": "meta.llama4-maverick-17b-instruct-v1:0"
601
+ },
602
+ "llama-4-maverick-17b-instruct": {
603
+ "bedrock": "meta.llama4-maverick-17b-instruct-v1:0"
604
+ },
605
+ "llama-4-scout": {
606
+ "bedrock": "meta.llama4-scout-17b-instruct-v1:0"
607
+ },
608
+ "llama-4-scout-17b-instruct": {
609
+ "bedrock": "meta.llama4-scout-17b-instruct-v1:0"
610
+ },
459
611
  "llama-4-scout-free": {
460
612
  "openrouter": "meta-llama/llama-4-scout:free"
461
613
  },
@@ -469,14 +621,31 @@ export default {
469
621
  "openrouter": "minimax/minimax-m1"
470
622
  },
471
623
  "minimax-m2": {
472
- "openrouter": "minimax/minimax-m2"
624
+ "openrouter": "minimax/minimax-m2",
625
+ "bedrock": "minimax.minimax-m2"
473
626
  },
474
627
  "minimax-m2.1": {
475
628
  "openrouter": "minimax/minimax-m2.1"
476
629
  },
630
+ "ministral-14b-3.0": {
631
+ "bedrock": "mistral.ministral-3-14b-instruct"
632
+ },
633
+ "ministral-3-8b": {
634
+ "bedrock": "mistral.ministral-3-8b-instruct"
635
+ },
477
636
  "mistral-7b-instruct-free": {
478
637
  "openrouter": "mistralai/mistral-7b-instruct:free"
479
638
  },
639
+ "mistral-7b-instruct-v0.3": {
640
+ "bedrock": "mistral.mistral-7b-instruct-v0:2"
641
+ },
642
+ "mistral-large": {
643
+ "bedrock": "mistral.mistral-large-2402-v1:0",
644
+ "openrouter": "mistralai/mistral-large"
645
+ },
646
+ "mistral-large-24.02": {
647
+ "bedrock": "mistral.mistral-large-2402-v1:0"
648
+ },
480
649
  "mistral-medium-3": {
481
650
  "openrouter": "mistralai/mistral-medium-3"
482
651
  },
@@ -495,8 +664,30 @@ export default {
495
664
  "mistral-small-3.2-24b-instruct": {
496
665
  "openrouter": "mistralai/mistral-small-3.2-24b-instruct"
497
666
  },
667
+ "mixtral-8x7b-instruct-v0.1": {
668
+ "bedrock": "mistral.mixtral-8x7b-instruct-v0:1"
669
+ },
670
+ "nova-2-lite": {
671
+ "bedrock": "amazon.nova-2-lite-v1:0"
672
+ },
673
+ "nova-lite": {
674
+ "bedrock": "amazon.nova-lite-v1:0"
675
+ },
676
+ "nova-micro": {
677
+ "bedrock": "amazon.nova-micro-v1:0"
678
+ },
679
+ "nova-premier": {
680
+ "bedrock": "amazon.nova-premier-v1:0"
681
+ },
682
+ "nova-pro": {
683
+ "bedrock": "amazon.nova-pro-v1:0"
684
+ },
685
+ "nvidia-nemotron-nano-12b-v2-vl-bf16": {
686
+ "bedrock": "nvidia.nemotron-nano-12b-v2"
687
+ },
498
688
  "nvidia-nemotron-nano-9b": {
499
- "openrouter": "nvidia/nemotron-nano-9b-v2"
689
+ "openrouter": "nvidia/nemotron-nano-9b-v2",
690
+ "bedrock": "nvidia.nemotron-nano-9b-v2"
500
691
  },
501
692
  "o1": {
502
693
  "openai": "o1",
@@ -543,6 +734,9 @@ export default {
543
734
  "qwen3-14b-free": {
544
735
  "openrouter": "qwen/qwen3-14b:free"
545
736
  },
737
+ "qwen3-235b-a22b-2507": {
738
+ "bedrock": "qwen.qwen3-235b-a22b-2507-v1:0"
739
+ },
546
740
  "qwen3-235b-a22b-free": {
547
741
  "openrouter": "qwen/qwen3-235b-a22b:free"
548
742
  },
@@ -564,6 +758,9 @@ export default {
564
758
  "qwen3-30b-a3b-thinking-2507": {
565
759
  "openrouter": "qwen/qwen3-30b-a3b-thinking-2507"
566
760
  },
761
+ "qwen3-32b-dense": {
762
+ "bedrock": "qwen.qwen3-32b-v1:0"
763
+ },
567
764
  "qwen3-32b-free": {
568
765
  "openrouter": "qwen/qwen3-32b:free"
569
766
  },
@@ -574,7 +771,11 @@ export default {
574
771
  "openrouter": "qwen/qwen3-coder"
575
772
  },
576
773
  "qwen3-coder-30b-a3b-instruct": {
577
- "openrouter": "qwen/qwen3-coder-30b-a3b-instruct"
774
+ "openrouter": "qwen/qwen3-coder-30b-a3b-instruct",
775
+ "bedrock": "qwen.qwen3-coder-30b-a3b-v1:0"
776
+ },
777
+ "qwen3-coder-480b-a35b-instruct": {
778
+ "bedrock": "qwen.qwen3-coder-480b-a35b-v1:0"
578
779
  },
579
780
  "qwen3-coder-480b-a35b-instruct-free": {
580
781
  "openrouter": "qwen/qwen3-coder:free"
@@ -594,6 +795,12 @@ export default {
594
795
  "qwen3-next-80b-a3b-thinking": {
595
796
  "openrouter": "qwen/qwen3-next-80b-a3b-thinking"
596
797
  },
798
+ "qwenqwen3-next-80b-a3b-instruct": {
799
+ "bedrock": "qwen.qwen3-next-80b-a3b"
800
+ },
801
+ "qwenqwen3-vl-235b-a22b-instruct": {
802
+ "bedrock": "qwen.qwen3-vl-235b-a22b"
803
+ },
597
804
  "qwerky-72b": {
598
805
  "openrouter": "featherless/qwerky-72b"
599
806
  },
@@ -626,5 +833,14 @@ export default {
626
833
  },
627
834
  "text-embedding-ada-002": {
628
835
  "openai": "text-embedding-ada-002"
836
+ },
837
+ "titan-text-g1---express": {
838
+ "bedrock": "amazon.titan-text-express-v1"
839
+ },
840
+ "voxtral-mini-3b-2507": {
841
+ "bedrock": "mistral.voxtral-mini-3b-2507"
842
+ },
843
+ "voxtral-small-24b-2507": {
844
+ "bedrock": "mistral.voxtral-small-24b-2507"
629
845
  }
630
846
  };
@@ -1,5 +1,5 @@
1
1
  import { Message } from "./Message.js";
2
- import { ContentPart } from "./Content.js";
2
+ import { ContentPart, MessageContent } from "./Content.js";
3
3
  import { ChatOptions } from "./ChatOptions.js";
4
4
  import { Provider, Usage, ChatChunk, ThinkingConfig } from "../providers/Provider.js";
5
5
  import { Stream } from "../streaming/Stream.js";
@@ -19,7 +19,7 @@ export interface AskOptions {
19
19
  signal?: AbortSignal;
20
20
  }
21
21
  import { ChatResponseString } from "./ChatResponse.js";
22
- export declare class Chat {
22
+ export declare class Chat<S = unknown> {
23
23
  private readonly provider;
24
24
  private model;
25
25
  private readonly options;
@@ -79,7 +79,11 @@ export declare class Chat {
79
79
  * Add a message manually to the chat history.
80
80
  * Useful for rehydrating sessions from a database.
81
81
  */
82
- add(role: "user" | "assistant" | "system" | "developer", content: string): this;
82
+ add(role: "user" | "assistant" | "system" | "developer" | "tool", content: string | MessageContent): this;
83
+ /**
84
+ * Add a raw Message object to the chat history.
85
+ */
86
+ addMessage(message: Message): this;
83
87
  /**
84
88
  * Set the temperature for the chat session.
85
89
  * Controls randomness: 0.0 (deterministic) to 1.0 (creative).
@@ -106,7 +110,7 @@ export declare class Chat {
106
110
  * Enforce a specific schema for the output.
107
111
  * Can accept a Schema object or a Zod schema/JSON Schema directly.
108
112
  */
109
- withSchema(schema: Schema | z.ZodType<unknown> | Record<string, unknown> | null): this;
113
+ withSchema<T>(schema: Schema | z.ZodType<T> | Record<string, unknown> | null): Chat<T>;
110
114
  /**
111
115
  * Enable and configure extended thinking for reasoning models.
112
116
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../src/chat/Chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../src/chat/Chat.ts"],"names":[],"mappings":"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"}
package/dist/chat/Chat.js CHANGED
@@ -2,6 +2,7 @@ import { FileLoader } from "../utils/FileLoader.js";
2
2
  import { isBinaryContent, formatMultimodalContent } from "./Content.js";
3
3
  import { Executor } from "../executor/Executor.js";
4
4
  import { ChatStream } from "./ChatStream.js";
5
+ import { ModelRegistry } from "../models/ModelRegistry.js";
5
6
  import { Schema } from "../schema/Schema.js";
6
7
  import { toJsonSchema } from "../schema/to-json-schema.js";
7
8
  import { z } from "zod";
@@ -139,11 +140,25 @@ export class Chat {
139
140
  * Useful for rehydrating sessions from a database.
140
141
  */
141
142
  add(role, content) {
143
+ // Ensure content matches MessageContent type
144
+ const safeContent = content;
142
145
  if (role === "system" || role === "developer") {
143
- this.systemMessages.push({ role, content });
146
+ this.systemMessages.push({ role, content: safeContent });
144
147
  }
145
148
  else {
146
- this.messages.push({ role, content });
149
+ this.messages.push({ role, content: safeContent });
150
+ }
151
+ return this;
152
+ }
153
+ /**
154
+ * Add a raw Message object to the chat history.
155
+ */
156
+ addMessage(message) {
157
+ if (message.role === "system" || message.role === "developer") {
158
+ this.systemMessages.push(message);
159
+ }
160
+ else {
161
+ this.messages.push(message);
147
162
  }
148
163
  return this;
149
164
  }
@@ -342,6 +357,13 @@ export class Chat {
342
357
  const totalUsage = { input_tokens: 0, output_tokens: 0, total_tokens: 0 };
343
358
  const trackUsage = (u) => {
344
359
  if (u) {
360
+ // Fallback cost calculation if provider didn't return it
361
+ if (u.cost === undefined) {
362
+ const withCost = ModelRegistry.calculateCost(u, this.model, this.provider.id);
363
+ u.cost = withCost.cost;
364
+ u.input_cost = withCost.input_cost;
365
+ u.output_cost = withCost.output_cost;
366
+ }
345
367
  totalUsage.input_tokens += u.input_tokens;
346
368
  totalUsage.output_tokens += u.output_tokens;
347
369
  totalUsage.total_tokens += u.total_tokens;
@@ -351,6 +373,12 @@ export class Chat {
351
373
  if (u.cost !== undefined) {
352
374
  totalUsage.cost = (totalUsage.cost ?? 0) + u.cost;
353
375
  }
376
+ if (u.input_cost !== undefined) {
377
+ totalUsage.input_cost = (totalUsage.input_cost ?? 0) + u.input_cost;
378
+ }
379
+ if (u.output_cost !== undefined) {
380
+ totalUsage.output_cost = (totalUsage.output_cost ?? 0) + u.output_cost;
381
+ }
354
382
  }
355
383
  };
356
384
  // First round
@@ -358,7 +386,7 @@ export class Chat {
358
386
  this.options.onNewMessage();
359
387
  let response = await this.executor.executeChat(executeOptions);
360
388
  trackUsage(response.usage);
361
- let assistantMessage = new ChatResponseString(response.content ?? "", response.usage ?? { input_tokens: 0, output_tokens: 0, total_tokens: 0 }, this.model, this.provider.id, response.thinking, response.reasoning, response.tool_calls);
389
+ let assistantMessage = new ChatResponseString(response.content ?? "", response.usage ?? { input_tokens: 0, output_tokens: 0, total_tokens: 0 }, this.model, this.provider.id, response.thinking, response.reasoning, response.tool_calls, response.finish_reason, this.options.schema);
362
390
  // --- Content Policy Hooks (Output - Turn 1) ---
363
391
  if (this.options.onAfterResponse) {
364
392
  const result = await this.options.onAfterResponse(assistantMessage);
@@ -442,7 +470,7 @@ export class Chat {
442
470
  ...this.options.params
443
471
  });
444
472
  trackUsage(response.usage);
445
- assistantMessage = new ChatResponseString(response.content ?? "", response.usage ?? { input_tokens: 0, output_tokens: 0, total_tokens: 0 }, this.model, this.provider.id, response.thinking, response.reasoning);
473
+ assistantMessage = new ChatResponseString(response.content ?? "", response.usage ?? { input_tokens: 0, output_tokens: 0, total_tokens: 0 }, this.model, this.provider.id, response.thinking, response.reasoning, response.tool_calls, response.finish_reason, this.options.schema);
446
474
  // --- Content Policy Hooks (Output - Tool Turns) ---
447
475
  if (this.options.onAfterResponse) {
448
476
  const result = await this.options.onAfterResponse(assistantMessage);
@@ -462,7 +490,7 @@ export class Chat {
462
490
  }
463
491
  // For the final return, we might want to aggregate reasoning too if it happened in multiple turns?
464
492
  // Usually reasoning only happens once or we just want the last one.
465
- return new ChatResponseString(assistantMessage.toString() || "", totalUsage, this.model, this.provider.id, assistantMessage.thinking, assistantMessage.reasoning, response.tool_calls);
493
+ return new ChatResponseString(assistantMessage.toString() || "", totalUsage, this.model, this.provider.id, assistantMessage.thinking, assistantMessage.reasoning, response.tool_calls, assistantMessage.finish_reason, this.options.schema);
466
494
  }
467
495
  /**
468
496
  * Streams the model's response to a user question.
@@ -1,5 +1,6 @@
1
1
  import { Usage, ThinkingResult } from "../providers/Provider.js";
2
2
  import { ToolCall } from "./Tool.js";
3
+ import { Schema } from "../schema/Schema.js";
3
4
  /**
4
5
  * Enhanced string that includes token usage metadata.
5
6
  * Behaves like a regular string but has .usage and .input_tokens etc.
@@ -11,7 +12,12 @@ export declare class ChatResponseString extends String {
11
12
  readonly thinking?: ThinkingResult | undefined;
12
13
  readonly reasoning?: string | null | undefined;
13
14
  readonly tool_calls?: ToolCall[] | undefined;
14
- constructor(content: string, usage: Usage, model: string, provider: string, thinking?: ThinkingResult | undefined, reasoning?: string | null | undefined, tool_calls?: ToolCall[] | undefined);
15
+ readonly finish_reason?: string | null | undefined;
16
+ readonly schema?: Schema | undefined;
17
+ private _cachedData;
18
+ private _validationError;
19
+ constructor(content: string, usage: Usage, model: string, provider: string, thinking?: ThinkingResult | undefined, reasoning?: string | null | undefined, tool_calls?: ToolCall[] | undefined, finish_reason?: string | null | undefined, schema?: Schema | undefined);
20
+ get finishReason(): string | null | undefined;
15
21
  get input_tokens(): number;
16
22
  get output_tokens(): number;
17
23
  get total_tokens(): number;
@@ -36,6 +42,7 @@ export declare class ChatResponseString extends String {
36
42
  thinking: ThinkingResult | undefined;
37
43
  reasoning: string | null | undefined;
38
44
  tool_calls: ToolCall[] | undefined;
45
+ finish_reason: string | null | undefined;
39
46
  };
40
47
  /**
41
48
  * Alias for meta (backwards compatibility)
@@ -47,6 +54,7 @@ export declare class ChatResponseString extends String {
47
54
  thinking: ThinkingResult | undefined;
48
55
  reasoning: string | null | undefined;
49
56
  tool_calls: ToolCall[] | undefined;
57
+ finish_reason: string | null | undefined;
50
58
  };
51
59
  toString(): string;
52
60
  /**
@@ -54,9 +62,26 @@ export declare class ChatResponseString extends String {
54
62
  */
55
63
  withContent(newContent: string): ChatResponseString;
56
64
  /**
57
- * Attempt to parse the content as JSON.
58
- * Returns the parsed object or null if parsing fails.
65
+ * Attempt to extract and parse the content as JSON.
59
66
  */
60
67
  get parsed(): unknown;
68
+ /**
69
+ * Access the parsed data.
70
+ * If a Zod schema was provided via .withSchema(), this will validate the data.
71
+ * Throws ZodError if validation fails.
72
+ */
73
+ get data(): unknown;
74
+ /**
75
+ * Safe version of .data that returns null instead of throwing on validation error.
76
+ */
77
+ get safeData(): unknown;
78
+ /**
79
+ * Returns true if the content contains valid JSON that matches the schema (if provided).
80
+ */
81
+ get isValid(): boolean;
82
+ /**
83
+ * Returns the validation error if the content doesn't match the schema.
84
+ */
85
+ get validationError(): Error | null;
61
86
  }
62
87
  //# sourceMappingURL=ChatResponse.d.ts.map