mirror of
https://github.com/ArthurDanjou/artagents.git
synced 2026-01-14 12:14:40 +01:00
- Introduced new API endpoints for chat management including posting and retrieving chat messages. - Implemented file upload and deletion functionalities for chat and other files. - Added utility functions for streaming text and loading chat data. - Created TypeScript types for models and agents used in the application. - Configured TypeScript settings for server and project. - Added favicon and workspace configuration for pnpm.
34 lines
738 B
TypeScript
34 lines
738 B
TypeScript
import type { Message } from 'ai'
|
|
|
|
export async function loadChat(slug: string): Promise<Message[]> {
|
|
const { blobs } = await $fetch('/api/files')
|
|
|
|
if (!blobs.find(item => item.pathname === `chats/${slug}.json`)) {
|
|
await createChat(slug)
|
|
}
|
|
|
|
const data = await $fetch<string>(`/api/chats/${slug}`)
|
|
const dataString = JSON.stringify(data)
|
|
|
|
if (dataString === '[]') return []
|
|
return JSON.parse(dataString)
|
|
}
|
|
|
|
async function createChat(slug: string) {
|
|
await $fetch('/api/chats', {
|
|
method: 'POST',
|
|
body: {
|
|
file: {
|
|
name: `${slug}.json`,
|
|
content: '[]'
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
export async function deleteChat(slug: string) {
|
|
await $fetch(`/api/chats/${slug}.json`, {
|
|
method: 'DELETE'
|
|
})
|
|
}
|