94 lines
2.2 KiB
Go
94 lines
2.2 KiB
Go
// 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,
|
|
},
|
|
}
|
|
}
|