@@ -52,7 +52,7 @@ import { t } from "../../i18n"
5252import { ClineApiReqCancelReason , ClineApiReqInfo } from "../../shared/ExtensionMessage"
5353import { getApiMetrics , hasTokenUsageChanged } from "../../shared/getApiMetrics"
5454import { ClineAskResponse } from "../../shared/WebviewMessage"
55- import { defaultModeSlug } from "../../shared/modes"
55+ import { defaultModeSlug , getModeBySlug , getGroupName } from "../../shared/modes"
5656import { DiffStrategy } from "../../shared/tools"
5757import { EXPERIMENT_IDS , experiments } from "../../shared/experiments"
5858import { getModelMaxOutputTokens } from "../../shared/api"
@@ -2414,10 +2414,20 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
24142414 throw new Error ( "Provider not available" )
24152415 }
24162416
2417+ // Align browser tool enablement with generateSystemPrompt: require model image support,
2418+ // mode to include the browser group, and the user setting to be enabled.
2419+ const modeConfig = getModeBySlug ( mode , customModes )
2420+ const modeSupportsBrowser = modeConfig ?. groups . some ( ( group ) => getGroupName ( group ) === "browser" ) ?? false
2421+
2422+ const canUseBrowserTool =
2423+ ( this . api . getModel ( ) . info . supportsImages ?? false ) &&
2424+ modeSupportsBrowser &&
2425+ ( browserToolEnabled ?? true )
2426+
24172427 return SYSTEM_PROMPT (
24182428 provider . context ,
24192429 this . cwd ,
2420- ( this . api . getModel ( ) . info . supportsImages ?? false ) && ( browserToolEnabled ?? true ) ,
2430+ canUseBrowserTool ,
24212431 mcpHub ,
24222432 this . diffStrategy ,
24232433 browserViewportSize ,
0 commit comments