feat(tools): implement CRUD operations for thoughts and projects
* 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.
This commit is contained in:
40
internal/types/project.go
Normal file
40
internal/types/project.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type ThoughtPatch struct {
|
||||
Content *string `json:"content,omitempty"`
|
||||
Metadata ThoughtMetadata `json:"metadata,omitempty"`
|
||||
Project *uuid.UUID `json:"project_id,omitempty"`
|
||||
}
|
||||
|
||||
type Project struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
LastActiveAt time.Time `json:"last_active_at"`
|
||||
}
|
||||
|
||||
type ProjectSummary struct {
|
||||
Project
|
||||
ThoughtCount int `json:"thought_count"`
|
||||
}
|
||||
|
||||
type ThoughtLink struct {
|
||||
FromID uuid.UUID `json:"from_id"`
|
||||
ToID uuid.UUID `json:"to_id"`
|
||||
Relation string `json:"relation"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
type LinkedThought struct {
|
||||
Thought Thought `json:"thought"`
|
||||
Relation string `json:"relation"`
|
||||
Direction string `json:"direction"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
Reference in New Issue
Block a user