feat: v1 — persistent shell, model gateway, artifact improvements (#1462)

This commit is contained in:
dancer 2026-03-20 09:37:02 +00:00 committed by GitHub
parent 3651670fb9
commit f9652b452a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
161 changed files with 5166 additions and 8009 deletions

View file

@ -1,6 +1,4 @@
import type {
AssistantModelMessage,
ToolModelMessage,
UIMessage,
UIMessagePart,
} from 'ai';
@ -48,13 +46,6 @@ export async function fetchWithErrorHandlers(
}
}
export function getLocalStorage(key: string) {
if (typeof window !== 'undefined') {
return JSON.parse(localStorage.getItem(key) || '[]');
}
return [];
}
export function generateUUID(): string {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
const r = (Math.random() * 16) | 0;
@ -63,14 +54,6 @@ export function generateUUID(): string {
});
}
type ResponseMessageWithoutId = ToolModelMessage | AssistantModelMessage;
type ResponseMessage = ResponseMessageWithoutId & { id: string };
export function getMostRecentUserMessage(messages: UIMessage[]) {
const userMessages = messages.filter((message) => message.role === 'user');
return userMessages.at(-1);
}
export function getDocumentTimestampByIndex(
documents: Document[],
index: number,
@ -81,18 +64,6 @@ export function getDocumentTimestampByIndex(
return documents[index].createdAt;
}
export function getTrailingMessageId({
messages,
}: {
messages: ResponseMessage[];
}): string | null {
const trailingMessage = messages.at(-1);
if (!trailingMessage) { return null; }
return trailingMessage.id;
}
export function sanitizeText(text: string) {
return text.replace('<has_function_call>', '');
}