@node-llm/core 1.7.0 → 1.8.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 (81) hide show
  1. package/README.md +9 -8
  2. package/dist/aliases.d.ts +213 -0
  3. package/dist/aliases.d.ts.map +1 -1
  4. package/dist/aliases.js +238 -25
  5. package/dist/chat/Chat.d.ts +2 -2
  6. package/dist/chat/Chat.d.ts.map +1 -1
  7. package/dist/chat/Chat.js +21 -5
  8. package/dist/chat/ChatResponse.d.ts +5 -1
  9. package/dist/chat/ChatResponse.d.ts.map +1 -1
  10. package/dist/chat/ChatResponse.js +9 -3
  11. package/dist/chat/Content.d.ts +7 -0
  12. package/dist/chat/Content.d.ts.map +1 -1
  13. package/dist/config.d.ts +28 -0
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +50 -0
  16. package/dist/llm.d.ts.map +1 -1
  17. package/dist/llm.js +3 -2
  18. package/dist/models/models.d.ts +321 -76
  19. package/dist/models/models.d.ts.map +1 -1
  20. package/dist/models/models.js +7764 -2934
  21. package/dist/providers/Provider.d.ts +5 -0
  22. package/dist/providers/Provider.d.ts.map +1 -1
  23. package/dist/providers/anthropic/Capabilities.d.ts +1 -0
  24. package/dist/providers/anthropic/Capabilities.d.ts.map +1 -1
  25. package/dist/providers/anthropic/Capabilities.js +8 -5
  26. package/dist/providers/bedrock/BedrockProvider.d.ts +53 -0
  27. package/dist/providers/bedrock/BedrockProvider.d.ts.map +1 -0
  28. package/dist/providers/bedrock/BedrockProvider.js +107 -0
  29. package/dist/providers/bedrock/Capabilities.d.ts +50 -0
  30. package/dist/providers/bedrock/Capabilities.d.ts.map +1 -0
  31. package/dist/providers/bedrock/Capabilities.js +233 -0
  32. package/dist/providers/bedrock/Chat.d.ts +26 -0
  33. package/dist/providers/bedrock/Chat.d.ts.map +1 -0
  34. package/dist/providers/bedrock/Chat.js +170 -0
  35. package/dist/providers/bedrock/Embeddings.d.ts +22 -0
  36. package/dist/providers/bedrock/Embeddings.d.ts.map +1 -0
  37. package/dist/providers/bedrock/Embeddings.js +100 -0
  38. package/dist/providers/bedrock/Image.d.ts +33 -0
  39. package/dist/providers/bedrock/Image.d.ts.map +1 -0
  40. package/dist/providers/bedrock/Image.js +154 -0
  41. package/dist/providers/bedrock/Models.d.ts +34 -0
  42. package/dist/providers/bedrock/Models.d.ts.map +1 -0
  43. package/dist/providers/bedrock/Models.js +131 -0
  44. package/dist/providers/bedrock/Moderation.d.ts +23 -0
  45. package/dist/providers/bedrock/Moderation.d.ts.map +1 -0
  46. package/dist/providers/bedrock/Moderation.js +138 -0
  47. package/dist/providers/bedrock/Streaming.d.ts +21 -0
  48. package/dist/providers/bedrock/Streaming.d.ts.map +1 -0
  49. package/dist/providers/bedrock/Streaming.js +240 -0
  50. package/dist/providers/bedrock/config.d.ts +57 -0
  51. package/dist/providers/bedrock/config.d.ts.map +1 -0
  52. package/dist/providers/bedrock/config.js +33 -0
  53. package/dist/providers/bedrock/index.d.ts +8 -0
  54. package/dist/providers/bedrock/index.d.ts.map +1 -0
  55. package/dist/providers/bedrock/index.js +30 -0
  56. package/dist/providers/bedrock/mapper.d.ts +37 -0
  57. package/dist/providers/bedrock/mapper.d.ts.map +1 -0
  58. package/dist/providers/bedrock/mapper.js +204 -0
  59. package/dist/providers/bedrock/types.d.ts +179 -0
  60. package/dist/providers/bedrock/types.d.ts.map +1 -0
  61. package/dist/providers/bedrock/types.js +7 -0
  62. package/dist/providers/deepseek/Capabilities.d.ts +3 -2
  63. package/dist/providers/deepseek/Capabilities.d.ts.map +1 -1
  64. package/dist/providers/deepseek/Capabilities.js +19 -5
  65. package/dist/providers/gemini/Capabilities.d.ts +1 -0
  66. package/dist/providers/gemini/Capabilities.d.ts.map +1 -1
  67. package/dist/providers/gemini/Capabilities.js +9 -6
  68. package/dist/providers/gemini/Chat.d.ts.map +1 -1
  69. package/dist/providers/gemini/Chat.js +6 -23
  70. package/dist/providers/ollama/Capabilities.d.ts.map +1 -1
  71. package/dist/providers/ollama/Capabilities.js +4 -1
  72. package/dist/providers/openai/Capabilities.d.ts +1 -0
  73. package/dist/providers/openai/Capabilities.d.ts.map +1 -1
  74. package/dist/providers/openai/Capabilities.js +14 -11
  75. package/dist/providers/registry.d.ts +2 -1
  76. package/dist/providers/registry.d.ts.map +1 -1
  77. package/dist/providers/registry.js +2 -1
  78. package/dist/utils/AwsSigV4.d.ts +51 -0
  79. package/dist/utils/AwsSigV4.d.ts.map +1 -0
  80. package/dist/utils/AwsSigV4.js +209 -0
  81. package/package.json +1 -1
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,82 @@ 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
+ "llama-3-1-70b": {
536
+ "bedrock": "meta.llama3-1-70b-instruct-v1:0",
537
+ "openrouter": "meta-llama/llama-3.1-70b-instruct"
538
+ },
539
+ "llama-3-1-7b": {
540
+ "bedrock": "meta.llama3-1-8b-instruct-v1:0",
541
+ "openrouter": "meta-llama/llama-3.1-8b-instruct"
542
+ },
543
+ "llama-3-2-11b": {
544
+ "bedrock": "meta.llama3-2-11b-instruct-v1:0",
545
+ "openrouter": "meta-llama/llama-3.2-11b-instruct"
546
+ },
547
+ "llama-3-2-1b": {
548
+ "bedrock": "meta.llama3-2-1b-instruct-v1:0",
549
+ "openrouter": "meta-llama/llama-3.2-1b-instruct"
550
+ },
551
+ "llama-3-2-3b": {
552
+ "bedrock": "meta.llama3-2-3b-instruct-v1:0",
553
+ "openrouter": "meta-llama/llama-3.2-3b-instruct"
554
+ },
555
+ "llama-3-2-90b": {
556
+ "bedrock": "meta.llama3-2-90b-instruct-v1:0",
557
+ "openrouter": "meta-llama/llama-3.2-90b-instruct"
558
+ },
559
+ "llama-3-3-70b": {
560
+ "bedrock": "meta.llama3-3-70b-instruct-v1:0",
561
+ "openrouter": "meta-llama/llama-3.3-70b-instruct"
562
+ },
563
+ "llama-3-70b-instruct": {
564
+ "bedrock": "meta.llama3-70b-instruct-v1:0"
565
+ },
566
+ "llama-3-8b-instruct": {
567
+ "bedrock": "meta.llama3-8b-instruct-v1:0"
568
+ },
569
+ "llama-3.1-70b-instruct": {
570
+ "bedrock": "meta.llama3-1-70b-instruct-v1:0"
571
+ },
572
+ "llama-3.1-8b-instruct": {
573
+ "bedrock": "meta.llama3-1-8b-instruct-v1:0"
574
+ },
575
+ "llama-3.2-11b-instruct": {
576
+ "bedrock": "meta.llama3-2-11b-instruct-v1:0"
452
577
  },
