Skip to content

Commit

Permalink
solid
Browse files Browse the repository at this point in the history
  • Loading branch information
lgrammel committed Feb 3, 2025
1 parent 72abc10 commit 9da69dd
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 23 deletions.
32 changes: 10 additions & 22 deletions packages/solid/src/use-chat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {
extractMaxToolInvocationStep,
generateId as generateIdFunc,
prepareAttachmentsForRequest,
updateToolCallResult,
} from '@ai-sdk/ui-utils';
import {
Accessor,
Expand Down Expand Up @@ -454,6 +455,7 @@ export function useChat(
createdAt: new Date(),
experimental_attachments:
attachmentsForRequest.length > 0 ? attachmentsForRequest : undefined,
parts: [{ type: 'text', text: inputValue }],
}),
headers: options.headers,
body: options.body,
Expand All @@ -476,32 +478,18 @@ export function useChat(
}) => {
const messagesSnapshot = _messages() ?? [];

const updatedMessages = messagesSnapshot.map((message, index, arr) =>
// update the tool calls in the last assistant message:
index === arr.length - 1 &&
message.role === 'assistant' &&
message.toolInvocations
? {
...message,
toolInvocations: message.toolInvocations.map(toolInvocation =>
toolInvocation.toolCallId === toolCallId
? {
...toolInvocation,
result,
state: 'result' as const,
}
: toolInvocation,
),
}
: message,
);
updateToolCallResult({
messages: messagesSnapshot,
toolCallId,
toolResult: result,
});

mutate(updatedMessages);
mutate(messagesSnapshot);

// auto-submit when all tool calls in the last assistant message have results:
const lastMessage = updatedMessages[updatedMessages.length - 1];
const lastMessage = messagesSnapshot[messagesSnapshot.length - 1];
if (isAssistantMessageWithCompletedToolCalls(lastMessage)) {
triggerRequest({ messages: updatedMessages });
triggerRequest({ messages: messagesSnapshot });
}
};

Expand Down
3 changes: 2 additions & 1 deletion packages/svelte/src/use-chat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,8 @@ export function useChat({
createdAt: new Date(),
experimental_attachments:
attachmentsForRequest.length > 0 ? attachmentsForRequest : undefined,
} as Message),
parts: [{ type: 'text', text: inputValue }],
}),
body: options.body,
headers: options.headers,
data: options.data,
Expand Down

0 comments on commit 9da69dd

Please sign in to comment.