feat(learnings): add store and MCP tool layer
This commit is contained in:
68
internal/types/learning.go
Normal file
68
internal/types/learning.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type LearningEvidenceLevel string
|
||||
|
||||
const (
|
||||
LearningEvidenceHypothesis LearningEvidenceLevel = "hypothesis"
|
||||
LearningEvidenceObserved LearningEvidenceLevel = "observed"
|
||||
LearningEvidenceVerified LearningEvidenceLevel = "verified"
|
||||
)
|
||||
|
||||
type LearningStatus string
|
||||
|
||||
const (
|
||||
LearningStatusPending LearningStatus = "pending"
|
||||
LearningStatusInProgress LearningStatus = "in_progress"
|
||||
LearningStatusResolved LearningStatus = "resolved"
|
||||
LearningStatusWontFix LearningStatus = "wont_fix"
|
||||
LearningStatusPromoted LearningStatus = "promoted"
|
||||
)
|
||||
|
||||
type LearningPriority string
|
||||
|
||||
const (
|
||||
LearningPriorityLow LearningPriority = "low"
|
||||
LearningPriorityMedium LearningPriority = "medium"
|
||||
LearningPriorityHigh LearningPriority = "high"
|
||||
)
|
||||
|
||||
type Learning struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
Summary string `json:"summary"`
|
||||
Details string `json:"details"`
|
||||
Category string `json:"category"`
|
||||
Area string `json:"area"`
|
||||
Status LearningStatus `json:"status"`
|
||||
Priority LearningPriority `json:"priority"`
|
||||
Confidence LearningEvidenceLevel `json:"confidence"`
|
||||
ActionRequired bool `json:"action_required"`
|
||||
SourceType string `json:"source_type,omitempty"`
|
||||
SourceRef string `json:"source_ref,omitempty"`
|
||||
ProjectID *uuid.UUID `json:"project_id,omitempty"`
|
||||
RelatedThoughtID *uuid.UUID `json:"related_thought_id,omitempty"`
|
||||
RelatedSkillID *uuid.UUID `json:"related_skill_id,omitempty"`
|
||||
ReviewedBy *string `json:"reviewed_by,omitempty"`
|
||||
ReviewedAt *time.Time `json:"reviewed_at,omitempty"`
|
||||
DuplicateOfLearningID *uuid.UUID `json:"duplicate_of_learning_id,omitempty"`
|
||||
SupersedesLearningID *uuid.UUID `json:"supersedes_learning_id,omitempty"`
|
||||
Tags []string `json:"tags"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type LearningFilter struct {
|
||||
Limit int
|
||||
ProjectID *uuid.UUID
|
||||
Category string
|
||||
Area string
|
||||
Status string
|
||||
Priority string
|
||||
Tag string
|
||||
Query string
|
||||
}
|
||||
Reference in New Issue
Block a user