diff --git a/pkg/personality/traits.go b/pkg/personality/traits.go new file mode 100644 index 0000000..821eddf --- /dev/null +++ b/pkg/personality/traits.go @@ -0,0 +1,53 @@ +package personality + +import "time" + +type Trait string + +const ( + TraitHumor Trait = "humor" + TraitCuriosity Trait = "curiosity" + TraitPlayfulness Trait = "playfulness" + TraitFormality Trait = "formality" + TraitAffection Trait = "affection" +) + +type TraitValue struct { + Trait Trait `json:"trait"` + Value float64 `json:"value"` + MinValue float64 `json:"minValue"` + MaxValue float64 `json:"maxValue"` + UpdatedAt time.Time `json:"updatedAt"` +} + +type PersonalityProfile struct { + Traits []TraitValue `json:"traits"` + UpdatedAt time.Time `json:"updatedAt"` +} + +type RelationshipMetrics struct { + Familiarity float64 `json:"familiarity"` + Trust float64 `json:"trust"` + SharedTopics []string `json:"sharedTopics"` + InsideJokes []string `json:"insideJokes"` + UpdatedAt time.Time `json:"updatedAt"` +} + +type DiaryEntry struct { + ID string `json:"id"` + Date string `json:"date"` // YYYY-MM-DD + Summary string `json:"summary"` + Mood string `json:"mood"` + Topics []string `json:"topics"` + Observations []string `json:"observations"` + CreatedAt time.Time `json:"createdAt"` +} + +type Observation struct { + ID string `json:"id"` + Content string `json:"content"` + Confidence float64 `json:"confidence"` + Category string `json:"category"` + Applied bool `json:"applied"` + CreatedAt time.Time `json:"createdAt"` +} diff --git a/pkg/types/types.go b/pkg/types/types.go new file mode 100644 index 0000000..d06c187 --- /dev/null +++ b/pkg/types/types.go @@ -0,0 +1,44 @@ +package types + +import "time" + +type Role string + +const ( + RoleUser Role = "user" + RoleAssistant Role = "assistant" + RoleSystem Role = "system" + RoleTool Role = "tool" +) + +type Message struct { + ID string `json:"id"` + Role Role `json:"role"` + Content string `json:"content"` + ToolCall *ToolCall `json:"toolCall,omitempty"` + CreatedAt time.Time `json:"createdAt"` +} + +type ToolCall struct { + Name string `json:"name"` + Arguments string `json:"arguments"` + Result string `json:"result,omitempty"` +} + +type Conversation struct { + ID string `json:"id"` + Messages []Message `json:"messages"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +type Mood string + +const ( + MoodNeutral Mood = "neutral" + MoodCurious Mood = "curious" + MoodPlayful Mood = "playful" + MoodThoughtful Mood = "thoughtful" + MoodAnnoyed Mood = "annoyed" + MoodTired Mood = "tired" +)