feat: auto send working (still needs clean up)

This commit is contained in:
Dustin Healy 2025-09-06 02:14:12 -07:00
parent cee11d3353
commit 094320fcd9
2 changed files with 58 additions and 19 deletions

View file

@ -79,6 +79,7 @@ export default function useChatFunctions({
parentMessageId = null, parentMessageId = null,
conversationId = null, conversationId = null,
messageId = null, messageId = null,
toolResources,
}, },
{ {
editedContent = null, editedContent = null,
@ -204,14 +205,31 @@ export default function useChatFunctions({
messageId: isContinued && messageId != null && messageId ? messageId : intermediateId, messageId: isContinued && messageId != null && messageId ? messageId : intermediateId,
thread_id, thread_id,
error: false, error: false,
...(toolResources && { tool_resources: toolResources }),
}; };
console.log('ask() currentMsg before files processing:', {
text: currentMsg.text?.substring(0, 100) + '...',
tool_resources: currentMsg.tool_resources,
hasFiles: files?.size > 0,
filesSize: files?.size,
});
const submissionFiles = overrideFiles ?? targetParentMessage?.files; const submissionFiles = overrideFiles ?? targetParentMessage?.files;
const reuseFiles = const reuseFiles =
(isRegenerate || (overrideFiles != null && overrideFiles.length)) && (isRegenerate || (overrideFiles != null && overrideFiles.length)) &&
submissionFiles && submissionFiles &&
submissionFiles.length > 0; submissionFiles.length > 0;
console.log('ask() files processing:', {
overrideFiles,
hasOverrideFiles: !!overrideFiles?.length,
submissionFiles,
hasSubmissionFiles: !!submissionFiles?.length,
reuseFiles,
chatFilesSize: files?.size,
});
if (setFiles && reuseFiles === true) { if (setFiles && reuseFiles === true) {
currentMsg.files = submissionFiles; currentMsg.files = submissionFiles;
setFiles(new Map()); setFiles(new Map());
@ -229,6 +247,13 @@ export default function useChatFunctions({
setFilesToDelete({}); setFilesToDelete({});
} }
console.log('ask() currentMsg after files processing:', {
text: currentMsg.text?.substring(0, 100) + '...',
tool_resources: currentMsg.tool_resources,
files: currentMsg.files,
hasFiles: !!currentMsg.files?.length,
});
const responseMessageId = const responseMessageId =
editedMessageId ?? editedMessageId ??
(latestMessage?.messageId && isRegenerate (latestMessage?.messageId && isRegenerate

View file

@ -100,7 +100,7 @@ export default function useSubmitMessage() {
); );
const submitMessage = useCallback( const submitMessage = useCallback(
(data?: { text: string; toolResources?: AgentToolResources }) => { (data?: { text: string; toolResources?: AgentToolResources; files?: ExtendedFile[] }) => {
if (!data) { if (!data) {
return console.warn('No data provided to submitMessage'); return console.warn('No data provided to submitMessage');
} }
@ -122,14 +122,26 @@ export default function useSubmitMessage() {
const rootIndex = addedIndex - 1; const rootIndex = addedIndex - 1;
const clientTimestamp = new Date().toISOString(); const clientTimestamp = new Date().toISOString();
ask({ console.log('submitMessage calling ask with:', {
text: data.text, text: data.text?.substring(0, 100) + '...',
overrideConvoId: appendIndex(rootIndex, overrideConvoId),
overrideUserMessageId: appendIndex(rootIndex, overrideUserMessageId),
clientTimestamp,
toolResources: data.toolResources, toolResources: data.toolResources,
overrideFiles: data.files,
hasOverrideFiles: !!data.files?.length,
}); });
ask(
{
text: data.text,
overrideConvoId: appendIndex(rootIndex, overrideConvoId),
overrideUserMessageId: appendIndex(rootIndex, overrideUserMessageId),
clientTimestamp,
toolResources: data.toolResources,
},
{
overrideFiles: data.files,
},
);
if (hasAdded) { if (hasAdded) {
askAdditional( askAdditional(
{ {
@ -139,7 +151,10 @@ export default function useSubmitMessage() {
clientTimestamp, clientTimestamp,
toolResources: data.toolResources, toolResources: data.toolResources,
}, },
{ overrideMessages: rootMessages }, {
overrideMessages: rootMessages,
overrideFiles: data.files,
},
); );
} }
methods.reset(); methods.reset();
@ -168,9 +183,18 @@ export default function useSubmitMessage() {
const parsedText = replaceSpecialVars({ text, user }); const parsedText = replaceSpecialVars({ text, user });
// ALWAYS add files to chat state first (like AttachFileMenu does) if (autoSendPrompts) {
console.log('Auto-sending message with toolResources');
// Auto-send: convert toolResources to files and pass both
const promptFiles = toolResources ? convertToolResourcesToFiles(toolResources) : [];
console.log('Auto-send converted files:', promptFiles);
submitMessage({ text: parsedText, toolResources, files: promptFiles });
return;
}
// Manual mode: add files to chat state so they appear in UI
if (toolResources) { if (toolResources) {
console.log('Converting toolResources to files...'); console.log('Converting toolResources to files for manual mode...');
const promptFiles = convertToolResourcesToFiles(toolResources); const promptFiles = convertToolResourcesToFiles(toolResources);
console.log('Converted files:', promptFiles); console.log('Converted files:', promptFiles);
@ -189,16 +213,6 @@ export default function useSubmitMessage() {
console.log('No toolResources provided'); console.log('No toolResources provided');
} }
if (autoSendPrompts) {
console.log('Auto-sending message (files should be in chat state)');
// Auto-send: files are now in chat state, submit without toolResources
// (files will be picked up from chat state like AttachFileMenu)
submitMessage({ text: parsedText });
return;
}
console.log('Manual mode: setting text in input (files should be visible in UI)');
// Manual send: files are in chat state, just set text
const currentText = methods.getValues('text'); const currentText = methods.getValues('text');
const newText = currentText.trim().length > 1 ? `\n${parsedText}` : parsedText; const newText = currentText.trim().length > 1 ? `\n${parsedText}` : parsedText;
setActivePrompt(newText); setActivePrompt(newText);