diff --git a/apps/rowboat/app/lib/types/workflow_types.ts b/apps/rowboat/app/lib/types/workflow_types.ts index 16a7725a..bc71f0ef 100644 --- a/apps/rowboat/app/lib/types/workflow_types.ts +++ b/apps/rowboat/app/lib/types/workflow_types.ts @@ -11,7 +11,9 @@ export const WorkflowAgent = z.object({ instructions: z.string(), examples: z.string().optional(), model: z.union([ + z.literal('gpt-4.1'), z.literal('gpt-4o'), + z.literal('gpt-4.1-mini'), z.literal('gpt-4o-mini'), ]), locked: z.boolean().default(false).describe('Whether this agent is locked and cannot be deleted').optional(), @@ -124,7 +126,7 @@ export function sanitizeTextWithMentions( } return false; }) - + // sanitize text for (const entity of entities) { const id = `${entity.type}:${entity.name}`; diff --git a/apps/rowboat_agents/src/graph/core.py b/apps/rowboat_agents/src/graph/core.py index 0391d1c0..638497f1 100644 --- a/apps/rowboat_agents/src/graph/core.py +++ b/apps/rowboat_agents/src/graph/core.py @@ -403,6 +403,21 @@ async def run_turn_streamed( 'tool_name': None, 'response_type': 'internal' } + print("Yielding message: ", message) + yield ('message', message) + + result_message = { + 'content': "Web search done", + 'role': 'tool', + 'sender': None, + 'tool_calls': None, + 'tool_call_id': call_id, + 'tool_name': 'web_search', + 'response_type': 'internal' + } + + print("Yielding web search results: ", result_message) + yield ('message', result_message) else: # Handle normal tool calls message = { @@ -421,8 +436,9 @@ async def run_turn_streamed( 'tool_name': None, 'response_type': 'internal' } - print("Yielding message: ", message) - yield ('message', message) + print("Yielding message: ", message) + yield ('message', message) + elif event.item.type == "tool_call_output_item": # Check if it's a web search result