Skip to main content
TelemetryClient connects to a telemetry SSE endpoint and emits typed telemetry events. Use it only when your deployment exposes a dedicated ${baseUrl}/telemetry/{requestId} stream.
The primary public API flow documented in this docs set uses single-request SSE via sendMessageStreaming. TelemetryClient is for deployments that separately expose request-scoped telemetry streams.

Constructor

new TelemetryClient({
  baseUrl: string,
  onEvent?: (event: TelemetryEvent) => void,
  onComplete?: () => void,
  onError?: (error: Error) => void,
})

Methods

connect(requestId: string): void

Connects to ${baseUrl}/telemetry/{requestId}.

disconnect(): void

Closes the active EventSource connection.

State helpers

  • isConnected
  • isComplete
  • TelemetryClient.getPhaseFromEvent(event)
  • TelemetryClient.getPhaseLabel(phase)
  • TelemetryClient.isTerminalEvent(type)

Example

import { TelemetryClient } from '@illalabs/sdk'

const telemetry = new TelemetryClient({
  baseUrl: 'https://api.illa.io/api/v1/chat',
  onEvent: (event) => console.log(event.type),
  onComplete: () => console.log('done'),
  onError: (error) => console.error(error),
})

telemetry.connect('request-id')
telemetry.disconnect()

Environment note

TelemetryClient depends on EventSource. In Node.js, provide an EventSource polyfill before use.