@ai-sdk/perplexity 2.1.3 → 2.1.4
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/CHANGELOG.md +9 -0
- package/dist/index.d.mts +82 -107
- package/dist/index.d.ts +82 -107
- package/dist/index.js +140 -123
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +131 -108
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/perplexity-provider.ts","../src/perplexity-language-model.ts","../src/convert-perplexity-usage.ts","../src/convert-to-perplexity-input.ts","../src/map-perplexity-finish-reason.ts","../src/perplexity-agent-api.ts","../src/perplexity-language-model-options.ts","../src/perplexity-prepare-tools.ts","../src/version.ts"],"sourcesContent":["import {\n type LanguageModelV2,\n type ProviderV2,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n type FetchFunction,\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { PerplexityLanguageModel } from './perplexity-language-model';\nimport type { PerplexityLanguageModelId } from './perplexity-options';\nimport { VERSION } from './version';\n\nexport interface PerplexityProvider extends ProviderV2 {\n /**\nCreates a Perplexity Agent API model or preset for text generation.\n */\n (modelId: PerplexityLanguageModelId): LanguageModelV2;\n\n /**\nCreates a Perplexity Agent API model or preset for text generation.\n */\n languageModel(modelId: PerplexityLanguageModelId): LanguageModelV2;\n}\n\nexport interface PerplexityProviderSettings {\n /**\nBase URL for Perplexity API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport function createPerplexity(\n options: PerplexityProviderSettings = {},\n): PerplexityProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'PERPLEXITY_API_KEY',\n description: 'Perplexity',\n })}`,\n 'X-Pplx-Integration': 'vercel-ai-sdk',\n ...options.headers,\n },\n `ai-sdk/perplexity/${VERSION}`,\n );\n\n const createLanguageModel = (modelId: PerplexityLanguageModelId) => {\n return new PerplexityLanguageModel(modelId, {\n baseURL: withoutTrailingSlash(\n options.baseURL ?? 'https://api.perplexity.ai',\n )!,\n headers: getHeaders,\n generateId,\n fetch: options.fetch,\n });\n };\n\n const provider = (modelId: PerplexityLanguageModelId) =>\n createLanguageModel(modelId);\n\n provider.languageModel = createLanguageModel;\n\n provider.textEmbeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'textEmbeddingModel' });\n };\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return provider;\n}\n\nexport const perplexity = createPerplexity();\n","import {\n APICallError,\n type LanguageModelV2,\n type LanguageModelV2CallOptions,\n type LanguageModelV2CallWarning,\n type LanguageModelV2Content,\n type LanguageModelV2FinishReason,\n type LanguageModelV2StreamPart,\n type SharedV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n type FetchFunction,\n type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport type { z } from 'zod/v4';\nimport { convertPerplexityUsage } from './convert-perplexity-usage';\nimport { convertToPerplexityInput } from './convert-to-perplexity-input';\nimport { mapPerplexityFinishReason } from './map-perplexity-finish-reason';\nimport {\n perplexityAgentChunkSchema,\n perplexityAgentResponseSchema,\n perplexityErrorSchema,\n perplexityErrorToMessage,\n type PerplexityAgentTool,\n type perplexityOutputItemSchema,\n type perplexitySearchResultSchema,\n type perplexityUsageSchema,\n} from './perplexity-agent-api';\nimport { perplexityLanguageModelOptions } from './perplexity-language-model-options';\nimport type {\n PerplexityAgentPreset,\n PerplexityLanguageModelId,\n} from './perplexity-options';\nimport { preparePerplexityTools } from './perplexity-prepare-tools';\n\ntype PerplexityAgentConfig = {\n baseURL: string;\n headers?: () => Record<string, string | undefined>;\n generateId: () => string;\n fetch?: FetchFunction;\n};\n\ntype PerplexityOutputItem = z.infer<typeof perplexityOutputItemSchema>;\ntype PerplexitySearchResult = z.infer<typeof perplexitySearchResultSchema>;\ntype PerplexityUsage = z.infer<typeof perplexityUsageSchema>;\ntype PerplexityUrlSource = Extract<\n LanguageModelV2Content,\n { type: 'source'; sourceType: 'url' }\n>;\n\nconst presetIds = new Set<PerplexityAgentPreset>([\n 'fast',\n 'low',\n 'medium',\n 'high',\n 'xhigh',\n]);\n\nfunction getModelSelection(modelId: PerplexityLanguageModelId): {\n model?: string;\n preset?: PerplexityAgentPreset;\n} {\n if (presetIds.has(modelId as PerplexityAgentPreset)) {\n return { preset: modelId as PerplexityAgentPreset };\n }\n\n return { model: modelId };\n}\n\nfunction getResponseMetadata(response: {\n id?: string | null;\n model?: string | null;\n created_at?: number | null;\n}) {\n return {\n id: response.id ?? undefined,\n modelId: response.model ?? undefined,\n timestamp:\n response.created_at != null\n ? new Date(response.created_at * 1000)\n : undefined,\n };\n}\n\nfunction getProviderMetadata(\n usage: PerplexityUsage | null | undefined,\n): SharedV2ProviderMetadata {\n const cost = usage?.cost;\n const numSearchQueries = usage?.tool_calls_details\n ? Object.entries(usage.tool_calls_details)\n .filter(([name]) => name.includes('search'))\n .reduce((total, [, details]) => total + (details.invocation ?? 0), 0)\n : null;\n\n return {\n perplexity: {\n usage: {\n citationTokens: null,\n numSearchQueries,\n },\n images: null,\n cost:\n cost == null\n ? null\n : {\n inputTokensCost: cost.input_cost ?? null,\n outputTokensCost: cost.output_cost ?? null,\n requestCost: null,\n totalCost: cost.total_cost ?? null,\n currency: cost.currency ?? null,\n cacheCreationCost: cost.cache_creation_cost ?? null,\n cacheReadCost: cost.cache_read_cost ?? null,\n toolCallsCost: cost.tool_calls_cost ?? null,\n },\n toolCalls:\n usage?.tool_calls_details == null\n ? null\n : Object.fromEntries(\n Object.entries(usage.tool_calls_details).map(\n ([name, details]) => [\n name,\n { invocation: details.invocation ?? null },\n ],\n ),\n ),\n },\n };\n}\n\nfunction createSource(\n result: PerplexitySearchResult,\n generateId: () => string,\n): PerplexityUrlSource {\n return {\n type: 'source',\n sourceType: 'url',\n id: result.id == null ? generateId() : String(result.id),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: {\n resultId: result.id ?? null,\n snippet: result.snippet ?? null,\n date: result.date ?? null,\n lastUpdated: result.last_updated ?? null,\n source: result.source ?? null,\n },\n },\n };\n}\n\nfunction hasSearchResultId(source: PerplexityUrlSource): boolean {\n return typeof source.providerMetadata?.perplexity?.resultId === 'number';\n}\n\nfunction getSearchResults(item: PerplexityOutputItem) {\n return item.type === 'search_results' ? (item.results ?? []) : [];\n}\n\nfunction getFetchedSources(item: PerplexityOutputItem) {\n return item.type === 'fetch_url_results' ? (item.contents ?? []) : [];\n}\n\nexport class PerplexityLanguageModel implements LanguageModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider = 'perplexity';\n\n readonly modelId: PerplexityLanguageModelId;\n\n private readonly config: PerplexityAgentConfig;\n\n constructor(\n modelId: PerplexityLanguageModelId,\n config: PerplexityAgentConfig,\n ) {\n this.modelId = modelId;\n this.config = config;\n }\n\n readonly supportedUrls: Record<string, RegExp[]> = {\n 'image/*': [/^https?:\\/\\/.*$/],\n };\n\n private async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice,\n }: LanguageModelV2CallOptions) {\n const warnings: LanguageModelV2CallWarning[] = [];\n\n const perplexityOptions =\n (await parseProviderOptions({\n provider: 'perplexity',\n providerOptions,\n schema: perplexityLanguageModelOptions,\n })) ?? {};\n\n if (topK != null) {\n warnings.push({ type: 'unsupported-setting', setting: 'topK' });\n }\n if (frequencyPenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'frequencyPenalty',\n });\n }\n if (presencePenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'presencePenalty',\n });\n }\n if (stopSequences != null) {\n warnings.push({ type: 'unsupported-setting', setting: 'stopSequences' });\n }\n if (seed != null) {\n warnings.push({ type: 'unsupported-setting', setting: 'seed' });\n }\n\n const { tools: nativeTools, ...agentOptions } = perplexityOptions;\n\n const modelSelection = getModelSelection(this.modelId);\n\n const { input, warnings: inputWarnings } = convertToPerplexityInput(prompt);\n warnings.push(...inputWarnings);\n\n const { tools: functionTools, warnings: toolWarnings } =\n preparePerplexityTools({ tools, toolChoice });\n warnings.push(...toolWarnings);\n\n const agentTools = [\n ...((nativeTools ?? []) as PerplexityAgentTool[]),\n ...functionTools,\n ];\n\n const body: Record<string, unknown> = {\n ...agentOptions,\n ...modelSelection,\n input,\n max_output_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n response_format:\n responseFormat?.type === 'json' && responseFormat.schema != null\n ? {\n type: 'json_schema',\n json_schema: {\n name: responseFormat.name ?? 'response',\n description: responseFormat.description,\n schema: responseFormat.schema,\n strict: true,\n },\n }\n : undefined,\n tools: agentTools.length > 0 ? agentTools : undefined,\n };\n\n if (responseFormat?.type === 'json' && responseFormat.schema == null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'responseFormat',\n details: 'JSON response format without a schema is not supported.',\n });\n }\n\n return { args: body, warnings };\n }\n\n async doGenerate(\n options: LanguageModelV2CallOptions,\n ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n const { args: body, warnings } = await this.getArgs(options);\n\n const url = `${this.config.baseURL}/v1/agent`;\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url,\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage: perplexityErrorToMessage,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n perplexityAgentResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n if (response.error != null || response.status === 'failed') {\n throw new APICallError({\n message: response.error?.message ?? 'Perplexity response failed',\n url,\n requestBodyValues: body,\n statusCode: 400,\n responseHeaders,\n responseBody: rawResponse as string,\n isRetryable: false,\n });\n }\n\n const content: LanguageModelV2Content[] = [];\n const sourceIndexesByUrl = new Map<string, number>();\n let hasFunctionCall = false;\n\n const addSource = (source: PerplexityUrlSource) => {\n const existingIndex = sourceIndexesByUrl.get(source.url);\n if (existingIndex == null) {\n sourceIndexesByUrl.set(source.url, content.length);\n content.push(source);\n } else if (\n hasSearchResultId(source) &&\n !hasSearchResultId(content[existingIndex] as PerplexityUrlSource)\n ) {\n content[existingIndex] = source;\n }\n };\n\n for (const item of response.output) {\n if (item.type === 'message') {\n for (const part of item.content ?? []) {\n if (part.type === 'output_text' && part.text != null) {\n content.push({ type: 'text', text: part.text });\n }\n for (const annotation of part.annotations ?? []) {\n if (annotation.url != null) {\n addSource({\n type: 'source',\n sourceType: 'url',\n id: this.config.generateId(),\n url: annotation.url,\n title: annotation.title,\n });\n }\n }\n }\n } else if (item.type === 'search_results') {\n for (const result of getSearchResults(item)) {\n addSource(createSource(result, this.config.generateId));\n }\n } else if (item.type === 'fetch_url_results') {\n for (const result of getFetchedSources(item)) {\n addSource({\n type: 'source',\n sourceType: 'url',\n id: this.config.generateId(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: { snippet: result.snippet ?? null },\n },\n });\n }\n } else if (\n item.type === 'function_call' &&\n item.call_id != null &&\n item.name != null &&\n item.arguments != null\n ) {\n hasFunctionCall = true;\n content.push({\n type: 'tool-call',\n toolCallId: item.call_id,\n toolName: item.name,\n input: item.arguments,\n providerMetadata: {\n perplexity: {\n itemId: item.id ?? null,\n ...(item.thought_signature != null && {\n thoughtSignature: item.thought_signature,\n }),\n },\n },\n });\n }\n }\n\n return {\n content,\n finishReason: mapPerplexityFinishReason({\n status: response.status,\n incompleteReason: response.incomplete_details?.reason,\n hasFunctionCall,\n }),\n usage: convertPerplexityUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse,\n },\n warnings,\n providerMetadata: getProviderMetadata(response.usage),\n };\n }\n\n async doStream(\n options: LanguageModelV2CallOptions,\n ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n const { args, warnings } = await this.getArgs(options);\n const body = { ...args, stream: true };\n\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/v1/agent`,\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage: perplexityErrorToMessage,\n }),\n successfulResponseHandler: createEventSourceResponseHandler(\n perplexityAgentChunkSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let finishReason: LanguageModelV2FinishReason = 'unknown';\n let usage: PerplexityUsage | undefined;\n let hasFunctionCall = false;\n let hasResponseMetadata = false;\n let activeReasoningId: string | undefined;\n const textStates = new Map<string, { text: string; ended: boolean }>();\n const emittedSourceUrls = new Set<string>();\n const pendingSourcesByUrl = new Map<string, PerplexityUrlSource>();\n const seenFunctionCalls = new Set<string>();\n const generateId = this.config.generateId;\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<z.infer<typeof perplexityAgentChunkSchema>>,\n LanguageModelV2StreamPart\n >({\n start(controller) {\n controller.enqueue({ type: 'stream-start', warnings });\n },\n\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n }\n\n if (!chunk.success) {\n finishReason = 'error';\n controller.enqueue({ type: 'error', error: chunk.error });\n return;\n }\n\n const value = chunk.value;\n\n const getTextId = (\n itemId: string | null | undefined,\n outputIndex: number | null | undefined,\n contentIndex: number | null | undefined = 0,\n ) => {\n const id = itemId ?? String(outputIndex ?? 'text');\n return contentIndex == null || contentIndex === 0\n ? id\n : `${id}:${contentIndex}`;\n };\n\n const emitTextDelta = (id: string, delta: string) => {\n let state = textStates.get(id);\n if (state?.ended) {\n return;\n }\n if (state == null) {\n state = { text: '', ended: false };\n textStates.set(id, state);\n controller.enqueue({ type: 'text-start', id });\n }\n state.text += delta;\n controller.enqueue({ type: 'text-delta', id, delta });\n };\n\n const finishText = (\n id: string,\n text: string | null | undefined,\n ) => {\n const state = textStates.get(id);\n if (state?.ended) {\n return;\n }\n // Terminal output can contain text for which no delta arrived,\n // or the remainder of a partially streamed content part.\n const emittedText = state?.text ?? '';\n if (\n text != null &&\n text.startsWith(emittedText) &&\n text.length > emittedText.length\n ) {\n emitTextDelta(id, text.slice(emittedText.length));\n }\n const finalState = textStates.get(id);\n if (finalState != null) {\n finalState.ended = true;\n controller.enqueue({ type: 'text-end', id });\n }\n };\n\n const finishOutputText = (\n item: PerplexityOutputItem,\n outputIndex?: number | null,\n ) => {\n if (item.type === 'message') {\n for (const [contentIndex, part] of (\n item.content ?? []\n ).entries()) {\n if (part.type === 'output_text') {\n finishText(\n getTextId(item.id, outputIndex, contentIndex),\n part.text,\n );\n }\n }\n }\n };\n\n const emitSource = (source: PerplexityUrlSource) => {\n if (emittedSourceUrls.has(source.url)) {\n return;\n }\n\n if (hasSearchResultId(source)) {\n pendingSourcesByUrl.delete(source.url);\n emittedSourceUrls.add(source.url);\n controller.enqueue(source);\n } else if (!pendingSourcesByUrl.has(source.url)) {\n // A later search result can supply the citation ID. Delay\n // sources without one rather than emitting a duplicate update.\n pendingSourcesByUrl.set(source.url, source);\n }\n };\n\n const emitReasoningThought = (\n thought: string | null | undefined,\n ) => {\n if (activeReasoningId != null && thought != null) {\n controller.enqueue({\n type: 'reasoning-delta',\n id: activeReasoningId,\n delta: thought,\n });\n }\n };\n\n const emitFunctionCall = (item: PerplexityOutputItem) => {\n if (\n item.type !== 'function_call' ||\n item.call_id == null ||\n item.name == null ||\n item.arguments == null ||\n seenFunctionCalls.has(item.call_id)\n ) {\n return;\n }\n seenFunctionCalls.add(item.call_id);\n hasFunctionCall = true;\n controller.enqueue({\n type: 'tool-input-start',\n id: item.call_id,\n toolName: item.name,\n });\n controller.enqueue({\n type: 'tool-input-delta',\n id: item.call_id,\n delta: item.arguments,\n });\n controller.enqueue({ type: 'tool-input-end', id: item.call_id });\n controller.enqueue({\n type: 'tool-call',\n toolCallId: item.call_id,\n toolName: item.name,\n input: item.arguments,\n providerMetadata: {\n perplexity: {\n itemId: item.id ?? null,\n ...(item.thought_signature != null && {\n thoughtSignature: item.thought_signature,\n }),\n },\n },\n });\n };\n\n const emitOutputSources = (item: PerplexityOutputItem) => {\n if (item.type === 'message') {\n for (const part of item.content ?? []) {\n for (const annotation of part.annotations ?? []) {\n if (annotation.url != null) {\n emitSource({\n type: 'source',\n sourceType: 'url',\n id: generateId(),\n url: annotation.url,\n title: annotation.title,\n });\n }\n }\n }\n }\n for (const result of getSearchResults(item)) {\n emitSource(createSource(result, generateId));\n }\n for (const result of getFetchedSources(item)) {\n emitSource({\n type: 'source',\n sourceType: 'url',\n id: generateId(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: { snippet: result.snippet ?? null },\n },\n });\n }\n };\n\n switch (value.type) {\n case 'response.created':\n case 'response.in_progress': {\n if (!hasResponseMetadata && value.response != null) {\n controller.enqueue({\n type: 'response-metadata',\n ...getResponseMetadata(value.response),\n });\n hasResponseMetadata = true;\n }\n break;\n }\n\n case 'response.output_text.delta': {\n if (value.delta != null) {\n emitTextDelta(\n getTextId(\n value.item_id,\n value.output_index,\n value.content_index,\n ),\n value.delta,\n );\n }\n break;\n }\n\n case 'response.output_text.done': {\n finishText(\n getTextId(\n value.item_id,\n value.output_index,\n value.content_index,\n ),\n value.text,\n );\n break;\n }\n\n case 'response.reasoning.started': {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: 'reasoning-end',\n id: activeReasoningId,\n });\n }\n activeReasoningId = `reasoning-${\n value.sequence_number ?? generateId()\n }`;\n controller.enqueue({\n type: 'reasoning-start',\n id: activeReasoningId,\n });\n emitReasoningThought(value.thought);\n break;\n }\n\n case 'response.reasoning.search_queries':\n case 'response.reasoning.fetch_url_queries': {\n emitReasoningThought(value.thought);\n break;\n }\n\n case 'response.reasoning.search_results': {\n emitReasoningThought(value.thought);\n for (const result of value.results ?? []) {\n emitSource(createSource(result, generateId));\n }\n break;\n }\n\n case 'response.reasoning.fetch_url_results': {\n emitReasoningThought(value.thought);\n for (const result of value.contents ?? []) {\n emitSource({\n type: 'source',\n sourceType: 'url',\n id: generateId(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: { snippet: result.snippet ?? null },\n },\n });\n }\n break;\n }\n\n case 'response.reasoning.stopped': {\n emitReasoningThought(value.thought);\n if (activeReasoningId != null) {\n controller.enqueue({\n type: 'reasoning-end',\n id: activeReasoningId,\n });\n activeReasoningId = undefined;\n }\n break;\n }\n\n case 'response.output_item.done': {\n if (value.item != null) {\n finishOutputText(value.item, value.output_index);\n emitOutputSources(value.item);\n emitFunctionCall(value.item);\n }\n break;\n }\n\n case 'response.completed':\n case 'response.incomplete': {\n if (value.response != null) {\n if (!hasResponseMetadata) {\n controller.enqueue({\n type: 'response-metadata',\n ...getResponseMetadata(value.response),\n });\n hasResponseMetadata = true;\n }\n for (const [\n outputIndex,\n item,\n ] of value.response.output.entries()) {\n finishOutputText(item, outputIndex);\n emitOutputSources(item);\n emitFunctionCall(item);\n }\n usage = value.response.usage ?? undefined;\n finishReason = mapPerplexityFinishReason({\n status: value.response.status,\n incompleteReason: value.response.incomplete_details?.reason,\n hasFunctionCall,\n });\n }\n break;\n }\n\n case 'response.failed': {\n finishReason = 'error';\n controller.enqueue({\n type: 'error',\n error: value.error ?? new Error('Perplexity response failed'),\n });\n break;\n }\n }\n },\n\n flush(controller) {\n for (const source of pendingSourcesByUrl.values()) {\n controller.enqueue(source);\n }\n if (activeReasoningId != null) {\n controller.enqueue({\n type: 'reasoning-end',\n id: activeReasoningId,\n });\n }\n for (const [id, state] of textStates) {\n if (!state.ended) {\n controller.enqueue({ type: 'text-end', id });\n }\n }\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage: convertPerplexityUsage(usage),\n providerMetadata: getProviderMetadata(usage),\n });\n },\n }),\n ),\n request: { body },\n response: { headers: responseHeaders },\n };\n }\n}\n\nexport {\n perplexityErrorSchema,\n perplexityErrorToMessage,\n} from './perplexity-agent-api';\nexport type { PerplexityErrorData } from './perplexity-agent-api';\n","import type { LanguageModelV2Usage } from '@ai-sdk/provider';\n\nexport function convertPerplexityUsage(\n usage:\n | {\n input_tokens?: number | null;\n output_tokens?: number | null;\n total_tokens?: number | null;\n input_tokens_details?: {\n cached_tokens?: number | null;\n cache_creation_input_tokens?: number | null;\n cache_read_input_tokens?: number | null;\n } | null;\n output_tokens_details?: {\n reasoning_tokens?: number | null;\n } | null;\n [key: string]: unknown;\n }\n | undefined\n | null,\n): LanguageModelV2Usage {\n if (usage == null) {\n return {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n };\n }\n\n const inputTokens = usage.input_tokens ?? undefined;\n const outputTokens = usage.output_tokens ?? undefined;\n\n return {\n inputTokens,\n outputTokens,\n totalTokens:\n usage.total_tokens ??\n (inputTokens != null && outputTokens != null\n ? inputTokens + outputTokens\n : undefined),\n reasoningTokens: usage.output_tokens_details?.reasoning_tokens ?? undefined,\n cachedInputTokens:\n usage.input_tokens_details?.cache_read_input_tokens ??\n usage.input_tokens_details?.cached_tokens ??\n undefined,\n };\n}\n","import {\n UnsupportedFunctionalityError,\n type LanguageModelV2Prompt,\n type LanguageModelV2ToolResultOutput,\n type LanguageModelV2CallWarning,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport type {\n PerplexityAgentInput,\n PerplexityAgentInputContent,\n} from './perplexity-language-model-prompt';\n\nfunction serializeToolOutput(output: LanguageModelV2ToolResultOutput): string {\n switch (output.type) {\n case 'text':\n case 'error-text':\n return output.value;\n case 'json':\n case 'error-json':\n return JSON.stringify(output.value);\n case 'content': {\n if (output.value.some(part => part.type !== 'text')) {\n throw new UnsupportedFunctionalityError({\n functionality: 'file and custom tool result content',\n });\n }\n return output.value\n .map(part => (part.type === 'text' ? part.text : ''))\n .join('');\n }\n default: {\n const _exhaustiveCheck: never = output;\n throw new Error(`Unsupported tool output: ${_exhaustiveCheck}`);\n }\n }\n}\n\nfunction getTopLevelMediaType(mediaType: string): string {\n const slashIndex = mediaType.indexOf('/');\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\n\nfunction getThoughtSignature(\n providerOptions:\n | Record<string, Record<string, unknown> | undefined>\n | undefined,\n): string | undefined {\n const thoughtSignature = providerOptions?.perplexity?.thoughtSignature;\n return typeof thoughtSignature === 'string' ? thoughtSignature : undefined;\n}\n\nexport function convertToPerplexityInput(prompt: LanguageModelV2Prompt): {\n input: PerplexityAgentInput;\n warnings: LanguageModelV2CallWarning[];\n} {\n const input: PerplexityAgentInput = [];\n const warnings: LanguageModelV2CallWarning[] = [];\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n input.push({ type: 'message', role: 'system', content });\n break;\n }\n\n case 'user': {\n const convertedContent: PerplexityAgentInputContent[] = content.map(\n part => {\n switch (part.type) {\n case 'text':\n return { type: 'input_text', text: part.text };\n case 'file': {\n if (getTopLevelMediaType(part.mediaType) !== 'image') {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n\n if (part.data instanceof URL) {\n return {\n type: 'input_image',\n image_url: part.data.toString(),\n };\n }\n\n const mediaType =\n part.mediaType === 'image/*' ? 'image/jpeg' : part.mediaType;\n\n return {\n type: 'input_image',\n image_url: `data:${mediaType};base64,${\n typeof part.data === 'string'\n ? part.data\n : convertUint8ArrayToBase64(part.data)\n }`,\n };\n }\n }\n },\n );\n\n const isTextOnly = convertedContent.every(\n part => part.type === 'input_text',\n );\n input.push({\n type: 'message',\n role: 'user',\n content: isTextOnly\n ? convertedContent\n .map(part => (part.type === 'input_text' ? part.text : ''))\n .join('')\n : convertedContent,\n });\n break;\n }\n\n case 'assistant': {\n const text = content\n .filter(part => part.type === 'text')\n .map(part => part.text)\n .join('');\n\n if (text.length > 0) {\n input.push({ type: 'message', role: 'assistant', content: text });\n }\n\n for (const part of content) {\n switch (part.type) {\n case 'text':\n break;\n case 'tool-call':\n input.push({\n type: 'function_call',\n call_id: part.toolCallId,\n name: part.toolName,\n arguments: JSON.stringify(part.input ?? {}),\n thought_signature: getThoughtSignature(part.providerOptions),\n });\n break;\n case 'tool-result':\n input.push({\n type: 'function_call_output',\n call_id: part.toolCallId,\n name: part.toolName,\n output: serializeToolOutput(part.output),\n thought_signature: getThoughtSignature(part.providerOptions),\n });\n break;\n case 'reasoning':\n warnings.push({\n type: 'other',\n message: 'reasoning content in prompt is not supported',\n });\n break;\n case 'file':\n throw new UnsupportedFunctionalityError({\n functionality: `assistant ${part.type} parts`,\n });\n default: {\n const _exhaustiveCheck: never = part;\n throw new Error(\n `Unsupported assistant part: ${_exhaustiveCheck}`,\n );\n }\n }\n }\n break;\n }\n\n case 'tool': {\n for (const part of content) {\n input.push({\n type: 'function_call_output',\n call_id: part.toolCallId,\n name: part.toolName,\n output: serializeToolOutput(part.output),\n thought_signature: getThoughtSignature(part.providerOptions),\n });\n }\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n\n return { input, warnings };\n}\n","import type { LanguageModelV2FinishReason } from '@ai-sdk/provider';\n\nexport function mapPerplexityFinishReason({\n status,\n incompleteReason,\n hasFunctionCall,\n}: {\n status: string | null | undefined;\n incompleteReason: string | null | undefined;\n hasFunctionCall: boolean;\n}): LanguageModelV2FinishReason {\n switch (incompleteReason) {\n case 'max_output_tokens':\n return 'length';\n case 'content_filter':\n return 'content-filter';\n }\n\n switch (status) {\n case 'completed':\n return hasFunctionCall ? 'tool-calls' : 'stop';\n case 'requires_action':\n return 'tool-calls';\n case 'failed':\n return 'error';\n case 'cancelled':\n case 'queued':\n case 'in_progress':\n default:\n return hasFunctionCall ? 'tool-calls' : 'other';\n }\n}\n","import type { JSONSchema7 } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nexport type PerplexityAgentTool =\n | {\n type: 'function';\n name: string;\n description?: string;\n parameters: JSONSchema7;\n }\n | ({ type: string } & Record<string, unknown>);\n\nexport const perplexitySearchResultSchema = z.looseObject({\n id: z.number().optional(),\n title: z.string(),\n url: z.string(),\n snippet: z.string().optional(),\n date: z.string().nullish(),\n last_updated: z.string().nullish(),\n source: z.string().optional(),\n});\n\nconst perplexityFetchedContentSchema = z.looseObject({\n title: z.string(),\n url: z.string(),\n snippet: z.string().optional(),\n});\n\nconst perplexityContentPartSchema = z.looseObject({\n type: z.string(),\n text: z.string().optional(),\n annotations: z\n .array(\n z.looseObject({\n type: z.string().optional(),\n url: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .nullish(),\n});\n\nconst handledOutputTypes = [\n 'message',\n 'search_results',\n 'fetch_url_results',\n 'function_call',\n];\n\nexport const perplexityOutputItemSchema = z.union([\n z.looseObject({\n type: z.literal('message'),\n id: z.string().nullish(),\n content: z.array(perplexityContentPartSchema).nullish(),\n }),\n z.looseObject({\n type: z.literal('search_results'),\n results: z.array(perplexitySearchResultSchema).nullish(),\n }),\n z.looseObject({\n type: z.literal('fetch_url_results'),\n contents: z.array(perplexityFetchedContentSchema).nullish(),\n }),\n z.looseObject({\n type: z.literal('function_call'),\n id: z.string().nullish(),\n call_id: z.string().nullish(),\n name: z.string().nullish(),\n arguments: z.string().nullish(),\n thought_signature: z.string().nullish(),\n }),\n // Native tool traces remain available in raw responses and raw stream chunks.\n // Their fields (e.g. finance_results.results) have different shapes. Do not\n // validate them as search results, or let malformed handled items fall back.\n z\n .object({\n type: z.string().refine(type => !handledOutputTypes.includes(type)),\n })\n .transform(() => ({ type: 'unhandled' as const })),\n]);\n\nconst perplexityCostSchema = z.looseObject({\n currency: z.string().optional(),\n input_cost: z.number().optional(),\n output_cost: z.number().optional(),\n total_cost: z.number().optional(),\n cache_creation_cost: z.number().nullish(),\n cache_read_cost: z.number().nullish(),\n tool_calls_cost: z.number().nullish(),\n});\n\nexport const perplexityUsageSchema = z.looseObject({\n input_tokens: z.number(),\n output_tokens: z.number(),\n total_tokens: z.number(),\n input_tokens_details: z\n .looseObject({\n cached_tokens: z.number().optional(),\n cache_creation_input_tokens: z.number().optional(),\n cache_read_input_tokens: z.number().optional(),\n })\n .nullish(),\n output_tokens_details: z\n .looseObject({\n reasoning_tokens: z.number().optional(),\n })\n .nullish(),\n tool_calls_details: z\n .record(\n z.string(),\n z.looseObject({\n invocation: z.number().optional(),\n }),\n )\n .nullish(),\n cost: perplexityCostSchema.nullish(),\n});\n\nexport const perplexityAgentResponseSchema = z.looseObject({\n id: z.string(),\n created_at: z.number(),\n model: z.string(),\n object: z.literal('response'),\n output: z.array(perplexityOutputItemSchema),\n status: z.string(),\n incomplete_details: z\n .looseObject({\n reason: z.string(),\n })\n .nullish(),\n error: z\n .looseObject({\n code: z.string().optional(),\n message: z.string(),\n type: z.string().optional(),\n })\n .nullish(),\n usage: perplexityUsageSchema.nullish(),\n});\n\nexport const perplexityAgentChunkSchema = z.looseObject({\n type: z.string(),\n sequence_number: z.number().nullish(),\n response: perplexityAgentResponseSchema.nullish(),\n item: perplexityOutputItemSchema.nullish(),\n output_index: z.number().nullish(),\n item_id: z.string().nullish(),\n content_index: z.number().nullish(),\n delta: z.string().nullish(),\n text: z.string().nullish(),\n thought: z.string().nullish(),\n queries: z.array(z.string()).nullish(),\n urls: z.array(z.string()).nullish(),\n results: z.array(perplexitySearchResultSchema).nullish(),\n contents: z.array(perplexityFetchedContentSchema).nullish(),\n error: z\n .looseObject({\n code: z.string().nullish(),\n message: z.string(),\n type: z.string().nullish(),\n })\n .nullish(),\n});\n\nexport const perplexityErrorSchema = z.looseObject({\n error: z\n .union([\n z.string(),\n z.looseObject({\n code: z.union([z.string(), z.number()]).optional(),\n message: z.string().nullish(),\n type: z.string().nullish(),\n }),\n ])\n .optional(),\n detail: z\n .union([\n z.string(),\n z.array(\n z.looseObject({\n msg: z.string(),\n }),\n ),\n ])\n .optional(),\n message: z.string().optional(),\n});\n\nexport type PerplexityErrorData = z.infer<typeof perplexityErrorSchema>;\n\nexport function perplexityErrorToMessage(data: PerplexityErrorData): string {\n if (typeof data.error === 'string') {\n return data.error;\n }\n if (data.error != null) {\n return data.error.message ?? data.error.type ?? 'unknown error';\n }\n if (typeof data.detail === 'string') {\n return data.detail;\n }\n if (Array.isArray(data.detail)) {\n return data.detail.map(detail => detail.msg).join(', ');\n }\n return data.message ?? 'unknown error';\n}\n","import { z } from 'zod/v4';\n\nconst userLocationSchema = z.looseObject({\n latitude: z.number().optional(),\n longitude: z.number().optional(),\n country: z.string().optional(),\n city: z.string().optional(),\n region: z.string().optional(),\n});\n\nconst webSearchFiltersSchema = z.looseObject({\n search_domain_filter: z.array(z.string()).optional(),\n search_recency_filter: z\n .enum(['hour', 'day', 'week', 'month', 'year'])\n .optional(),\n search_after_date_filter: z.string().optional(),\n search_before_date_filter: z.string().optional(),\n last_updated_after_filter: z.string().optional(),\n last_updated_before_filter: z.string().optional(),\n});\n\nconst webSearchToolSchema = z.looseObject({\n type: z.literal('web_search'),\n filters: webSearchFiltersSchema.optional(),\n max_results: z.number().int().positive().optional(),\n max_tokens: z.number().optional(),\n max_tokens_per_page: z.number().optional(),\n search_context_size: z.enum(['low', 'medium', 'high']).optional(),\n user_location: userLocationSchema.optional(),\n});\n\nconst nativeToolSchema = z.union([\n webSearchToolSchema,\n z.looseObject({\n type: z.literal('fetch_url'),\n max_urls: z.number().optional(),\n }),\n z.looseObject({ type: z.literal('people_search') }),\n z.looseObject({ type: z.literal('finance_search') }),\n z.looseObject({ type: z.literal('sandbox') }),\n z.looseObject({\n type: z.literal('mcp'),\n server_label: z.string(),\n server_url: z.string(),\n allowed_tools: z.array(z.string()).optional(),\n authorization: z.string().optional(),\n defer_loading: z.boolean().optional(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n z.looseObject({\n type: z.literal('connector'),\n id: z.string(),\n server_label: z.string(),\n server_description: z.string().optional(),\n allowed_tools: z.array(z.string()).optional(),\n }),\n]);\n\nexport const perplexityLanguageModelOptions = z.looseObject({\n /** Top-level Agent API instructions. */\n instructions: z.string().optional(),\n\n /**\n * Native Agent API tools. AI SDK function tools can also be supplied through\n * the top-level `tools` option on `generateText` and `streamText`.\n */\n tools: z.array(nativeToolSchema).optional(),\n\n /** A fallback model list for Agent API routing. */\n models: z.array(z.string()).optional(),\n\n /** Maximum number of agentic steps. */\n max_steps: z.number().int().positive().optional(),\n\n /** Maximum number of native tool calls. */\n max_tool_calls: z.number().int().nonnegative().optional(),\n\n /** Continue a conversation from an earlier Agent API response. */\n previous_response_id: z.string().optional(),\n\n /**\n * Whether the response can be retrieved later. Setting this to false does\n * not disable persistence or prevent previous_response_id continuations.\n */\n store: z.boolean().optional(),\n\n /** Preferred response language as an ISO 639-1 language code. */\n language_preference: z.string().optional(),\n\n /** Agent API reasoning configuration. */\n reasoning: z\n .looseObject({\n effort: z.enum(['minimal', 'low', 'medium', 'high', 'xhigh']).optional(),\n })\n .optional(),\n\n /** Agent API skill configuration. */\n skills: z\n .array(\n z.union([\n z.looseObject({\n type: z.literal('builtin'),\n name: z.enum([\n 'office',\n 'office/docx',\n 'office/pdf',\n 'office/pptx',\n 'office/xlsx',\n ]),\n }),\n z.looseObject({\n type: z.literal('inline'),\n name: z.string(),\n description: z.string(),\n instructions: z.string(),\n }),\n ]),\n )\n .optional(),\n});\n\nexport type PerplexityLanguageModelOptions = z.infer<\n typeof perplexityLanguageModelOptions\n>;\n","import type {\n LanguageModelV2CallOptions,\n LanguageModelV2CallWarning,\n} from '@ai-sdk/provider';\nimport type { PerplexityAgentTool } from './perplexity-agent-api';\n\nexport function preparePerplexityTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV2CallOptions['tools'];\n toolChoice: LanguageModelV2CallOptions['toolChoice'];\n}): {\n tools: PerplexityAgentTool[];\n warnings: LanguageModelV2CallWarning[];\n} {\n const preparedTools: PerplexityAgentTool[] = [];\n const warnings: LanguageModelV2CallWarning[] = [];\n\n for (const tool of tools ?? []) {\n if (tool.type === 'provider-defined') {\n warnings.push({ type: 'unsupported-tool', tool });\n continue;\n }\n\n preparedTools.push({\n type: 'function',\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n });\n }\n\n if (toolChoice != null && toolChoice.type !== 'auto') {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'toolChoice',\n details:\n 'The Perplexity Agent API currently selects tools automatically.',\n });\n }\n\n return { tools: preparedTools, warnings };\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["z","_a","generateId","_b","_c"]}
|
|
1
|
+
{"version":3,"sources":["../src/perplexity-provider.ts","../src/perplexity-language-model.ts","../src/convert-perplexity-usage.ts","../src/convert-to-perplexity-input.ts","../src/map-perplexity-finish-reason.ts","../src/perplexity-agent-api.ts","../src/perplexity-language-model-options.ts","../src/perplexity-prepare-tools.ts","../src/version.ts"],"sourcesContent":["import {\n type LanguageModelV2,\n type ProviderV2,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n type FetchFunction,\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { PerplexityLanguageModel } from './perplexity-language-model';\nimport type { PerplexityLanguageModelId } from './perplexity-options';\nimport { VERSION } from './version';\n\nexport interface PerplexityProvider extends ProviderV2 {\n /**\nCreates a Perplexity Agent API model or preset for text generation.\n */\n (modelId: PerplexityLanguageModelId): LanguageModelV2;\n\n /**\nCreates a Perplexity Agent API model or preset for text generation.\n */\n languageModel(modelId: PerplexityLanguageModelId): LanguageModelV2;\n}\n\nexport interface PerplexityProviderSettings {\n /**\nBase URL for Perplexity API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport function createPerplexity(\n options: PerplexityProviderSettings = {},\n): PerplexityProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'PERPLEXITY_API_KEY',\n description: 'Perplexity',\n })}`,\n 'X-Pplx-Integration': 'vercel-ai-sdk',\n ...options.headers,\n },\n `ai-sdk/perplexity/${VERSION}`,\n );\n\n const createLanguageModel = (modelId: PerplexityLanguageModelId) => {\n return new PerplexityLanguageModel(modelId, {\n baseURL: withoutTrailingSlash(\n options.baseURL ?? 'https://api.perplexity.ai',\n )!,\n headers: getHeaders,\n generateId,\n fetch: options.fetch,\n });\n };\n\n const provider = (modelId: PerplexityLanguageModelId) =>\n createLanguageModel(modelId);\n\n provider.languageModel = createLanguageModel;\n\n provider.textEmbeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'textEmbeddingModel' });\n };\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return provider;\n}\n\nexport const perplexity = createPerplexity();\n","import {\n APICallError,\n type LanguageModelV2,\n type LanguageModelV2CallOptions,\n type LanguageModelV2CallWarning,\n type LanguageModelV2Content,\n type LanguageModelV2FinishReason,\n type LanguageModelV2StreamPart,\n type SharedV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n type InferSchema,\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n type FetchFunction,\n type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport type { z } from 'zod/v4';\nimport { convertPerplexityUsage } from './convert-perplexity-usage';\nimport { convertToPerplexityInput } from './convert-to-perplexity-input';\nimport { mapPerplexityFinishReason } from './map-perplexity-finish-reason';\nimport {\n perplexityAgentChunkSchema,\n perplexityAgentResponseSchemaValidator,\n perplexityAgentResponseSchema,\n perplexityErrorSchema,\n perplexityErrorToMessage,\n type PerplexityAgentTool,\n type perplexityOutputItemSchema,\n type perplexitySearchResultSchema,\n type perplexityUsageSchema,\n} from './perplexity-agent-api';\nimport { perplexityLanguageModelOptions } from './perplexity-language-model-options';\nimport type {\n PerplexityAgentPreset,\n PerplexityLanguageModelId,\n} from './perplexity-options';\nimport { preparePerplexityTools } from './perplexity-prepare-tools';\n\ntype PerplexityAgentConfig = {\n baseURL: string;\n headers?: () => Record<string, string | undefined>;\n generateId: () => string;\n fetch?: FetchFunction;\n};\n\ntype PerplexityOutputItem = z.infer<\n ReturnType<typeof perplexityOutputItemSchema>\n>;\ntype PerplexitySearchResult = z.infer<\n ReturnType<typeof perplexitySearchResultSchema>\n>;\ntype PerplexityUsage = z.infer<ReturnType<typeof perplexityUsageSchema>>;\ntype PerplexityUrlSource = Extract<\n LanguageModelV2Content,\n { type: 'source'; sourceType: 'url' }\n>;\n\nconst presetIds = new Set<PerplexityAgentPreset>([\n 'fast',\n 'low',\n 'medium',\n 'high',\n 'xhigh',\n]);\n\nfunction getModelSelection(modelId: PerplexityLanguageModelId): {\n model?: string;\n preset?: PerplexityAgentPreset;\n} {\n if (presetIds.has(modelId as PerplexityAgentPreset)) {\n return { preset: modelId as PerplexityAgentPreset };\n }\n\n return { model: modelId };\n}\n\nfunction getResponseMetadata(response: {\n id?: string | null;\n model?: string | null;\n created_at?: number | null;\n}) {\n return {\n id: response.id ?? undefined,\n modelId: response.model ?? undefined,\n timestamp:\n response.created_at != null\n ? new Date(response.created_at * 1000)\n : undefined,\n };\n}\n\nfunction getProviderMetadata(\n usage: PerplexityUsage | null | undefined,\n): SharedV2ProviderMetadata {\n const cost = usage?.cost;\n const numSearchQueries = usage?.tool_calls_details\n ? Object.entries(usage.tool_calls_details)\n .filter(([name]) => name.includes('search'))\n .reduce((total, [, details]) => total + (details.invocation ?? 0), 0)\n : null;\n\n return {\n perplexity: {\n usage: {\n citationTokens: null,\n numSearchQueries,\n },\n images: null,\n cost:\n cost == null\n ? null\n : {\n inputTokensCost: cost.input_cost ?? null,\n outputTokensCost: cost.output_cost ?? null,\n requestCost: null,\n totalCost: cost.total_cost ?? null,\n currency: cost.currency ?? null,\n cacheCreationCost: cost.cache_creation_cost ?? null,\n cacheReadCost: cost.cache_read_cost ?? null,\n toolCallsCost: cost.tool_calls_cost ?? null,\n },\n toolCalls:\n usage?.tool_calls_details == null\n ? null\n : Object.fromEntries(\n Object.entries(usage.tool_calls_details).map(\n ([name, details]) => [\n name,\n { invocation: details.invocation ?? null },\n ],\n ),\n ),\n },\n };\n}\n\nfunction createSource(\n result: PerplexitySearchResult,\n generateId: () => string,\n): PerplexityUrlSource {\n return {\n type: 'source',\n sourceType: 'url',\n id: result.id == null ? generateId() : String(result.id),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: {\n resultId: result.id ?? null,\n snippet: result.snippet ?? null,\n date: result.date ?? null,\n lastUpdated: result.last_updated ?? null,\n source: result.source ?? null,\n },\n },\n };\n}\n\nfunction hasSearchResultId(source: PerplexityUrlSource): boolean {\n return typeof source.providerMetadata?.perplexity?.resultId === 'number';\n}\n\nfunction getSearchResults(item: PerplexityOutputItem) {\n return item.type === 'search_results' ? (item.results ?? []) : [];\n}\n\nfunction getFetchedSources(item: PerplexityOutputItem) {\n return item.type === 'fetch_url_results' ? (item.contents ?? []) : [];\n}\n\nexport class PerplexityLanguageModel implements LanguageModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider = 'perplexity';\n\n readonly modelId: PerplexityLanguageModelId;\n\n private readonly config: PerplexityAgentConfig;\n\n constructor(\n modelId: PerplexityLanguageModelId,\n config: PerplexityAgentConfig,\n ) {\n this.modelId = modelId;\n this.config = config;\n }\n\n readonly supportedUrls: Record<string, RegExp[]> = {\n 'image/*': [/^https?:\\/\\/.*$/],\n };\n\n private async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice,\n }: LanguageModelV2CallOptions) {\n const warnings: LanguageModelV2CallWarning[] = [];\n\n const perplexityOptions =\n (await parseProviderOptions({\n provider: 'perplexity',\n providerOptions,\n schema: perplexityLanguageModelOptions,\n })) ?? {};\n\n if (topK != null) {\n warnings.push({ type: 'unsupported-setting', setting: 'topK' });\n }\n if (frequencyPenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'frequencyPenalty',\n });\n }\n if (presencePenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'presencePenalty',\n });\n }\n if (stopSequences != null) {\n warnings.push({ type: 'unsupported-setting', setting: 'stopSequences' });\n }\n if (seed != null) {\n warnings.push({ type: 'unsupported-setting', setting: 'seed' });\n }\n\n const { tools: nativeTools, ...agentOptions } = perplexityOptions;\n\n const modelSelection = getModelSelection(this.modelId);\n\n const { input, warnings: inputWarnings } = convertToPerplexityInput(prompt);\n warnings.push(...inputWarnings);\n\n const { tools: functionTools, warnings: toolWarnings } =\n preparePerplexityTools({ tools, toolChoice });\n warnings.push(...toolWarnings);\n\n const agentTools = [\n ...((nativeTools ?? []) as PerplexityAgentTool[]),\n ...functionTools,\n ];\n\n const body: Record<string, unknown> = {\n ...agentOptions,\n ...modelSelection,\n input,\n max_output_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n response_format:\n responseFormat?.type === 'json' && responseFormat.schema != null\n ? {\n type: 'json_schema',\n json_schema: {\n name: responseFormat.name ?? 'response',\n description: responseFormat.description,\n schema: responseFormat.schema,\n strict: true,\n },\n }\n : undefined,\n tools: agentTools.length > 0 ? agentTools : undefined,\n };\n\n if (responseFormat?.type === 'json' && responseFormat.schema == null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'responseFormat',\n details: 'JSON response format without a schema is not supported.',\n });\n }\n\n return { args: body, warnings };\n }\n\n async doGenerate(\n options: LanguageModelV2CallOptions,\n ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n const { args: body, warnings } = await this.getArgs(options);\n\n const url = `${this.config.baseURL}/v1/agent`;\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url,\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage: perplexityErrorToMessage,\n }),\n successfulResponseHandler: createJsonResponseHandler(\n perplexityAgentResponseSchemaValidator,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n if (response.error != null || response.status === 'failed') {\n throw new APICallError({\n message: response.error?.message ?? 'Perplexity response failed',\n url,\n requestBodyValues: body,\n statusCode: 400,\n responseHeaders,\n responseBody: rawResponse as string,\n isRetryable: false,\n });\n }\n\n const content: LanguageModelV2Content[] = [];\n const sourceIndexesByUrl = new Map<string, number>();\n let hasFunctionCall = false;\n\n const addSource = (source: PerplexityUrlSource) => {\n const existingIndex = sourceIndexesByUrl.get(source.url);\n if (existingIndex == null) {\n sourceIndexesByUrl.set(source.url, content.length);\n content.push(source);\n } else if (\n hasSearchResultId(source) &&\n !hasSearchResultId(content[existingIndex] as PerplexityUrlSource)\n ) {\n content[existingIndex] = source;\n }\n };\n\n for (const item of response.output) {\n if (item.type === 'message') {\n for (const part of item.content ?? []) {\n if (part.type === 'output_text' && part.text != null) {\n content.push({ type: 'text', text: part.text });\n }\n for (const annotation of part.annotations ?? []) {\n if (annotation.url != null) {\n addSource({\n type: 'source',\n sourceType: 'url',\n id: this.config.generateId(),\n url: annotation.url,\n title: annotation.title,\n });\n }\n }\n }\n } else if (item.type === 'search_results') {\n for (const result of getSearchResults(item)) {\n addSource(createSource(result, this.config.generateId));\n }\n } else if (item.type === 'fetch_url_results') {\n for (const result of getFetchedSources(item)) {\n addSource({\n type: 'source',\n sourceType: 'url',\n id: this.config.generateId(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: { snippet: result.snippet ?? null },\n },\n });\n }\n } else if (\n item.type === 'function_call' &&\n item.call_id != null &&\n item.name != null &&\n item.arguments != null\n ) {\n hasFunctionCall = true;\n content.push({\n type: 'tool-call',\n toolCallId: item.call_id,\n toolName: item.name,\n input: item.arguments,\n providerMetadata: {\n perplexity: {\n itemId: item.id ?? null,\n ...(item.thought_signature != null && {\n thoughtSignature: item.thought_signature,\n }),\n },\n },\n });\n }\n }\n\n return {\n content,\n finishReason: mapPerplexityFinishReason({\n status: response.status,\n incompleteReason: response.incomplete_details?.reason,\n hasFunctionCall,\n }),\n usage: convertPerplexityUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse,\n },\n warnings,\n providerMetadata: getProviderMetadata(response.usage),\n };\n }\n\n async doStream(\n options: LanguageModelV2CallOptions,\n ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n const { args, warnings } = await this.getArgs(options);\n const body = { ...args, stream: true };\n\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/v1/agent`,\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage: perplexityErrorToMessage,\n }),\n successfulResponseHandler: createEventSourceResponseHandler(\n perplexityAgentChunkSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let finishReason: LanguageModelV2FinishReason = 'unknown';\n let usage: PerplexityUsage | undefined;\n let hasFunctionCall = false;\n let hasResponseMetadata = false;\n let activeReasoningId: string | undefined;\n const textStates = new Map<string, { text: string; ended: boolean }>();\n const emittedSourceUrls = new Set<string>();\n const pendingSourcesByUrl = new Map<string, PerplexityUrlSource>();\n const seenFunctionCalls = new Set<string>();\n const generateId = this.config.generateId;\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<InferSchema<typeof perplexityAgentChunkSchema>>,\n LanguageModelV2StreamPart\n >({\n start(controller) {\n controller.enqueue({ type: 'stream-start', warnings });\n },\n\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n }\n\n if (!chunk.success) {\n finishReason = 'error';\n controller.enqueue({ type: 'error', error: chunk.error });\n return;\n }\n\n const value = chunk.value;\n\n const getTextId = (\n itemId: string | null | undefined,\n outputIndex: number | null | undefined,\n contentIndex: number | null | undefined = 0,\n ) => {\n const id = itemId ?? String(outputIndex ?? 'text');\n return contentIndex == null || contentIndex === 0\n ? id\n : `${id}:${contentIndex}`;\n };\n\n const emitTextDelta = (id: string, delta: string) => {\n let state = textStates.get(id);\n if (state?.ended) {\n return;\n }\n if (state == null) {\n state = { text: '', ended: false };\n textStates.set(id, state);\n controller.enqueue({ type: 'text-start', id });\n }\n state.text += delta;\n controller.enqueue({ type: 'text-delta', id, delta });\n };\n\n const finishText = (\n id: string,\n text: string | null | undefined,\n ) => {\n const state = textStates.get(id);\n if (state?.ended) {\n return;\n }\n // Terminal output can contain text for which no delta arrived,\n // or the remainder of a partially streamed content part.\n const emittedText = state?.text ?? '';\n if (\n text != null &&\n text.startsWith(emittedText) &&\n text.length > emittedText.length\n ) {\n emitTextDelta(id, text.slice(emittedText.length));\n }\n const finalState = textStates.get(id);\n if (finalState != null) {\n finalState.ended = true;\n controller.enqueue({ type: 'text-end', id });\n }\n };\n\n const finishOutputText = (\n item: PerplexityOutputItem,\n outputIndex?: number | null,\n ) => {\n if (item.type === 'message') {\n for (const [contentIndex, part] of (\n item.content ?? []\n ).entries()) {\n if (part.type === 'output_text') {\n finishText(\n getTextId(item.id, outputIndex, contentIndex),\n part.text,\n );\n }\n }\n }\n };\n\n const emitSource = (source: PerplexityUrlSource) => {\n if (emittedSourceUrls.has(source.url)) {\n return;\n }\n\n if (hasSearchResultId(source)) {\n pendingSourcesByUrl.delete(source.url);\n emittedSourceUrls.add(source.url);\n controller.enqueue(source);\n } else if (!pendingSourcesByUrl.has(source.url)) {\n // A later search result can supply the citation ID. Delay\n // sources without one rather than emitting a duplicate update.\n pendingSourcesByUrl.set(source.url, source);\n }\n };\n\n const emitReasoningThought = (\n thought: string | null | undefined,\n ) => {\n if (activeReasoningId != null && thought != null) {\n controller.enqueue({\n type: 'reasoning-delta',\n id: activeReasoningId,\n delta: thought,\n });\n }\n };\n\n const emitFunctionCall = (item: PerplexityOutputItem) => {\n if (\n item.type !== 'function_call' ||\n item.call_id == null ||\n item.name == null ||\n item.arguments == null ||\n seenFunctionCalls.has(item.call_id)\n ) {\n return;\n }\n seenFunctionCalls.add(item.call_id);\n hasFunctionCall = true;\n controller.enqueue({\n type: 'tool-input-start',\n id: item.call_id,\n toolName: item.name,\n });\n controller.enqueue({\n type: 'tool-input-delta',\n id: item.call_id,\n delta: item.arguments,\n });\n controller.enqueue({ type: 'tool-input-end', id: item.call_id });\n controller.enqueue({\n type: 'tool-call',\n toolCallId: item.call_id,\n toolName: item.name,\n input: item.arguments,\n providerMetadata: {\n perplexity: {\n itemId: item.id ?? null,\n ...(item.thought_signature != null && {\n thoughtSignature: item.thought_signature,\n }),\n },\n },\n });\n };\n\n const emitOutputSources = (item: PerplexityOutputItem) => {\n if (item.type === 'message') {\n for (const part of item.content ?? []) {\n for (const annotation of part.annotations ?? []) {\n if (annotation.url != null) {\n emitSource({\n type: 'source',\n sourceType: 'url',\n id: generateId(),\n url: annotation.url,\n title: annotation.title,\n });\n }\n }\n }\n }\n for (const result of getSearchResults(item)) {\n emitSource(createSource(result, generateId));\n }\n for (const result of getFetchedSources(item)) {\n emitSource({\n type: 'source',\n sourceType: 'url',\n id: generateId(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: { snippet: result.snippet ?? null },\n },\n });\n }\n };\n\n switch (value.type) {\n case 'response.created':\n case 'response.in_progress': {\n if (!hasResponseMetadata && value.response != null) {\n controller.enqueue({\n type: 'response-metadata',\n ...getResponseMetadata(value.response),\n });\n hasResponseMetadata = true;\n }\n break;\n }\n\n case 'response.output_text.delta': {\n if (value.delta != null) {\n emitTextDelta(\n getTextId(\n value.item_id,\n value.output_index,\n value.content_index,\n ),\n value.delta,\n );\n }\n break;\n }\n\n case 'response.output_text.done': {\n finishText(\n getTextId(\n value.item_id,\n value.output_index,\n value.content_index,\n ),\n value.text,\n );\n break;\n }\n\n case 'response.reasoning.started': {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: 'reasoning-end',\n id: activeReasoningId,\n });\n }\n activeReasoningId = `reasoning-${\n value.sequence_number ?? generateId()\n }`;\n controller.enqueue({\n type: 'reasoning-start',\n id: activeReasoningId,\n });\n emitReasoningThought(value.thought);\n break;\n }\n\n case 'response.reasoning.search_queries':\n case 'response.reasoning.fetch_url_queries': {\n emitReasoningThought(value.thought);\n break;\n }\n\n case 'response.reasoning.search_results': {\n emitReasoningThought(value.thought);\n for (const result of value.results ?? []) {\n emitSource(createSource(result, generateId));\n }\n break;\n }\n\n case 'response.reasoning.fetch_url_results': {\n emitReasoningThought(value.thought);\n for (const result of value.contents ?? []) {\n emitSource({\n type: 'source',\n sourceType: 'url',\n id: generateId(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n perplexity: { snippet: result.snippet ?? null },\n },\n });\n }\n break;\n }\n\n case 'response.reasoning.stopped': {\n emitReasoningThought(value.thought);\n if (activeReasoningId != null) {\n controller.enqueue({\n type: 'reasoning-end',\n id: activeReasoningId,\n });\n activeReasoningId = undefined;\n }\n break;\n }\n\n case 'response.output_item.done': {\n if (value.item != null) {\n finishOutputText(value.item, value.output_index);\n emitOutputSources(value.item);\n emitFunctionCall(value.item);\n }\n break;\n }\n\n case 'response.completed':\n case 'response.incomplete': {\n if (value.response != null) {\n if (!hasResponseMetadata) {\n controller.enqueue({\n type: 'response-metadata',\n ...getResponseMetadata(value.response),\n });\n hasResponseMetadata = true;\n }\n for (const [\n outputIndex,\n item,\n ] of value.response.output.entries()) {\n finishOutputText(item, outputIndex);\n emitOutputSources(item);\n emitFunctionCall(item);\n }\n usage = value.response.usage ?? undefined;\n finishReason = mapPerplexityFinishReason({\n status: value.response.status,\n incompleteReason: value.response.incomplete_details?.reason,\n hasFunctionCall,\n });\n }\n break;\n }\n\n case 'response.failed': {\n finishReason = 'error';\n controller.enqueue({\n type: 'error',\n error: value.error ?? new Error('Perplexity response failed'),\n });\n break;\n }\n }\n },\n\n flush(controller) {\n for (const source of pendingSourcesByUrl.values()) {\n controller.enqueue(source);\n }\n if (activeReasoningId != null) {\n controller.enqueue({\n type: 'reasoning-end',\n id: activeReasoningId,\n });\n }\n for (const [id, state] of textStates) {\n if (!state.ended) {\n controller.enqueue({ type: 'text-end', id });\n }\n }\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage: convertPerplexityUsage(usage),\n providerMetadata: getProviderMetadata(usage),\n });\n },\n }),\n ),\n request: { body },\n response: { headers: responseHeaders },\n };\n }\n}\n\nexport {\n perplexityErrorSchema,\n perplexityErrorToMessage,\n} from './perplexity-agent-api';\nexport type { PerplexityErrorData } from './perplexity-agent-api';\n","import type { LanguageModelV2Usage } from '@ai-sdk/provider';\n\nexport function convertPerplexityUsage(\n usage:\n | {\n input_tokens?: number | null;\n output_tokens?: number | null;\n total_tokens?: number | null;\n input_tokens_details?: {\n cached_tokens?: number | null;\n cache_creation_input_tokens?: number | null;\n cache_read_input_tokens?: number | null;\n } | null;\n output_tokens_details?: {\n reasoning_tokens?: number | null;\n } | null;\n [key: string]: unknown;\n }\n | undefined\n | null,\n): LanguageModelV2Usage {\n if (usage == null) {\n return {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n };\n }\n\n const inputTokens = usage.input_tokens ?? undefined;\n const outputTokens = usage.output_tokens ?? undefined;\n\n return {\n inputTokens,\n outputTokens,\n totalTokens:\n usage.total_tokens ??\n (inputTokens != null && outputTokens != null\n ? inputTokens + outputTokens\n : undefined),\n reasoningTokens: usage.output_tokens_details?.reasoning_tokens ?? undefined,\n cachedInputTokens:\n usage.input_tokens_details?.cache_read_input_tokens ??\n usage.input_tokens_details?.cached_tokens ??\n undefined,\n };\n}\n","import {\n UnsupportedFunctionalityError,\n type LanguageModelV2Prompt,\n type LanguageModelV2ToolResultOutput,\n type LanguageModelV2CallWarning,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport type {\n PerplexityAgentInput,\n PerplexityAgentInputContent,\n} from './perplexity-language-model-prompt';\n\nfunction serializeToolOutput(output: LanguageModelV2ToolResultOutput): string {\n switch (output.type) {\n case 'text':\n case 'error-text':\n return output.value;\n case 'json':\n case 'error-json':\n return JSON.stringify(output.value);\n case 'content': {\n if (output.value.some(part => part.type !== 'text')) {\n throw new UnsupportedFunctionalityError({\n functionality: 'file and custom tool result content',\n });\n }\n return output.value\n .map(part => (part.type === 'text' ? part.text : ''))\n .join('');\n }\n default: {\n const _exhaustiveCheck: never = output;\n throw new Error(`Unsupported tool output: ${_exhaustiveCheck}`);\n }\n }\n}\n\nfunction getTopLevelMediaType(mediaType: string): string {\n const slashIndex = mediaType.indexOf('/');\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\n\nfunction getThoughtSignature(\n providerOptions:\n | Record<string, Record<string, unknown> | undefined>\n | undefined,\n): string | undefined {\n const thoughtSignature = providerOptions?.perplexity?.thoughtSignature;\n return typeof thoughtSignature === 'string' ? thoughtSignature : undefined;\n}\n\nexport function convertToPerplexityInput(prompt: LanguageModelV2Prompt): {\n input: PerplexityAgentInput;\n warnings: LanguageModelV2CallWarning[];\n} {\n const input: PerplexityAgentInput = [];\n const warnings: LanguageModelV2CallWarning[] = [];\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n input.push({ type: 'message', role: 'system', content });\n break;\n }\n\n case 'user': {\n const convertedContent: PerplexityAgentInputContent[] = content.map(\n part => {\n switch (part.type) {\n case 'text':\n return { type: 'input_text', text: part.text };\n case 'file': {\n if (getTopLevelMediaType(part.mediaType) !== 'image') {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n\n if (part.data instanceof URL) {\n return {\n type: 'input_image',\n image_url: part.data.toString(),\n };\n }\n\n const mediaType =\n part.mediaType === 'image/*' ? 'image/jpeg' : part.mediaType;\n\n return {\n type: 'input_image',\n image_url: `data:${mediaType};base64,${\n typeof part.data === 'string'\n ? part.data\n : convertUint8ArrayToBase64(part.data)\n }`,\n };\n }\n }\n },\n );\n\n const isTextOnly = convertedContent.every(\n part => part.type === 'input_text',\n );\n input.push({\n type: 'message',\n role: 'user',\n content: isTextOnly\n ? convertedContent\n .map(part => (part.type === 'input_text' ? part.text : ''))\n .join('')\n : convertedContent,\n });\n break;\n }\n\n case 'assistant': {\n const text = content\n .filter(part => part.type === 'text')\n .map(part => part.text)\n .join('');\n\n if (text.length > 0) {\n input.push({ type: 'message', role: 'assistant', content: text });\n }\n\n for (const part of content) {\n switch (part.type) {\n case 'text':\n break;\n case 'tool-call':\n input.push({\n type: 'function_call',\n call_id: part.toolCallId,\n name: part.toolName,\n arguments: JSON.stringify(part.input ?? {}),\n thought_signature: getThoughtSignature(part.providerOptions),\n });\n break;\n case 'tool-result':\n input.push({\n type: 'function_call_output',\n call_id: part.toolCallId,\n name: part.toolName,\n output: serializeToolOutput(part.output),\n thought_signature: getThoughtSignature(part.providerOptions),\n });\n break;\n case 'reasoning':\n warnings.push({\n type: 'other',\n message: 'reasoning content in prompt is not supported',\n });\n break;\n case 'file':\n throw new UnsupportedFunctionalityError({\n functionality: `assistant ${part.type} parts`,\n });\n default: {\n const _exhaustiveCheck: never = part;\n throw new Error(\n `Unsupported assistant part: ${_exhaustiveCheck}`,\n );\n }\n }\n }\n break;\n }\n\n case 'tool': {\n for (const part of content) {\n input.push({\n type: 'function_call_output',\n call_id: part.toolCallId,\n name: part.toolName,\n output: serializeToolOutput(part.output),\n thought_signature: getThoughtSignature(part.providerOptions),\n });\n }\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n\n return { input, warnings };\n}\n","import type { LanguageModelV2FinishReason } from '@ai-sdk/provider';\n\nexport function mapPerplexityFinishReason({\n status,\n incompleteReason,\n hasFunctionCall,\n}: {\n status: string | null | undefined;\n incompleteReason: string | null | undefined;\n hasFunctionCall: boolean;\n}): LanguageModelV2FinishReason {\n switch (incompleteReason) {\n case 'max_output_tokens':\n return 'length';\n case 'content_filter':\n return 'content-filter';\n }\n\n switch (status) {\n case 'completed':\n return hasFunctionCall ? 'tool-calls' : 'stop';\n case 'requires_action':\n return 'tool-calls';\n case 'failed':\n return 'error';\n case 'cancelled':\n case 'queued':\n case 'in_progress':\n default:\n return hasFunctionCall ? 'tool-calls' : 'other';\n }\n}\n","import {\n lazySchema,\n zodSchema,\n type InferSchema,\n} from '@ai-sdk/provider-utils';\nimport type { JSONSchema7 } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nexport type PerplexityAgentTool =\n | {\n type: 'function';\n name: string;\n description?: string;\n parameters: JSONSchema7;\n }\n | ({ type: string } & Record<string, unknown>);\n\nexport const perplexitySearchResultSchema = () =>\n z.looseObject({\n id: z.number().optional(),\n title: z.string(),\n url: z.string(),\n snippet: z.string().optional(),\n date: z.string().nullish(),\n last_updated: z.string().nullish(),\n source: z.string().optional(),\n });\n\nconst perplexityFetchedContentSchema = () =>\n z.looseObject({\n title: z.string(),\n url: z.string(),\n snippet: z.string().optional(),\n });\n\nconst perplexityContentPartSchema = () =>\n z.looseObject({\n type: z.string(),\n text: z.string().optional(),\n annotations: z\n .array(\n z.looseObject({\n type: z.string().optional(),\n url: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .nullish(),\n });\n\nconst handledOutputTypes = [\n 'message',\n 'search_results',\n 'fetch_url_results',\n 'function_call',\n];\n\nexport const perplexityOutputItemSchema = () =>\n z.union([\n z.looseObject({\n type: z.literal('message'),\n id: z.string().nullish(),\n content: z.array(perplexityContentPartSchema()).nullish(),\n }),\n z.looseObject({\n type: z.literal('search_results'),\n results: z.array(perplexitySearchResultSchema()).nullish(),\n }),\n z.looseObject({\n type: z.literal('fetch_url_results'),\n contents: z.array(perplexityFetchedContentSchema()).nullish(),\n }),\n z.looseObject({\n type: z.literal('function_call'),\n id: z.string().nullish(),\n call_id: z.string().nullish(),\n name: z.string().nullish(),\n arguments: z.string().nullish(),\n thought_signature: z.string().nullish(),\n }),\n // Native tool traces remain available in raw responses and raw stream chunks.\n // Their fields (e.g. finance_results.results) have different shapes. Do not\n // validate them as search results, or let malformed handled items fall back.\n z\n .object({\n type: z.string().refine(type => !handledOutputTypes.includes(type)),\n })\n .transform(() => ({ type: 'unhandled' as const })),\n ]);\n\nconst perplexityCostSchema = () =>\n z.looseObject({\n currency: z.string().optional(),\n input_cost: z.number().optional(),\n output_cost: z.number().optional(),\n total_cost: z.number().optional(),\n cache_creation_cost: z.number().nullish(),\n cache_read_cost: z.number().nullish(),\n tool_calls_cost: z.number().nullish(),\n });\n\nexport const perplexityUsageSchema = () =>\n z.looseObject({\n input_tokens: z.number(),\n output_tokens: z.number(),\n total_tokens: z.number(),\n input_tokens_details: z\n .looseObject({\n cached_tokens: z.number().optional(),\n cache_creation_input_tokens: z.number().optional(),\n cache_read_input_tokens: z.number().optional(),\n })\n .nullish(),\n output_tokens_details: z\n .looseObject({\n reasoning_tokens: z.number().optional(),\n })\n .nullish(),\n tool_calls_details: z\n .record(\n z.string(),\n z.looseObject({\n invocation: z.number().optional(),\n }),\n )\n .nullish(),\n cost: perplexityCostSchema().nullish(),\n });\n\nexport const perplexityAgentResponseSchema = () =>\n z.looseObject({\n id: z.string(),\n created_at: z.number(),\n model: z.string(),\n object: z.literal('response'),\n output: z.array(perplexityOutputItemSchema()),\n status: z.string(),\n incomplete_details: z\n .looseObject({\n reason: z.string(),\n })\n .nullish(),\n error: z\n .looseObject({\n code: z.string().optional(),\n message: z.string(),\n type: z.string().optional(),\n })\n .nullish(),\n usage: perplexityUsageSchema().nullish(),\n });\nexport const perplexityAgentResponseSchemaValidator = lazySchema(() =>\n zodSchema(perplexityAgentResponseSchema()),\n);\n\nexport const perplexityAgentChunkSchema = lazySchema(() =>\n zodSchema(\n z.looseObject({\n type: z.string(),\n sequence_number: z.number().nullish(),\n response: perplexityAgentResponseSchema().nullish(),\n item: perplexityOutputItemSchema().nullish(),\n output_index: z.number().nullish(),\n item_id: z.string().nullish(),\n content_index: z.number().nullish(),\n delta: z.string().nullish(),\n text: z.string().nullish(),\n thought: z.string().nullish(),\n queries: z.array(z.string()).nullish(),\n urls: z.array(z.string()).nullish(),\n results: z.array(perplexitySearchResultSchema()).nullish(),\n contents: z.array(perplexityFetchedContentSchema()).nullish(),\n error: z\n .looseObject({\n code: z.string().nullish(),\n message: z.string(),\n type: z.string().nullish(),\n })\n .nullish(),\n }),\n ),\n);\n\nexport const perplexityErrorSchema = lazySchema(() =>\n zodSchema(\n z.looseObject({\n error: z\n .union([\n z.string(),\n z.looseObject({\n code: z.union([z.string(), z.number()]).optional(),\n message: z.string().nullish(),\n type: z.string().nullish(),\n }),\n ])\n .optional(),\n detail: z\n .union([\n z.string(),\n z.array(\n z.looseObject({\n msg: z.string(),\n }),\n ),\n ])\n .optional(),\n message: z.string().optional(),\n }),\n ),\n);\n\nexport type PerplexityErrorData = InferSchema<typeof perplexityErrorSchema>;\n\nexport function perplexityErrorToMessage(data: PerplexityErrorData): string {\n if (typeof data.error === 'string') {\n return data.error;\n }\n if (data.error != null) {\n return data.error.message ?? data.error.type ?? 'unknown error';\n }\n if (typeof data.detail === 'string') {\n return data.detail;\n }\n if (Array.isArray(data.detail)) {\n return data.detail.map(detail => detail.msg).join(', ');\n }\n return data.message ?? 'unknown error';\n}\n","import {\n lazySchema,\n zodSchema,\n type InferSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst userLocationSchema = () =>\n z.looseObject({\n latitude: z.number().optional(),\n longitude: z.number().optional(),\n country: z.string().optional(),\n city: z.string().optional(),\n region: z.string().optional(),\n });\n\nconst webSearchFiltersSchema = () =>\n z.looseObject({\n search_domain_filter: z.array(z.string()).optional(),\n search_recency_filter: z\n .enum(['hour', 'day', 'week', 'month', 'year'])\n .optional(),\n search_after_date_filter: z.string().optional(),\n search_before_date_filter: z.string().optional(),\n last_updated_after_filter: z.string().optional(),\n last_updated_before_filter: z.string().optional(),\n });\n\nconst webSearchToolSchema = () =>\n z.looseObject({\n type: z.literal('web_search'),\n filters: webSearchFiltersSchema().optional(),\n max_results: z.number().int().positive().optional(),\n max_tokens: z.number().optional(),\n max_tokens_per_page: z.number().optional(),\n search_context_size: z.enum(['low', 'medium', 'high']).optional(),\n user_location: userLocationSchema().optional(),\n });\n\nconst nativeToolSchema = () =>\n z.union([\n webSearchToolSchema(),\n z.looseObject({\n type: z.literal('fetch_url'),\n max_urls: z.number().optional(),\n }),\n z.looseObject({ type: z.literal('people_search') }),\n z.looseObject({ type: z.literal('finance_search') }),\n z.looseObject({ type: z.literal('sandbox') }),\n z.looseObject({\n type: z.literal('mcp'),\n server_label: z.string(),\n server_url: z.string(),\n allowed_tools: z.array(z.string()).optional(),\n authorization: z.string().optional(),\n defer_loading: z.boolean().optional(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n z.looseObject({\n type: z.literal('connector'),\n id: z.string(),\n server_label: z.string(),\n server_description: z.string().optional(),\n allowed_tools: z.array(z.string()).optional(),\n }),\n ]);\n\nexport const perplexityLanguageModelOptions = lazySchema(() =>\n zodSchema(\n z.looseObject({\n /** Top-level Agent API instructions. */\n instructions: z.string().optional(),\n\n /**\n * Native Agent API tools. AI SDK function tools can also be supplied through\n * the top-level `tools` option on `generateText` and `streamText`.\n */\n tools: z.array(nativeToolSchema()).optional(),\n\n /** A fallback model list for Agent API routing. */\n models: z.array(z.string()).optional(),\n\n /** Maximum number of agentic steps. */\n max_steps: z.number().int().positive().optional(),\n\n /** Maximum number of native tool calls. */\n max_tool_calls: z.number().int().nonnegative().optional(),\n\n /** Continue a conversation from an earlier Agent API response. */\n previous_response_id: z.string().optional(),\n\n /**\n * Whether the response can be retrieved later. Setting this to false does\n * not disable persistence or prevent previous_response_id continuations.\n */\n store: z.boolean().optional(),\n\n /** Preferred response language as an ISO 639-1 language code. */\n language_preference: z.string().optional(),\n\n /** Agent API reasoning configuration. */\n reasoning: z\n .looseObject({\n effort: z\n .enum(['minimal', 'low', 'medium', 'high', 'xhigh'])\n .optional(),\n })\n .optional(),\n\n /** Agent API skill configuration. */\n skills: z\n .array(\n z.union([\n z.looseObject({\n type: z.literal('builtin'),\n name: z.enum([\n 'office',\n 'office/docx',\n 'office/pdf',\n 'office/pptx',\n 'office/xlsx',\n ]),\n }),\n z.looseObject({\n type: z.literal('inline'),\n name: z.string(),\n description: z.string(),\n instructions: z.string(),\n }),\n ]),\n )\n .optional(),\n }),\n ),\n);\n\nexport type PerplexityLanguageModelOptions = InferSchema<\n typeof perplexityLanguageModelOptions\n>;\n","import type {\n LanguageModelV2CallOptions,\n LanguageModelV2CallWarning,\n} from '@ai-sdk/provider';\nimport type { PerplexityAgentTool } from './perplexity-agent-api';\n\nexport function preparePerplexityTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV2CallOptions['tools'];\n toolChoice: LanguageModelV2CallOptions['toolChoice'];\n}): {\n tools: PerplexityAgentTool[];\n warnings: LanguageModelV2CallWarning[];\n} {\n const preparedTools: PerplexityAgentTool[] = [];\n const warnings: LanguageModelV2CallWarning[] = [];\n\n for (const tool of tools ?? []) {\n if (tool.type === 'provider-defined') {\n warnings.push({ type: 'unsupported-tool', tool });\n continue;\n }\n\n preparedTools.push({\n type: 'function',\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n });\n }\n\n if (toolChoice != null && toolChoice.type !== 'auto') {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'toolChoice',\n details:\n 'The Perplexity Agent API currently selects tools automatically.',\n });\n }\n\n return { tools: preparedTools, warnings };\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["lazySchema","zodSchema","z","_a","generateId","_b","_c"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/perplexity",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.4",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@ai-sdk/provider": "2.0.5",
|
|
23
|
-
"@ai-sdk/provider-utils": "3.0.
|
|
23
|
+
"@ai-sdk/provider-utils": "3.0.42"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "20.17.24",
|