Skip to content

Commit 7c16a04

Browse files
committed
Merge branch 'main' into flex-working1
2 parents 5e4c32e + 6f81b77 commit 7c16a04

File tree

90 files changed

+1866
-625
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+1866
-625
lines changed

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Roo Code Changelog
22

3+
## [3.25.13] - 2025-08-12
4+
5+
- Add Sonnet 1M context checkbox to Bedrock
6+
- Fix: add --no-messages flag to ripgrep to suppress file access errors (#6756 by @R-omk, PR by @app/roomote)
7+
- Add support for AGENT.md alongside AGENTS.md (#6912 by @Brendan-Z, PR by @app/roomote)
8+
- Remove deprecated GPT-4.5 Preview model (thanks @PeterDaveHello!)
9+
10+
## [3.25.12] - 2025-08-12
11+
12+
- Update: Claude Sonnet 4 context window configurable to 1 million tokens in Anthropic provider (thanks @daniel-lxs!)
13+
- Add: Minimal reasoning support to OpenRouter (thanks @daniel-lxs!)
14+
- Fix: Add configurable API request timeout for local providers (#6521 by @dabockster, PR by @app/roomote)
15+
- Fix: Add --no-sandbox flag to browser launch options (#6632 by @QuinsZouls, PR by @QuinsZouls)
16+
- Fix: Ensure JSON files respect .rooignore during indexing (#6690 by @evermoving, PR by @app/roomote)
17+
- Add: New Chutes provider models (#6698 by @fstandhartinger, PR by @app/roomote)
18+
- Add: OpenAI gpt-oss models to Amazon Bedrock dropdown (#6752 by @josh-clanton-powerschool, PR by @app/roomote)
19+
- Fix: Correct tool repetition detector to not block first tool call when limit is 1 (#6834 by @NaccOll, PR by @app/roomote)
20+
- Fix: Improve checkpoint service initialization handling (thanks @NaccOll!)
21+
- Update: Improve zh-TW Traditional Chinese locale (thanks @PeterDaveHello!)
22+
- Add: Task expand and collapse translations (thanks @app/roomote!)
23+
- Update: Exclude GPT-5 models from 20% context window output token cap (thanks @app/roomote!)
24+
- Fix: Truncate long model names in model selector to prevent overflow (thanks @app/roomote!)
25+
- Add: Requesty base url support (thanks @requesty-JohnCosta27!)
26+
327
## [3.25.11] - 2025-08-11
428

529
- Add: Native OpenAI provider support for Codex Mini model (#5386 by @KJ7LNW, PR by @daniel-lxs)

packages/types/src/global-settings.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,6 @@ export const DEFAULT_WRITE_DELAY_MS = 1000
2929
*/
3030
export const DEFAULT_TERMINAL_OUTPUT_CHARACTER_LIMIT = 50_000
3131

32-
/**
33-
* Default timeout for background usage collection in milliseconds.
34-
* This timeout prevents the background task from running indefinitely
35-
* when collecting usage data from streaming API responses.
36-
*/
37-
export const DEFAULT_USAGE_COLLECTION_TIMEOUT_MS = 30_000
38-
3932
/**
4033
* GlobalSettings
4134
*/

packages/types/src/provider-settings.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import { z } from "zod"
33
import { reasoningEffortsSchema, verbosityLevelsSchema, modelInfoSchema } from "./model.js"
44
import { codebaseIndexProviderSchema } from "./codebase-index.js"
55

6+
// Bedrock Claude Sonnet 4 model ID that supports 1M context
7+
export const BEDROCK_CLAUDE_SONNET_4_MODEL_ID = "anthropic.claude-sonnet-4-20250514-v1:0"
8+
69
// Extended schema that includes "minimal" for GPT-5 models
710
export const extendedReasoningEffortsSchema = z.union([reasoningEffortsSchema, z.literal("minimal")])
811

@@ -102,6 +105,7 @@ const anthropicSchema = apiModelIdProviderModelSchema.extend({
102105
apiKey: z.string().optional(),
103106
anthropicBaseUrl: z.string().optional(),
104107
anthropicUseAuthToken: z.boolean().optional(),
108+
anthropicBeta1MContext: z.boolean().optional(), // Enable 'context-1m-2025-08-07' beta for 1M context window
105109
})
106110

107111
const claudeCodeSchema = apiModelIdProviderModelSchema.extend({
@@ -137,6 +141,7 @@ const bedrockSchema = apiModelIdProviderModelSchema.extend({
137141
awsModelContextWindow: z.number().optional(),
138142
awsBedrockEndpointEnabled: z.boolean().optional(),
139143
awsBedrockEndpoint: z.string().optional(),
144+
awsBedrock1MContext: z.boolean().optional(), // Enable 'context-1m-2025-08-07' beta for 1M context window
140145
})
141146

142147
const vertexSchema = apiModelIdProviderModelSchema.extend({
@@ -228,6 +233,7 @@ const unboundSchema = baseProviderSettingsSchema.extend({
228233
})
229234

230235
const requestySchema = baseProviderSettingsSchema.extend({
236+
requestyBaseUrl: z.string().optional(),
231237
requestyApiKey: z.string().optional(),
232238
requestyModelId: z.string().optional(),
233239
})

packages/types/src/providers/anthropic.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,25 @@ export const anthropicDefaultModelId: AnthropicModelId = "claude-sonnet-4-202505
88
export const anthropicModels = {
99
"claude-sonnet-4-20250514": {
1010
maxTokens: 64_000, // Overridden to 8k if `enableReasoningEffort` is false.
11-
contextWindow: 200_000,
11+
contextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'
1212
supportsImages: true,
1313
supportsComputerUse: true,
1414
supportsPromptCache: true,
15-
inputPrice: 3.0, // $3 per million input tokens
16-
outputPrice: 15.0, // $15 per million output tokens
15+
inputPrice: 3.0, // $3 per million input tokens (≤200K context)
16+
outputPrice: 15.0, // $15 per million output tokens (≤200K context)
1717
cacheWritesPrice: 3.75, // $3.75 per million tokens
1818
cacheReadsPrice: 0.3, // $0.30 per million tokens
1919
supportsReasoningBudget: true,
20+
// Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')
21+
tiers: [
22+
{
23+
contextWindow: 1_000_000, // 1M tokens with beta flag
24+
inputPrice: 6.0, // $6 per million input tokens (>200K context)
25+
outputPrice: 22.5, // $22.50 per million output tokens (>200K context)
26+
cacheWritesPrice: 7.5, // $7.50 per million tokens (>200K context)
27+
cacheReadsPrice: 0.6, // $0.60 per million tokens (>200K context)
28+
},
29+
],
2030
},
2131
"claude-opus-4-1-20250805": {
2232
maxTokens: 8192,

packages/types/src/providers/bedrock.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,26 @@ export const bedrockModels = {
221221
inputPrice: 1.35,
222222
outputPrice: 5.4,
223223
},
224+
"openai.gpt-oss-20b-1:0": {
225+
maxTokens: 8192,
226+
contextWindow: 128_000,
227+
supportsImages: false,
228+
supportsComputerUse: false,
229+
supportsPromptCache: false,
230+
inputPrice: 0.5,
231+
outputPrice: 1.5,
232+
description: "GPT-OSS 20B - Optimized for low latency and local/specialized use cases",
233+
},
234+
"openai.gpt-oss-120b-1:0": {
235+
maxTokens: 8192,
236+
contextWindow: 128_000,
237+
supportsImages: false,
238+
supportsComputerUse: false,
239+
supportsPromptCache: false,
240+
inputPrice: 2.0,
241+
outputPrice: 6.0,
242+
description: "GPT-OSS 120B - Production-ready, general-purpose, high-reasoning model",
243+
},
224244
"meta.llama3-3-70b-instruct-v1:0": {
225245
maxTokens: 8192,
226246
contextWindow: 128_000,

packages/types/src/providers/openai.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -218,15 +218,6 @@ export const openAiNativeModels = {
218218
outputPrice: 4.4,
219219
cacheReadsPrice: 0.55,
220220
},
221-
"gpt-4.5-preview": {
222-
maxTokens: 16_384,
223-
contextWindow: 128_000,
224-
supportsImages: true,
225-
supportsPromptCache: true,
226-
inputPrice: 75,
227-
outputPrice: 150,
228-
cacheReadsPrice: 37.5,
229-
},
230221
"gpt-4o": {
231222
maxTokens: 16_384,
232223
contextWindow: 128_000,

pnpm-lock.yaml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/link-packages.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,54 @@ if (!unlink && watch) {
5858
}
5959
}
6060

61+
function generateNpmPackageJson(sourcePath, npmPath) {
62+
const npmDir = path.join(sourcePath, npmPath)
63+
const npmPackagePath = path.join(npmDir, "package.json")
64+
const npmMetadataPath = path.join(npmDir, "package.metadata.json")
65+
const monorepoPackagePath = path.join(sourcePath, "package.json")
66+
67+
if (fs.existsSync(npmPackagePath)) {
68+
console.log(` ✓ npm/package.json already exists`)
69+
return
70+
}
71+
72+
if (!fs.existsSync(npmMetadataPath)) {
73+
console.log(` ⚠ No package.metadata.json found, skipping npm package.json generation`)
74+
return
75+
}
76+
77+
try {
78+
console.log(` 📦 Generating npm/package.json...`)
79+
const monorepoPackage = JSON.parse(fs.readFileSync(monorepoPackagePath, "utf8"))
80+
const npmMetadata = JSON.parse(fs.readFileSync(npmMetadataPath, "utf8"))
81+
82+
const npmPackage = {
83+
...npmMetadata,
84+
type: "module",
85+
dependencies: monorepoPackage.dependencies || {},
86+
main: "./dist/index.cjs",
87+
module: "./dist/index.js",
88+
types: "./dist/index.d.ts",
89+
exports: {
90+
".": {
91+
types: "./dist/index.d.ts",
92+
import: "./dist/index.js",
93+
require: {
94+
types: "./dist/index.d.cts",
95+
default: "./dist/index.cjs",
96+
},
97+
},
98+
},
99+
files: ["dist"],
100+
}
101+
102+
fs.writeFileSync(npmPackagePath, JSON.stringify(npmPackage, null, 2) + "\n")
103+
console.log(` ✓ Generated npm/package.json for ${npmPackage.name}`)
104+
} catch (error) {
105+
console.error(` ✗ Failed to generate npm/package.json: ${error.message}`)
106+
}
107+
}
108+
61109
function linkPackage(pkg) {
62110
const sourcePath = path.resolve(__dirname, "..", pkg.sourcePath)
63111
const targetPath = path.resolve(__dirname, "..", pkg.targetPath)
@@ -78,6 +126,11 @@ function linkPackage(pkg) {
78126
}
79127
}
80128

129+
// If npmPath is specified, check if we need to generate package.json.
130+
if (pkg.npmPath) {
131+
generateNpmPackageJson(sourcePath, pkg.npmPath)
132+
}
133+
81134
// Create symlink.
82135
fs.rmSync(targetPath, { recursive: true, force: true })
83136
fs.mkdirSync(path.dirname(targetPath), { recursive: true })

0 commit comments

Comments
 (0)