// Package personality defines pure types for agent personality and behavior. package personality type Tone string const ( ToneDirect Tone = "direct" ToneFriendly Tone = "friendly" ToneFormal Tone = "formal" ToneCasual Tone = "casual" ToneTechnical Tone = "technical" ) type Verbosity string const ( VerbosityMinimal Verbosity = "minimal" VerbosityConcise Verbosity = "concise" VerbosityDetailed Verbosity = "detailed" VerbosityVerbose Verbosity = "verbose" ) type EmojiStyle string const ( EmojiNone EmojiStyle = "none" EmojiMinimal EmojiStyle = "minimal" EmojiModerate EmojiStyle = "moderate" EmojiHeavy EmojiStyle = "heavy" ) type ErrorStyle string const ( ErrorTerse ErrorStyle = "terse" ErrorHelpful ErrorStyle = "helpful" ErrorDetailed ErrorStyle = "detailed" ) type Formality string const ( FormalityFormal Formality = "formal" FormalitySemiformal Formality = "semiformal" FormalityCasual Formality = "casual" FormalityColoquial Formality = "coloquial" ) type Humor string const ( HumorNone Humor = "none" HumorSubtle Humor = "subtle" HumorModerate Humor = "moderate" HumorFrequent Humor = "frequent" ) type PersonalityType string const ( PersonalityAnalytical PersonalityType = "analytical" PersonalityCreative PersonalityType = "creative" PersonalityPragmatic PersonalityType = "pragmatic" PersonalityEmpathetic PersonalityType = "empathetic" PersonalityAssertive PersonalityType = "assertive" ) type ResponseStyle string const ( ResponseStructured ResponseStyle = "structured" ResponseConversational ResponseStyle = "conversational" ResponseBulletPoints ResponseStyle = "bullet_points" ResponseNarrative ResponseStyle = "narrative" ) type Templates struct { Greeting string UnknownCommand string PermissionDenied string Error string Success string Busy string } type Behavior struct { Proactive bool AskConfirmation bool ShowReasoning bool ThreadReplies bool TypingIndicator bool AcknowledgeReceipt bool } type Communication struct { Formality Formality Humor Humor Personality PersonalityType ResponseStyle ResponseStyle Quirks []string AvoidTopics []string Catchphrases []string } type Personality struct { Tone Tone Verbosity Verbosity Language string LanguagesSupported []string EmojiStyle EmojiStyle Prefix string ErrorStyle ErrorStyle Templates Templates Behavior Behavior // Identidad narrativa Role string Backstory string Expertise []string Limitations []string // Estilo de comunicacion Communication Communication // Directivas personalizadas CustomDirectives []string } // DefaultPersonality returns a sensible baseline. func DefaultPersonality() Personality { return Personality{ Tone: ToneFriendly, Verbosity: VerbosityConcise, Language: "en", EmojiStyle: EmojiMinimal, ErrorStyle: ErrorHelpful, Templates: Templates{ Greeting: "Ready. What do you need?", UnknownCommand: "Unknown command. Use `!help` for available commands.", PermissionDenied: "You don't have permission for that.", Error: "Something failed: {{.Error}}", Success: "Done. {{.Summary}}", Busy: "I'm busy with another task. Wait or use `!queue`.", }, Behavior: Behavior{ AskConfirmation: true, ThreadReplies: true, TypingIndicator: true, AcknowledgeReceipt: true, }, } }