server/backend_provider.ts

Declarations
#

8 declarations

view source

BackendProvider
#

server/backend_provider.ts view source

Base class for all backend AI providers. Provides shared functionality for completion handlers and logging.

generics

TClient

default unknown

name

type string

abstractreadonly

client

type TClient | null

protected

provider_status

type ProviderStatus | null

protected

on_completion_progress

type OnCompletionProgress

protectedreadonly

constructor

type new <TClient = unknown>(options: BackendProviderOptions): BackendProvider<TClient>

options

handle_streaming_completion

type (options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<"Datetime">; provider_name: "ollama" | "claude" | "chatgpt" | "gemini"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>

abstract
options
returns Promise<{ completion_response: { created: string & $brand<"Datetime">; provider_name: "ollama" | "claude" | "chatgpt" | "gemini"; model: string; data: { type: "ollama"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>

handle_non_streaming_completion

type (options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<"Datetime">; provider_name: "ollama" | "claude" | "chatgpt" | "gemini"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>

abstract
options
returns Promise<{ completion_response: { created: string & $brand<"Datetime">; provider_name: "ollama" | "claude" | "chatgpt" | "gemini"; model: string; data: { type: "ollama"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>

get_handler

type (streaming: boolean): CompletionHandler

streaming
type boolean

create_client

type (): void

protectedabstract
returns void

get_client

Get the client, throwing an error if not configured.

type (): TClient

abstract
returns TClient

load_status

Get status for this provider. Override for custom availability checks.

type (reload?: boolean | undefined): Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>

abstract
reload?
type boolean | undefined
optional
returns Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>

invalidate_status

Invalidate cached status, forcing next load to fetch fresh data.

type (): void

returns void

validate_streaming_requirements

Validates that progress_token is provided for streaming requests.

type (progress_token?: (string & $brand<"Uuid">) | undefined): asserts progress_token

protected
progress_token?
type (string & $brand<"Uuid">) | undefined
optional
returns void

send_streaming_progress

Sends streaming progress notification to frontend

type (progress_token: string & $brand<"Uuid">, chunk: { [x: string]: unknown; model?: string | undefined; created_at?: string | undefined; done?: boolean | undefined; message?: { [x: string]: unknown; role: string; content: string; } | undefined; } | undefined): Promise<...>

protected
progress_token
type string & $brand<"Uuid">
chunk
type { [x: string]: unknown; model?: string | undefined; created_at?: string | undefined; done?: boolean | undefined; message?: { [x: string]: unknown; role: string; content: string; } | undefined; } | undefined
returns Promise<void>

log_streaming_chunk

Logs streaming chunk information

type (chunk: unknown): void

protected
chunk
type unknown
returns void

log_streaming_completion

Logs streaming completion information

type (accumulated_length: number): void

protected
accumulated_length
type number
returns void

log_non_streaming_response

Logs non-streaming response information

type (response: unknown): void

protected
response
type unknown
returns void

log_api_response

Logs final API response information

type (api_response: unknown): void

protected
api_response
type unknown
returns void

BackendProviderLocal
#

server/backend_provider.ts view source

Base class for locally-installed providers (Ollama). Handles installation checking and provides default error handling for missing installations.

generics

TClient

default unknown

inheritance

extends:
  • BackendProvider<TClient>

constructor

type new <TClient = unknown>(options: BackendProviderOptions): BackendProviderLocal<TClient>

options

get_client

type (): TClient

returns TClient

BackendProviderOptions
#

BackendProviderRemote
#

server/backend_provider.ts view source

Base class for remote API-based providers (Claude, ChatGPT, Gemini). Handles API key management and provides default error handling for missing keys.

generics

TClient

default unknown

inheritance

extends:
  • BackendProvider<TClient>

api_key

type string | null

protected

constructor

type new <TClient = unknown>(options: BackendProviderOptions): BackendProviderRemote<TClient>

options

set_api_key

Update the API key and recreate the client.

type (api_key: string | null): void

api_key
type string | null
returns void

get_client

type (): TClient

returns TClient

load_status

type (reload?: boolean): Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>

reload
type boolean
default false
returns Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>

CompletionHandler
#

CompletionHandlerOptions
#

CompletionOptions
#

server/backend_provider.ts view source

CompletionOptions

frequency_penalty

type number

output_token_max

type number

presence_penalty

type number

seed

type number

stop_sequences

type Array<string>

system_message

type string

temperature

type number

top_k

type number

top_p

type number

OnCompletionProgress
#

Depends on
#

Imported by
#