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_KEYbaseURL: 'https://api.laghav.ai', // defaulttimeout: 30000, // msmaxRetries: 2,})// Typed responseconst 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 typedconst meta = response.laghavMeta // LaghavMeta typeconsole.log(meta.qualityScore) // numberconsole.log(meta.savedUsd) // number
Streaming
stream.ts
// Async iteratorconst 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_metaconst 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 shapeinterface LaghavMeta {originalTokens: numbercompressedTokens: numbercompressionRatio: numberqualityScore: numbercostOriginalUsd: numbercostActualUsd: numbersavedUsd: numberroutingReason: stringmodelRequested: stringrulesApplied: string[]cacheHit: booleanpiiMasked: booleanlatencyOverheadMs: numberconversationId?: string}