Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 18 additions & 7 deletions src/lib/execution/Execution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,12 @@ export class Execution {
throw new Error("Teach mode requires a workflow to execute");
}

// Check if BrowserOS provider is selected
// Check if BrowserOS provider is selected and websocket agent feature is enabled
const providerType = await langChainProvider.getCurrentProviderType() || '';
const featureFlags = getFeatureFlags();
const wsAgentEnabled = featureFlags.isEnabled('WEBSOCKET_AGENT');

if (providerType === 'browseros') {
if (providerType === 'browseros' && wsAgentEnabled) {
// Use TeachWebSocketAgent for teach mode with BrowserOS provider
agentType = 'TeachWebSocketAgent';
Logging.logMetric('execution.agent_start', {
Expand Down Expand Up @@ -252,11 +254,13 @@ export class Execution {
const chatAgent = new ChatAgent(executionContext);
await chatAgent.execute(query);
} else {
// Browse mode - check if BrowserOS mode is enabled
// Browse mode - check if BrowserOS mode is enabled and websocket agent feature is enabled
const providerType = await langChainProvider.getCurrentProviderType() || '';
const featureFlags = getFeatureFlags();
const wsAgentEnabled = featureFlags.isEnabled('WEBSOCKET_AGENT');

// Use WebSocketAgent only when BrowserOS provider is selected
if (providerType === 'browseros') {
// Use WebSocketAgent only when BrowserOS provider is selected and feature is enabled
if (providerType === 'browseros' && wsAgentEnabled) {
agentType = 'WebSocketAgent';
Logging.logMetric('execution.agent_start', {
mode: this.options.mode,
Expand Down Expand Up @@ -329,11 +333,18 @@ export class Execution {
if (this.options.mode === 'chat') {
agentName = 'ChatAgent';
} else if (this.options.mode === 'teach') {
agentName = 'TeachAgent';
// Check if TeachWebSocketAgent was used
const providerType = await langChainProvider.getCurrentProviderType() || '';
const featureFlags = getFeatureFlags();
const wsAgentEnabled = featureFlags.isEnabled('WEBSOCKET_AGENT');
agentName = (providerType === 'browseros' && wsAgentEnabled) ? 'TeachWebSocketAgent' : 'TeachAgent';
} else {
// Browse mode - check which agent was used
const providerType = await langChainProvider.getCurrentProviderType() || '';
if (providerType === 'browseros') {
const featureFlags = getFeatureFlags();
const wsAgentEnabled = featureFlags.isEnabled('WEBSOCKET_AGENT');

if (providerType === 'browseros' && wsAgentEnabled) {
agentName = 'WebSocketAgent';
} else {
const smallModelsList = ['ollama'];
Expand Down
1 change: 1 addition & 0 deletions src/lib/utils/featureFlags.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { Logging } from '@/lib/utils/Logging'
const FEATURE_FLAGS = {
TEACH_MODE: '137.0.7212.69',
MCP_SERVER: '137.0.7216.69',
WEBSOCKET_AGENT: '137.0.7220.69',
} as const

// Version comparison utility
Expand Down