@gatelit/sdk.
GatelitClientConfig
interface GatelitClientConfig {
gatewayUrl: string
getToken: () => Promise<{
token: string
scheme: TokenScheme
}>
}
| Field | Type | Description |
|---|---|---|
gatewayUrl | string | Base URL of your deployed gateway |
getToken | () => Promise<{ token, scheme }> | Called before each request to get a fresh auth token |
TokenScheme
type TokenScheme = "Bearer" | "GatelitSigned" | "GatelitKey"
ChatOptions
interface ChatOptions {
model: string // "provider/model-id"
messages: ChatMessage[] // At least one message
maxTokens?: number // Max output tokens
temperature?: number // 0–2
signal?: AbortSignal // For cancellation
outputSchema?: { // Structured output config
mode: "json_object" | "json_schema"
[key: string]: unknown
} | null
promptId?: string // Link to a saved prompt (UUID)
endUserId?: string // End-user ID for log filtering
requestSource?: "api" | "dashboard" | "eval"
}
ChatMessage
interface ChatMessage {
role: "system" | "user" | "assistant"
content: string
}
ChatResponse
interface ChatResponse {
content: string
model: string
usage: Usage | null
finishReason: string | null
meta: GatelitMeta
}
StreamChunk
interface StreamChunk {
delta: string
model: string | undefined
finishReason: string | null
usage: Usage | null
}
Usage
interface Usage {
inputTokens: number
outputTokens: number
totalTokens: number
}
GatelitMeta
interface GatelitMeta {
requestId: string
model: string
}
GatelitError
class GatelitError extends Error {
code: string // "unauthorized" | "gateway_error" | "provider_error" | "invalid_json"
message: string
status: number // HTTP status
}
SignedTokenOptions
interface SignedTokenOptions {
sub: string
orgId?: string
model?: string
maxTokens?: number
ttl?: number
endUserId?: string
requestSource?: "api" | "dashboard" | "eval"
}
ConversationOptions
interface ConversationOptions {
model: string
systemPrompt?: string
maxTokens?: number
temperature?: number
}