SurfSense/surfsense_web/zero/schema/chat.ts
DESKTOP-RTLN3BA\$punk e651c41372
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
feat: enhance tool input streaming and agent action handling for improved chat experience
2026-04-30 03:13:58 -07:00

41 lines
1.4 KiB
TypeScript

import { json, number, string, table } from "@rocicorp/zero";
export const newChatMessageTable = table("new_chat_messages")
.columns({
id: number(),
role: string(),
content: json(),
threadId: number().from("thread_id"),
authorId: string().optional().from("author_id"),
createdAt: number().from("created_at"),
// Per-turn correlation id sourced from ``configurable.turn_id``
// at streaming time. Required by the inline Revert button's
// (chat_turn_id, tool_name, position) fallback in tool-fallback.tsx
// — without it the live-collab Zero sync would clobber the
// metadata we set during streaming and the button would vanish
// the moment Zero re-syncs after the stream finishes.
turnId: string().optional().from("turn_id"),
})
.primaryKey("id");
export const chatCommentTable = table("chat_comments")
.columns({
id: number(),
messageId: number().from("message_id"),
threadId: number().from("thread_id"),
parentId: number().optional().from("parent_id"),
authorId: string().optional().from("author_id"),
content: string(),
createdAt: number().from("created_at"),
updatedAt: number().from("updated_at"),
})
.primaryKey("id");
export const chatSessionStateTable = table("chat_session_state")
.columns({
id: number(),
threadId: number().from("thread_id"),
aiRespondingToUserId: string().optional().from("ai_responding_to_user_id"),
updatedAt: number().from("updated_at"),
})
.primaryKey("id");