Skip to main content
Documentation
SDK Reference

TypeScript SDK

The official Laghav TypeScript/Node.js SDK. Full type safety, streaming, async/await, and Edge Runtime support.

Installation

bash
npm install laghav
# types are bundled — no @types/laghav needed

LaghavClient

client.ts
import LaghavClient from 'laghav'
const client = new LaghavClient({
apiKey: process.env.LAGHAV_API_KEY!, // or auto-reads LAGHAV_API_KEY
baseURL: 'https://api.laghav.ai', // default
timeout: 30000, // ms
maxRetries: 2,
})
// Typed response
const response = await client.complete({
messages: [{ role: 'user', content: '...' }],
model: 'auto',
maxTokens: 1000,
laghavOptions: {
compress: true,
route: true,
cache: true,
score: true,
maxAggressiveness: 0.7,
},
})
// Fully typed
const meta = response.laghavMeta // LaghavMeta type
console.log(meta.qualityScore) // number
console.log(meta.savedUsd) // number

Streaming

stream.ts
// Async iterator
const stream = client.complete({
messages: [{ role: 'user', content: '...' }],
model: 'auto',
stream: true,
})
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}
// Helper: get final message with full laghav_meta
const final = await stream.finalMessage()
console.log(final.laghavMeta.savedUsd)
Next.js App Router & Edge Runtime
The SDK is compatible with Next.js Server Actions, API Routes, and Edge Runtime (Vercel, Cloudflare Workers). Use export const runtime = 'edge' in your route.

Type definitions

types.ts
import type {
CompleteRequest,
CompleteResponse,
LaghavMeta,
LaghavOptions,
Message,
StreamChunk,
} from 'laghav'
// LaghavMeta shape
interface LaghavMeta {
originalTokens: number
compressedTokens: number
compressionRatio: number
qualityScore: number
costOriginalUsd: number
costActualUsd: number
savedUsd: number
routingReason: string
modelRequested: string
rulesApplied: string[]
cacheHit: boolean
piiMasked: boolean
latencyOverheadMs: number
conversationId?: string
}