@ubiquity-os/plugin-sdk
Version:
SDK for plugin support.
60 lines (57 loc) • 1.84 kB
TypeScript
type OpenRouterError = {
error: {
message: string;
code: number;
metadata?: {
provider_name: string;
raw: unknown;
} | {
reasons: string[];
flagged_input: string;
provider_name: string;
model_slug: string;
};
};
};
type OpenRouterModel = {
id: string;
name: string;
created: number;
description: string;
context_length: number;
architecture: {
modality: string;
tokenizer: string;
instruct_type?: string;
};
top_provider: {
context_length: number;
/** `null` means it's the same as the context_length */
max_completion_tokens: number | null;
is_moderated: boolean;
};
pricing: {
prompt: string;
completion: string;
image: string;
request: string;
input_cache_read: string;
input_cache_write: string;
web_search: string;
internal_reasoning: string;
};
per_request_limits?: Record<string, unknown>;
};
declare function getOpenRouterModels(): Promise<OpenRouterModel[]>;
declare function getOpenRouterModelTokenLimits(modelId: string): Promise<{
contextLength: number;
maxCompletionTokens: number;
} | null>;
interface RetryOptions {
maxRetries: number;
onError?: (error: unknown) => Promise<void> | void;
/** Return `false` to stop retrying, `true` to automatically delay the next retry, or a number to set the delay before the next retry */
isErrorRetryable?: (error: unknown) => Promise<boolean | number> | boolean | number;
}
declare function retry<T>(fn: () => Promise<T>, options: RetryOptions): Promise<T>;
export { type OpenRouterError, type OpenRouterModel, getOpenRouterModelTokenLimits, getOpenRouterModels, retry };