453
578
  "llama-3.2-11b-vision-instruct": {
454
579
  "openrouter": "meta-llama/llama-3.2-11b-vision-instruct"
455
580
  },
581
+ "llama-3.2-1b-instruct": {
582
+ "bedrock": "meta.llama3-2-1b-instruct-v1:0"
583
+ },
584
+ "llama-3.2-3b-instruct": {
585
+ "bedrock": "meta.llama3-2-3b-instruct-v1:0"
586
+ },
587
+ "llama-3.2-90b-instruct": {
588
+ "bedrock": "meta.llama3-2-90b-instruct-v1:0"
589
+ },
590
+ "llama-3.3-70b-instruct": {
591
+ "bedrock": "meta.llama3-3-70b-instruct-v1:0"
592
+ },
456
593
  "llama-3.3-70b-instruct-free": {
457
594
  "openrouter": "meta-llama/llama-3.3-70b-instruct:free"
458
595
  },
596
+ "llama-4-maverick": {
597
+ "bedrock": "meta.llama4-maverick-17b-instruct-v1:0"
598
+ },
599
+ "llama-4-maverick-17b-instruct": {
600
+ "bedrock": "meta.llama4-maverick-17b-instruct-v1:0"
601
+ },
602
+ "llama-4-scout": {
603
+ "bedrock": "meta.llama4-scout-17b-instruct-v1:0"
604
+ },
605
+ "llama-4-scout-17b-instruct": {
606
+ "bedrock": "meta.llama4-scout-17b-instruct-v1:0"
607
+ },
459
608
  "llama-4-scout-free": {
460
609
  "openrouter": "meta-llama/llama-4-scout:free"
461
610
  },
