Skip to content

Commit 4100ebd

Browse files
committed
Merge remote-tracking branch 'upstream/main' into roo-to-main
2 parents febeca7 + 8187a8e commit 4100ebd

File tree

4 files changed

+5
-135
lines changed

4 files changed

+5
-135
lines changed

apps/web-roo-code/src/lib/constants.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export const EXTERNAL_LINKS = {
33
GITHUB_DISCUSSIONS: "https://github.com/zgsm-ai/costrict/discussions",
44
DISCORD: "https://discord.gg/roocode",
55
REDDIT: "https://reddit.com/r/RooCode",
6-
X: "https://x.com/roo_code",
6+
X: "https://x.com/roocode",
77
LINKEDIN: "https://www.linkedin.com/company/roo-code",
88
TIKTOK: "https://www.tiktok.com/@roo.code",
99
BLUESKY: "https://bsky.app/profile/roocode.bsky.social",
@@ -26,7 +26,7 @@ export const EXTERNAL_LINKS = {
2626
TESTIMONIALS: "https://roocode.com/#testimonials",
2727
CLOUD_APP_LOGIN: "https://app.roocode.com/sign-in",
2828
CLOUD_APP_SIGNUP: "https://app.roocode.com/sign-up",
29-
CLOUD_APP_SIGNUP_PRO: "https://app.roocode.com/sign-up?redirect=/checkout/pro",
29+
CLOUD_APP_SIGNUP_PRO: "https://app.roocode.com/sign-up?redirect_url=/cloud-agents/welcome",
3030
}
3131

3232
export const INTERNAL_LINKS = {

packages/types/src/providers/openrouter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export const OPEN_ROUTER_PROMPT_CACHING_MODELS = new Set([
4040
"anthropic/claude-sonnet-4.5",
4141
"anthropic/claude-opus-4",
4242
"anthropic/claude-opus-4.1",
43+
"anthropic/claude-haiku-4.5",
4344
"google/gemini-2.5-flash-preview",
4445
"google/gemini-2.5-flash-preview:thinking",
4546
"google/gemini-2.5-flash-preview-05-20",

src/api/providers/fetchers/__tests__/openrouter.spec.ts

Lines changed: 0 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@ import * as path from "path"
44

55
import { back as nockBack } from "nock"
66

7-
import {
8-
OPEN_ROUTER_PROMPT_CACHING_MODELS,
9-
OPEN_ROUTER_REASONING_BUDGET_MODELS,
10-
OPEN_ROUTER_REQUIRED_REASONING_BUDGET_MODELS,
11-
} from "@roo-code/types"
12-
137
import { getOpenRouterModelEndpoints, getOpenRouterModels, parseOpenRouterModel } from "../openrouter"
148

159
nockBack.fixtures = path.join(__dirname, "fixtures")
@@ -23,131 +17,6 @@ describe.skip("OpenRouter API", () => {
2317

2418
const models = await getOpenRouterModels()
2519

26-
const openRouterSupportedCaching = Object.entries(models)
27-
.filter(([id, _]) => id.startsWith("anthropic/claude") || id.startsWith("google/gemini")) // only these support cache_control breakpoints (https://openrouter.ai/docs/features/prompt-caching)
28-
.filter(([_, model]) => model.supportsPromptCache)
29-
.map(([id, _]) => id)
30-
31-
// Define models that are intentionally excluded
32-
const excludedModels = new Set([
33-
"google/gemini-2.5-pro-preview", // Excluded due to lag issue (#4487)
34-
"google/gemini-2.5-flash", // OpenRouter doesn't report this as supporting prompt caching
35-
"google/gemini-2.5-flash-lite-preview-06-17", // OpenRouter doesn't report this as supporting prompt caching
36-
"anthropic/claude-opus-4.1", // Not yet available in OpenRouter API
37-
"anthropic/claude-sonnet-4.5", // Not yet available in OpenRouter API
38-
])
39-
40-
const ourCachingModels = Array.from(OPEN_ROUTER_PROMPT_CACHING_MODELS).filter(
41-
(id) => !excludedModels.has(id),
42-
)
43-
44-
// Verify all our caching models are actually supported by OpenRouter
45-
for (const modelId of ourCachingModels) {
46-
expect(openRouterSupportedCaching).toContain(modelId)
47-
}
48-
49-
// Verify we have all supported models except intentionally excluded ones
50-
const expectedCachingModels = openRouterSupportedCaching.filter((id) => !excludedModels.has(id)).sort()
51-
52-
expect(ourCachingModels.sort()).toEqual(expectedCachingModels)
53-
54-
expect(
55-
Object.entries(models)
56-
.filter(([_, model]) => model.supportsReasoningEffort)
57-
.map(([id, _]) => id)
58-
.sort(),
59-
).toEqual([
60-
"agentica-org/deepcoder-14b-preview:free",
61-
"aion-labs/aion-1.0",
62-
"aion-labs/aion-1.0-mini",
63-
"anthropic/claude-3.7-sonnet:beta",
64-
"anthropic/claude-3.7-sonnet:thinking",
65-
"anthropic/claude-opus-4",
66-
// "anthropic/claude-opus-4.1", // Not yet available in OpenRouter API
67-
"anthropic/claude-sonnet-4",
68-
"arliai/qwq-32b-arliai-rpr-v1:free",
69-
"cognitivecomputations/dolphin3.0-r1-mistral-24b:free",
70-
"deepseek/deepseek-r1",
71-
"deepseek/deepseek-r1-distill-llama-70b",
72-
"deepseek/deepseek-r1-distill-llama-70b:free",
73-
"deepseek/deepseek-r1-distill-llama-8b",
74-
"deepseek/deepseek-r1-distill-qwen-1.5b",
75-
"deepseek/deepseek-r1-distill-qwen-14b",
76-
"deepseek/deepseek-r1-distill-qwen-14b:free",
77-
"deepseek/deepseek-r1-distill-qwen-32b",
78-
"deepseek/deepseek-r1-distill-qwen-32b:free",
79-
"deepseek/deepseek-r1-zero:free",
80-
"deepseek/deepseek-r1:free",
81-
"google/gemini-2.5-flash-preview-05-20",
82-
"google/gemini-2.5-flash-preview-05-20:thinking",
83-
"microsoft/mai-ds-r1:free",
84-
"microsoft/phi-4-reasoning-plus",
85-
"microsoft/phi-4-reasoning-plus:free",
86-
"microsoft/phi-4-reasoning:free",
87-
"moonshotai/kimi-vl-a3b-thinking:free",
88-
"nousresearch/deephermes-3-mistral-24b-preview:free",
89-
"open-r1/olympiccoder-32b:free",
90-
"openai/codex-mini",
91-
"openai/o1-pro",
92-
"perplexity/r1-1776",
93-
"perplexity/sonar-deep-research",
94-
"perplexity/sonar-reasoning",
95-
"perplexity/sonar-reasoning-pro",
96-
"qwen/qwen3-14b",
97-
"qwen/qwen3-14b:free",
98-
"qwen/qwen3-235b-a22b",
99-
"qwen/qwen3-235b-a22b:free",
100-
"qwen/qwen3-30b-a3b",
101-
"qwen/qwen3-30b-a3b:free",
102-
"qwen/qwen3-32b",
103-
"qwen/qwen3-32b:free",
104-
"qwen/qwen3-4b:free",
105-
"qwen/qwen3-8b",
106-
"qwen/qwen3-8b:free",
107-
"qwen/qwq-32b",
108-
"qwen/qwq-32b:free",
109-
"rekaai/reka-flash-3:free",
110-
"thudm/glm-z1-32b",
111-
"thudm/glm-z1-32b:free",
112-
"thudm/glm-z1-9b:free",
113-
"thudm/glm-z1-rumination-32b",
114-
"tngtech/deepseek-r1t-chimera:free",
115-
"x-ai/grok-3-mini-beta",
116-
])
117-
// OpenRouter is taking a while to update their models, so we exclude some known models
118-
const excludedReasoningBudgetModels = new Set([
119-
"google/gemini-2.5-flash",
120-
"google/gemini-2.5-flash-lite-preview-06-17",
121-
"google/gemini-2.5-pro",
122-
"anthropic/claude-opus-4.1", // Not yet available in OpenRouter API
123-
"anthropic/claude-sonnet-4.5", // Not yet available in OpenRouter API
124-
"anthropic/claude-haiku-4.5", // Not yet available in OpenRouter API
125-
])
126-
127-
const expectedReasoningBudgetModels = Array.from(OPEN_ROUTER_REASONING_BUDGET_MODELS)
128-
.filter((id) => !excludedReasoningBudgetModels.has(id))
129-
.sort()
130-
131-
expect(
132-
Object.entries(models)
133-
.filter(([_, model]) => model.supportsReasoningBudget)
134-
.map(([id, _]) => id)
135-
.sort(),
136-
).toEqual(expectedReasoningBudgetModels)
137-
138-
const excludedRequiredReasoningBudgetModels = new Set(["google/gemini-2.5-pro"])
139-
140-
const expectedRequiredReasoningBudgetModels = Array.from(OPEN_ROUTER_REQUIRED_REASONING_BUDGET_MODELS)
141-
.filter((id) => !excludedRequiredReasoningBudgetModels.has(id))
142-
.sort()
143-
144-
expect(
145-
Object.entries(models)
146-
.filter(([_, model]) => model.requiredReasoningBudget)
147-
.map(([id, _]) => id)
148-
.sort(),
149-
).toEqual(expectedRequiredReasoningBudgetModels)
150-
15120
expect(models["anthropic/claude-3.7-sonnet"]).toEqual({
15221
maxTokens: 8192,
15322
contextWindow: 200000,

webview-ui/src/components/chat/Announcement.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,10 @@ const Announcement = ({ hideAnnouncement }: AnnouncementProps) => {
111111

112112
const XLink = () => (
113113
<VSCodeLink
114-
href="https://x.com/roo_code"
114+
href="https://x.com/roocode"
115115
onClick={(e) => {
116116
e.preventDefault()
117-
vscode.postMessage({ type: "openExternal", url: "https://x.com/roo_code" })
117+
vscode.postMessage({ type: "openExternal", url: "https://x.com/roocode" })
118118
}}>
119119
X
120120
</VSCodeLink>

0 commit comments

Comments
 (0)