init
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
type Node struct {
|
||||
ID string `json:"id"`
|
||||
Kind string `json:"kind"`
|
||||
Label string `json:"label"`
|
||||
Summary string `json:"summary,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
Origin string `json:"origin"`
|
||||
ExternalID string `json:"external_id,omitempty"`
|
||||
URI string `json:"uri,omitempty"`
|
||||
Categories []string `json:"categories,omitempty"`
|
||||
Keywords []string `json:"keywords,omitempty"`
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
Weight float64 `json:"weight,omitempty"`
|
||||
X float64 `json:"x"`
|
||||
Y float64 `json:"y"`
|
||||
Z float64 `json:"z"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type Evidence struct {
|
||||
NodeID string `json:"node_id,omitempty"`
|
||||
URI string `json:"uri,omitempty"`
|
||||
Excerpt string `json:"excerpt,omitempty"`
|
||||
}
|
||||
|
||||
type Edge struct {
|
||||
ID string `json:"id"`
|
||||
Source string `json:"source"`
|
||||
Target string `json:"target"`
|
||||
Type string `json:"type"`
|
||||
Origin string `json:"origin"`
|
||||
Status string `json:"status,omitempty"`
|
||||
Confidence float64 `json:"confidence,omitempty"`
|
||||
Weight float64 `json:"weight,omitempty"`
|
||||
Explanation string `json:"explanation,omitempty"`
|
||||
Evidence []Evidence `json:"evidence,omitempty"`
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type Hub struct {
|
||||
NodeID string `json:"node_id"`
|
||||
Label string `json:"label"`
|
||||
Kind string `json:"kind"`
|
||||
Degree int `json:"degree"`
|
||||
}
|
||||
|
||||
type GraphAnalysis struct {
|
||||
NodeCount int `json:"node_count"`
|
||||
EdgeCount int `json:"edge_count"`
|
||||
Components int `json:"components"`
|
||||
KnowledgeOrphans int `json:"knowledge_orphans"`
|
||||
StagingNodes int `json:"staging_nodes"`
|
||||
AIThinkNodes int `json:"ai_think_nodes"`
|
||||
ExternalNodes int `json:"external_nodes"`
|
||||
AIEdges int `json:"ai_edges"`
|
||||
Contradictions int `json:"contradictions"`
|
||||
TopHubs []Hub `json:"top_hubs"`
|
||||
}
|
||||
|
||||
type Snapshot struct {
|
||||
Version uint64 `json:"version"`
|
||||
Nodes []Node `json:"nodes"`
|
||||
Edges []Edge `json:"edges"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type Hit struct {
|
||||
NodeID string `json:"node_id"`
|
||||
Label string `json:"label"`
|
||||
Score float64 `json:"score"`
|
||||
Kind string `json:"kind"`
|
||||
Status string `json:"status,omitempty"`
|
||||
}
|
||||
|
||||
type Activity struct {
|
||||
ID string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
Source string `json:"source"`
|
||||
Phase string `json:"phase,omitempty"`
|
||||
Query string `json:"query,omitempty"`
|
||||
Message string `json:"message,omitempty"`
|
||||
NodeIDs []string `json:"node_ids,omitempty"`
|
||||
EdgeIDs []string `json:"edge_ids,omitempty"`
|
||||
Strength float64 `json:"strength,omitempty"`
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
}
|
||||
|
||||
type ExternalEvent struct {
|
||||
Type string `json:"type"`
|
||||
Source string `json:"source"`
|
||||
Query string `json:"query,omitempty"`
|
||||
Message string `json:"message,omitempty"`
|
||||
Hits []ExternalHit `json:"hits,omitempty"`
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
type ExternalHit struct {
|
||||
ID string `json:"id"`
|
||||
Score float64 `json:"score,omitempty"`
|
||||
}
|
||||
|
||||
type QueryRequest struct {
|
||||
Query string `json:"query"`
|
||||
}
|
||||
|
||||
type QueryResponse struct {
|
||||
Query string `json:"query"`
|
||||
Answer string `json:"answer"`
|
||||
Hits []Hit `json:"hits"`
|
||||
UsedNodeIDs []string `json:"used_node_ids,omitempty"`
|
||||
Uncertainties []string `json:"uncertainties,omitempty"`
|
||||
DurationMS int64 `json:"duration_ms"`
|
||||
}
|
||||
|
||||
type RelationDecision struct {
|
||||
Related bool `json:"related"`
|
||||
RelationType string `json:"relation_type"`
|
||||
Confidence float64 `json:"confidence"`
|
||||
Explanation string `json:"explanation"`
|
||||
NeedsResearch bool `json:"needs_research"`
|
||||
ResearchQuery string `json:"research_query"`
|
||||
Title string `json:"title"`
|
||||
Synthesis string `json:"synthesis"`
|
||||
Keywords []string `json:"keywords"`
|
||||
}
|
||||
|
||||
type AnswerDecision struct {
|
||||
Answer string `json:"answer"`
|
||||
UsedNodeIDs []string `json:"used_node_ids"`
|
||||
Uncertainties []string `json:"uncertainties"`
|
||||
}
|
||||
|
||||
type ResearchResult struct {
|
||||
Title string `json:"title"`
|
||||
URL string `json:"url"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
Reference in New Issue
Block a user