mirror of
https://github.com/enricoros/big-AGI.git
synced 2026-05-11 14:10:15 -07:00
Entangled: add DMessage metadata
This commit is contained in:
@@ -47,6 +47,8 @@ export type DMessageRole = 'user' | 'assistant' | 'system';
|
||||
|
||||
export interface DMessageMetadata {
|
||||
inReferenceTo?: DMetaReferenceItem[]; // text this was in reply to
|
||||
entangled?: DMessageEntangled; // entangled messages info
|
||||
// NOTE: if adding fields, manually update `duplicateDMessageMetadata`
|
||||
}
|
||||
|
||||
/** A textual reference to a text snipped, by a certain role. */
|
||||
@@ -57,6 +59,13 @@ export interface DMetaReferenceItem {
|
||||
// messageId?: string;
|
||||
}
|
||||
|
||||
/** Entangled messages info for coordinated multi-chat operations. */
|
||||
export interface DMessageEntangled {
|
||||
id: string; // entanglement group ID
|
||||
color: string; // hex color for visual connection
|
||||
count: number; // total number of chats this was sent to
|
||||
}
|
||||
|
||||
|
||||
// Message > User Flags
|
||||
|
||||
@@ -169,8 +178,15 @@ export function duplicateDMessage(message: Readonly<DMessage>, skipVoid: boolean
|
||||
}
|
||||
|
||||
export function duplicateDMessageMetadata(metadata: Readonly<DMessageMetadata>): DMessageMetadata {
|
||||
// TODO: deep copy this?
|
||||
return { ...metadata };
|
||||
// NOTE: update this function when adding metadata fields
|
||||
return {
|
||||
...(metadata.inReferenceTo ? {
|
||||
inReferenceTo: metadata.inReferenceTo.map(refItem => ({ ...refItem })),
|
||||
} : {}),
|
||||
...(metadata.entangled ? {
|
||||
entangled: { ...metadata.entangled },
|
||||
} : {}),
|
||||
};
|
||||
}
|
||||
|
||||
export function duplicateDMessageGenerator(generator: Readonly<DMessageGenerator>): DMessageGenerator {
|
||||
|
||||
Reference in New Issue
Block a user