1- import { ANTHROPIC_API_PROTOCOL , getApiProtocol , providerIdentifiers } from "../index.js"
1+ import { ANTHROPIC_API_PROTOCOL , getApiProtocol , OPENAI_API_PROTOCOL , providerIdentifiers } from "../index.js"
22
33describe ( "getApiProtocol" , ( ) => {
44 describe ( "Anthropic-style providers" , ( ) => {
@@ -23,13 +23,13 @@ describe("getApiProtocol", () => {
2323 } )
2424
2525 it ( "should return 'openai' for vertex provider with non-claude models" , ( ) => {
26- expect ( getApiProtocol ( providerIdentifiers . vertex , "gpt-4" ) ) . toBe ( "openai" )
27- expect ( getApiProtocol ( providerIdentifiers . vertex , "gemini-pro" ) ) . toBe ( "openai" )
28- expect ( getApiProtocol ( providerIdentifiers . vertex , "llama-2" ) ) . toBe ( "openai" )
26+ expect ( getApiProtocol ( providerIdentifiers . vertex , "gpt-4" ) ) . toBe ( OPENAI_API_PROTOCOL )
27+ expect ( getApiProtocol ( providerIdentifiers . vertex , "gemini-pro" ) ) . toBe ( OPENAI_API_PROTOCOL )
28+ expect ( getApiProtocol ( providerIdentifiers . vertex , "llama-2" ) ) . toBe ( OPENAI_API_PROTOCOL )
2929 } )
3030
3131 it ( "should return 'openai' for vertex provider without model" , ( ) => {
32- expect ( getApiProtocol ( providerIdentifiers . vertex ) ) . toBe ( "openai" )
32+ expect ( getApiProtocol ( providerIdentifiers . vertex ) ) . toBe ( OPENAI_API_PROTOCOL )
3333 } )
3434 } )
3535
@@ -59,14 +59,14 @@ describe("getApiProtocol", () => {
5959 } )
6060
6161 it ( "should return 'openai' for vercel-ai-gateway provider with non-anthropic models" , ( ) => {
62- expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "openai/gpt-4" ) ) . toBe ( "openai" )
63- expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "google/gemini-pro" ) ) . toBe ( "openai" )
64- expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "meta/llama-3" ) ) . toBe ( "openai" )
65- expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "mistral/mixtral" ) ) . toBe ( "openai" )
62+ expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "openai/gpt-4" ) ) . toBe ( OPENAI_API_PROTOCOL )
63+ expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "google/gemini-pro" ) ) . toBe ( OPENAI_API_PROTOCOL )
64+ expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "meta/llama-3" ) ) . toBe ( OPENAI_API_PROTOCOL )
65+ expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway , "mistral/mixtral" ) ) . toBe ( OPENAI_API_PROTOCOL )
6666 } )
6767
6868 it ( "should return 'openai' for vercel-ai-gateway provider without model" , ( ) => {
69- expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway ) ) . toBe ( "openai" )
69+ expect ( getApiProtocol ( providerIdentifiers . vercelAiGateway ) ) . toBe ( OPENAI_API_PROTOCOL )
7070 } )
7171 } )
7272
@@ -81,38 +81,38 @@ describe("getApiProtocol", () => {
8181 } )
8282
8383 it ( "should return 'openai' for opencode-go OpenAI-format models (GLM/DeepSeek/etc.)" , ( ) => {
84- expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "glm-5.2" ) ) . toBe ( "openai" )
85- expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "deepseek-v4-pro" ) ) . toBe ( "openai" )
86- expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "kimi-k2.5" ) ) . toBe ( "openai" )
87- expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "mimo-v2.5" ) ) . toBe ( "openai" )
84+ expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "glm-5.2" ) ) . toBe ( OPENAI_API_PROTOCOL )
85+ expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "deepseek-v4-pro" ) ) . toBe ( OPENAI_API_PROTOCOL )
86+ expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "kimi-k2.5" ) ) . toBe ( OPENAI_API_PROTOCOL )
87+ expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "mimo-v2.5" ) ) . toBe ( OPENAI_API_PROTOCOL )
8888 } )
8989
9090 it ( "should return 'openai' for opencode-go without a model" , ( ) => {
91- expect ( getApiProtocol ( providerIdentifiers . opencodeGo ) ) . toBe ( "openai" )
91+ expect ( getApiProtocol ( providerIdentifiers . opencodeGo ) ) . toBe ( OPENAI_API_PROTOCOL )
9292 } )
9393
9494 it ( "should return 'openai' for opencode-go with an unknown model id" , ( ) => {
95- expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "some-future-model" ) ) . toBe ( "openai" )
95+ expect ( getApiProtocol ( providerIdentifiers . opencodeGo , "some-future-model" ) ) . toBe ( OPENAI_API_PROTOCOL )
9696 } )
9797 } )
9898
9999 describe ( "Other providers" , ( ) => {
100100 it ( "should return 'openai' for non-anthropic providers regardless of model" , ( ) => {
101- expect ( getApiProtocol ( providerIdentifiers . openrouter , "claude-3-opus" ) ) . toBe ( "openai" )
102- expect ( getApiProtocol ( providerIdentifiers . openai , "claude-3-sonnet" ) ) . toBe ( "openai" )
103- expect ( getApiProtocol ( providerIdentifiers . litellm , "claude-instant" ) ) . toBe ( "openai" )
104- expect ( getApiProtocol ( providerIdentifiers . ollama , "claude-model" ) ) . toBe ( "openai" )
101+ expect ( getApiProtocol ( providerIdentifiers . openrouter , "claude-3-opus" ) ) . toBe ( OPENAI_API_PROTOCOL )
102+ expect ( getApiProtocol ( providerIdentifiers . openai , "claude-3-sonnet" ) ) . toBe ( OPENAI_API_PROTOCOL )
103+ expect ( getApiProtocol ( providerIdentifiers . litellm , "claude-instant" ) ) . toBe ( OPENAI_API_PROTOCOL )
104+ expect ( getApiProtocol ( providerIdentifiers . ollama , "claude-model" ) ) . toBe ( OPENAI_API_PROTOCOL )
105105 } )
106106 } )
107107
108108 describe ( "Edge cases" , ( ) => {
109109 it ( "should return 'openai' when provider is undefined" , ( ) => {
110- expect ( getApiProtocol ( undefined ) ) . toBe ( "openai" )
111- expect ( getApiProtocol ( undefined , "claude-3-opus" ) ) . toBe ( "openai" )
110+ expect ( getApiProtocol ( undefined ) ) . toBe ( OPENAI_API_PROTOCOL )
111+ expect ( getApiProtocol ( undefined , "claude-3-opus" ) ) . toBe ( OPENAI_API_PROTOCOL )
112112 } )
113113
114114 it ( "should handle empty strings" , ( ) => {
115- expect ( getApiProtocol ( providerIdentifiers . vertex , "" ) ) . toBe ( "openai" )
115+ expect ( getApiProtocol ( providerIdentifiers . vertex , "" ) ) . toBe ( OPENAI_API_PROTOCOL )
116116 } )
117117
118118 it ( "should be case-insensitive for claude detection" , ( ) => {
0 commit comments