Files
kandev/apps/web/hooks/use-message-handler.ts
T
2026-01-25 00:02:31 +00:00

40 lines
1.1 KiB
TypeScript

import { useCallback } from 'react';
import { getWebSocketClient } from '@/lib/ws/connection';
export function useMessageHandler(
resolvedSessionId: string | null,
taskId: string | null,
sessionModel: string | null,
activeModel: string | null,
planMode: boolean = false
) {
const handleSendMessage = useCallback(
async (message: string) => {
if (!taskId || !resolvedSessionId) {
console.error('No active task session. Start an agent before sending a message.');
return;
}
const client = getWebSocketClient();
if (!client) return;
// Include active model in the request if it differs from the session model
const modelToSend = activeModel && activeModel !== sessionModel ? activeModel : undefined;
await client.request(
'message.add',
{
task_id: taskId,
session_id: resolvedSessionId,
content: message,
...(modelToSend && { model: modelToSend }),
...(planMode && { plan_mode: true }),
},
10000
);
},
[resolvedSessionId, taskId, activeModel, sessionModel, planMode]
);
return { handleSendMessage };
}