@standardagents/groq 0.0.1-dev.ffffff
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 +7 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.js +821 -0
- package/dist/index.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/GroqProvider.ts","../src/icons.ts","../src/pricing.ts","../src/providerOptions.ts","../src/index.ts"],"sourcesContent":["import type Groq from 'groq-sdk';\nimport type {\n InspectedRequest,\n LLMProviderInterface as Provider,\n ModelCapabilities,\n ProviderFactoryConfig,\n ProviderFinishReason,\n ProviderMessage,\n ProviderModelInfo,\n ProviderRequest,\n ProviderResponse,\n ProviderStreamChunk,\n ProviderTool,\n ProviderToolCallPart,\n ProviderUsage,\n} from '@standardagents/spec';\nimport { ProviderError, mapReasoningLevel } from '@standardagents/spec';\nimport { getGroqIconDataUri } from './icons';\nimport { calculateGroqUsageCost } from './pricing';\n\ninterface GroqModelCatalogEntry {\n id: string;\n name: string;\n description: string;\n contextLength?: number;\n maxOutputTokens?: number;\n capabilities: ModelCapabilities;\n}\n\nconst STATIC_MODELS: GroqModelCatalogEntry[] = [\n {\n id: 'compound-beta',\n name: 'Compound Beta',\n description: 'Groq orchestration model with built-in server-side tools.',\n contextLength: 131072,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: false,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n },\n },\n {\n id: 'compound-beta-mini',\n name: 'Compound Beta Mini',\n description: 'Lower-latency Groq orchestration model with built-in server-side tools.',\n contextLength: 131072,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: false,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n },\n },\n {\n id: 'gemma2-9b-it',\n name: 'Gemma 2 9B IT',\n description: 'Google open model on Groq for fast general-purpose text tasks.',\n contextLength: 8192,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: false,\n supportsStreaming: true,\n supportsJsonMode: false,\n maxContextTokens: 8192,\n },\n },\n {\n id: 'llama-3.1-8b-instant',\n name: 'Llama 3.1 8B Instant',\n description: 'Fastest low-cost Groq text model.',\n contextLength: 131072,\n maxOutputTokens: 131072,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 131072,\n },\n },\n {\n id: 'llama-3.3-70b-versatile',\n name: 'Llama 3.3 70B Versatile',\n description: 'Large general-purpose Groq text model with tool calling.',\n contextLength: 131072,\n maxOutputTokens: 32768,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 32768,\n },\n },\n {\n id: 'meta-llama/llama-4-maverick-17b-128e-instruct',\n name: 'Llama 4 Maverick 17B',\n description: 'Meta multimodal Groq model for richer reasoning and image understanding.',\n contextLength: 131072,\n maxOutputTokens: 8192,\n capabilities: {\n supportsImages: true,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 8192,\n },\n },\n {\n id: 'meta-llama/llama-4-scout-17b-16e-instruct',\n name: 'Llama 4 Scout 17B',\n description: 'Meta multimodal Groq model optimized for speed and vision.',\n contextLength: 131072,\n maxOutputTokens: 8192,\n capabilities: {\n supportsImages: true,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 8192,\n },\n },\n {\n id: 'meta-llama/llama-guard-4-12b',\n name: 'Llama Guard 4 12B',\n description: 'Meta safety and moderation model on Groq.',\n contextLength: 131072,\n capabilities: {\n supportsImages: true,\n supportsToolCalls: false,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n },\n },\n {\n id: 'moonshotai/kimi-k2-instruct',\n name: 'Kimi K2 Instruct',\n description: 'Moonshot long-context instruct model on Groq.',\n contextLength: 131072,\n maxOutputTokens: 16384,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 16384,\n },\n },\n {\n id: 'openai/gpt-oss-120b',\n name: 'GPT OSS 120B',\n description: 'OpenAI open-weight reasoning model on Groq.',\n contextLength: 131072,\n maxOutputTokens: 65536,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 65536,\n reasoningLevels: { 0: 'low', 50: 'medium', 100: 'high' },\n },\n },\n {\n id: 'openai/gpt-oss-20b',\n name: 'GPT OSS 20B',\n description: 'Lower-latency OpenAI open-weight reasoning model on Groq.',\n contextLength: 131072,\n maxOutputTokens: 65536,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 65536,\n reasoningLevels: { 0: 'low', 50: 'medium', 100: 'high' },\n },\n },\n {\n id: 'qwen/qwen3-32b',\n name: 'Qwen3 32B',\n description: 'Qwen reasoning model on Groq with long outputs.',\n contextLength: 131072,\n maxOutputTokens: 40960,\n capabilities: {\n supportsImages: false,\n supportsToolCalls: true,\n supportsStreaming: true,\n supportsJsonMode: true,\n maxContextTokens: 131072,\n maxOutputTokens: 40960,\n reasoningLevels: { 0: 'none', 100: 'default' },\n },\n },\n];\n\nfunction titleizeModelId(modelId: string): string {\n return modelId\n .split(/[/-]/g)\n .filter(Boolean)\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(' ');\n}\n\nfunction toDataUri(data: string, mediaType: string): string {\n return data.startsWith('data:') ? data : `data:${mediaType};base64,${data}`;\n}\n\nfunction mapToolChoice(choice: ProviderRequest['toolChoice']): any {\n if (choice === 'auto' || choice === 'none' || choice === 'required') return choice;\n if (choice && typeof choice === 'object' && 'name' in choice) {\n return { type: 'function', function: { name: choice.name } };\n }\n return undefined;\n}\n\nfunction mapFinishReason(value: string | null | undefined): ProviderFinishReason {\n switch (value) {\n case 'length':\n return 'length';\n case 'tool_calls':\n case 'function_call':\n return 'tool_calls';\n case 'stop':\n default:\n return 'stop';\n }\n}\n\nfunction extractToolCalls(toolCalls: Array<any> | null | undefined): ProviderToolCallPart[] | undefined {\n if (!toolCalls?.length) return undefined;\n\n return toolCalls.map((toolCall) => {\n let args: Record<string, unknown> = {};\n try {\n args = toolCall.function?.arguments ? JSON.parse(toolCall.function.arguments) : {};\n } catch {\n args = {};\n }\n\n return {\n id: toolCall.id,\n name: toolCall.function?.name ?? 'tool',\n arguments: args,\n };\n });\n}\n\nfunction normalizeDocumentContent(value: unknown): string {\n if (typeof value === 'string') return value;\n return JSON.stringify(value);\n}\n\nfunction transformUserContent(content: ProviderMessage['content']): string | any[] {\n if (typeof content === 'string') return content;\n if (!Array.isArray(content)) return '';\n\n return content.map((part: any) => {\n if (part.type === 'text') {\n return { type: 'text', text: part.text };\n }\n\n if (part.type === 'image') {\n return {\n type: 'image_url',\n image_url: {\n url: toDataUri(part.data || '', part.mediaType || 'image/png'),\n detail: part.detail || 'auto',\n },\n };\n }\n\n if (part.type === 'image_url') {\n return {\n type: 'image_url',\n image_url: {\n url: part.image_url?.url || '',\n detail: part.image_url?.detail || 'auto',\n },\n };\n }\n\n return {\n type: 'text',\n text: `[File: ${part.filename || 'file'} (${part.mediaType})]`,\n };\n });\n}\n\nfunction transformMessages(messages: ProviderMessage[]): any[] {\n const transformed: any[] = [];\n\n for (const message of messages) {\n if (message.role === 'system') {\n transformed.push({ role: 'system', content: message.content });\n continue;\n }\n\n if (message.role === 'user') {\n transformed.push({ role: 'user', content: transformUserContent(message.content) });\n continue;\n }\n\n if (message.role === 'assistant') {\n const assistantMessage: any = {\n role: 'assistant',\n content: message.content || null,\n };\n\n if (message.reasoning) {\n assistantMessage.reasoning = message.reasoning;\n }\n\n if (message.toolCalls?.length) {\n assistantMessage.tool_calls = message.toolCalls.map((toolCall: ProviderToolCallPart) => ({\n id: toolCall.id,\n type: 'function',\n function: {\n name: toolCall.name,\n arguments: JSON.stringify(toolCall.arguments),\n },\n }));\n }\n\n transformed.push(assistantMessage);\n continue;\n }\n\n let output = normalizeDocumentContent(message.content);\n if (typeof message.content !== 'string' && 'type' in message.content) {\n if (message.content.type === 'text') output = message.content.text;\n if (message.content.type === 'error') output = message.content.error;\n }\n\n transformed.push({\n role: 'tool',\n tool_call_id: message.toolCallId,\n content: output,\n });\n\n const imageAttachments = message.attachments?.filter((attachment: any) => attachment.type === 'image' && attachment.data) || [];\n if (imageAttachments.length > 0) {\n transformed.push({\n role: 'user',\n content: [\n { type: 'text', text: `Images returned from ${message.toolName}:` },\n ...imageAttachments.map((attachment: any) => ({\n type: 'image_url',\n image_url: {\n url: toDataUri(attachment.data, attachment.mediaType),\n detail: 'auto',\n },\n })),\n ],\n });\n }\n }\n\n return transformed;\n}\n\nfunction transformTools(tools: ProviderTool[]): any[] {\n return tools.map((tool) => ({\n type: 'function',\n function: {\n name: tool.function.name,\n description: tool.function.description,\n parameters: tool.function.parameters\n ? {\n ...tool.function.parameters,\n additionalProperties: false,\n }\n : {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n },\n }));\n}\n\nfunction buildDocuments(providerOptions: Record<string, unknown> | undefined): any[] | undefined {\n const rawDocuments = providerOptions?.documents;\n if (!Array.isArray(rawDocuments) || rawDocuments.length === 0) return undefined;\n\n return rawDocuments.reduce<Array<Record<string, unknown>>>((acc, entry) => {\n if (!entry || typeof entry !== 'object') return acc;\n const record = entry as Record<string, unknown>;\n\n if (typeof record.text === 'string') {\n acc.push({\n id: typeof record.id === 'string' ? record.id : undefined,\n source: { type: 'text', text: record.text },\n });\n return acc;\n }\n\n if (record.json && typeof record.json === 'object') {\n acc.push({\n id: typeof record.id === 'string' ? record.id : undefined,\n source: { type: 'json', json: record.json },\n });\n return acc;\n }\n\n return acc;\n }, []);\n}\n\nfunction transformUsage(modelId: string, usage: any): ProviderUsage {\n const promptTokens = usage?.prompt_tokens ?? 0;\n const completionTokens = usage?.completion_tokens ?? 0;\n const cachedTokens = usage?.prompt_tokens_details?.cached_tokens ?? 0;\n const reasoningTokens = usage?.completion_tokens_details?.reasoning_tokens ?? 0;\n\n const mapped: ProviderUsage = {\n promptTokens,\n completionTokens,\n totalTokens: usage?.total_tokens ?? promptTokens + completionTokens,\n cachedTokens,\n reasoningTokens,\n provider: 'groq',\n };\n\n mapped.cost = calculateGroqUsageCost(modelId, mapped);\n return mapped;\n}\n\nfunction createStreamErrorChunk(error: ProviderError): ProviderStreamChunk {\n return { type: 'error', error: error.message, code: error.code };\n}\n\nfunction supportsReasoningControls(\n modelId: string,\n staticModel?: GroqModelCatalogEntry\n): boolean {\n if (staticModel?.capabilities.reasoningLevels) return true;\n\n const normalized = modelId.toLowerCase();\n\n if (normalized.includes('non-reasoning')) return false;\n if (normalized.includes('reasoning')) return true;\n\n if (normalized.startsWith('openai/gpt-oss-')) return true;\n if (normalized.startsWith('qwen/qwen3-')) return true;\n\n return false;\n}\n\nexport class GroqProvider implements Provider {\n readonly name = 'groq';\n readonly specificationVersion = '1' as const;\n\n private client: Groq | null = null;\n private readonly config: ProviderFactoryConfig;\n\n private static readonly modelsCacheTtl = 5 * 60 * 1000;\n private static modelsCache: ProviderModelInfo[] | null = null;\n private static modelsCacheTime = 0;\n\n constructor(config: ProviderFactoryConfig) {\n this.config = config;\n }\n\n private async getClient(): Promise<Groq> {\n if (!this.client) {\n const { default: Groq } = await import('groq-sdk');\n this.client = new Groq({\n apiKey: this.config.apiKey,\n baseURL: this.config.baseUrl,\n timeout: this.config.timeout,\n });\n }\n return this.client;\n }\n\n supportsModel(_modelId: string): boolean {\n return true;\n }\n\n getIcon(modelId?: string): string {\n return getGroqIconDataUri(modelId);\n }\n\n async getModels(filter?: string): Promise<ProviderModelInfo[]> {\n const now = Date.now();\n if (GroqProvider.modelsCache && now - GroqProvider.modelsCacheTime < GroqProvider.modelsCacheTtl) {\n return this.filterModels(GroqProvider.modelsCache, filter);\n }\n\n try {\n const client = await this.getClient();\n const response = await client.models.list();\n const merged = new Map<string, ProviderModelInfo>();\n\n for (const model of STATIC_MODELS) {\n merged.set(model.id, {\n id: model.id,\n name: model.name,\n description: model.description,\n contextLength: model.contextLength,\n iconId: this.getIcon(model.id),\n slug: model.id,\n });\n }\n\n for (const model of response.data || []) {\n const known = STATIC_MODELS.find((entry) => entry.id === model.id);\n merged.set(model.id, {\n id: model.id,\n name: known?.name || titleizeModelId(model.id),\n description: known?.description || `Groq model owned by ${model.owned_by}`,\n contextLength: known?.contextLength,\n iconId: this.getIcon(model.id),\n slug: model.id,\n });\n }\n\n GroqProvider.modelsCache = Array.from(merged.values()).sort((a, b) => a.name.localeCompare(b.name));\n GroqProvider.modelsCacheTime = now;\n return this.filterModels(GroqProvider.modelsCache, filter);\n } catch (error) {\n console.error('Failed to list Groq models:', error);\n return this.filterModels(\n STATIC_MODELS.map((model) => ({\n id: model.id,\n name: model.name,\n description: model.description,\n contextLength: model.contextLength,\n iconId: this.getIcon(model.id),\n slug: model.id,\n })),\n filter\n );\n }\n }\n\n private filterModels(models: ProviderModelInfo[], filter?: string): ProviderModelInfo[] {\n if (!filter) return models;\n const query = filter.toLowerCase();\n return models.filter((model) =>\n model.id.toLowerCase().includes(query) ||\n model.name.toLowerCase().includes(query) ||\n (model.description?.toLowerCase().includes(query) ?? false)\n );\n }\n\n async getModelCapabilities(modelId: string): Promise<ModelCapabilities | null> {\n const match = STATIC_MODELS.find((model) => model.id === modelId);\n return match ? { ...match.capabilities } : null;\n }\n\n private buildChatParams(request: ProviderRequest): Record<string, unknown> {\n const providerOptions = ((request.providerOptions || {}) as Record<string, unknown>);\n const staticModel = STATIC_MODELS.find((entry) => entry.id === request.model);\n const allowReasoningControls = supportsReasoningControls(request.model, staticModel);\n const allowLocalToolCalls =\n request.tools?.length && staticModel?.capabilities.supportsToolCalls !== false;\n\n const params: Record<string, unknown> = {\n model: request.model,\n messages: transformMessages(request.messages),\n max_completion_tokens: request.maxOutputTokens,\n temperature: request.temperature,\n top_p: request.topP,\n stop: request.stopSequences,\n tools: allowLocalToolCalls ? transformTools(request.tools || []) : undefined,\n tool_choice: allowLocalToolCalls ? mapToolChoice(request.toolChoice) : undefined,\n parallel_tool_calls: allowLocalToolCalls ? request.parallelToolCalls : undefined,\n seed: typeof providerOptions.seed === 'number' ? providerOptions.seed : undefined,\n user: typeof providerOptions.user === 'string' ? providerOptions.user : undefined,\n service_tier: typeof providerOptions.service_tier === 'string' ? providerOptions.service_tier : undefined,\n citation_options: typeof providerOptions.citation_options === 'string' ? providerOptions.citation_options : undefined,\n disable_tool_validation: typeof providerOptions.disable_tool_validation === 'boolean'\n ? providerOptions.disable_tool_validation\n : undefined,\n compound_custom: providerOptions.compound_custom,\n documents: buildDocuments(providerOptions),\n search_settings: providerOptions.search_settings,\n };\n\n if (request.responseFormat?.type === 'json') {\n params.response_format = request.responseFormat.schema\n ? {\n type: 'json_schema',\n json_schema: {\n name: 'response',\n schema: request.responseFormat.schema,\n },\n }\n : { type: 'json_object' };\n }\n\n if (allowReasoningControls && typeof providerOptions.include_reasoning === 'boolean') {\n params.include_reasoning = providerOptions.include_reasoning;\n } else if (allowReasoningControls) {\n params.reasoning_format = providerOptions.reasoning_format || 'parsed';\n }\n\n const reasoningEffortFromOptions = allowReasoningControls && typeof providerOptions.reasoning_effort === 'string'\n ? providerOptions.reasoning_effort\n : undefined;\n\n if (reasoningEffortFromOptions) {\n params.reasoning_effort = reasoningEffortFromOptions;\n } else if (allowReasoningControls && request.reasoning?.level !== undefined && staticModel?.capabilities.reasoningLevels) {\n const mapped = mapReasoningLevel(request.reasoning.level, staticModel.capabilities.reasoningLevels);\n if (mapped) params.reasoning_effort = mapped;\n }\n\n return Object.fromEntries(Object.entries(params).filter(([, value]) => value !== undefined));\n }\n\n async inspectRequest(request: ProviderRequest): Promise<InspectedRequest> {\n return {\n body: this.buildChatParams(request),\n messagesPath: 'messages',\n metadata: {\n endpoint: `${this.config.baseUrl || 'https://api.groq.com/openai/v1'}/chat/completions`,\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n };\n }\n\n async generate(request: ProviderRequest): Promise<ProviderResponse> {\n try {\n const client = await this.getClient();\n const response: any = await client.chat.completions.create(\n this.buildChatParams(request) as any,\n { signal: request.signal }\n );\n\n const choice = response.choices?.[0];\n const message = choice?.message;\n const usage = transformUsage(request.model, response.usage);\n const reasoning = message?.reasoning || null;\n\n return {\n content: message?.content || null,\n reasoning,\n reasoningDetails: reasoning ? [{ type: 'text', text: reasoning, format: 'groq-chat-completions-v1' }] : undefined,\n toolCalls: extractToolCalls(message?.tool_calls),\n finishReason: mapFinishReason(choice?.finish_reason),\n usage,\n metadata: {\n provider: 'groq',\n requestId: response.x_groq?.id || response.id,\n model: response.model,\n systemFingerprint: response.system_fingerprint,\n serviceTier: response.service_tier,\n usageBreakdown: response.usage_breakdown,\n },\n };\n } catch (error) {\n throw this.toProviderError(error);\n }\n }\n\n async stream(request: ProviderRequest): Promise<AsyncIterable<ProviderStreamChunk>> {\n const self = this;\n\n try {\n const client = await this.getClient();\n const stream = await client.chat.completions.create(\n {\n ...this.buildChatParams(request),\n stream: true,\n stream_options: { include_usage: true },\n } as any,\n { signal: request.signal }\n );\n\n return {\n async *[Symbol.asyncIterator]() {\n const toolCalls = new Map<number, { id: string; name: string; arguments: string }>();\n let sawContent = false;\n let sawReasoning = false;\n let finishReason: ProviderFinishReason = 'stop';\n let finalUsage: ProviderUsage = {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n provider: 'groq',\n };\n\n try {\n for await (const chunk of stream as unknown as AsyncIterable<any>) {\n const choice = chunk.choices?.[0];\n const delta = choice?.delta;\n\n if (delta?.content) {\n sawContent = true;\n yield { type: 'content-delta', delta: delta.content };\n }\n\n if (delta?.reasoning) {\n sawReasoning = true;\n yield { type: 'reasoning-delta', delta: delta.reasoning };\n }\n\n if (delta?.tool_calls?.length) {\n for (const toolCall of delta.tool_calls) {\n const existing = toolCalls.get(toolCall.index);\n if (toolCall.id && toolCall.function?.name) {\n toolCalls.set(toolCall.index, {\n id: toolCall.id,\n name: toolCall.function.name,\n arguments: toolCall.function.arguments || '',\n });\n yield {\n type: 'tool-call-start',\n id: toolCall.id,\n name: toolCall.function.name,\n };\n if (toolCall.function.arguments) {\n yield {\n type: 'tool-call-delta',\n id: toolCall.id,\n argumentsDelta: toolCall.function.arguments,\n };\n }\n } else if (existing && toolCall.function?.arguments) {\n existing.arguments += toolCall.function.arguments;\n yield {\n type: 'tool-call-delta',\n id: existing.id,\n argumentsDelta: toolCall.function.arguments,\n };\n }\n }\n }\n\n if (choice?.finish_reason) {\n finishReason = mapFinishReason(choice.finish_reason);\n }\n\n if (chunk.usage) {\n finalUsage = transformUsage(request.model, chunk.usage);\n }\n }\n\n if (sawContent) yield { type: 'content-done' };\n if (sawReasoning) yield { type: 'reasoning-done' };\n\n for (const toolCall of toolCalls.values()) {\n let parsed: Record<string, unknown> = {};\n try {\n parsed = toolCall.arguments ? JSON.parse(toolCall.arguments) : {};\n } catch {\n parsed = {};\n }\n\n yield {\n type: 'tool-call-done',\n id: toolCall.id,\n arguments: parsed,\n };\n }\n\n yield {\n type: 'finish',\n finishReason,\n usage: finalUsage,\n reasoningDetails: sawReasoning ? [{ type: 'text', format: 'groq-chat-completions-v1' }] : undefined,\n };\n } catch (error) {\n yield createStreamErrorChunk(self.toProviderError(error));\n }\n },\n };\n } catch (error) {\n throw this.toProviderError(error);\n }\n }\n\n private toProviderError(error: unknown): ProviderError {\n if (error instanceof ProviderError) return error;\n\n if (error instanceof Error) {\n const candidate = error as Error & {\n status?: number;\n statusCode?: number;\n headers?: Record<string, string>;\n code?: string;\n };\n\n const status = candidate.status || candidate.statusCode;\n const retryAfterHeader = candidate.headers?.['retry-after'];\n const retryAfter = retryAfterHeader ? parseInt(retryAfterHeader, 10) : undefined;\n\n if (status === 429) return new ProviderError(error.message, 'rate_limit', status, retryAfter);\n if (status === 401 || status === 403) return new ProviderError(error.message, 'auth_error', status);\n if (status === 400) return new ProviderError(error.message, 'invalid_request', status);\n if (status && status >= 500) return new ProviderError(error.message, 'server_error', status);\n if (error.name === 'AbortError' || candidate.code === 'ETIMEDOUT') {\n return new ProviderError(error.message, 'timeout');\n }\n\n return new ProviderError(error.message, 'unknown', status);\n }\n\n return new ProviderError(String(error), 'unknown');\n }\n}\n","import GROQ_ICON_FILE from './vendor-icons/groq.svg';\nimport GOOGLE_ICON_FILE from './vendor-icons/google.svg';\nimport META_ICON_FILE from './vendor-icons/meta.svg';\nimport MISTRALAI_ICON_FILE from './vendor-icons/mistralai.svg';\nimport MOONSHOTAI_ICON_FILE from './vendor-icons/moonshotai.svg';\nimport OPENAI_ICON_FILE from './vendor-icons/openai.svg';\nimport QWEN_ICON_FILE from './vendor-icons/qwen.svg';\nimport SDAIA_ICON_FILE from './vendor-icons/sdaia.png';\nimport ZAI_ORG_ICON_FILE from './vendor-icons/zai-org.svg';\n\nconst GROQ_ICON = GROQ_ICON_FILE;\nconst GOOGLE_ICON = GOOGLE_ICON_FILE;\nconst META_ICON = META_ICON_FILE;\nconst MISTRAL_ICON = MISTRALAI_ICON_FILE;\nconst MOONSHOT_ICON = MOONSHOTAI_ICON_FILE;\nconst OPENAI_ICON = OPENAI_ICON_FILE;\nconst QWEN_ICON = QWEN_ICON_FILE;\nconst SDAIA_ICON = SDAIA_ICON_FILE;\nconst ZAI_ICON = ZAI_ORG_ICON_FILE;\n\nexport function svgToDataUri(svg: string): string {\n return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;\n}\n\nfunction normalizeIcon(icon: string): string {\n if (icon.startsWith('data:') || icon.endsWith('.svg') || icon.includes('.svg?')) {\n return icon;\n }\n return svgToDataUri(icon);\n}\n\nfunction getVendorSegment(modelId?: string): string | undefined {\n const normalized = (modelId || '').toLowerCase().trim();\n if (!normalized || !normalized.includes('/')) return undefined;\n return normalized.split('/')[0];\n}\n\nfunction getVendorIcon(modelId?: string): string | undefined {\n const normalized = (modelId || '').toLowerCase().trim();\n const vendor = getVendorSegment(modelId);\n if (vendor) {\n if (vendor === 'meta' || vendor === 'meta-llama' || vendor === 'facebook') return META_ICON;\n if (vendor === 'openai') return OPENAI_ICON;\n if (vendor === 'qwen' || vendor === 'alibaba') return QWEN_ICON;\n if (vendor === 'moonshotai' || vendor === 'moonshot-ai' || vendor === 'moonshot') return MOONSHOT_ICON;\n if (vendor === 'google' || vendor === 'google-ai') return GOOGLE_ICON;\n if (vendor === 'mistral' || vendor === 'mistralai') return MISTRAL_ICON;\n if (vendor === 'zhipu-ai' || vendor === 'z-ai' || vendor === 'zai-org' || vendor === 'zhipu') return ZAI_ICON;\n if (vendor === 'sdaia') return SDAIA_ICON;\n }\n\n if (normalized.startsWith('whisper')) return OPENAI_ICON;\n if (normalized.startsWith('allam')) return SDAIA_ICON;\n if (normalized.startsWith('gemma')) return GOOGLE_ICON;\n if (normalized.startsWith('llama')) return META_ICON;\n if (normalized.startsWith('qwen')) return QWEN_ICON;\n\n return undefined;\n}\n\nexport function getGroqIconDataUri(modelId?: string): string {\n return normalizeIcon(getVendorIcon(modelId) ?? GROQ_ICON);\n}\n","import type { ProviderUsage } from '@standardagents/spec';\n\nexport interface GroqModelPricing {\n inputPerMillion: number;\n outputPerMillion: number;\n cachedInputPerMillion?: number;\n}\n\nconst MODEL_PRICING: Record<string, GroqModelPricing> = {\n 'llama-3.1-8b-instant': { inputPerMillion: 0.05, outputPerMillion: 0.08 },\n 'llama-3.3-70b-versatile': { inputPerMillion: 0.59, outputPerMillion: 0.79 },\n 'meta-llama/llama-4-scout-17b-16e-instruct': { inputPerMillion: 0.11, outputPerMillion: 0.34 },\n 'moonshotai/kimi-k2-instruct': { inputPerMillion: 1.0, outputPerMillion: 3.0 },\n 'openai/gpt-oss-120b': { inputPerMillion: 0.15, cachedInputPerMillion: 0.075, outputPerMillion: 0.6 },\n 'openai/gpt-oss-20b': { inputPerMillion: 0.075, cachedInputPerMillion: 0.037, outputPerMillion: 0.3 },\n 'qwen/qwen3-32b': { inputPerMillion: 0.29, outputPerMillion: 0.59 },\n};\n\nexport function getGroqModelPricing(modelId: string): GroqModelPricing | undefined {\n return MODEL_PRICING[modelId];\n}\n\nexport function calculateGroqUsageCost(\n modelId: string,\n usage: Pick<ProviderUsage, 'promptTokens' | 'completionTokens' | 'cachedTokens'>\n): number | undefined {\n const pricing = getGroqModelPricing(modelId);\n if (!pricing) return undefined;\n\n const cachedTokens = usage.cachedTokens ?? 0;\n const uncachedPromptTokens = Math.max(0, usage.promptTokens - cachedTokens);\n\n const inputCost = (uncachedPromptTokens / 1_000_000) * pricing.inputPerMillion;\n const cachedInputCost = pricing.cachedInputPerMillion\n ? (cachedTokens / 1_000_000) * pricing.cachedInputPerMillion\n : 0;\n const outputCost = (usage.completionTokens / 1_000_000) * pricing.outputPerMillion;\n\n return Number((inputCost + cachedInputCost + outputCost).toFixed(12));\n}\n","import { z } from 'zod';\n\nexport const groqProviderOptions = z.object({\n citation_options: z.enum(['enabled', 'disabled']).optional(),\n disable_tool_validation: z.boolean().optional(),\n include_reasoning: z.boolean().optional(),\n reasoning_effort: z.enum(['none', 'default', 'low', 'medium', 'high']).optional(),\n reasoning_format: z.enum(['hidden', 'raw', 'parsed']).optional(),\n user: z.string().optional(),\n seed: z.number().int().optional(),\n service_tier: z.enum(['auto', 'on_demand', 'flex', 'performance']).optional(),\n search_settings: z.object({\n include_domains: z.array(z.string()).optional(),\n exclude_domains: z.array(z.string()).optional(),\n }).passthrough().optional(),\n compound_custom: z.record(z.string(), z.unknown()).optional(),\n documents: z.array(z.object({\n id: z.string().optional(),\n text: z.string().optional(),\n json: z.record(z.string(), z.unknown()).optional(),\n })).optional(),\n}).passthrough();\n\nexport type GroqProviderOptions = z.infer<typeof groqProviderOptions>;\n","import type { ProviderFactoryConfig, ProviderFactoryWithOptions } from '@standardagents/spec';\nimport { GroqProvider } from './GroqProvider';\nimport { groqProviderOptions } from './providerOptions';\n\n/**\n * Groq provider factory for Standard Agents.\n *\n * Uses Groq's official `groq-sdk` and Chat Completions API.\n */\nexport const groq: ProviderFactoryWithOptions<typeof groqProviderOptions> = Object.assign(\n (config: ProviderFactoryConfig) => new GroqProvider(config),\n { providerOptions: groqProviderOptions }\n);\n\nexport { groqProviderOptions, type GroqProviderOptions } from './providerOptions';\nexport { GroqProvider } from './GroqProvider';\n"],"mappings":"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","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@standardagents/groq",
|
|
3
|
+
"version": "0.0.1-dev.ffffff",
|
|
4
|
+
"private": false,
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "restricted",
|
|
7
|
+
"registry": "https://registry.npmjs.org/"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"description": "Groq provider for Standard Agents",
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsup",
|
|
25
|
+
"dev": "tsup --watch",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"test": "cd ../.. && vitest --dir packages/groq",
|
|
28
|
+
"test:run": "cd ../.. && vitest run --dir packages/groq"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"groq-sdk": "^1.1.2",
|
|
32
|
+
"zod": "^4.3.5"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"@standardagents/spec": "^0.10.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@standardagents/spec": "workspace:*",
|
|
39
|
+
"tsup": "^8.3.5",
|
|
40
|
+
"typescript": "^5.9.0"
|
|
41
|
+
},
|
|
42
|
+
"keywords": [
|
|
43
|
+
"standardagents",
|
|
44
|
+
"groq",
|
|
45
|
+
"provider",
|
|
46
|
+
"ai",
|
|
47
|
+
"llm"
|
|
48
|
+
],
|
|
49
|
+
"author": "FormKit Inc.",
|
|
50
|
+
"license": "UNLICENSED"
|
|
51
|
+
}
|