@lenml/char-card-reader
Version:
SillyTavern character card info reader
113 lines (104 loc) • 2.64 kB
text/typescript
export namespace CharacterSpec {
export interface Root {
spec: string;
spec_version: string;
data: Data;
name: string;
description: string;
personality: string;
scenario: string;
first_mes: string;
mes_example: string;
creatorcomment: string;
avatar: string;
talkativeness: string;
fav: boolean;
tags: any[];
create_date: string;
}
export interface Data {
name: string;
description: string;
personality: string;
scenario: string;
first_mes: string;
mes_example: string;
creator_notes: string;
system_prompt: string;
post_history_instructions: string;
tags: string[];
creator: string;
character_version: string;
alternate_greetings: string[];
extensions: Extensions;
group_only_greetings: any[];
character_book: CharacterBook;
}
export interface Extensions {
talkativeness: string;
fav: boolean;
world: string;
depth_prompt: DepthPrompt;
}
export interface DepthPrompt {
prompt: string;
depth: number;
role: string;
}
export interface CharacterBook {
entries: Entry[];
name: string;
extensions: Record<string, any>;
}
export interface Entry {
id: number;
keys: string[];
secondary_keys: any[];
comment: string;
content: string;
constant: boolean;
selective: boolean;
insertion_order: number;
enabled: boolean;
position: "before_char" | "after_char";
use_regex: boolean;
extensions: Extensions2;
}
export interface Extensions2 {
position: number;
exclude_recursion: boolean;
display_index: number;
probability: number;
useProbability: boolean;
depth: number;
selectiveLogic: number;
group: string;
group_override: boolean;
group_weight: number;
prevent_recursion: boolean;
delay_until_recursion: boolean;
scan_depth: any;
match_whole_words: any;
use_group_scoring: boolean;
case_sensitive: any;
automation_id: string;
role: number;
vectorized: boolean;
sticky: number;
cooldown: number;
delay: number;
match_persona_description: boolean;
match_character_description: boolean;
match_character_personality: boolean;
match_character_depth_prompt: boolean;
match_scenario: boolean;
match_creator_notes: boolean;
}
}
export type CharRawData = {
spec: string;
spec_version: string;
data: any;
[key: string]: any;
};
export class CharacterCardParserError extends Error {}