@llumiverse/common 1.3.0 → 1.4.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 (192) hide show
  1. package/lib/capability/anthropic.d.ts +3 -0
  2. package/lib/capability/anthropic.d.ts.map +1 -0
  3. package/lib/capability/anthropic.js +92 -0
  4. package/lib/capability/anthropic.js.map +1 -0
  5. package/lib/{types/capability → capability}/azure_foundry.d.ts +1 -1
  6. package/lib/capability/azure_foundry.d.ts.map +1 -0
  7. package/lib/capability/azure_foundry.js +394 -0
  8. package/lib/capability/azure_foundry.js.map +1 -0
  9. package/lib/{types/capability → capability}/bedrock.d.ts +1 -1
  10. package/lib/capability/bedrock.d.ts.map +1 -0
  11. package/lib/capability/bedrock.js +300 -0
  12. package/lib/capability/bedrock.js.map +1 -0
  13. package/lib/{types/capability → capability}/openai.d.ts +1 -1
  14. package/lib/capability/openai.d.ts.map +1 -0
  15. package/lib/capability/openai.js +179 -0
  16. package/lib/capability/openai.js.map +1 -0
  17. package/lib/{types/capability → capability}/vertexai.d.ts +1 -1
  18. package/lib/capability/vertexai.d.ts.map +1 -0
  19. package/lib/capability/vertexai.js +137 -0
  20. package/lib/capability/vertexai.js.map +1 -0
  21. package/lib/{types/capability.d.ts → capability.d.ts} +1 -1
  22. package/lib/capability.d.ts.map +1 -0
  23. package/lib/{esm/capability.js → capability.js} +17 -17
  24. package/lib/capability.js.map +1 -0
  25. package/lib/index.d.ts +14 -0
  26. package/lib/index.d.ts.map +1 -0
  27. package/lib/index.js +14 -0
  28. package/lib/index.js.map +1 -0
  29. package/lib/{types/options → options}/anthropic.d.ts +2 -2
  30. package/lib/options/anthropic.d.ts.map +1 -0
  31. package/lib/{esm/options → options}/anthropic.js +14 -11
  32. package/lib/options/anthropic.js.map +1 -0
  33. package/lib/{types/options → options}/azure_foundry.d.ts +14 -14
  34. package/lib/options/azure_foundry.d.ts.map +1 -0
  35. package/lib/{esm/options → options}/azure_foundry.js +126 -126
  36. package/lib/options/azure_foundry.js.map +1 -0
  37. package/lib/{types/options → options}/bedrock.d.ts +16 -16
  38. package/lib/{types/options → options}/bedrock.d.ts.map +1 -1
  39. package/lib/options/bedrock.js +489 -0
  40. package/lib/options/bedrock.js.map +1 -0
  41. package/lib/options/context-windows.d.ts.map +1 -0
  42. package/lib/options/context-windows.js.map +1 -0
  43. package/lib/options/embedding.d.ts +38 -0
  44. package/lib/options/embedding.d.ts.map +1 -0
  45. package/lib/options/embedding.js +77 -0
  46. package/lib/options/embedding.js.map +1 -0
  47. package/lib/{types/options → options}/fallback.d.ts +2 -2
  48. package/lib/options/fallback.d.ts.map +1 -0
  49. package/lib/options/fallback.js +65 -0
  50. package/lib/options/fallback.js.map +1 -0
  51. package/lib/{types/options → options}/groq.d.ts +2 -2
  52. package/lib/options/groq.d.ts.map +1 -0
  53. package/lib/options/groq.js +54 -0
  54. package/lib/options/groq.js.map +1 -0
  55. package/lib/options/openai.d.ts +40 -0
  56. package/lib/options/openai.d.ts.map +1 -0
  57. package/lib/options/openai.js +284 -0
  58. package/lib/options/openai.js.map +1 -0
  59. package/lib/{types/options → options}/shared-parsing.d.ts +1 -1
  60. package/lib/options/shared-parsing.d.ts.map +1 -0
  61. package/lib/{esm/options → options}/shared-parsing.js +14 -17
  62. package/lib/options/shared-parsing.js.map +1 -0
  63. package/lib/options/version-parsing.d.ts.map +1 -0
  64. package/lib/{esm/options → options}/version-parsing.js +15 -15
  65. package/lib/options/version-parsing.js.map +1 -0
  66. package/lib/{types/options → options}/vertexai.d.ts +15 -15
  67. package/lib/options/vertexai.d.ts.map +1 -0
  68. package/lib/options/vertexai.js +606 -0
  69. package/lib/options/vertexai.js.map +1 -0
  70. package/lib/{types/options.d.ts → options.d.ts} +1 -1
  71. package/lib/options.d.ts.map +1 -0
  72. package/lib/{esm/options.js → options.js} +8 -8
  73. package/lib/options.js.map +1 -0
  74. package/lib/{types/types.d.ts → types.d.ts} +143 -35
  75. package/lib/types.d.ts.map +1 -0
  76. package/lib/{esm/types.js → types.js} +21 -23
  77. package/lib/types.js.map +1 -0
  78. package/package.json +11 -34
  79. package/src/LlumiverseError.test.ts +18 -72
  80. package/src/capability/anthropic.ts +61 -11
  81. package/src/capability/azure_foundry.ts +303 -65
  82. package/src/capability/bedrock.ts +201 -56
  83. package/src/capability/openai.ts +135 -41
  84. package/src/capability/vertexai.ts +105 -35
  85. package/src/capability.ts +18 -18
  86. package/src/index.ts +13 -12
  87. package/src/options/anthropic.ts +16 -13
  88. package/src/options/azure_foundry.ts +157 -143
  89. package/src/options/bedrock.ts +247 -185
  90. package/src/options/context-windows.ts +2 -2
  91. package/src/options/embedding.ts +92 -0
  92. package/src/options/fallback.ts +50 -17
  93. package/src/options/groq.ts +48 -21
  94. package/src/options/openai.ts +228 -183
  95. package/src/options/shared-parsing.ts +16 -21
  96. package/src/options/version-parsing.ts +17 -17
  97. package/src/options/vertexai.ts +382 -288
  98. package/src/options.ts +8 -8
  99. package/src/types.ts +260 -155
  100. package/lib/cjs/capability/anthropic.js +0 -45
  101. package/lib/cjs/capability/anthropic.js.map +0 -1
  102. package/lib/cjs/capability/azure_foundry.js +0 -160
  103. package/lib/cjs/capability/azure_foundry.js.map +0 -1
  104. package/lib/cjs/capability/bedrock.js +0 -158
  105. package/lib/cjs/capability/bedrock.js.map +0 -1
  106. package/lib/cjs/capability/openai.js +0 -98
  107. package/lib/cjs/capability/openai.js.map +0 -1
  108. package/lib/cjs/capability/vertexai.js +0 -80
  109. package/lib/cjs/capability/vertexai.js.map +0 -1
  110. package/lib/cjs/capability.js +0 -115
  111. package/lib/cjs/capability.js.map +0 -1
  112. package/lib/cjs/index.js +0 -29
  113. package/lib/cjs/index.js.map +0 -1
  114. package/lib/cjs/options/anthropic.js +0 -34
  115. package/lib/cjs/options/anthropic.js.map +0 -1
  116. package/lib/cjs/options/azure_foundry.js +0 -423
  117. package/lib/cjs/options/azure_foundry.js.map +0 -1
  118. package/lib/cjs/options/bedrock.js +0 -427
  119. package/lib/cjs/options/bedrock.js.map +0 -1
  120. package/lib/cjs/options/context-windows.js +0 -138
  121. package/lib/cjs/options/context-windows.js.map +0 -1
  122. package/lib/cjs/options/fallback.js +0 -35
  123. package/lib/cjs/options/fallback.js.map +0 -1
  124. package/lib/cjs/options/groq.js +0 -37
  125. package/lib/cjs/options/groq.js.map +0 -1
  126. package/lib/cjs/options/openai.js +0 -246
  127. package/lib/cjs/options/openai.js.map +0 -1
  128. package/lib/cjs/options/shared-parsing.js +0 -144
  129. package/lib/cjs/options/shared-parsing.js.map +0 -1
  130. package/lib/cjs/options/version-parsing.js +0 -326
  131. package/lib/cjs/options/version-parsing.js.map +0 -1
  132. package/lib/cjs/options/vertexai.js +0 -525
  133. package/lib/cjs/options/vertexai.js.map +0 -1
  134. package/lib/cjs/options.js +0 -33
  135. package/lib/cjs/options.js.map +0 -1
  136. package/lib/cjs/package.json +0 -3
  137. package/lib/cjs/types.js +0 -307
  138. package/lib/cjs/types.js.map +0 -1
  139. package/lib/esm/capability/anthropic.js +0 -42
  140. package/lib/esm/capability/anthropic.js.map +0 -1
  141. package/lib/esm/capability/azure_foundry.js +0 -157
  142. package/lib/esm/capability/azure_foundry.js.map +0 -1
  143. package/lib/esm/capability/bedrock.js +0 -155
  144. package/lib/esm/capability/bedrock.js.map +0 -1
  145. package/lib/esm/capability/openai.js +0 -95
  146. package/lib/esm/capability/openai.js.map +0 -1
  147. package/lib/esm/capability/vertexai.js +0 -77
  148. package/lib/esm/capability/vertexai.js.map +0 -1
  149. package/lib/esm/capability.js.map +0 -1
  150. package/lib/esm/index.js +0 -13
  151. package/lib/esm/index.js.map +0 -1
  152. package/lib/esm/options/anthropic.js.map +0 -1
  153. package/lib/esm/options/azure_foundry.js.map +0 -1
  154. package/lib/esm/options/bedrock.js +0 -423
  155. package/lib/esm/options/bedrock.js.map +0 -1
  156. package/lib/esm/options/context-windows.js.map +0 -1
  157. package/lib/esm/options/fallback.js +0 -32
  158. package/lib/esm/options/fallback.js.map +0 -1
  159. package/lib/esm/options/groq.js +0 -34
  160. package/lib/esm/options/groq.js.map +0 -1
  161. package/lib/esm/options/openai.js +0 -243
  162. package/lib/esm/options/openai.js.map +0 -1
  163. package/lib/esm/options/shared-parsing.js.map +0 -1
  164. package/lib/esm/options/version-parsing.js.map +0 -1
  165. package/lib/esm/options/vertexai.js +0 -519
  166. package/lib/esm/options/vertexai.js.map +0 -1
  167. package/lib/esm/options.js.map +0 -1
  168. package/lib/esm/types.js.map +0 -1
  169. package/lib/types/capability/anthropic.d.ts +0 -3
  170. package/lib/types/capability/anthropic.d.ts.map +0 -1
  171. package/lib/types/capability/azure_foundry.d.ts.map +0 -1
  172. package/lib/types/capability/bedrock.d.ts.map +0 -1
  173. package/lib/types/capability/openai.d.ts.map +0 -1
  174. package/lib/types/capability/vertexai.d.ts.map +0 -1
  175. package/lib/types/capability.d.ts.map +0 -1
  176. package/lib/types/index.d.ts +0 -13
  177. package/lib/types/index.d.ts.map +0 -1
  178. package/lib/types/options/anthropic.d.ts.map +0 -1
  179. package/lib/types/options/azure_foundry.d.ts.map +0 -1
  180. package/lib/types/options/context-windows.d.ts.map +0 -1
  181. package/lib/types/options/fallback.d.ts.map +0 -1
  182. package/lib/types/options/groq.d.ts.map +0 -1
  183. package/lib/types/options/openai.d.ts +0 -40
  184. package/lib/types/options/openai.d.ts.map +0 -1
  185. package/lib/types/options/shared-parsing.d.ts.map +0 -1
  186. package/lib/types/options/version-parsing.d.ts.map +0 -1
  187. package/lib/types/options/vertexai.d.ts.map +0 -1
  188. package/lib/types/options.d.ts.map +0 -1
  189. package/lib/types/types.d.ts.map +0 -1
  190. /package/lib/{types/options → options}/context-windows.d.ts +0 -0
  191. /package/lib/{esm/options → options}/context-windows.js +0 -0
  192. /package/lib/{types/options → options}/version-parsing.d.ts +0 -0
