mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-04 22:02:16 +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