* Add tools for creating, retrieving, updating, and deleting thoughts. * Implement project management tools for creating and listing projects. * Introduce linking functionality between thoughts. * Add search and recall capabilities for thoughts based on semantic queries. * Implement statistics and summarization tools for thought analysis. * Create database migrations for thoughts, projects, and links. * Add helper functions for UUID parsing and project resolution.
58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
package types
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type ThoughtMetadata struct {
|
|
People []string `json:"people"`
|
|
ActionItems []string `json:"action_items"`
|
|
DatesMentioned []string `json:"dates_mentioned"`
|
|
Topics []string `json:"topics"`
|
|
Type string `json:"type"`
|
|
Source string `json:"source"`
|
|
}
|
|
|
|
type Thought struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Content string `json:"content"`
|
|
Embedding []float32 `json:"embedding,omitempty"`
|
|
Metadata ThoughtMetadata `json:"metadata"`
|
|
ProjectID *uuid.UUID `json:"project_id,omitempty"`
|
|
ArchivedAt *time.Time `json:"archived_at,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type SearchResult struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Content string `json:"content"`
|
|
Metadata ThoughtMetadata `json:"metadata"`
|
|
Similarity float64 `json:"similarity"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
type ListFilter struct {
|
|
Limit int
|
|
Type string
|
|
Topic string
|
|
Person string
|
|
Days int
|
|
ProjectID *uuid.UUID
|
|
IncludeArchived bool
|
|
}
|
|
|
|
type ThoughtStats struct {
|
|
TotalCount int `json:"total_count"`
|
|
TypeCounts map[string]int `json:"type_counts"`
|
|
TopTopics []KeyCount `json:"top_topics"`
|
|
TopPeople []KeyCount `json:"top_people"`
|
|
}
|
|
|
|
type KeyCount struct {
|
|
Key string `json:"key"`
|
|
Count int `json:"count"`
|
|
}
|