// 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 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 Personality struct { Tone Tone Verbosity Verbosity Language string LanguagesSupported []string EmojiStyle EmojiStyle Prefix string ErrorStyle ErrorStyle Templates Templates Behavior Behavior } // 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, }, } }