@@ -469,14 +618,31 @@ export default {
469
618
  "openrouter": "minimax/minimax-m1"
470
619
  },
471
620
  "minimax-m2": {
472
- "openrouter": "minimax/minimax-m2"
621
+ "openrouter": "minimax/minimax-m2",
622
+ "bedrock": "minimax.minimax-m2"
473
623
  },
474
624
  "minimax-m2.1": {
475
625
  "openrouter": "minimax/minimax-m2.1"
476
626
  },
627
+ "ministral-14b-3.0": {
628
+ "bedrock": "mistral.ministral-3-14b-instruct"
629
+ },
630
+ "ministral-3-8b": {
631
+ "bedrock": "mistral.ministral-3-8b-instruct"
632
+ },
477
633
  "mistral-7b-instruct-free": {
478
634
  "openrouter": "mistralai/mistral-7b-instruct:free"
479
635
  },
636
+ "mistral-7b-instruct-v0.3": {
637
+ "bedrock": "mistral.mistral-7b-instruct-v0:2"
638
+ },
639
+ "mistral-large": {
640
+ "bedrock": "mistral.mistral-large-2402-v1:0",
641
+ "openrouter": "mistralai/mistral-large"
642
+ },
643
+ "mistral-large-24.02": {
644
+ "bedrock": "mistral.mistral-large-2402-v1:0"
645
+ },
480
646
  "mistral-medium-3": {
481
647
  "openrouter": "mistralai/mistral-medium-3"
482
648
  },
