{"version":3,"sources":["../../node_modules/@ai-sdk/perplexity/src/convert-perplexity-usage.ts","../../node_modules/@ai-sdk/perplexity/src/convert-to-perplexity-messages.ts","../../node_modules/@ai-sdk/perplexity/src/map-perplexity-finish-reason.ts","../../node_modules/@ai-sdk/perplexity/src/perplexity-language-model.ts","../../node_modules/@ai-sdk/perplexity/src/version.ts","../../node_modules/@ai-sdk/perplexity/src/perplexity-provider.ts"],"names":["convertUint8ArrayToBase64","UnsupportedFunctionalityError","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","createEventSourceResponseHandler","z","withUserAgentSuffix","loadApiKey","withoutTrailingSlash","generateId","NoSuchModelError"],"mappings":"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","file":"dist-NSA5553C.cjs","sourcesContent":["import type { LanguageModelV3Usage } from '@ai-sdk/provider';\n\nexport function convertPerplexityUsage(\n  usage:\n    | {\n        prompt_tokens?: number | null | undefined;\n        completion_tokens?: number | null | undefined;\n        reasoning_tokens?: number | null | undefined;\n      }\n    | undefined\n    | null,\n): LanguageModelV3Usage {\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: undefined,\n        noCache: undefined,\n        cacheRead: undefined,\n        cacheWrite: undefined,\n      },\n      outputTokens: {\n        total: undefined,\n        text: undefined,\n        reasoning: undefined,\n      },\n      raw: undefined,\n    };\n  }\n\n  const promptTokens = usage.prompt_tokens ?? 0;\n  const completionTokens = usage.completion_tokens ?? 0;\n  const reasoningTokens = usage.reasoning_tokens ?? 0;\n\n  return {\n    inputTokens: {\n      total: promptTokens,\n      noCache: promptTokens,\n      cacheRead: undefined,\n      cacheWrite: undefined,\n    },\n    outputTokens: {\n      total: completionTokens,\n      text: completionTokens - reasoningTokens,\n      reasoning: reasoningTokens,\n    },\n    raw: usage,\n  };\n}\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3Prompt,\n} from '@ai-sdk/provider';\nimport type {\n  PerplexityMessageContent,\n  PerplexityPrompt,\n} from './perplexity-language-model-prompt';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\n\nexport function convertToPerplexityMessages(\n  prompt: LanguageModelV3Prompt,\n): PerplexityPrompt {\n  const messages: PerplexityPrompt = [];\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        messages.push({ role: 'system', content });\n        break;\n      }\n\n      case 'user':\n      case 'assistant': {\n        const hasMultipartContent = content.some(\n          part =>\n            (part.type === 'file' && part.mediaType.startsWith('image/')) ||\n            (part.type === 'file' && part.mediaType === 'application/pdf'),\n        );\n\n        const messageContent = content\n          .map((part, index) => {\n            switch (part.type) {\n              case 'text': {\n                return {\n                  type: 'text',\n                  text: part.text,\n                };\n              }\n              case 'file': {\n                if (part.mediaType === 'application/pdf') {\n                  return part.data instanceof URL\n                    ? {\n                        type: 'file_url',\n                        file_url: {\n                          url: part.data.toString(),\n                        },\n                        file_name: part.filename,\n                      }\n                    : {\n                        type: 'file_url',\n                        file_url: {\n                          url:\n                            typeof part.data === 'string'\n                              ? part.data\n                              : convertUint8ArrayToBase64(part.data),\n                        },\n                        file_name: part.filename || `document-${index}.pdf`,\n                      };\n                } else if (part.mediaType.startsWith('image/')) {\n                  return part.data instanceof URL\n                    ? {\n                        type: 'image_url',\n                        image_url: {\n                          url: part.data.toString(),\n                        },\n                      }\n                    : {\n                        type: 'image_url',\n                        image_url: {\n                          url: `data:${part.mediaType ?? 'image/jpeg'};base64,${\n                            typeof part.data === 'string'\n                              ? part.data\n                              : convertUint8ArrayToBase64(part.data)\n                          }`,\n                        },\n                      };\n                }\n              }\n            }\n          })\n          .filter(Boolean) as PerplexityMessageContent[];\n        messages.push({\n          role,\n          content: hasMultipartContent\n            ? messageContent\n            : messageContent\n                .filter(part => part.type === 'text')\n                .map(part => part.text)\n                .join(''),\n        });\n        break;\n      }\n      case 'tool': {\n        throw new UnsupportedFunctionalityError({\n          functionality: 'Tool messages',\n        });\n      }\n      default: {\n        const _exhaustiveCheck: never = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  return messages;\n}\n","import type { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapPerplexityFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV3FinishReason['unified'] {\n  switch (finishReason) {\n    case 'stop':\n    case 'length':\n      return finishReason;\n    default:\n      return 'other';\n  }\n}\n","import type {\n  LanguageModelV3,\n  LanguageModelV3CallOptions,\n  LanguageModelV3Content,\n  LanguageModelV3FinishReason,\n  LanguageModelV3GenerateResult,\n  LanguageModelV3StreamPart,\n  LanguageModelV3StreamResult,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  postJsonToApi,\n  type FetchFunction,\n  type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { convertPerplexityUsage } from './convert-perplexity-usage';\nimport { convertToPerplexityMessages } from './convert-to-perplexity-messages';\nimport { mapPerplexityFinishReason } from './map-perplexity-finish-reason';\nimport type { PerplexityLanguageModelId } from './perplexity-language-model-options';\n\ntype PerplexityChatConfig = {\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  generateId: () => string;\n  fetch?: FetchFunction;\n};\n\nexport class PerplexityLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly provider = 'perplexity';\n\n  readonly modelId: PerplexityLanguageModelId;\n\n  private readonly config: PerplexityChatConfig;\n\n  constructor(\n    modelId: PerplexityLanguageModelId,\n    config: PerplexityChatConfig,\n  ) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    // No URLs are supported.\n  };\n\n  private getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    providerOptions,\n  }: LanguageModelV3CallOptions) {\n    const warnings: SharedV3Warning[] = [];\n\n    if (topK != null) {\n      warnings.push({ type: 'unsupported', feature: 'topK' });\n    }\n\n    if (stopSequences != null) {\n      warnings.push({ type: 'unsupported', feature: 'stopSequences' });\n    }\n\n    if (seed != null) {\n      warnings.push({ type: 'unsupported', feature: 'seed' });\n    }\n\n    return {\n      args: {\n        // model id:\n        model: this.modelId,\n\n        // standardized settings:\n        frequency_penalty: frequencyPenalty,\n        max_tokens: maxOutputTokens,\n        presence_penalty: presencePenalty,\n        temperature,\n        top_k: topK,\n        top_p: topP,\n\n        // response format:\n        response_format:\n          responseFormat?.type === 'json'\n            ? {\n                type: 'json_schema',\n                json_schema: { schema: responseFormat.schema },\n              }\n            : undefined,\n\n        // provider extensions\n        ...(providerOptions?.perplexity ?? {}),\n\n        // messages:\n        messages: convertToPerplexityMessages(prompt),\n      },\n      warnings,\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const { args: body, warnings } = this.getArgs(options);\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: `${this.config.baseURL}/chat/completions`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: perplexityErrorSchema,\n        errorToMessage,\n      }),\n      successfulResponseHandler: createJsonResponseHandler(\n        perplexityResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const choice = response.choices[0];\n    const content: Array<LanguageModelV3Content> = [];\n\n    // text content:\n    const text = choice.message.content;\n    if (text.length > 0) {\n      content.push({ type: 'text', text });\n    }\n\n    // sources:\n    if (response.citations != null) {\n      for (const url of response.citations) {\n        content.push({\n          type: 'source',\n          sourceType: 'url',\n          id: this.config.generateId(),\n          url,\n        });\n      }\n    }\n\n    return {\n      content,\n      finishReason: {\n        unified: mapPerplexityFinishReason(choice.finish_reason),\n        raw: choice.finish_reason ?? undefined,\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: {\n        perplexity: {\n          images:\n            response.images?.map(image => ({\n              imageUrl: image.image_url,\n              originUrl: image.origin_url,\n              height: image.height,\n              width: image.width,\n            })) ?? null,\n          usage: {\n            citationTokens: response.usage?.citation_tokens ?? null,\n            numSearchQueries: response.usage?.num_search_queries ?? null,\n          },\n          cost: response.usage?.cost\n            ? {\n                inputTokensCost: response.usage.cost.input_tokens_cost ?? null,\n                outputTokensCost:\n                  response.usage.cost.output_tokens_cost ?? null,\n                requestCost: response.usage.cost.request_cost ?? null,\n                totalCost: response.usage.cost.total_cost ?? null,\n              }\n            : null,\n        },\n      },\n    };\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const { args, warnings } = this.getArgs(options);\n\n    const body = { ...args, stream: true };\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: `${this.config.baseURL}/chat/completions`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: perplexityErrorSchema,\n        errorToMessage,\n      }),\n      successfulResponseHandler: createEventSourceResponseHandler(\n        perplexityChunkSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: LanguageModelV3FinishReason = {\n      unified: 'other',\n      raw: undefined,\n    };\n    let usage:\n      | {\n          prompt_tokens: number | undefined;\n          completion_tokens: number | undefined;\n          reasoning_tokens?: number | null | undefined;\n        }\n      | undefined = undefined;\n\n    const providerMetadata: {\n      perplexity: {\n        usage: {\n          citationTokens: number | null;\n          numSearchQueries: number | null;\n        };\n        cost: {\n          inputTokensCost: number | null;\n          outputTokensCost: number | null;\n          requestCost: number | null;\n          totalCost: number | null;\n        } | null;\n        images: Array<{\n          imageUrl: string;\n          originUrl: string;\n          height: number;\n          width: number;\n        }> | null;\n      };\n    } = {\n      perplexity: {\n        usage: {\n          citationTokens: null,\n          numSearchQueries: null,\n        },\n        cost: null,\n        images: null,\n      },\n    };\n    let isFirstChunk = true;\n    let isActive = false;\n\n    const self = this;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<z.infer<typeof perplexityChunkSchema>>,\n          LanguageModelV3StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            // Emit raw chunk if requested (before anything else)\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            if (!chunk.success) {\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            if (isFirstChunk) {\n              controller.enqueue({\n                type: 'response-metadata',\n                ...getResponseMetadata(value),\n              });\n\n              value.citations?.forEach(url => {\n                controller.enqueue({\n                  type: 'source',\n                  sourceType: 'url',\n                  id: self.config.generateId(),\n                  url,\n                });\n              });\n\n              isFirstChunk = false;\n            }\n\n            if (value.usage != null) {\n              usage = value.usage;\n\n              providerMetadata.perplexity.usage = {\n                citationTokens: value.usage.citation_tokens ?? null,\n                numSearchQueries: value.usage.num_search_queries ?? null,\n              };\n\n              providerMetadata.perplexity.cost = value.usage.cost\n                ? {\n                    inputTokensCost: value.usage.cost.input_tokens_cost ?? null,\n                    outputTokensCost:\n                      value.usage.cost.output_tokens_cost ?? null,\n                    requestCost: value.usage.cost.request_cost ?? null,\n                    totalCost: value.usage.cost.total_cost ?? null,\n                  }\n                : null;\n            }\n\n            if (value.images != null) {\n              providerMetadata.perplexity.images = value.images.map(image => ({\n                imageUrl: image.image_url,\n                originUrl: image.origin_url,\n                height: image.height,\n                width: image.width,\n              }));\n            }\n\n            const choice = value.choices[0];\n            if (choice?.finish_reason != null) {\n              finishReason = {\n                unified: mapPerplexityFinishReason(choice.finish_reason),\n                raw: choice.finish_reason,\n              };\n            }\n\n            if (choice?.delta == null) {\n              return;\n            }\n\n            const delta = choice.delta;\n            const textContent = delta.content;\n\n            if (textContent != null) {\n              if (!isActive) {\n                controller.enqueue({ type: 'text-start', id: '0' });\n                isActive = true;\n              }\n\n              controller.enqueue({\n                type: 'text-delta',\n                id: '0',\n                delta: textContent,\n              });\n            }\n          },\n\n          flush(controller) {\n            if (isActive) {\n              controller.enqueue({ type: 'text-end', id: '0' });\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage: convertPerplexityUsage(usage),\n              providerMetadata,\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n\nfunction getResponseMetadata({\n  id,\n  model,\n  created,\n}: {\n  id: string;\n  created: number;\n  model: string;\n}) {\n  return {\n    id,\n    modelId: model,\n    timestamp: new Date(created * 1000),\n  };\n}\n\nconst perplexityCostSchema = z.object({\n  input_tokens_cost: z.number().nullish(),\n  output_tokens_cost: z.number().nullish(),\n  request_cost: z.number().nullish(),\n  total_cost: z.number().nullish(),\n});\n\nconst perplexityUsageSchema = z.object({\n  prompt_tokens: z.number(),\n  completion_tokens: z.number(),\n  total_tokens: z.number().nullish(),\n  citation_tokens: z.number().nullish(),\n  num_search_queries: z.number().nullish(),\n  reasoning_tokens: z.number().nullish(),\n  cost: perplexityCostSchema.nullish(),\n});\n\nexport const perplexityImageSchema = z.object({\n  image_url: z.string(),\n  origin_url: z.string(),\n  height: z.number(),\n  width: z.number(),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst perplexityResponseSchema = z.object({\n  id: z.string(),\n  created: z.number(),\n  model: z.string(),\n  choices: z.array(\n    z.object({\n      message: z.object({\n        role: z.literal('assistant'),\n        content: z.string(),\n      }),\n      finish_reason: z.string().nullish(),\n    }),\n  ),\n  citations: z.array(z.string()).nullish(),\n  images: z.array(perplexityImageSchema).nullish(),\n  usage: perplexityUsageSchema.nullish(),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst perplexityChunkSchema = z.object({\n  id: z.string(),\n  created: z.number(),\n  model: z.string(),\n  choices: z.array(\n    z.object({\n      delta: z.object({\n        role: z.literal('assistant'),\n        content: z.string(),\n      }),\n      finish_reason: z.string().nullish(),\n    }),\n  ),\n  citations: z.array(z.string()).nullish(),\n  images: z.array(perplexityImageSchema).nullish(),\n  usage: perplexityUsageSchema.nullish(),\n});\n\nexport const perplexityErrorSchema = z.object({\n  error: z.object({\n    code: z.number(),\n    message: z.string().nullish(),\n    type: z.string().nullish(),\n  }),\n});\n\nexport type PerplexityErrorData = z.infer<typeof perplexityErrorSchema>;\n\nconst errorToMessage = (data: PerplexityErrorData) => {\n  return data.error.message ?? data.error.type ?? 'unknown error';\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","import {\n  NoSuchModelError,\n  type LanguageModelV3,\n  type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n  generateId,\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { PerplexityLanguageModel } from './perplexity-language-model';\nimport type { PerplexityLanguageModelId } from './perplexity-language-model-options';\nimport { VERSION } from './version';\n\nexport interface PerplexityProvider extends ProviderV3 {\n  /**\n   * Creates an Perplexity chat model for text generation.\n   */\n  (modelId: PerplexityLanguageModelId): LanguageModelV3;\n\n  /**\n   * Creates an Perplexity language model for text generation.\n   */\n  languageModel(modelId: PerplexityLanguageModelId): LanguageModelV3;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: string): never;\n}\n\nexport interface PerplexityProviderSettings {\n  /**\n   * Base URL for the perplexity API calls.\n   */\n  baseURL?: string;\n\n  /**\n   * API key for authenticating requests.\n   */\n  apiKey?: string;\n\n  /**\n   * Custom headers to include in the requests.\n   */\n  headers?: Record<string, string>;\n\n  /**\n   * Custom fetch implementation. You can use it as a middleware to intercept requests,\n   * or 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        ...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.specificationVersion = 'v3' as const;\n  provider.languageModel = createLanguageModel;\n\n  provider.embeddingModel = (modelId: string) => {\n    throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n  };\n  provider.textEmbeddingModel = provider.embeddingModel;\n  provider.imageModel = (modelId: string) => {\n    throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n  };\n\n  return provider;\n}\n\nexport const perplexity = createPerplexity();\n"]}