mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-26 21:39:43 +02:00
feat: add chat artifact model types
This commit is contained in:
parent
fb29ea1292
commit
89c807030f
1 changed files with 23 additions and 0 deletions
23
surfsense_web/features/chat-artifacts/model/artifact.ts
Normal file
23
surfsense_web/features/chat-artifacts/model/artifact.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/** Deliverable kinds the agent can produce and surface in the artifacts sidebar. */
|
||||
export type ArtifactKind = "report" | "resume" | "podcast" | "video" | "image";
|
||||
|
||||
export type ArtifactStatus = "running" | "ready" | "error";
|
||||
|
||||
/**
|
||||
* A chat deliverable, aggregated from the assistant message stream. One entry
|
||||
* per deliverable tool call; the heavy content stays in the inline card and is
|
||||
* fetched lazily by the panel/card on demand.
|
||||
*/
|
||||
export interface ChatArtifact {
|
||||
/** Stable identity for list keys + dedupe — entity id when known, else the tool call id. */
|
||||
key: string;
|
||||
kind: ArtifactKind;
|
||||
title: string;
|
||||
status: ArtifactStatus;
|
||||
/** Anchors the scroll-to-card jump back into the conversation. */
|
||||
toolCallId: string;
|
||||
/** Backing entity id for report/resume/podcast/video; null for images. */
|
||||
entityId: number | null;
|
||||
/** Report panel content type — "typst" for resumes, "markdown" otherwise. */
|
||||
contentType: "markdown" | "typst";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue