@tanstack/ai-groq 0.1.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.
- package/README.md +91 -0
- package/dist/esm/adapters/text.d.ts +104 -0
- package/dist/esm/adapters/text.js +384 -0
- package/dist/esm/adapters/text.js.map +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/message-types.d.ts +292 -0
- package/dist/esm/model-meta.d.ts +275 -0
- package/dist/esm/model-meta.js +54 -0
- package/dist/esm/model-meta.js.map +1 -0
- package/dist/esm/text/text-provider-options.d.ts +179 -0
- package/dist/esm/text/text-provider-options.js +6 -0
- package/dist/esm/text/text-provider-options.js.map +1 -0
- package/dist/esm/tools/function-tool.d.ts +13 -0
- package/dist/esm/tools/function-tool.js +29 -0
- package/dist/esm/tools/function-tool.js.map +1 -0
- package/dist/esm/tools/index.d.ts +2 -0
- package/dist/esm/tools/tool-converter.d.ts +7 -0
- package/dist/esm/tools/tool-converter.js +10 -0
- package/dist/esm/tools/tool-converter.js.map +1 -0
- package/dist/esm/utils/client.d.ts +17 -0
- package/dist/esm/utils/client.js +23 -0
- package/dist/esm/utils/client.js.map +1 -0
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/schema-converter.d.ts +25 -0
- package/dist/esm/utils/schema-converter.js +78 -0
- package/dist/esm/utils/schema-converter.js.map +1 -0
- package/package.json +52 -0
- package/src/adapters/text.ts +599 -0
- package/src/index.ts +33 -0
- package/src/message-types.ts +359 -0
- package/src/model-meta.ts +370 -0
- package/src/text/text-provider-options.ts +225 -0
- package/src/tools/function-tool.ts +44 -0
- package/src/tools/index.ts +5 -0
- package/src/tools/tool-converter.ts +15 -0
- package/src/utils/client.ts +42 -0
- package/src/utils/index.ts +10 -0
- package/src/utils/schema-converter.ts +110 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Groq-specific message types for the Chat Completions API.
|
|
3
|
+
*
|
|
4
|
+
* These type definitions mirror the Groq SDK types and are used internally
|
|
5
|
+
* by the adapter to avoid tight coupling to the SDK's exported types.
|
|
6
|
+
*
|
|
7
|
+
* @see https://console.groq.com/docs/api-reference#chat
|
|
8
|
+
*/
|
|
9
|
+
export interface ChatCompletionContentPartText {
|
|
10
|
+
/** The text content. */
|
|
11
|
+
text: string;
|
|
12
|
+
/** The type of the content part. */
|
|
13
|
+
type: 'text';
|
|
14
|
+
}
|
|
15
|
+
export interface ChatCompletionContentPartImage {
|
|
16
|
+
image_url: {
|
|
17
|
+
/** Either a URL of the image or the base64 encoded image data. */
|
|
18
|
+
url: string;
|
|
19
|
+
/** Specifies the detail level of the image. */
|
|
20
|
+
detail?: 'auto' | 'low' | 'high';
|
|
21
|
+
};
|
|
22
|
+
/** The type of the content part. */
|
|
23
|
+
type: 'image_url';
|
|
24
|
+
}
|
|
25
|
+
export interface ChatCompletionMessageToolCall {
|
|
26
|
+
/** The ID of the tool call. */
|
|
27
|
+
id: string;
|
|
28
|
+
/** The function that the model called. */
|
|
29
|
+
function: {
|
|
30
|
+
/**
|
|
31
|
+
* The arguments to call the function with, as generated by the model in JSON
|
|
32
|
+
* format. Note that the model does not always generate valid JSON, and may
|
|
33
|
+
* hallucinate parameters not defined by your function schema. Validate the
|
|
34
|
+
* arguments in your code before calling your function.
|
|
35
|
+
*/
|
|
36
|
+
arguments: string;
|
|
37
|
+
/** The name of the function to call. */
|
|
38
|
+
name: string;
|
|
39
|
+
};
|
|
40
|
+
/** The type of the tool. Currently, only `function` is supported. */
|
|
41
|
+
type: 'function';
|
|
42
|
+
}
|
|
43
|
+
export interface ChatCompletionRequestMessageContentPartDocument {
|
|
44
|
+
document: {
|
|
45
|
+
/** The JSON document data. */
|
|
46
|
+
data: {
|
|
47
|
+
[key: string]: unknown;
|
|
48
|
+
};
|
|
49
|
+
/** Optional unique identifier for the document. */
|
|
50
|
+
id?: string | null;
|
|
51
|
+
};
|
|
52
|
+
/** The type of the content part. */
|
|
53
|
+
type: 'document';
|
|
54
|
+
}
|
|
55
|
+
export type FunctionParameters = {
|
|
56
|
+
[key: string]: unknown;
|
|
57
|
+
};
|
|
58
|
+
export interface ChatCompletionNamedToolChoice {
|
|
59
|
+
Function: {
|
|
60
|
+
/** The name of the function to call. */
|
|
61
|
+
name: string;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface FunctionDefinition {
|
|
65
|
+
/**
|
|
66
|
+
* The name of the function to be called. Must be a-z, A-Z, 0-9, or contain
|
|
67
|
+
* underscores and dashes, with a maximum length of 64.
|
|
68
|
+
*/
|
|
69
|
+
name: string;
|
|
70
|
+
/**
|
|
71
|
+
* A description of what the function does, used by the model to choose when and
|
|
72
|
+
* how to call the function.
|
|
73
|
+
*/
|
|
74
|
+
description?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Function parameters defined as a JSON Schema object.
|
|
77
|
+
* @see https://json-schema.org/understanding-json-schema/
|
|
78
|
+
*/
|
|
79
|
+
parameters?: FunctionParameters;
|
|
80
|
+
/**
|
|
81
|
+
* Whether to enable strict schema adherence when generating the output. If set to
|
|
82
|
+
* true, the model will always follow the exact schema defined in the `schema`
|
|
83
|
+
* field. Only a subset of JSON Schema is supported when `strict` is `true`.
|
|
84
|
+
*/
|
|
85
|
+
strict?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Controls which (if any) tool is called by the model.
|
|
89
|
+
*
|
|
90
|
+
* - `none` — the model will not call any tool and instead generates a message
|
|
91
|
+
* - `auto` — the model can pick between generating a message or calling tools
|
|
92
|
+
* - `required` — the model must call one or more tools
|
|
93
|
+
* - Named tool choice — forces the model to call a specific tool
|
|
94
|
+
*/
|
|
95
|
+
export type ChatCompletionToolChoiceOption = 'none' | 'auto' | 'required' | ChatCompletionNamedToolChoice;
|
|
96
|
+
export type ChatCompletionContentPart = ChatCompletionContentPartText | ChatCompletionContentPartImage | ChatCompletionRequestMessageContentPartDocument;
|
|
97
|
+
export interface ChatCompletionAssistantMessageParam {
|
|
98
|
+
/** The role of the messages author, in this case `assistant`. */
|
|
99
|
+
role: 'assistant';
|
|
100
|
+
/**
|
|
101
|
+
* The contents of the assistant message. Required unless `tool_calls` or
|
|
102
|
+
* `function_call` is specified.
|
|
103
|
+
*/
|
|
104
|
+
content?: string | Array<ChatCompletionContentPartText> | null;
|
|
105
|
+
/** An optional name for the participant. */
|
|
106
|
+
name?: string;
|
|
107
|
+
/**
|
|
108
|
+
* The reasoning output by the assistant if reasoning_format was set to 'parsed'.
|
|
109
|
+
* This field is only useable with qwen3 models.
|
|
110
|
+
*/
|
|
111
|
+
reasoning?: string | null;
|
|
112
|
+
/** The tool calls generated by the model, such as function calls. */
|
|
113
|
+
tool_calls?: Array<ChatCompletionMessageToolCall>;
|
|
114
|
+
}
|
|
115
|
+
export interface ChatCompletionTool {
|
|
116
|
+
/**
|
|
117
|
+
* The type of the tool. `function`, `browser_search`, and `code_interpreter` are
|
|
118
|
+
* supported.
|
|
119
|
+
*/
|
|
120
|
+
type: 'function' | 'browser_search' | 'code_interpreter' | (string & {});
|
|
121
|
+
function?: FunctionDefinition;
|
|
122
|
+
}
|
|
123
|
+
export interface ChatCompletionToolMessageParam {
|
|
124
|
+
/** The contents of the tool message. */
|
|
125
|
+
content: string | Array<ChatCompletionContentPart>;
|
|
126
|
+
/** The role of the messages author, in this case `tool`. */
|
|
127
|
+
role: 'tool';
|
|
128
|
+
/** Tool call that this message is responding to. */
|
|
129
|
+
tool_call_id: string;
|
|
130
|
+
}
|
|
131
|
+
export interface ChatCompletionSystemMessageParam {
|
|
132
|
+
/** The contents of the system message. */
|
|
133
|
+
content: string | Array<ChatCompletionContentPartText>;
|
|
134
|
+
/** The role of the messages author, in this case `system`. */
|
|
135
|
+
role: 'system' | 'developer';
|
|
136
|
+
/** An optional name for the participant. */
|
|
137
|
+
name?: string;
|
|
138
|
+
}
|
|
139
|
+
export interface ChatCompletionUserMessageParam {
|
|
140
|
+
/** The contents of the user message. */
|
|
141
|
+
content: string | Array<ChatCompletionContentPart>;
|
|
142
|
+
/** The role of the messages author, in this case `user`. */
|
|
143
|
+
role: 'user';
|
|
144
|
+
/** An optional name for the participant. */
|
|
145
|
+
name?: string;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Union of all supported chat completion message params.
|
|
149
|
+
*/
|
|
150
|
+
export type ChatCompletionMessageParam = ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam;
|
|
151
|
+
export interface CompoundCustomModels {
|
|
152
|
+
/** Custom model to use for answering. */
|
|
153
|
+
answering_model?: string | null;
|
|
154
|
+
/** Custom model to use for reasoning. */
|
|
155
|
+
reasoning_model?: string | null;
|
|
156
|
+
}
|
|
157
|
+
export interface CompoundCustomTools {
|
|
158
|
+
/** A list of tool names that are enabled for the request. */
|
|
159
|
+
enabled_tools?: Array<string> | null;
|
|
160
|
+
/** Configuration for the Wolfram tool integration. */
|
|
161
|
+
wolfram_settings?: CompoundCustomToolsWolframSettings | null;
|
|
162
|
+
}
|
|
163
|
+
export interface CompoundCustomToolsWolframSettings {
|
|
164
|
+
/** API key used to authorize requests to Wolfram services. */
|
|
165
|
+
authorization?: string | null;
|
|
166
|
+
}
|
|
167
|
+
export interface CompoundCustom {
|
|
168
|
+
models?: CompoundCustomModels | null;
|
|
169
|
+
/** Configuration options for tools available to Compound. */
|
|
170
|
+
tools?: CompoundCustomTools | null;
|
|
171
|
+
}
|
|
172
|
+
export interface DocumentSourceText {
|
|
173
|
+
/** The document contents. */
|
|
174
|
+
text: string;
|
|
175
|
+
/** Identifies this document source as inline text. */
|
|
176
|
+
type: 'text';
|
|
177
|
+
}
|
|
178
|
+
export interface DocumentSourceJson {
|
|
179
|
+
/** The JSON payload associated with the document. */
|
|
180
|
+
data: {
|
|
181
|
+
[key: string]: unknown;
|
|
182
|
+
};
|
|
183
|
+
/** Identifies this document source as JSON data. */
|
|
184
|
+
type: 'json';
|
|
185
|
+
}
|
|
186
|
+
export interface Document {
|
|
187
|
+
/** The source of the document. Only text and JSON sources are currently supported. */
|
|
188
|
+
source: DocumentSourceText | DocumentSourceJson;
|
|
189
|
+
/** Optional unique identifier that can be used for citations in responses. */
|
|
190
|
+
id?: string | null;
|
|
191
|
+
}
|
|
192
|
+
export interface ResponseFormatText {
|
|
193
|
+
/** The type of response format being defined. Always `text`. */
|
|
194
|
+
type: 'text';
|
|
195
|
+
}
|
|
196
|
+
export interface ResponseFormatJsonSchemaJsonSchema {
|
|
197
|
+
/**
|
|
198
|
+
* The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores
|
|
199
|
+
* and dashes, with a maximum length of 64.
|
|
200
|
+
*/
|
|
201
|
+
name: string;
|
|
202
|
+
/**
|
|
203
|
+
* A description of what the response format is for, used by the model to determine
|
|
204
|
+
* how to respond in the format.
|
|
205
|
+
*/
|
|
206
|
+
description?: string;
|
|
207
|
+
/**
|
|
208
|
+
* The schema for the response format, described as a JSON Schema object.
|
|
209
|
+
* @see https://json-schema.org/
|
|
210
|
+
*/
|
|
211
|
+
schema?: {
|
|
212
|
+
[key: string]: unknown;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Whether to enable strict schema adherence when generating the output. If set to
|
|
216
|
+
* true, the model will always follow the exact schema defined in the `schema`
|
|
217
|
+
* field. Only a subset of JSON Schema is supported when `strict` is `true`.
|
|
218
|
+
*/
|
|
219
|
+
strict?: boolean | null;
|
|
220
|
+
}
|
|
221
|
+
export interface ResponseFormatJsonSchema {
|
|
222
|
+
/** Structured Outputs configuration options, including a JSON Schema. */
|
|
223
|
+
json_schema: ResponseFormatJsonSchemaJsonSchema;
|
|
224
|
+
/** The type of response format being defined. Always `json_schema`. */
|
|
225
|
+
type: 'json_schema';
|
|
226
|
+
}
|
|
227
|
+
export interface ResponseFormatJsonObject {
|
|
228
|
+
/** The type of response format being defined. Always `json_object`. */
|
|
229
|
+
type: 'json_object';
|
|
230
|
+
}
|
|
231
|
+
export interface SearchSettings {
|
|
232
|
+
/**
|
|
233
|
+
* Name of country to prioritize search results from
|
|
234
|
+
* (e.g., "united states", "germany", "france").
|
|
235
|
+
*/
|
|
236
|
+
country?: string | null;
|
|
237
|
+
/** A list of domains to exclude from the search results. */
|
|
238
|
+
exclude_domains?: Array<string> | null;
|
|
239
|
+
/** A list of domains to include in the search results. */
|
|
240
|
+
include_domains?: Array<string> | null;
|
|
241
|
+
/** Whether to include images in the search results. */
|
|
242
|
+
include_images?: boolean | null;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Metadata for Groq document content parts.
|
|
246
|
+
*/
|
|
247
|
+
export interface GroqDocumentMetadata {
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Metadata for Groq text content parts.
|
|
251
|
+
* Currently no specific metadata options for text in Groq.
|
|
252
|
+
*/
|
|
253
|
+
export interface GroqTextMetadata {
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Metadata for Groq image content parts.
|
|
257
|
+
* Controls how the model processes and analyzes images.
|
|
258
|
+
*/
|
|
259
|
+
export interface GroqImageMetadata {
|
|
260
|
+
/**
|
|
261
|
+
* Specifies the detail level of the image.
|
|
262
|
+
* - 'auto': Let the model decide based on image size and content
|
|
263
|
+
* - 'low': Use low resolution processing (faster, cheaper, less detail)
|
|
264
|
+
* - 'high': Use high resolution processing (slower, more expensive, more detail)
|
|
265
|
+
*
|
|
266
|
+
* @default 'auto'
|
|
267
|
+
*/
|
|
268
|
+
detail?: 'auto' | 'low' | 'high';
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Metadata for Groq audio content parts.
|
|
272
|
+
* Note: Audio support in Groq is limited; check current API capabilities.
|
|
273
|
+
*/
|
|
274
|
+
export interface GroqAudioMetadata {
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Metadata for Groq video content parts.
|
|
278
|
+
* Note: Groq does not currently support video input.
|
|
279
|
+
*/
|
|
280
|
+
export interface GroqVideoMetadata {
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Map of modality types to their Groq-specific metadata types.
|
|
284
|
+
* Used for type inference when constructing multimodal messages.
|
|
285
|
+
*/
|
|
286
|
+
export interface GroqMessageMetadataByModality {
|
|
287
|
+
text: GroqTextMetadata;
|
|
288
|
+
image: GroqImageMetadata;
|
|
289
|
+
audio: GroqAudioMetadata;
|
|
290
|
+
video: GroqVideoMetadata;
|
|
291
|
+
document: GroqDocumentMetadata;
|
|
292
|
+
}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { GroqTextProviderOptions } from './text/text-provider-options.js';
|
|
2
|
+
declare const LLAMA_3_3_70B_VERSATILE: {
|
|
3
|
+
readonly name: "llama-3.3-70b-versatile";
|
|
4
|
+
readonly context_window: 131072;
|
|
5
|
+
readonly max_completion_tokens: 32768;
|
|
6
|
+
readonly pricing: {
|
|
7
|
+
readonly input: {
|
|
8
|
+
readonly normal: 0.59;
|
|
9
|
+
};
|
|
10
|
+
readonly output: {
|
|
11
|
+
readonly normal: 0.79;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
readonly supports: {
|
|
15
|
+
readonly input: ["text"];
|
|
16
|
+
readonly output: ["text"];
|
|
17
|
+
readonly endpoints: ["chat"];
|
|
18
|
+
readonly features: ["streaming", "tools", "json_object"];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
declare const LLAMA_4_MAVERICK_17B_128E_INSTRUCT: {
|
|
22
|
+
readonly name: "meta-llama/llama-4-maverick-17b-128e-instruct";
|
|
23
|
+
readonly context_window: 131072;
|
|
24
|
+
readonly max_completion_tokens: 8192;
|
|
25
|
+
readonly pricing: {
|
|
26
|
+
readonly input: {
|
|
27
|
+
readonly normal: 0.2;
|
|
28
|
+
};
|
|
29
|
+
readonly output: {
|
|
30
|
+
readonly normal: 0.6;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
readonly supports: {
|
|
34
|
+
readonly input: ["text", "image"];
|
|
35
|
+
readonly output: ["text"];
|
|
36
|
+
readonly endpoints: ["chat"];
|
|
37
|
+
readonly features: ["streaming", "tools", "json_object", "json_schema", "vision"];
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
declare const LLAMA_4_SCOUT_17B_16E_INSTRUCT: {
|
|
41
|
+
readonly name: "meta-llama/llama-4-scout-17b-16e-instruct";
|
|
42
|
+
readonly context_window: 131072;
|
|
43
|
+
readonly max_completion_tokens: 8192;
|
|
44
|
+
readonly pricing: {
|
|
45
|
+
readonly input: {
|
|
46
|
+
readonly normal: 0.05;
|
|
47
|
+
};
|
|
48
|
+
readonly output: {
|
|
49
|
+
readonly normal: 0.08;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
readonly supports: {
|
|
53
|
+
readonly input: ["text", "image"];
|
|
54
|
+
readonly output: ["text"];
|
|
55
|
+
readonly endpoints: ["chat"];
|
|
56
|
+
readonly features: ["streaming", "tools", "json_object"];
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
declare const LLAMA_GUARD_4_12B: {
|
|
60
|
+
readonly name: "meta-llama/llama-guard-4-12b";
|
|
61
|
+
readonly context_window: 131072;
|
|
62
|
+
readonly max_completion_tokens: 1024;
|
|
63
|
+
readonly pricing: {
|
|
64
|
+
readonly input: {
|
|
65
|
+
readonly normal: 0.2;
|
|
66
|
+
};
|
|
67
|
+
readonly output: {
|
|
68
|
+
readonly normal: 0.2;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
readonly supports: {
|
|
72
|
+
readonly input: ["text", "image"];
|
|
73
|
+
readonly output: ["text"];
|
|
74
|
+
readonly endpoints: ["chat"];
|
|
75
|
+
readonly features: ["streaming", "json_object", "content_moderation", "vision"];
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
declare const LLAMA_PROMPT_GUARD_2_86M: {
|
|
79
|
+
readonly name: "meta-llama/llama-prompt-guard-2-86m";
|
|
80
|
+
readonly context_window: 512;
|
|
81
|
+
readonly max_completion_tokens: 512;
|
|
82
|
+
readonly pricing: {
|
|
83
|
+
readonly input: {
|
|
84
|
+
readonly normal: 0.04;
|
|
85
|
+
};
|
|
86
|
+
readonly output: {
|
|
87
|
+
readonly normal: 0.04;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
readonly supports: {
|
|
91
|
+
readonly input: ["text"];
|
|
92
|
+
readonly output: ["text"];
|
|
93
|
+
readonly endpoints: ["chat"];
|
|
94
|
+
readonly features: ["streaming", "content_moderation", "json_object"];
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
declare const LLAMA_3_1_8B_INSTANT: {
|
|
98
|
+
readonly name: "llama-3.1-8b-instant";
|
|
99
|
+
readonly context_window: 131072;
|
|
100
|
+
readonly max_completion_tokens: 131072;
|
|
101
|
+
readonly pricing: {
|
|
102
|
+
readonly input: {
|
|
103
|
+
readonly normal: 0.05;
|
|
104
|
+
};
|
|
105
|
+
readonly output: {
|
|
106
|
+
readonly normal: 0.08;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
readonly supports: {
|
|
110
|
+
readonly input: ["text"];
|
|
111
|
+
readonly output: ["text"];
|
|
112
|
+
readonly endpoints: ["chat"];
|
|
113
|
+
readonly features: ["streaming", "json_object", "tools"];
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
declare const LLAMA_PROMPT_GUARD_2_22M: {
|
|
117
|
+
readonly name: "meta-llama/llama-prompt-guard-2-22m";
|
|
118
|
+
readonly context_window: 512;
|
|
119
|
+
readonly max_completion_tokens: 512;
|
|
120
|
+
readonly pricing: {
|
|
121
|
+
readonly input: {
|
|
122
|
+
readonly normal: 0.03;
|
|
123
|
+
};
|
|
124
|
+
readonly output: {
|
|
125
|
+
readonly normal: 0.03;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
readonly supports: {
|
|
129
|
+
readonly input: ["text"];
|
|
130
|
+
readonly output: ["text"];
|
|
131
|
+
readonly endpoints: ["chat"];
|
|
132
|
+
readonly features: ["streaming", "content_moderation"];
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
declare const GPT_OSS_120B: {
|
|
136
|
+
readonly name: "openai/gpt-oss-120b";
|
|
137
|
+
readonly context_window: 131072;
|
|
138
|
+
readonly max_completion_tokens: 65536;
|
|
139
|
+
readonly pricing: {
|
|
140
|
+
readonly input: {
|
|
141
|
+
readonly normal: 0.15;
|
|
142
|
+
readonly cached: 0.075;
|
|
143
|
+
};
|
|
144
|
+
readonly output: {
|
|
145
|
+
readonly normal: 0.6;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
readonly supports: {
|
|
149
|
+
readonly input: ["text"];
|
|
150
|
+
readonly output: ["text"];
|
|
151
|
+
readonly endpoints: ["chat"];
|
|
152
|
+
readonly features: ["streaming", "json_object", "json_schema", "tools", "browser_search", "code_execution", "reasoning"];
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
declare const GPT_OSS_SAFEGUARD_20B: {
|
|
156
|
+
readonly name: "openai/gpt-oss-safeguard-20b";
|
|
157
|
+
readonly context_window: 131072;
|
|
158
|
+
readonly max_completion_tokens: 65536;
|
|
159
|
+
readonly pricing: {
|
|
160
|
+
readonly input: {
|
|
161
|
+
readonly normal: 0.075;
|
|
162
|
+
readonly cached: 0.037;
|
|
163
|
+
};
|
|
164
|
+
readonly output: {
|
|
165
|
+
readonly normal: 0.3;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
readonly supports: {
|
|
169
|
+
readonly input: ["text"];
|
|
170
|
+
readonly output: ["text"];
|
|
171
|
+
readonly endpoints: ["chat"];
|
|
172
|
+
readonly features: ["streaming", "tools", "browser_search", "code_execution", "json_object", "json_schema", "reasoning", "content_moderation"];
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
declare const GPT_OSS_20B: {
|
|
176
|
+
readonly name: "openai/gpt-oss-20b";
|
|
177
|
+
readonly context_window: 131072;
|
|
178
|
+
readonly max_completion_tokens: 65536;
|
|
179
|
+
readonly pricing: {
|
|
180
|
+
readonly input: {
|
|
181
|
+
readonly normal: 0.075;
|
|
182
|
+
readonly cached: 0.037;
|
|
183
|
+
};
|
|
184
|
+
readonly output: {
|
|
185
|
+
readonly normal: 0.3;
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
readonly supports: {
|
|
189
|
+
readonly input: ["text"];
|
|
190
|
+
readonly output: ["text"];
|
|
191
|
+
readonly endpoints: ["chat"];
|
|
192
|
+
readonly features: ["streaming", "browser_search", "code_execution", "json_object", "json_schema", "reasoning", "tools"];
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
declare const KIMI_K2_INSTRUCT_0905: {
|
|
196
|
+
readonly name: "moonshotai/kimi-k2-instruct-0905";
|
|
197
|
+
readonly context_window: 262144;
|
|
198
|
+
readonly max_completion_tokens: 16384;
|
|
199
|
+
readonly pricing: {
|
|
200
|
+
readonly input: {
|
|
201
|
+
readonly normal: 1;
|
|
202
|
+
readonly cached: 0.5;
|
|
203
|
+
};
|
|
204
|
+
readonly output: {
|
|
205
|
+
readonly normal: 3;
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
readonly supports: {
|
|
209
|
+
readonly input: ["text"];
|
|
210
|
+
readonly output: ["text"];
|
|
211
|
+
readonly endpoints: ["chat"];
|
|
212
|
+
readonly features: ["streaming", "tools", "json_object", "json_schema"];
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
declare const QWEN3_32B: {
|
|
216
|
+
readonly name: "qwen/qwen3-32b";
|
|
217
|
+
readonly context_window: 131072;
|
|
218
|
+
readonly max_completion_tokens: 40960;
|
|
219
|
+
readonly pricing: {
|
|
220
|
+
readonly input: {
|
|
221
|
+
readonly normal: 0.29;
|
|
222
|
+
};
|
|
223
|
+
readonly output: {
|
|
224
|
+
readonly normal: 0.59;
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
readonly supports: {
|
|
228
|
+
readonly input: ["text"];
|
|
229
|
+
readonly output: ["text"];
|
|
230
|
+
readonly endpoints: ["chat"];
|
|
231
|
+
readonly features: ["streaming", "json_object", "tools", "reasoning"];
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* All supported Groq chat model identifiers.
|
|
236
|
+
*/
|
|
237
|
+
export declare const GROQ_CHAT_MODELS: readonly ["llama-3.1-8b-instant", "llama-3.3-70b-versatile", "meta-llama/llama-4-maverick-17b-128e-instruct", "meta-llama/llama-4-scout-17b-16e-instruct", "meta-llama/llama-guard-4-12b", "meta-llama/llama-prompt-guard-2-86m", "meta-llama/llama-prompt-guard-2-22m", "openai/gpt-oss-20b", "openai/gpt-oss-120b", "openai/gpt-oss-safeguard-20b", "moonshotai/kimi-k2-instruct-0905", "qwen/qwen3-32b"];
|
|
238
|
+
/**
|
|
239
|
+
* Union type of all supported Groq chat model names.
|
|
240
|
+
*/
|
|
241
|
+
export type GroqChatModels = (typeof GROQ_CHAT_MODELS)[number];
|
|
242
|
+
/**
|
|
243
|
+
* Type-only map from Groq chat model name to its supported input modalities.
|
|
244
|
+
*/
|
|
245
|
+
export type GroqModelInputModalitiesByName = {
|
|
246
|
+
[LLAMA_3_1_8B_INSTANT.name]: typeof LLAMA_3_1_8B_INSTANT.supports.input;
|
|
247
|
+
[LLAMA_3_3_70B_VERSATILE.name]: typeof LLAMA_3_3_70B_VERSATILE.supports.input;
|
|
248
|
+
[LLAMA_4_MAVERICK_17B_128E_INSTRUCT.name]: typeof LLAMA_4_MAVERICK_17B_128E_INSTRUCT.supports.input;
|
|
249
|
+
[LLAMA_4_SCOUT_17B_16E_INSTRUCT.name]: typeof LLAMA_4_SCOUT_17B_16E_INSTRUCT.supports.input;
|
|
250
|
+
[LLAMA_GUARD_4_12B.name]: typeof LLAMA_GUARD_4_12B.supports.input;
|
|
251
|
+
[LLAMA_PROMPT_GUARD_2_86M.name]: typeof LLAMA_PROMPT_GUARD_2_86M.supports.input;
|
|
252
|
+
[LLAMA_PROMPT_GUARD_2_22M.name]: typeof LLAMA_PROMPT_GUARD_2_22M.supports.input;
|
|
253
|
+
[GPT_OSS_20B.name]: typeof GPT_OSS_20B.supports.input;
|
|
254
|
+
[GPT_OSS_120B.name]: typeof GPT_OSS_120B.supports.input;
|
|
255
|
+
[GPT_OSS_SAFEGUARD_20B.name]: typeof GPT_OSS_SAFEGUARD_20B.supports.input;
|
|
256
|
+
[KIMI_K2_INSTRUCT_0905.name]: typeof KIMI_K2_INSTRUCT_0905.supports.input;
|
|
257
|
+
[QWEN3_32B.name]: typeof QWEN3_32B.supports.input;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* Type-only map from Groq chat model name to its provider options type.
|
|
261
|
+
*/
|
|
262
|
+
export type GroqChatModelProviderOptionsByName = {
|
|
263
|
+
[K in (typeof GROQ_CHAT_MODELS)[number]]: GroqTextProviderOptions;
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Resolves the provider options type for a specific Groq model.
|
|
267
|
+
* Falls back to generic GroqTextProviderOptions for unknown models.
|
|
268
|
+
*/
|
|
269
|
+
export type ResolveProviderOptions<TModel extends string> = TModel extends keyof GroqChatModelProviderOptionsByName ? GroqChatModelProviderOptionsByName[TModel] : GroqTextProviderOptions;
|
|
270
|
+
/**
|
|
271
|
+
* Resolve input modalities for a specific model.
|
|
272
|
+
* If the model has explicit modalities in the map, use those; otherwise use text only.
|
|
273
|
+
*/
|
|
274
|
+
export type ResolveInputModalities<TModel extends string> = TModel extends keyof GroqModelInputModalitiesByName ? GroqModelInputModalitiesByName[TModel] : readonly ['text'];
|
|
275
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const LLAMA_3_3_70B_VERSATILE = {
|
|
2
|
+
name: "llama-3.3-70b-versatile"
|
|
3
|
+
};
|
|
4
|
+
const LLAMA_4_MAVERICK_17B_128E_INSTRUCT = {
|
|
5
|
+
name: "meta-llama/llama-4-maverick-17b-128e-instruct"
|
|
6
|
+
};
|
|
7
|
+
const LLAMA_4_SCOUT_17B_16E_INSTRUCT = {
|
|
8
|
+
name: "meta-llama/llama-4-scout-17b-16e-instruct"
|
|
9
|
+
};
|
|
10
|
+
const LLAMA_GUARD_4_12B = {
|
|
11
|
+
name: "meta-llama/llama-guard-4-12b"
|
|
12
|
+
};
|
|
13
|
+
const LLAMA_PROMPT_GUARD_2_86M = {
|
|
14
|
+
name: "meta-llama/llama-prompt-guard-2-86m"
|
|
15
|
+
};
|
|
16
|
+
const LLAMA_3_1_8B_INSTANT = {
|
|
17
|
+
name: "llama-3.1-8b-instant"
|
|
18
|
+
};
|
|
19
|
+
const LLAMA_PROMPT_GUARD_2_22M = {
|
|
20
|
+
name: "meta-llama/llama-prompt-guard-2-22m"
|
|
21
|
+
};
|
|
22
|
+
const GPT_OSS_120B = {
|
|
23
|
+
name: "openai/gpt-oss-120b"
|
|
24
|
+
};
|
|
25
|
+
const GPT_OSS_SAFEGUARD_20B = {
|
|
26
|
+
name: "openai/gpt-oss-safeguard-20b"
|
|
27
|
+
};
|
|
28
|
+
const GPT_OSS_20B = {
|
|
29
|
+
name: "openai/gpt-oss-20b"
|
|
30
|
+
};
|
|
31
|
+
const KIMI_K2_INSTRUCT_0905 = {
|
|
32
|
+
name: "moonshotai/kimi-k2-instruct-0905"
|
|
33
|
+
};
|
|
34
|
+
const QWEN3_32B = {
|
|
35
|
+
name: "qwen/qwen3-32b"
|
|
36
|
+
};
|
|
37
|
+
const GROQ_CHAT_MODELS = [
|
|
38
|
+
LLAMA_3_1_8B_INSTANT.name,
|
|
39
|
+
LLAMA_3_3_70B_VERSATILE.name,
|
|
40
|
+
LLAMA_4_MAVERICK_17B_128E_INSTRUCT.name,
|
|
41
|
+
LLAMA_4_SCOUT_17B_16E_INSTRUCT.name,
|
|
42
|
+
LLAMA_GUARD_4_12B.name,
|
|
43
|
+
LLAMA_PROMPT_GUARD_2_86M.name,
|
|
44
|
+
LLAMA_PROMPT_GUARD_2_22M.name,
|
|
45
|
+
GPT_OSS_20B.name,
|
|
46
|
+
GPT_OSS_120B.name,
|
|
47
|
+
GPT_OSS_SAFEGUARD_20B.name,
|
|
48
|
+
KIMI_K2_INSTRUCT_0905.name,
|
|
49
|
+
QWEN3_32B.name
|
|
50
|
+
];
|
|
51
|
+
export {
|
|
52
|
+
GROQ_CHAT_MODELS
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=model-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-meta.js","sources":["../../src/model-meta.ts"],"sourcesContent":["import type { GroqTextProviderOptions } from './text/text-provider-options'\n\n/**\n * Internal metadata structure describing a Groq model's capabilities and pricing.\n */\ninterface ModelMeta<TProviderOptions = unknown> {\n name: string\n context_window?: number\n max_completion_tokens?: number\n pricing: {\n input?: { normal: number; cached?: number }\n output?: { normal: number }\n }\n supports: {\n input: Array<'text' | 'image' | 'audio'>\n output: Array<'text' | 'audio'>\n endpoints: Array<'chat' | 'tts' | 'transcription' | 'batch'>\n\n features: Array<\n | 'streaming'\n | 'tools'\n | 'json_object'\n | 'browser_search'\n | 'code_execution'\n | 'reasoning'\n | 'content_moderation'\n | 'json_schema'\n | 'vision'\n >\n }\n /**\n * Type-level description of which provider options this model supports.\n */\n providerOptions?: TProviderOptions\n}\n\nconst LLAMA_3_3_70B_VERSATILE = {\n name: 'llama-3.3-70b-versatile',\n context_window: 131_072,\n max_completion_tokens: 32_768,\n pricing: {\n input: {\n normal: 0.59,\n },\n output: {\n normal: 0.79,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'tools', 'json_object'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst LLAMA_4_MAVERICK_17B_128E_INSTRUCT = {\n name: 'meta-llama/llama-4-maverick-17b-128e-instruct',\n context_window: 131_072,\n max_completion_tokens: 8_192,\n pricing: {\n input: {\n normal: 0.2,\n },\n output: {\n normal: 0.6,\n },\n },\n supports: {\n input: ['text', 'image'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'tools', 'json_object', 'json_schema', 'vision'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst LLAMA_4_SCOUT_17B_16E_INSTRUCT = {\n name: 'meta-llama/llama-4-scout-17b-16e-instruct',\n context_window: 131_072,\n max_completion_tokens: 8_192,\n pricing: {\n input: {\n normal: 0.05,\n },\n output: {\n normal: 0.08,\n },\n },\n supports: {\n input: ['text', 'image'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'tools', 'json_object'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst LLAMA_GUARD_4_12B = {\n name: 'meta-llama/llama-guard-4-12b',\n context_window: 131_072,\n max_completion_tokens: 1024,\n pricing: {\n input: {\n normal: 0.2,\n },\n output: {\n normal: 0.2,\n },\n },\n supports: {\n input: ['text', 'image'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'json_object', 'content_moderation', 'vision'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst LLAMA_PROMPT_GUARD_2_86M = {\n name: 'meta-llama/llama-prompt-guard-2-86m',\n context_window: 512,\n max_completion_tokens: 512,\n pricing: {\n input: {\n normal: 0.04,\n },\n output: {\n normal: 0.04,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'content_moderation', 'json_object'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst LLAMA_3_1_8B_INSTANT = {\n name: 'llama-3.1-8b-instant',\n context_window: 131_072,\n max_completion_tokens: 131_072,\n pricing: {\n input: {\n normal: 0.05,\n },\n output: {\n normal: 0.08,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'json_object', 'tools'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst LLAMA_PROMPT_GUARD_2_22M = {\n name: 'meta-llama/llama-prompt-guard-2-22m',\n context_window: 512,\n max_completion_tokens: 512,\n pricing: {\n input: {\n normal: 0.03,\n },\n output: {\n normal: 0.03,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'content_moderation'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst GPT_OSS_120B = {\n name: 'openai/gpt-oss-120b',\n context_window: 131_072,\n max_completion_tokens: 65_536,\n pricing: {\n input: {\n normal: 0.15,\n cached: 0.075,\n },\n output: {\n normal: 0.6,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: [\n 'streaming',\n 'json_object',\n 'json_schema',\n 'tools',\n 'browser_search',\n 'code_execution',\n 'reasoning',\n ],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst GPT_OSS_SAFEGUARD_20B = {\n name: 'openai/gpt-oss-safeguard-20b',\n context_window: 131_072,\n max_completion_tokens: 65_536,\n pricing: {\n input: {\n normal: 0.075,\n cached: 0.037,\n },\n output: {\n normal: 0.3,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: [\n 'streaming',\n 'tools',\n 'browser_search',\n 'code_execution',\n 'json_object',\n 'json_schema',\n 'reasoning',\n 'content_moderation',\n ],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst GPT_OSS_20B = {\n name: 'openai/gpt-oss-20b',\n context_window: 131_072,\n max_completion_tokens: 65_536,\n pricing: {\n input: {\n normal: 0.075,\n cached: 0.037,\n },\n output: {\n normal: 0.3,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: [\n 'streaming',\n 'browser_search',\n 'code_execution',\n 'json_object',\n 'json_schema',\n 'reasoning',\n 'tools',\n ],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst KIMI_K2_INSTRUCT_0905 = {\n name: 'moonshotai/kimi-k2-instruct-0905',\n context_window: 262_144,\n max_completion_tokens: 16_384,\n pricing: {\n input: {\n normal: 1,\n cached: 0.5,\n },\n output: {\n normal: 3,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'tools', 'json_object', 'json_schema'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\nconst QWEN3_32B = {\n name: 'qwen/qwen3-32b',\n context_window: 131_072,\n max_completion_tokens: 40_960,\n pricing: {\n input: {\n normal: 0.29,\n },\n output: {\n normal: 0.59,\n },\n },\n supports: {\n input: ['text'],\n output: ['text'],\n endpoints: ['chat'],\n features: ['streaming', 'json_object', 'tools', 'reasoning'],\n },\n} as const satisfies ModelMeta<GroqTextProviderOptions>\n\n/**\n * All supported Groq chat model identifiers.\n */\nexport const GROQ_CHAT_MODELS = [\n LLAMA_3_1_8B_INSTANT.name,\n LLAMA_3_3_70B_VERSATILE.name,\n LLAMA_4_MAVERICK_17B_128E_INSTRUCT.name,\n LLAMA_4_SCOUT_17B_16E_INSTRUCT.name,\n LLAMA_GUARD_4_12B.name,\n LLAMA_PROMPT_GUARD_2_86M.name,\n LLAMA_PROMPT_GUARD_2_22M.name,\n GPT_OSS_20B.name,\n GPT_OSS_120B.name,\n GPT_OSS_SAFEGUARD_20B.name,\n KIMI_K2_INSTRUCT_0905.name,\n QWEN3_32B.name,\n] as const\n\n/**\n * Union type of all supported Groq chat model names.\n */\nexport type GroqChatModels = (typeof GROQ_CHAT_MODELS)[number]\n\n/**\n * Type-only map from Groq chat model name to its supported input modalities.\n */\nexport type GroqModelInputModalitiesByName = {\n [LLAMA_3_1_8B_INSTANT.name]: typeof LLAMA_3_1_8B_INSTANT.supports.input\n [LLAMA_3_3_70B_VERSATILE.name]: typeof LLAMA_3_3_70B_VERSATILE.supports.input\n [LLAMA_4_MAVERICK_17B_128E_INSTRUCT.name]: typeof LLAMA_4_MAVERICK_17B_128E_INSTRUCT.supports.input\n [LLAMA_4_SCOUT_17B_16E_INSTRUCT.name]: typeof LLAMA_4_SCOUT_17B_16E_INSTRUCT.supports.input\n [LLAMA_GUARD_4_12B.name]: typeof LLAMA_GUARD_4_12B.supports.input\n [LLAMA_PROMPT_GUARD_2_86M.name]: typeof LLAMA_PROMPT_GUARD_2_86M.supports.input\n [LLAMA_PROMPT_GUARD_2_22M.name]: typeof LLAMA_PROMPT_GUARD_2_22M.supports.input\n [GPT_OSS_20B.name]: typeof GPT_OSS_20B.supports.input\n [GPT_OSS_120B.name]: typeof GPT_OSS_120B.supports.input\n [GPT_OSS_SAFEGUARD_20B.name]: typeof GPT_OSS_SAFEGUARD_20B.supports.input\n [KIMI_K2_INSTRUCT_0905.name]: typeof KIMI_K2_INSTRUCT_0905.supports.input\n [QWEN3_32B.name]: typeof QWEN3_32B.supports.input\n}\n\n/**\n * Type-only map from Groq chat model name to its provider options type.\n */\nexport type GroqChatModelProviderOptionsByName = {\n [K in (typeof GROQ_CHAT_MODELS)[number]]: GroqTextProviderOptions\n}\n\n/**\n * Resolves the provider options type for a specific Groq model.\n * Falls back to generic GroqTextProviderOptions for unknown models.\n */\nexport type ResolveProviderOptions<TModel extends string> =\n TModel extends keyof GroqChatModelProviderOptionsByName\n ? GroqChatModelProviderOptionsByName[TModel]\n : GroqTextProviderOptions\n\n/**\n * Resolve input modalities for a specific model.\n * If the model has explicit modalities in the map, use those; otherwise use text only.\n */\nexport type ResolveInputModalities<TModel extends string> =\n TModel extends keyof GroqModelInputModalitiesByName\n ? GroqModelInputModalitiesByName[TModel]\n : readonly ['text']\n"],"names":[],"mappings":"AAoCA,MAAM,0BAA0B;AAAA,EAC9B,MAAM;AAiBR;AAEA,MAAM,qCAAqC;AAAA,EACzC,MAAM;AAiBR;AAEA,MAAM,iCAAiC;AAAA,EACrC,MAAM;AAiBR;AAEA,MAAM,oBAAoB;AAAA,EACxB,MAAM;AAiBR;AAEA,MAAM,2BAA2B;AAAA,EAC/B,MAAM;AAiBR;AAEA,MAAM,uBAAuB;AAAA,EAC3B,MAAM;AAiBR;AAEA,MAAM,2BAA2B;AAAA,EAC/B,MAAM;AAiBR;AAEA,MAAM,eAAe;AAAA,EACnB,MAAM;AA0BR;AAEA,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AA2BR;AAEA,MAAM,cAAc;AAAA,EAClB,MAAM;AA0BR;AAEA,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AAkBR;AAEA,MAAM,YAAY;AAAA,EAChB,MAAM;AAiBR;AAKO,MAAM,mBAAmB;AAAA,EAC9B,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,mCAAmC;AAAA,EACnC,+BAA+B;AAAA,EAC/B,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,yBAAyB;AAAA,EACzB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,UAAU;AACZ;"}
|