@@ -495,8 +661,30 @@ export default {
495
661
  "mistral-small-3.2-24b-instruct": {
496
662
  "openrouter": "mistralai/mistral-small-3.2-24b-instruct"
497
663
  },
664
+ "mixtral-8x7b-instruct-v0.1": {
665
+ "bedrock": "mistral.mixtral-8x7b-instruct-v0:1"
666
+ },
667
+ "nova-2-lite": {
668
+ "bedrock": "amazon.nova-2-lite-v1:0"
669
+ },
670
+ "nova-lite": {
671
+ "bedrock": "amazon.nova-lite-v1:0"
672
+ },
673
+ "nova-micro": {
674
+ "bedrock": "amazon.nova-micro-v1:0"
675
+ },
676
+ "nova-premier": {
677
+ "bedrock": "amazon.nova-premier-v1:0"
678
+ },
679
+ "nova-pro": {
680
+ "bedrock": "amazon.nova-pro-v1:0"
681
+ },
682
+ "nvidia-nemotron-nano-12b-v2-vl-bf16": {
683
+ "bedrock": "nvidia.nemotron-nano-12b-v2"
684
+ },
498
685
  "nvidia-nemotron-nano-9b": {
499
- "openrouter": "nvidia/nemotron-nano-9b-v2"
686
+ "openrouter": "nvidia/nemotron-nano-9b-v2",
687
+ "bedrock": "nvidia.nemotron-nano-9b-v2"
500
688
  },
501
689
  "o1": {
502
690
  "openai": "o1",
@@ -543,6 +731,9 @@ export default {
543
731
  "qwen3-14b-free": {
544
732
  "openrouter": "qwen/qwen3-14b:free"
545
733
  },
734
+ "qwen3-235b-a22b-2507": {
735
+ "bedrock": "qwen.qwen3-235b-a22b-2507-v1:0"
736
+ },
546
737
  "qwen3-235b-a22b-free": {
547
738
  "openrouter": "qwen/qwen3-235b-a22b:free"
548
739
  },
@@ -564,6 +755,9 @@ export default {
564
755
  "qwen3-30b-a3b-thinking-2507": {
565
756
  "openrouter": "qwen/qwen3-30b-a3b-thinking-2507"
566
757
  },
758
+ "qwen3-32b-dense": {
759
+ "bedrock": "qwen.qwen3-32b-v1:0"
760
+ },
567
761
  "qwen3-32b-free": {
568
762
  "openrouter": "qwen/qwen3-32b:free"
569
763
  },
@@ -574,7 +768,11 @@ export default {
574
768
  "openrouter": "qwen/qwen3-coder"
575
769
  },
576
770
  "qwen3-coder-30b-a3b-instruct": {
577
- "openrouter": "qwen/qwen3-coder-30b-a3b-instruct"
771
+ "openrouter": "qwen/qwen3-coder-30b-a3b-instruct",
772
+ "bedrock": "qwen.qwen3-coder-30b-a3b-v1:0"
773
+ },
774
+ "qwen3-coder-480b-a35b-instruct": {
775
+ "bedrock": "qwen.qwen3-coder-480b-a35b-v1:0"
578
776
  },
579
777
  "qwen3-coder-480b-a35b-instruct-free": {
580
778
  "openrouter": "qwen/qwen3-coder:free"
@@ -594,6 +792,12 @@ export default {
594
792
  "qwen3-next-80b-a3b-thinking": {
595
793
  "openrouter": "qwen/qwen3-next-80b-a3b-thinking"
596
794
  },
795
+ "qwenqwen3-next-80b-a3b-instruct": {
796
+ "bedrock": "qwen.qwen3-next-80b-a3b"
797
+ },
798
+ "qwenqwen3-vl-235b-a22b-instruct": {
799
+ "bedrock": "qwen.qwen3-vl-235b-a22b"
800
+ },
597
801
  "qwerky-72b": {
598
802
  "openrouter": "featherless/qwerky-72b"
599
803
  },
@@ -626,5 +830,14 @@ export default {
626
830
  },
627
831
  "text-embedding-ada-002": {
628
832
  "openai": "text-embedding-ada-002"
833
+ },
834
+ "titan-text-g1---express": {
835
+ "bedrock": "amazon.titan-text-express-v1"
836
+ },
837
+ "voxtral-mini-3b-2507": {
838
+ "bedrock": "mistral.voxtral-mini-3b-2507"
839
+ },
840
+ "voxtral-small-24b-2507": {
841
+ "bedrock": "mistral.voxtral-small-24b-2507"
629
842
  }
630
843
  };
@@ -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";
@@ -79,7 +79,7 @@ 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", content: string | MessageContent): this;
83
83
  /**
84
84
  * Set the temperature for the chat session.
85
85
  * Controls randomness: 0.0 (deterministic) to 1.0 (creative).
@@ -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,13 @@ 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 });
147
150
  }
148
151
  return this;
149
152
  }
@@ -342,6 +345,13 @@ export class Chat {
342
345
  const totalUsage = { input_tokens: 0, output_tokens: 0, total_tokens: 0 };
343
346
  const trackUsage = (u) => {
344
347
  if (u) {
348
+ // Fallback cost calculation if provider didn't return it
349
+ if (u.cost === undefined) {
350
+ const withCost = ModelRegistry.calculateCost(u, this.model, this.provider.id);
351
+ u.cost = withCost.cost;
352
+ u.input_cost = withCost.input_cost;
353
+ u.output_cost = withCost.output_cost;
354
+ }
345
355
  totalUsage.input_tokens += u.input_tokens;
346
356
  totalUsage.output_tokens += u.output_tokens;
347
357
  totalUsage.total_tokens += u.total_tokens;
@@ -351,6 +361,12 @@ export class Chat {
351
361
  if (u.cost !== undefined) {
352
362
  totalUsage.cost = (totalUsage.cost ?? 0) + u.cost;
353
363
  }
364
+ if (u.input_cost !== undefined) {
365
+ totalUsage.input_cost = (totalUsage.input_cost ?? 0) + u.input_cost;
366
+ }
367
+ if (u.output_cost !== undefined) {
368
+ totalUsage.output_cost = (totalUsage.output_cost ?? 0) + u.output_cost;
369
+ }
354
370
  }
355
371
  };
356
372
  // First round
@@ -358,7 +374,7 @@ export class Chat {
358
374
  this.options.onNewMessage();
359
375
  let response = await this.executor.executeChat(executeOptions);
360
376
  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);
377
+ 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);
362
378
  // --- Content Policy Hooks (Output - Turn 1) ---
363
379
  if (this.options.onAfterResponse) {
364
380
  const result = await this.options.onAfterResponse(assistantMessage);
@@ -442,7 +458,7 @@ export class Chat {
442
458
  ...this.options.params
443
459
  });
444
460
  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);
461
+ 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);
446
462
  // --- Content Policy Hooks (Output - Tool Turns) ---
447
463
  if (this.options.onAfterResponse) {
448
464
  const result = await this.options.onAfterResponse(assistantMessage);
@@ -462,7 +478,7 @@ export class Chat {
462
478
  }
463
479
  // For the final return, we might want to aggregate reasoning too if it happened in multiple turns?
464
480
  // 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);
481
+ return new ChatResponseString(assistantMessage.toString() || "", totalUsage, this.model, this.provider.id, assistantMessage.thinking, assistantMessage.reasoning, response.tool_calls, assistantMessage.finish_reason);
466
482
  }
467
483
  /**
468
484
  * Streams the model's response to a user question.
@@ -11,7 +11,9 @@ export declare class ChatResponseString extends String {
11
11
  readonly thinking?: ThinkingResult | undefined;
12
12
  readonly reasoning?: string | null | undefined;
13
13
  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);
14
+ readonly finish_reason?: string | null | undefined;
15
+ 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);
16
+ get finishReason(): string | null | undefined;
15
17
  get input_tokens(): number;
16
18
  get output_tokens(): number;
17
19
  get total_tokens(): number;
@@ -36,6 +38,7 @@ export declare class ChatResponseString extends String {
36
38
  thinking: ThinkingResult | undefined;
37
39
  reasoning: string | null | undefined;
38
40
  tool_calls: ToolCall[] | undefined;
41
+ finish_reason: string | null | undefined;
39
42
  };
40
43
  /**
41
44
  * Alias for meta (backwards compatibility)
@@ -47,6 +50,7 @@ export declare class ChatResponseString extends String {
47
50
  thinking: ThinkingResult | undefined;
48
51
  reasoning: string | null | undefined;
49
52
  tool_calls: ToolCall[] | undefined;
53
+ finish_reason: string | null | undefined;
50
54
  };
51
55
  toString(): string;
52
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ChatResponse.d.ts","sourceRoot":"","sources":["../../src/chat/ChatResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,MAAM;aAG1B,KAAK,EAAE,KAAK;aACZ,KAAK,EAAE,MAAM;aACb,QAAQ,EAAE,MAAM;aAChB,QAAQ,CAAC,EAAE,cAAc;aACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;aACzB,UAAU,CAAC,EAAE,QAAQ,EAAE;gBANvC,OAAO,EAAE,MAAM,EACC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,cAAc,YAAA,EACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,YAAA,EACzB,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAA;IAKzC,IAAI,YAAY,WAEf;IACD,IAAI,aAAa,WAEhB;IACD,IAAI,YAAY,WAEf;IACD,IAAI,aAAa,uBAEhB;IACD,IAAI,IAAI,uBAEP;IACD,IAAI,UAAU,uBAEb;IACD,IAAI,WAAW,uBAEd;IAGD,IAAI,WAAW,WAEd;IACD,IAAI,YAAY,WAEf;IACD,IAAI,WAAW,WAEd;IACD,IAAI,YAAY,uBAEf;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,IAAI,IAAI;;;;;;;MASP;IAED;;OAEG;IACH,IAAI,GAAG;;;;;;;MAEN;IAED,QAAQ;IAIR;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAYnD;;;OAGG;IACH,IAAI,MAAM,IAAI,OAAO,CAMpB;CACF"}
1
+ {"version":3,"file":"ChatResponse.d.ts","sourceRoot":"","sources":["../../src/chat/ChatResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,MAAM;aAG1B,KAAK,EAAE,KAAK;aACZ,KAAK,EAAE,MAAM;aACb,QAAQ,EAAE,MAAM;aAChB,QAAQ,CAAC,EAAE,cAAc;aACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;aACzB,UAAU,CAAC,EAAE,QAAQ,EAAE;aACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;gBAP7C,OAAO,EAAE,MAAM,EACC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,cAAc,YAAA,EACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,YAAA,EACzB,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAA,EACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,YAAA;IAK/C,IAAI,YAAY,8BAEf;IAED,IAAI,YAAY,WAEf;IACD,IAAI,aAAa,WAEhB;IACD,IAAI,YAAY,WAEf;IACD,IAAI,aAAa,uBAEhB;IACD,IAAI,IAAI,uBAEP;IACD,IAAI,UAAU,uBAEb;IACD,IAAI,WAAW,uBAEd;IAGD,IAAI,WAAW,WAEd;IACD,IAAI,YAAY,WAEf;IACD,IAAI,WAAW,WAEd;IACD,IAAI,YAAY,uBAEf;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,IAAI,IAAI;;;;;;;;MAUP;IAED;;OAEG;IACH,IAAI,GAAG;;;;;;;;MAEN;IAED,QAAQ;IAIR;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAanD;;;OAGG;IACH,IAAI,MAAM,IAAI,OAAO,CAMpB;CACF"}
@@ -9,7 +9,8 @@ export class ChatResponseString extends String {
9
9
  thinking;
10
10
  reasoning;
11
11
  tool_calls;
12
- constructor(content, usage, model, provider, thinking, reasoning, tool_calls) {
12
+ finish_reason;
13
+ constructor(content, usage, model, provider, thinking, reasoning, tool_calls, finish_reason) {
13
14
  super(content);
14
15
  this.usage = usage;
15
16
  this.model = model;
@@ -17,6 +18,10 @@ export class ChatResponseString extends String {
17
18
  this.thinking = thinking;
18
19
  this.reasoning = reasoning;
19
20
  this.tool_calls = tool_calls;
21
+ this.finish_reason = finish_reason;
22
+ }
23
+ get finishReason() {
24
+ return this.finish_reason;
20
25
  }
21
26
  get input_tokens() {
22
27
  return this.usage.input_tokens;
@@ -69,7 +74,8 @@ export class ChatResponseString extends String {
69
74
  provider: this.provider,
70
75
  thinking: this.thinking,
71
76
  reasoning: this.reasoning,
72
- tool_calls: this.tool_calls
77
+ tool_calls: this.tool_calls,
78
+ finish_reason: this.finish_reason
73
79
  };
74
80
  }
75
81
  /**
@@ -85,7 +91,7 @@ export class ChatResponseString extends String {
85
91
  * Return a new ChatResponseString with modified content but preserved metadata.
86
92
  */
87
93
  withContent(newContent) {
88
- return new ChatResponseString(newContent, this.usage, this.model, this.provider, this.thinking, this.reasoning, this.tool_calls);
94
+ return new ChatResponseString(newContent, this.usage, this.model, this.provider, this.thinking, this.reasoning, this.tool_calls, this.finish_reason);
89
95
  }
90
96
  /**
91
97
  * Attempt to parse the content as JSON.