Files
artagents/server/utils/chat.ts
Arthur DANJOU c0b5539f12 feat: add chat and file management APIs, implement chat loading and saving functionality
- 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.
2025-04-14 12:19:30 +02:00

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'
})
}