Skip to content

Commit efcfa3b

Browse files
committed
refactor(providers): finish canonical identifier migration
1 parent 1814e14 commit efcfa3b

10 files changed

Lines changed: 111 additions & 76 deletions

File tree

‎src/api/providers/fetchers/__tests__/lmstudio.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import axios from "axios"
22
import { LMStudioClient, LLMInstanceInfo, LLMInfo } from "@lmstudio/sdk"
33

4-
import { ModelInfo, lMStudioDefaultModelInfo } from "@roo-code/types"
4+
import { ModelInfo, lMStudioDefaultModelInfo, providerIdentifiers } from "@roo-code/types"
55

66
import { forceFullModelDetailsLoad, getLMStudioModels, hasLoadedFullDetails, parseLMStudioModel } from "../lmstudio"
77

@@ -66,7 +66,7 @@ describe("LMStudio Fetcher", () => {
6666
expect(mockedAxios.get).toHaveBeenCalledWith(`${baseUrl}/v1/models`)
6767
expect(MockedLMStudioClientConstructor).toHaveBeenCalledWith({ baseUrl: "wss://securehost:4321" })
6868
expect(mockLoadModel).toHaveBeenCalledWith(modelId)
69-
expect(mockFlushModels).toHaveBeenCalledWith({ provider: "lmstudio", baseUrl }, true)
69+
expect(mockFlushModels).toHaveBeenCalledWith({ provider: providerIdentifiers.lmstudio, baseUrl }, true)
7070
expect(hasLoadedFullDetails(modelId)).toBe(true)
7171
})
7272
})

‎src/api/providers/fetchers/__tests__/modelEndpointCache.spec.ts‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// npx vitest run api/providers/fetchers/__tests__/modelEndpointCache.spec.ts
22

