UNPKG

@teerai/agent-toolkit

Version:

TeerAI Agent Toolkit - Tools and middleware for AI agents

98 lines (86 loc) 2.6 kB
import { LanguageModelV1Middleware } from 'ai'; /** * Data structure for ingest requests */ type BillingProvider = 'stripe' // Common billing fields without the meter/meters type BillingFieldsBase = { customer: string email?: string } // Single meter option type SingleMeterFields = BillingFieldsBase & { meter: string meters?: never } // Multiple meters option type MultiMeterFields = BillingFieldsBase & { meter?: never meters: Record<string, string> } // Union type that allows either single meter or multiple meters type BillingFields = SingleMeterFields | MultiMeterFields interface TeerBillingConfig { provider: BillingProvider fields: BillingFields } // Base options for all Teer services interface TeerBaseOptions { /** API key for authentication with Teer backend */ apiKey: string baseURL?: string /** Enable debug logging */ debug?: boolean /** Flush interval in ms (default: 5000) */ flushInterval?: number /** Custom fetch implementation */ customFetch?: typeof fetch } interface TeerBaseOptions { /** API key for authentication with Teer backend */ apiKey: string baseURL?: string /** Enable debug logging */ debug?: boolean /** Flush interval in ms (default: 5000) */ flushInterval?: number /** Custom fetch implementation */ customFetch?: typeof fetch /** API version to use */ apiVersion?: string } // Optional middleware config interface TeerMiddlewareConfig { /** Billing configuration */ billing?: TeerBillingConfig /** Function identifier to track which function is generating responses */ functionId?: string /** Trace ID to track the request */ traceId?: string /** Span ID to track the request */ spanId?: string /** Parent span ID to track the request */ parentSpanId?: string /** Metadata to annotate tracking data with */ metadata?: Record<string, any> /** Timestamp of the request */ timestamp?: Date } declare class TeerAgentToolkit { private readonly client; private readonly debug; static readonly sdkVersion: string; static readonly otelVersion: string; static readonly namespace: string; static readonly baseURL: string; static readonly telemetryOriginVersion: string; constructor({ apiKey, baseURL, debug, flushInterval, customFetch }: TeerBaseOptions); private createTrackingMetadata; private track; /** * Create middleware for AI SDK */ middleware(config?: TeerMiddlewareConfig): LanguageModelV1Middleware; private logDebug; } export { TeerAgentToolkit, type TeerBaseOptions, type TeerMiddlewareConfig };