SuperPenguin Docs
SDKsTypeScript

Vercel AI SDK

Track generateText and streamText with SuperPenguin helpers for the Vercel AI SDK.

Use trackGenerateText and trackStreamText when you call the Vercel AI SDK instead of a native provider client.

generateText

import { init, trackGenerateText } from "@superpenguin/js";
import { generateText } from "ai";

init({ apiKey: process.env.SP_API_KEY });

const trackedGenerateText = trackGenerateText(generateText, {
  provider: "vercel_ai_gateway",
  functionId: "support-reply",
  metadata: {
    environment: "production",
    feature: "support_agent",
  },
});

const result = await trackedGenerateText({
  model: "xai/grok-4.1-fast-non-reasoning",
  prompt: "Write a concise reply.",
  metadata: { customer_id: "cust_acme_123" },
  telemetry: { functionId: "support-reply" },
});

streamText

import { init, trackStreamText } from "@superpenguin/js";
import { streamText } from "ai";

init({ apiKey: process.env.SP_API_KEY });

const trackedStreamText = trackStreamText(streamText, {
  provider: "vercel_ai_gateway",
  functionId: "chat-stream",
});

const result = trackedStreamText({
  model: "xai/grok-4.1-fast-non-reasoning",
  messages,
  metadata: { customer_id: "cust_acme_123", feature: "chat" },
});

The wrapper waits for the Vercel AI SDK usage promise in the background and submits one attribution event when usage is available.

For Vercel AI Gateway, set AI_GATEWAY_API_KEY in the same server environment. telemetry.functionId and related telemetry metadata become custom_tags such as function_id.