@@ -0,0 +1,300 @@
1
+ // Explicit exception lists keyed by the model identifier (last segment after the prefix)
2
+ const RECORD_FOUNDATION_EXCEPTIONS = {};
3
+ const RECORD_PROFILE_EXCEPTIONS = {
4
+ 'meta.llama3-1-70b-instruct-v1:0': {
5
+ input: { text: true, image: false, video: false, audio: false, embed: false },
6
+ output: { text: true, image: false, video: false, audio: false, embed: false },
7
+ tool_support: false,
8
+ tool_support_streaming: false,
9
+ },
10
+ 'meta.llama3-1-8b-instruct-v1:0': {
11
+ input: { text: true, image: false, video: false, audio: false, embed: false },
12
+ output: { text: true, image: false, video: false, audio: false, embed: false },
13
+ tool_support: false,
14
+ tool_support_streaming: false,
15
+ },
16
+ };
17
+ // Record of Bedrock model capabilities keyed by model identifier.
18
+ // Only include models that differ from their family defaults
19
+ const RECORD_MODEL_CAPABILITIES = {
20
+ // Models with specific exceptions that differ from family
21
+ 'ai21.jamba-instruct-v1:0': {
22
+ input: { text: true, image: false, video: false, audio: false, embed: false },
23
+ output: { text: true, image: false, video: false, audio: false, embed: false },
24
+ tool_support: false,
25
+ tool_support_streaming: false,
26
+ },
27
+ 'amazon.nova-canvas-v1:0': {
28
+ input: { text: true, image: true, video: false, audio: false, embed: false },
29
+ output: { image: true, text: false, video: false, audio: false, embed: false },
30
+ tool_support: false,
31
+ tool_support_streaming: false,
32
+ },
33
+ 'amazon.nova-micro-v1:0': {
34
+ input: { text: true, image: false, video: false, audio: false, embed: false },
35
+ output: { text: true, image: false, video: false, audio: false, embed: false },
36
+ tool_support: true,
37
+ tool_support_streaming: true,
38
+ },
39
+ 'anthropic.claude-3-5-haiku-20241022-v1:0': {
40
+ input: { text: true, image: false, video: false, audio: false, embed: false },
41
+ output: { text: true, image: false, video: false, audio: false, embed: false },
42
+ tool_support: true,
43
+ tool_support_streaming: false,
44
+ },
45
+ 'meta.llama3-2-11b-instruct-v1:0': {
46
+ input: { text: true, image: true, video: false, audio: false, embed: false },
47
+ output: { text: true, image: false, video: false, audio: false, embed: false },
48
+ tool_support: true,
49
+ tool_support_streaming: false,
50
+ },
51
+ 'meta.llama3-2-90b-instruct-v1:0': {
52
+ input: { text: true, image: true, video: false, audio: false, embed: false },
53
+ output: { text: true, image: false, video: false, audio: false, embed: false },
54
+ tool_support: true,
55
+ tool_support_streaming: false,
56
+ },
57
+ };
58
+ // Family capabilities (longest prefix match)
59
+ const RECORD_FAMILY_CAPABILITIES = {
60
+ 'ai21.jamba': {
61
+ input: { text: true, image: false, video: false, audio: false, embed: false },
62
+ output: { text: true, image: false, video: false, audio: false, embed: false },
63
+ tool_support: true,
64
+ tool_support_streaming: true,
65
+ },
66
+ 'amazon.nova': {
67
+ input: { text: true, image: true, video: true, audio: false, embed: false },
68
+ output: { text: true, image: false, video: false, audio: false, embed: false },
69
+ tool_support: true,
70
+ tool_support_streaming: true,
71
+ },
72
+ 'amazon.titan': {
73
+ input: { text: true, image: false, video: false, audio: false, embed: false },
74
+ output: { text: true, image: false, video: false, audio: false, embed: false },
75
+ tool_support: false,
76
+ tool_support_streaming: false,
77
+ },
78
+ 'anthropic.claude-3-5-haiku': {
79
+ input: { text: true, image: false, video: false, audio: false, embed: false },
80
+ output: { text: true, image: false, video: false, audio: false, embed: false },
81
+ tool_support: true,
82
+ tool_support_streaming: false,
83
+ },
84
+ 'anthropic.claude': {
85
+ input: { text: true, image: true, video: false, audio: false, embed: false },
86
+ output: { text: true, image: false, video: false, audio: false, embed: false },
87
+ tool_support: true,
88
+ tool_support_streaming: true,
89
+ },
90
+ 'cohere.command-r': {
91
+ input: { text: true, image: false, video: false, audio: false, embed: false },
92
+ output: { text: true, image: false, video: false, audio: false, embed: false },
93
+ tool_support: true,
94
+ tool_support_streaming: true,
95
+ },
96
+ 'cohere.command': {
97
+ input: { text: true, image: false, video: false, audio: false, embed: false },
98
+ output: { text: true, image: false, video: false, audio: false, embed: false },
99
+ tool_support: false,
100
+ tool_support_streaming: false,
101
+ },
102
+ 'deepseek.r1': {
103
+ input: { text: true, image: false, video: false, audio: false, embed: false },
104
+ output: { text: true, image: false, video: false, audio: false, embed: false },
105
+ tool_support: false,
106
+ tool_support_streaming: false,
107
+ },
108
+ 'meta.llama3-1': {
109
+ input: { text: true, image: false, video: false, audio: false, embed: false },
110
+ output: { text: true, image: false, video: false, audio: false, embed: false },
111
+ tool_support: true,
112
+ tool_support_streaming: false,
113
+ },
114
+ 'meta.llama3-2': {
115
+ input: { text: true, image: true, video: false, audio: false, embed: false },
116
+ output: { text: true, image: false, video: false, audio: false, embed: false },
117
+ tool_support: false,
118
+ tool_support_streaming: false,
119
+ },
120
+ 'meta.llama3-3': {
121
+ input: { text: true, image: false, video: false, audio: false, embed: false },
122
+ output: { text: true, image: false, video: false, audio: false, embed: false },
123
+ tool_support: false,
124
+ tool_support_streaming: false,
125
+ },
126
+ 'meta.llama3': {
127
+ input: { text: true, image: false, video: false, audio: false, embed: false },
128
+ output: { text: true, image: false, video: false, audio: false, embed: false },
129
+ tool_support: false,
130
+ tool_support_streaming: false,
131
+ },
132
+ 'meta.llama4': {
133
+ input: { text: true, image: true, video: false, audio: false, embed: false },
134
+ output: { text: true, image: false, video: false, audio: false, embed: false },
135
+ tool_support: false,
136
+ tool_support_streaming: false,
137
+ },
138
+ 'mistral.mistral-large': {
139
+ input: { text: true, image: false, video: false, audio: false, embed: false },
140
+ output: { text: true, image: false, video: false, audio: false, embed: false },
141
+ tool_support: true,
142
+ tool_support_streaming: false,
143
+ },
144
+ 'mistral.mistral': {
145
+ input: { text: true, image: false, video: false, audio: false, embed: false },
146
+ output: { text: true, image: false, video: false, audio: false, embed: false },
147
+ tool_support: false,
148
+ tool_support_streaming: false,
149
+ },
150
+ 'mistral.mixtral': {
151
+ input: { text: true, image: false, video: false, audio: false, embed: false },
152
+ output: { text: true, image: false, video: false, audio: false, embed: false },
153
+ tool_support: false,
154
+ tool_support_streaming: false,
155
+ },
156
+ 'mistral.pixtral': {
157
+ input: { text: true, image: true, video: false, audio: false, embed: false },
158
+ output: { text: true, image: false, video: false, audio: false, embed: false },
159
+ tool_support: true,
160
+ tool_support_streaming: false,
161
+ },
162
+ 'openai.gpt-oss': {
163
+ input: { text: true, image: false, video: false, audio: false, embed: false },
164
+ output: { text: true, image: false, video: false, audio: false, embed: false },
165
+ tool_support: false,
166
+ tool_support_streaming: false,
167
+ },
168
+ 'qwen.': {
169
+ input: { text: true, image: false, video: false, audio: false, embed: false },
170
+ output: { text: true, image: false, video: false, audio: false, embed: false },
171
+ tool_support: false,
172
+ tool_support_streaming: false,
173
+ },
174
+ 'twelvelabs.': {
175
+ input: { text: true, image: false, video: true, audio: false, embed: false },
176
+ output: { text: true, image: false, video: false, audio: false, embed: false },
177
+ tool_support: true,
178
+ tool_support_streaming: false,
179
+ },
180
+ 'writer.palmyra': {
181
+ input: { text: true, image: false, video: false, audio: false, embed: false },
182
+ output: { text: true, image: false, video: false, audio: false, embed: false },
183
+ tool_support: true,
184
+ tool_support_streaming: false,
185
+ },
186
+ };
187
+ function extractModelLookupKey(modelName) {
188
+ const lower = modelName.toLowerCase();
189
+ const lastSlashIdx = lower.lastIndexOf('/');
190
+ let key = lastSlashIdx === -1 ? lower : lower.slice(lastSlashIdx + 1);
191
+ if (lower.includes('inference-profile/')) {
192
+ key = key.replace(/^[^.]+\./, '');
193
+ }
194
+ return key;
195
+ }
196
+ function findFamilyCapability(lookupKey, families) {
197
+ let bestKey;
198
+ for (const key of Object.keys(families)) {
199
+ if (lookupKey.startsWith(key) && (!bestKey || key.length > bestKey.length)) {
200
+ bestKey = key;
201
+ }
202
+ }
203
+ return bestKey ? families[bestKey] : undefined;
204
+ }
205
+ /**
206
+ * Extract the model identifier from an ARN or inference profile
207
+ * @param modelName The full model ARN or name
208
+ * @returns The normalized model identifier
209
+ */
210
+ function normalizeModelName(modelName) {
211
+ const modelLower = modelName.toLowerCase();
212
+ if (modelLower.includes('inference-profile')) {
213
+ const parts = modelLower.split('/');
214
+ if (parts.length > 1) {
215
+ const providerModel = parts[parts.length - 1];
216
+ const modelParts = providerModel.split('.');
217
+ if (modelParts.length > 1 && modelParts[1] === 'deepseek') {
218
+ return `deepseek-${modelParts.slice(2).join('.')}`;
219
+ }
220
+ return modelParts.length > 2 ? modelParts.slice(2).join('.') : providerModel;
221
+ }
222
+ }
223
+ return modelLower;
224
+ }
225
+ // Fallback pattern lists for inferring modalities and tool support
226
+ const IMAGE_INPUT_MODELS = ['image']; // fallback: if model id contains 'image', supports image input
227
+ const VIDEO_INPUT_MODELS = ['video'];
228
+ const AUDIO_INPUT_MODELS = ['audio'];
229
+ const TEXT_INPUT_MODELS = ['text'];
230
+ const IMAGE_OUTPUT_MODELS = ['image'];
231
+ const VIDEO_OUTPUT_MODELS = ['video'];
232
+ const AUDIO_OUTPUT_MODELS = ['audio'];
233
+ const TEXT_OUTPUT_MODELS = ['text'];
234
+ const EMBEDDING_OUTPUT_MODELS = ['embed'];
235
+ const TOOL_SUPPORT_MODELS = ['tool', 'sonnet', 'opus', 'nova', 'palmyra', 'command-r', 'mistral-large', 'pixtral'];
236
+ function modelMatches(modelName, patterns) {
237
+ return patterns.some((pattern) => modelName.includes(pattern));
238
+ }
239
+ /**
240
+ * Get the full ModelCapabilities for a Bedrock model.
241
+ * Checks RECORD_MODEL_CAPABILITIES first, then falls back to pattern-based inference.
242
+ */
243
+ export function getModelCapabilitiesBedrock(model) {
244
+ // Normalize ARN or inference-profile to model ID
245
+ const modelLower = model.toLowerCase();
246
+ let normalized = modelLower;
247
+ const arnPattern = /^arn:aws:bedrock:[^:]+:[^:]*:(inference-profile|foundation-model)\/.+/i;
248
+ if (arnPattern.test(modelLower)) {
249
+ // Extract after last occurrence of 'foundation-model/' or 'inference-profile/'
250
+ const foundationIdx = modelLower.lastIndexOf('foundation-model/');
251
+ const inferenceIdx = modelLower.lastIndexOf('inference-profile/');
252
+ if (foundationIdx !== -1) {
253
+ normalized = modelLower.substring(foundationIdx);
254
+ }
255
+ else if (inferenceIdx !== -1) {
256
+ normalized = modelLower.substring(inferenceIdx);
257
+ }
258
+ }
259
+ const isInferenceProfile = normalized.startsWith('inference-profile/');
260
+ const isFoundationModel = normalized.startsWith('foundation-model/');
261
+ const lookupKey = extractModelLookupKey(normalized);
262
+ // 1. Check exceptions
263
+ if (isFoundationModel) {
264
+ const exception = RECORD_FOUNDATION_EXCEPTIONS[lookupKey];
265
+ if (exception)
266
+ return exception;
267
+ }
268
+ else if (isInferenceProfile) {
269
+ const exception = RECORD_PROFILE_EXCEPTIONS[lookupKey];
270
+ if (exception)
271
+ return exception;
272
+ }
273
+ // 2. Check recorded capabilities by model
274
+ const modelCapability = RECORD_MODEL_CAPABILITIES[lookupKey];
275
+ if (modelCapability)
276
+ return modelCapability;
277
+ // 3. Check recorded capabilities by family
278
+ const familyCapability = findFamilyCapability(lookupKey, RECORD_FAMILY_CAPABILITIES);
279
+ if (familyCapability)
280
+ return familyCapability;
281
+ // 4. Fallback: infer from normalized name
282
+ const inferredName = normalizeModelName(lookupKey);
283
+ const input = {
284
+ text: modelMatches(inferredName, TEXT_INPUT_MODELS) || undefined,
285
+ image: modelMatches(inferredName, IMAGE_INPUT_MODELS) || undefined,
286
+ video: modelMatches(inferredName, VIDEO_INPUT_MODELS) || undefined,
287
+ audio: modelMatches(inferredName, AUDIO_INPUT_MODELS) || undefined,
288
+ embed: false,
289
+ };
290
+ const output = {
291
+ text: modelMatches(inferredName, TEXT_OUTPUT_MODELS) || undefined,
292
+ image: modelMatches(inferredName, IMAGE_OUTPUT_MODELS) || undefined,
293
+ video: modelMatches(inferredName, VIDEO_OUTPUT_MODELS) || undefined,
294
+ audio: modelMatches(inferredName, AUDIO_OUTPUT_MODELS) || undefined,
295
+ embed: modelMatches(inferredName, EMBEDDING_OUTPUT_MODELS) || undefined,
296
+ };
297
+ const tool_support = modelMatches(inferredName, TOOL_SUPPORT_MODELS) || undefined;
298
+ return { input, output, tool_support };
299
+ }
300
+ //# sourceMappingURL=bedrock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/capability/bedrock.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ModelModalities } from "../types.js";
1
+ import type { ModelModalities } from '../types.js';
2
2
  /**
3
3
  * Get the full ModelCapabilities for an OpenAI model.
4
4
  * Checks RECORD_MODEL_CAPABILITIES first, then falls back to pattern-based inference.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/capability/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgJnD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG;IACvD,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC,CA2CA"}
@@ -0,0 +1,179 @@
1
+ // Record of OpenAI model capabilities keyed by model ID (lowercased)
2
+ const RECORD_MODEL_CAPABILITIES = {
3
+ 'chatgpt-4o-latest': {
4
+ input: { text: true, image: true, video: false, audio: false, embed: false },
5
+ output: { text: true, image: false, video: false, audio: false, embed: false },
6
+ tool_support: true,
7
+ },
8
+ };
9
+ // Populate RECORD_FAMILY_CAPABILITIES as a const record (lowest common denominator for each family)
10
+ // For OpenAI, tool_support_streaming matches tool_support since the API supports tools while streaming
11
+ const RECORD_FAMILY_CAPABILITIES = {
12
+ gpt: {
13
+ input: { text: true, image: true, video: false, audio: false, embed: false },
14
+ output: { text: true, image: false, video: false, audio: false, embed: false },
15
+ tool_support: true,
16
+ },
17
+ 'gpt-3.5': {
18
+ input: { text: true, image: false, video: false, audio: false, embed: false },
19
+ output: { text: true, image: false, video: false, audio: false, embed: false },
20
+ tool_support: false,
21
+ },
22
+ 'gpt-4': {
23
+ input: { text: true, image: false, video: false, audio: false, embed: false },
24
+ output: { text: true, image: false, video: false, audio: false, embed: false },
25
+ tool_support: true,
26
+ },
27
+ 'gpt-4-turbo': {
28
+ input: { text: true, image: true, video: false, audio: false, embed: false },
29
+ output: { text: true, image: false, video: false, audio: false, embed: false },
30
+ tool_support: true,
31
+ },
32
+ 'gpt-4o': {
33
+ input: { text: true, image: true, video: false, audio: false, embed: false },
34
+ output: { text: true, image: false, video: false, audio: false, embed: false },
35
+ tool_support: true,
36
+ },
37
+ 'gpt-4.1': {
38
+ input: { text: true, image: true, video: false, audio: false, embed: false },
39
+ output: { text: true, image: false, video: false, audio: false, embed: false },
40
+ tool_support: true,
41
+ },
42
+ 'gpt-4.5': {
43
+ input: { text: true, image: true, video: false, audio: false, embed: false },
44
+ output: { text: true, image: false, video: false, audio: false, embed: false },
45
+ tool_support: true,
46
+ },
47
+ 'gpt-5': {
48
+ input: { text: true, image: true, video: false, audio: false, embed: false },
49
+ output: { text: true, image: false, video: false, audio: false, embed: false },
50
+ tool_support: true,
51
+ },
52
+ 'gpt-image': {
53
+ input: { text: true, image: true, video: false, audio: false, embed: false },
54
+ output: { text: false, image: true, video: false, audio: false, embed: false },
55
+ tool_support: false,
56
+ },
57
+ 'chatgpt-image': {
58
+ input: { text: true, image: true, video: false, audio: false, embed: false },
59
+ output: { text: false, image: true, video: false, audio: false, embed: false },
60
+ tool_support: false,
61
+ },
62
+ 'dall-e': {
63
+ input: { text: true, image: false, video: false, audio: false, embed: false },
64
+ output: { text: false, image: true, video: false, audio: false, embed: false },
65
+ tool_support: false,
66
+ },
67
+ 'gpt-oss': {
68
+ input: { text: true, image: false, video: false, audio: false, embed: false },
69
+ output: { text: true, image: false, video: false, audio: false, embed: false },
70
+ tool_support: false,
71
+ },
72
+ o: {
73
+ input: { text: true, image: true, video: false, audio: false, embed: false },
74
+ output: { text: true, image: false, video: false, audio: false, embed: false },
75
+ tool_support: true,
76
+ },
77
+ 'o1-mini': {
78
+ input: { text: true, image: true, video: false, audio: false, embed: false },
79
+ output: { text: true, image: false, video: false, audio: false, embed: false },
80
+ tool_support: false,
81
+ },
82
+ 'o1-preview': {
83
+ input: { text: true, image: false, video: false, audio: false, embed: false },
84
+ output: { text: true, image: false, video: false, audio: false, embed: false },
85
+ tool_support: false,
86
+ },
87
+ 'omni-moderation': {
88
+ input: { text: true, image: true, video: false, audio: false, embed: false },
89
+ output: { text: true, image: false, video: false, audio: false, embed: false },
90
+ tool_support: false,
91
+ },
92
+ sora: {
93
+ input: { text: true, image: true, video: true, audio: false, embed: false },
94
+ output: { text: false, image: false, video: true, audio: true, embed: false },
95
+ tool_support: false,
96
+ },
97
+ 'text-embedding': {
98
+ input: { text: true, image: false, video: false, audio: false, embed: false },
99
+ output: { text: false, image: false, video: false, audio: false, embed: true },
100
+ tool_support: false,
101
+ },
102
+ 'text-moderation': {
103
+ input: { text: true, image: false, video: false, audio: false, embed: false },
104
+ output: { text: true, image: false, video: false, audio: false, embed: false },
105
+ tool_support: false,
106
+ },
107
+ whisper: {
108
+ input: { text: false, image: false, video: false, audio: true, embed: false },
109
+ output: { text: true, image: false, video: false, audio: false, embed: false },
110
+ tool_support: false,
111
+ },
112
+ };
113
+ // Fallback pattern lists for inferring modalities and tool support
114
+ const IMAGE_INPUT_MODELS = ['image'];
115
+ const VIDEO_INPUT_MODELS = ['video'];
116
+ const AUDIO_INPUT_MODELS = ['audio'];
117
+ const TEXT_INPUT_MODELS = ['text'];
118
+ const IMAGE_OUTPUT_MODELS = ['image'];
119
+ const VIDEO_OUTPUT_MODELS = ['video'];
120
+ const AUDIO_OUTPUT_MODELS = ['audio'];
121
+ const TEXT_OUTPUT_MODELS = ['text'];
122
+ const EMBEDDING_OUTPUT_MODELS = ['embed'];
123
+ const TOOL_SUPPORT_MODELS = ['tool', 'gpt', 'gpt-5', 'o1', 'o3', 'o4'];
124
+ function modelMatches(modelName, patterns) {
125
+ return patterns.some((pattern) => modelName.includes(pattern));
126
+ }
127
+ function normalizeOpenAIModelName(modelName) {
128
+ return modelName.toLowerCase();
129
+ }
130
+ /**
131
+ * Get the full ModelCapabilities for an OpenAI model.
132
+ * Checks RECORD_MODEL_CAPABILITIES first, then falls back to pattern-based inference.
133
+ * For OpenAI models, tool_support_streaming defaults to tool_support since the API supports tools while streaming.
134
+ */
135
+ export function getModelCapabilitiesOpenAI(model) {
136
+ const normalized = normalizeOpenAIModelName(model);
137
+ const record = RECORD_MODEL_CAPABILITIES[normalized];
138
+ if (record) {
139
+ // Default tool_support_streaming to tool_support for OpenAI models
140
+ return {
141
+ ...record,
142
+ tool_support_streaming: record.tool_support_streaming ?? record.tool_support,
143
+ };
144
+ }
145
+ let bestFamilyKey;
146
+ let bestFamilyLength = 0;
147
+ for (const key of Object.keys(RECORD_FAMILY_CAPABILITIES)) {
148
+ if (normalized.startsWith(key) && key.length > bestFamilyLength) {
149
+ bestFamilyKey = key;
150
+ bestFamilyLength = key.length;
151
+ }
152
+ }
153
+ if (bestFamilyKey) {
154
+ const family = RECORD_FAMILY_CAPABILITIES[bestFamilyKey];
155
+ // Default tool_support_streaming to tool_support for OpenAI models
156
+ return {
157
+ ...family,
158
+ tool_support_streaming: family.tool_support_streaming ?? family.tool_support,
159
+ };
160
+ }
161
+ const input = {
162
+ text: modelMatches(normalized, TEXT_INPUT_MODELS) || undefined,
163
+ image: modelMatches(normalized, IMAGE_INPUT_MODELS) || undefined,
164
+ video: modelMatches(normalized, VIDEO_INPUT_MODELS) || undefined,
165
+ audio: modelMatches(normalized, AUDIO_INPUT_MODELS) || undefined,
166
+ embed: false,
167
+ };
168
+ const output = {
169
+ text: modelMatches(normalized, TEXT_OUTPUT_MODELS) || undefined,
170
+ image: modelMatches(normalized, IMAGE_OUTPUT_MODELS) || undefined,
171
+ video: modelMatches(normalized, VIDEO_OUTPUT_MODELS) || undefined,
172
+ audio: modelMatches(normalized, AUDIO_OUTPUT_MODELS) || undefined,
173
+ embed: modelMatches(normalized, EMBEDDING_OUTPUT_MODELS) || undefined,
174
+ };
175
+ const tool_support = modelMatches(normalized, TOOL_SUPPORT_MODELS) || undefined;
176
+ // Default tool_support_streaming to tool_support for OpenAI models
177
+ return { input, output, tool_support, tool_support_streaming: tool_support };
178
+ }
179
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/capability/openai.ts"],"names":[],"mappings":"AAUA,qEAAqE;AACrE,MAAM,yBAAyB,GAA0C;IACrE,mBAAmB,EAAE;QACjB,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;CACJ,CAAC;AAEF,oGAAoG;AACpG,uGAAuG;AACvG,MAAM,0BAA0B,GAA0C;IACtE,GAAG,EAAE;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,SAAS,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,OAAO,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,aAAa,EAAE;QACX,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,QAAQ,EAAE;QACN,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,SAAS,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,SAAS,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,OAAO,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,WAAW,EAAE;QACT,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,eAAe,EAAE;QACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,QAAQ,EAAE;QACN,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,SAAS,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,CAAC,EAAE;QACC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,IAAI;KACrB;IACD,SAAS,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,YAAY,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,iBAAiB,EAAE;QACf,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;QACF,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3E,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,YAAY,EAAE,KAAK;KACtB;IACD,gBAAgB,EAAE;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,iBAAiB,EAAE;QACf,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;IACD,OAAO,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9E,YAAY,EAAE,KAAK;KACtB;CACJ,CAAC;AAEF,mEAAmE;AACnE,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,CAAC;AACnC,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,CAAC;AACtC,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,CAAC;AACtC,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,CAAC;AACtC,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,CAAC;AACpC,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1C,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEvE,SAAS,YAAY,CAAC,SAAiB,EAAE,QAAkB;IACvD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB;IAC/C,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa;IAMpD,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,MAAM,EAAE,CAAC;QACT,mEAAmE;QACnE,OAAO;YACH,GAAG,MAAM;YACT,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,YAAY;SAC/E,CAAC;IACN,CAAC;IACD,IAAI,aAAiC,CAAC;IACtC,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACxD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAC9D,aAAa,GAAG,GAAG,CAAC;YACpB,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,CAAC;IACL,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;QACzD,mEAAmE;QACnE,OAAO;YACH,GAAG,MAAM;YACT,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,YAAY;SAC/E,CAAC;IACN,CAAC;IACD,MAAM,KAAK,GAAoB;QAC3B,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,SAAS;QAC9D,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,SAAS;QAChE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,SAAS;QAChE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,SAAS;QAChE,KAAK,EAAE,KAAK;KACf,CAAC;IACF,MAAM,MAAM,GAAoB;QAC5B,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,SAAS;QAC/D,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,mBAAmB,CAAC,IAAI,SAAS;QACjE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,mBAAmB,CAAC,IAAI,SAAS;QACjE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,mBAAmB,CAAC,IAAI,SAAS;QACjE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,SAAS;KACxE,CAAC;IACF,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,mBAAmB,CAAC,IAAI,SAAS,CAAC;IAChF,mEAAmE;IACnE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;AACjF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ModelModalities } from "../types.js";
1
+ import type { ModelModalities } from '../types.js';
2
2
  /**
3
3
  * Get the full ModelCapabilities for a Vertex AI model.
4
4
  * Checks RECORD_MODEL_CAPABILITIES first, then falls back to pattern-based inference.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertexai.d.ts","sourceRoot":"","sources":["../../src/capability/vertexai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgHnD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG;IACzD,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CA+BA"}