33
import { vi, describe, it, expect, beforeEach } from "vitest"
4+
5+
import { providerIdentifiers } from "@roo-code/types"
6+
47
import { getModelEndpoints } from "../modelEndpointCache"
58
import * as modelCache from "../modelCache"
69
import * as openrouter from "../openrouter"
@@ -54,7 +57,7 @@ describe("modelEndpointCache", () => {
5457
vi.spyOn(openrouter, "getOpenRouterModelEndpoints").mockResolvedValue(mockEndpoints as any)
5558

5659
const result = await getModelEndpoints({
57-
router: "openrouter",
60+
router: providerIdentifiers.openrouter,
5861
modelId: "anthropic/claude-sonnet-4",
5962
endpoint: "anthropic",
6063
})
@@ -94,7 +97,7 @@ describe("modelEndpointCache", () => {
9497
vi.spyOn(openrouter, "getOpenRouterModelEndpoints").mockResolvedValue(mockEndpoints as any)
9598

9699
const result = await getModelEndpoints({
97-
router: "openrouter",
100+
router: providerIdentifiers.openrouter,
98101
modelId: "test/model",
99102
endpoint: "endpoint-1",
100103
})
@@ -122,7 +125,7 @@ describe("modelEndpointCache", () => {
122125
vi.spyOn(openrouter, "getOpenRouterModelEndpoints").mockResolvedValue(mockEndpoints as any)
123126

124127
const result = await getModelEndpoints({
125-
router: "openrouter",
128+
router: providerIdentifiers.openrouter,
126129
modelId: "missing/model",
127130
endpoint: "anthropic",
128131
})
@@ -134,7 +137,7 @@ describe("modelEndpointCache", () => {
134137

135138
it("should return empty object for non-openrouter providers", async () => {
136139
const result = await getModelEndpoints({
137-
router: "vercel-ai-gateway",
140+
router: providerIdentifiers.vercelAiGateway,
138141
modelId: "claude-sonnet-4",
139142
endpoint: "default",
140143
})
@@ -144,13 +147,13 @@ describe("modelEndpointCache", () => {
144147

145148
it("should return empty object when modelId or endpoint is missing", async () => {
146149
const result1 = await getModelEndpoints({
147-
router: "openrouter",
150+
router: providerIdentifiers.openrouter,
148151
modelId: undefined,
149152
endpoint: "anthropic",
150153
})
151154

152155
const result2 = await getModelEndpoints({
153-
router: "openrouter",
156+
router: providerIdentifiers.openrouter,
154157
modelId: "anthropic/claude-sonnet-4",
155158
endpoint: undefined,
156159
})

‎src/api/providers/kenari.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
kenariDefaultModelInfo,
77
KENARI_DEFAULT_TEMPERATURE,
88
KENARI_BASE_URL,
9+
providerIdentifiers,
910
} from "@roo-code/types"
1011

1112
import { ApiHandlerOptions } from "../../shared/api"
@@ -37,7 +38,7 @@ export class KenariHandler extends RouterProvider implements SingleCompletionHan
3738
constructor(options: ApiHandlerOptions) {
3839
super({
3940
options,
40-
name: "kenari",
41+
name: providerIdentifiers.kenari,
4142
baseURL: KENARI_BASE_URL,
4243
apiKey: options.kenariApiKey,
4344
modelId: options.kenariModelId,

‎src/api/providers/lite-llm.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import OpenAI from "openai"
22
import { Anthropic } from "@anthropic-ai/sdk" // Keep for type usage only
33

4-
import { litellmDefaultModelId, litellmDefaultModelInfo } from "@roo-code/types"
4+
import { litellmDefaultModelId, litellmDefaultModelInfo, providerIdentifiers } from "@roo-code/types"
55

66
import { calculateApiCostOpenAI } from "../../shared/cost"
77

@@ -27,7 +27,7 @@ export class LiteLLMHandler extends RouterProvider implements SingleCompletionHa
2727
constructor(options: ApiHandlerOptions) {
2828
super({
2929
options,
30-
name: "litellm",
30+
name: providerIdentifiers.litellm,
3131
baseURL: `${options.litellmBaseUrl || "http://localhost:4000"}`,
3232
apiKey: options.litellmApiKey || "dummy-key",
3333
modelId: options.litellmModelId,

‎src/api/providers/nanogpt.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
NANOGPT_BASE_URL,
77
nanoGptDefaultModelId,
88
nanoGptDefaultModelInfo,
9+
providerIdentifiers,
910
type NanoGptRoutingPreference,
1011
} from "@roo-code/types"
1112

@@ -58,7 +59,7 @@ export class NanoGptHandler extends RouterProvider implements SingleCompletionHa
5859
constructor(options: ApiHandlerOptions) {
5960
super({
6061
options,
61-
name: "nanogpt",
62+
name: providerIdentifiers.nanogpt,
6263
baseURL: NANOGPT_BASE_URL,
6364
apiKey: options.nanoGptApiKey,
6465
modelId: options.nanoGptModelId,

‎src/api/providers/opencode-go.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
opencodeGoDefaultModelInfo,
99
OPENCODE_GO_DEFAULT_TEMPERATURE,
1010
isOpencodeGoAnthropicFormatModel,
11+
providerIdentifiers,
1112
} from "@roo-code/types"
1213

1314
import { ApiHandlerOptions } from "../../shared/api"
@@ -81,7 +82,7 @@ export class OpencodeGoHandler extends RouterProvider implements SingleCompletio
8182
constructor(options: ApiHandlerOptions) {
8283
super({
8384
options,
84-
name: "opencode-go",
85+
name: providerIdentifiers.opencodeGo,
8586
baseURL: "https://opencode.ai/zen/go/v1",
8687
apiKey: options.opencodeGoApiKey,
8788
modelId: options.opencodeGoModelId,

‎src/api/providers/poe.ts‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ export class PoeHandler extends BaseProvider implements SingleCompletionHandler
110110
})
111111
} catch (error) {
112112
const errorMessage = error instanceof Error ? error.message : String(error)
113-
TelemetryService.instance.captureException(new ApiProviderError(errorMessage, "poe", id, "createMessage"))
113+
TelemetryService.instance.captureException(
114+
new ApiProviderError(errorMessage, providerIdentifiers.poe, id, "createMessage"),
115+
)
114116
throw new Error(`Poe completion error: ${errorMessage}`)
115117
}
116118

@@ -135,7 +137,9 @@ export class PoeHandler extends BaseProvider implements SingleCompletionHandler
135137
}
136138
} catch (error) {
137139
const errorMessage = error instanceof Error ? error.message : String(error)
138-
TelemetryService.instance.captureException(new ApiProviderError(errorMessage, "poe", id, "createMessage"))
140+
TelemetryService.instance.captureException(
141+
new ApiProviderError(errorMessage, providerIdentifiers.poe, id, "createMessage"),
142+
)
139143
throw new Error(`Poe streaming error: ${errorMessage}`)
140144
}
141145
}
@@ -150,7 +154,9 @@ export class PoeHandler extends BaseProvider implements SingleCompletionHandler
150154
return text
151155
} catch (error) {
152156
const errorMessage = error instanceof Error ? error.message : String(error)
153-
TelemetryService.instance.captureException(new ApiProviderError(errorMessage, "poe", id, "completePrompt"))
157+
TelemetryService.instance.captureException(
158+
new ApiProviderError(errorMessage, providerIdentifiers.poe, id, "completePrompt"),
159+
)
154160
throw new Error(`Poe completion error: ${errorMessage}`)
155161
}
156162
}

‎src/api/providers/vercel-ai-gateway.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
vercelAiGatewayDefaultModelInfo,
77
VERCEL_AI_GATEWAY_DEFAULT_TEMPERATURE,
88
VERCEL_AI_GATEWAY_PROMPT_CACHING_MODELS,
9+
providerIdentifiers,
910
} from "@roo-code/types"
1011

1112
import { ApiHandlerOptions } from "../../shared/api"
@@ -27,7 +28,7 @@ export class VercelAiGatewayHandler extends RouterProvider implements SingleComp
2728
constructor(options: ApiHandlerOptions) {
2829
super({
2930
options,
30-
name: "vercel-ai-gateway",
31+
name: providerIdentifiers.vercelAiGateway,
3132
baseURL: "https://ai-gateway.vercel.sh/v1",
3233
apiKey: options.vercelAiGatewayApiKey,
3334
modelId: options.vercelAiGatewayModelId,

‎src/api/providers/zoo-gateway.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
zooGatewayDefaultModelInfo,
88
ZOO_GATEWAY_DEFAULT_TEMPERATURE,
99
VERCEL_AI_GATEWAY_PROMPT_CACHING_MODELS,
10+
providerIdentifiers,
1011
} from "@roo-code/types"
1112

1213
import { ApiHandlerOptions } from "../../shared/api"
@@ -160,7 +161,7 @@ export class ZooGatewayHandler extends RouterProvider implements SingleCompletio
160161
...(options.openAiHeaders || {}),
161162
},
162163
},
163-
name: "zoo-gateway",
164+
name: providerIdentifiers.zooGateway,
164165
baseURL,
165166
apiKey: sessionToken || NOT_PROVIDED,
166167
modelId: options.zooGatewayModelId,

0 commit comments

Comments
 (0)