All files / api/src/ai-providers/openrouter types.ts

0% Statements 0/0
0% Branches 1/1
0% Functions 1/1
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59                                                                                                                     
import type {
  ChatCompletionChoice,
  ChatCompletionResponseBody,
} from '@shared/types/api/routes/chat-completions-api';
import type { ChatCompletionMessage } from '@shared/types/api/routes/shared/messages';
 
interface OpenrouterUsageDetails {
  prompt_tokens: number;
  completion_tokens: number;
  total_tokens: number;
  prompt_tokens_details?: {
    cached_tokens: number;
    audio_tokens: number;
  };
  completion_tokens_details?: {
    reasoning_tokens: number;
    audio_tokens: number;
    accepted_prediction_tokens: number;
    rejected_prediction_tokens: number;
  };
  cost?: number;
}
 
export interface OpenrouterChatCompleteResponse
  extends ChatCompletionResponseBody {
  id: string;
  created: number;
  model: string;
  choices: (ChatCompletionChoice & {
    message: ChatCompletionMessage & { reasoning: string };
  })[];
  usage: OpenrouterUsageDetails;
}
 
export interface OpenrouterErrorResponse {
  object: string;
  message: string;
  type: string;
  param: string | null;
  code: string;
}
 
export interface OpenrouterStreamChunk {
  id: string;
  object: string;
  created: number;
  model: string;
  usage?: OpenrouterUsageDetails;
  choices: {
    delta: {
      role?: string | null;
      content?: string;
      reasoning?: string;
    };
    index: number;
    finish_reason: string | null;
  }[];
}