All files provider-presets.ts

100% Statements 59/59
100% Branches 0/0
100% Functions 0/0
100% Lines 59/59

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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88                                            1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * PROVIDER_PRESETS — 7 predefined LLM provider configurations.
 *
 * Each preset includes the full API endpoint and model name.
 */
export interface ProviderPreset {
  /** Provider name */
  name: string;
  /** API base URL */
  baseURL: string;
  /** Default model */
  defaultModel: string;
  /** Maximum context tokens */
  maxContextTokens: number;
  /** Whether streaming output is supported */
  supportsStreaming: boolean;
  /** Default request headers */
  headers?: Record<string, string>;
  /** Whether structured output is supported */
  supportsStructuredOutput: boolean;
}
 
export const PROVIDER_PRESETS: Record<string, ProviderPreset> = {
  openai: {
    name: 'openai',
    baseURL: 'https://api.openai.com/v1',
    defaultModel: 'gpt-4o-mini',
    maxContextTokens: 128000,
    supportsStreaming: true,
    supportsStructuredOutput: true,
  },
 
  deepseek: {
    name: 'deepseek',
    baseURL: 'https://api.deepseek.com/v1',
    defaultModel: 'deepseek-chat',
    maxContextTokens: 64000,
    supportsStreaming: true,
    supportsStructuredOutput: false,
  },
 
  glm: {
    name: 'glm',
    baseURL: 'https://open.bigmodel.cn/api/paas/v4',
    defaultModel: 'glm-4-flash',
    maxContextTokens: 128000,
    supportsStreaming: true,
    supportsStructuredOutput: false,
  },
 
  copilot: {
    name: 'copilot',
    baseURL: 'https://api.githubcopilot.com',
    defaultModel: 'gpt-4o',
    maxContextTokens: 128000,
    supportsStreaming: true,
    headers: { 'Copilot-Integration-Id': 'vscode-chat' },
    supportsStructuredOutput: true,
  },
 
  hunyuan: {
    name: 'hunyuan',
    baseURL: 'https://api.hunyuan.cloud.tencent.com/v1',
    defaultModel: 'hunyuan-lite',
    maxContextTokens: 32000,
    supportsStreaming: true,
    supportsStructuredOutput: false,
  },
 
  minimax: {
    name: 'minimax',
    baseURL: 'https://api.minimax.chat/v1',
    defaultModel: 'abab6.5s-chat',
    maxContextTokens: 32768,
    supportsStreaming: true,
    supportsStructuredOutput: false,
  },
 
  kimi: {
    name: 'kimi',
    baseURL: 'https://api.moonshot.cn/v1',
    defaultModel: 'moonshot-v1-8k',
    maxContextTokens: 8192,
    supportsStreaming: true,
    supportsStructuredOutput: false,
  },
};