chore: align slurp config and scaffolding

This commit is contained in:
anthonyrawlins
2025-09-27 21:03:12 +10:00
parent acc4361463
commit 4a77862289
47 changed files with 5133 additions and 4274 deletions

View File

@@ -17,45 +17,46 @@ import (
// cascading context resolution with bounded depth traversal.
type ContextNode struct {
// Identity and addressing
ID string `json:"id"` // Unique identifier
UCXLAddress string `json:"ucxl_address"` // Associated UCXL address
Path string `json:"path"` // Filesystem path
ID string `json:"id"` // Unique identifier
UCXLAddress string `json:"ucxl_address"` // Associated UCXL address
Path string `json:"path"` // Filesystem path
// Core context information
Summary string `json:"summary"` // Brief description
Purpose string `json:"purpose"` // What this component does
Technologies []string `json:"technologies"` // Technologies used
Tags []string `json:"tags"` // Categorization tags
Insights []string `json:"insights"` // Analytical insights
Summary string `json:"summary"` // Brief description
Purpose string `json:"purpose"` // What this component does
Technologies []string `json:"technologies"` // Technologies used
Tags []string `json:"tags"` // Categorization tags
Insights []string `json:"insights"` // Analytical insights
// Hierarchy relationships
Parent *string `json:"parent,omitempty"` // Parent context ID
Children []string `json:"children"` // Child context IDs
Specificity int `json:"specificity"` // Specificity level (higher = more specific)
Parent *string `json:"parent,omitempty"` // Parent context ID
Children []string `json:"children"` // Child context IDs
Specificity int `json:"specificity"` // Specificity level (higher = more specific)
// File metadata
FileType string `json:"file_type"` // File extension or type
Language *string `json:"language,omitempty"` // Programming language
Size *int64 `json:"size,omitempty"` // File size in bytes
LastModified *time.Time `json:"last_modified,omitempty"` // Last modification time
ContentHash *string `json:"content_hash,omitempty"` // Content hash for change detection
FileType string `json:"file_type"` // File extension or type
Language *string `json:"language,omitempty"` // Programming language
Size *int64 `json:"size,omitempty"` // File size in bytes
LastModified *time.Time `json:"last_modified,omitempty"` // Last modification time
ContentHash *string `json:"content_hash,omitempty"` // Content hash for change detection
// Resolution metadata
CreatedBy string `json:"created_by"` // Who/what created this context
CreatedAt time.Time `json:"created_at"` // When created
UpdatedAt time.Time `json:"updated_at"` // When last updated
Confidence float64 `json:"confidence"` // Confidence in accuracy (0-1)
CreatedBy string `json:"created_by"` // Who/what created this context
CreatedAt time.Time `json:"created_at"` // When created
UpdatedAt time.Time `json:"updated_at"` // When last updated
UpdatedBy string `json:"updated_by"` // Who performed the last update
Confidence float64 `json:"confidence"` // Confidence in accuracy (0-1)
// Cascading behavior rules
AppliesTo ContextScope `json:"applies_to"` // Scope of application
Overrides bool `json:"overrides"` // Whether this overrides parent context
AppliesTo ContextScope `json:"applies_to"` // Scope of application
Overrides bool `json:"overrides"` // Whether this overrides parent context
// Security and access control
EncryptedFor []string `json:"encrypted_for"` // Roles that can access
AccessLevel crypto.AccessLevel `json:"access_level"` // Access level required
EncryptedFor []string `json:"encrypted_for"` // Roles that can access
AccessLevel crypto.AccessLevel `json:"access_level"` // Access level required
// Custom metadata
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
}
// ResolvedContext represents the final resolved context for a UCXL address.
@@ -64,41 +65,41 @@ type ContextNode struct {
// information from multiple hierarchy levels and applying global contexts.
type ResolvedContext struct {
// Resolved context data
UCXLAddress string `json:"ucxl_address"` // Original UCXL address
Summary string `json:"summary"` // Resolved summary
Purpose string `json:"purpose"` // Resolved purpose
Technologies []string `json:"technologies"` // Merged technologies
Tags []string `json:"tags"` // Merged tags
Insights []string `json:"insights"` // Merged insights
UCXLAddress string `json:"ucxl_address"` // Original UCXL address
Summary string `json:"summary"` // Resolved summary
Purpose string `json:"purpose"` // Resolved purpose
Technologies []string `json:"technologies"` // Merged technologies
Tags []string `json:"tags"` // Merged tags
Insights []string `json:"insights"` // Merged insights
// File information
FileType string `json:"file_type"` // File type
Language *string `json:"language,omitempty"` // Programming language
Size *int64 `json:"size,omitempty"` // File size
LastModified *time.Time `json:"last_modified,omitempty"` // Last modification
ContentHash *string `json:"content_hash,omitempty"` // Content hash
FileType string `json:"file_type"` // File type
Language *string `json:"language,omitempty"` // Programming language
Size *int64 `json:"size,omitempty"` // File size
LastModified *time.Time `json:"last_modified,omitempty"` // Last modification
ContentHash *string `json:"content_hash,omitempty"` // Content hash
// Resolution metadata
SourcePath string `json:"source_path"` // Primary source context path
InheritanceChain []string `json:"inheritance_chain"` // Context inheritance chain
Confidence float64 `json:"confidence"` // Overall confidence (0-1)
BoundedDepth int `json:"bounded_depth"` // Actual traversal depth used
GlobalApplied bool `json:"global_applied"` // Whether global contexts were applied
ResolvedAt time.Time `json:"resolved_at"` // When resolution occurred
SourcePath string `json:"source_path"` // Primary source context path
InheritanceChain []string `json:"inheritance_chain"` // Context inheritance chain
Confidence float64 `json:"confidence"` // Overall confidence (0-1)
BoundedDepth int `json:"bounded_depth"` // Actual traversal depth used
GlobalApplied bool `json:"global_applied"` // Whether global contexts were applied
ResolvedAt time.Time `json:"resolved_at"` // When resolution occurred
// Temporal information
Version int `json:"version"` // Current version number
LastUpdated time.Time `json:"last_updated"` // When context was last updated
EvolutionHistory []string `json:"evolution_history"` // Brief evolution history
// Access control
AccessibleBy []string `json:"accessible_by"` // Roles that can access this
EncryptionKeys []string `json:"encryption_keys"` // Keys used for encryption
AccessibleBy []string `json:"accessible_by"` // Roles that can access this
EncryptionKeys []string `json:"encryption_keys"` // Keys used for encryption
// Performance metadata
ResolutionTime time.Duration `json:"resolution_time"` // Time taken to resolve
CacheHit bool `json:"cache_hit"` // Whether result was cached
NodesTraversed int `json:"nodes_traversed"` // Number of hierarchy nodes traversed
ResolutionTime time.Duration `json:"resolution_time"` // Time taken to resolve
CacheHit bool `json:"cache_hit"` // Whether result was cached
NodesTraversed int `json:"nodes_traversed"` // Number of hierarchy nodes traversed
}
// ContextScope defines the scope of a context node's application
@@ -117,38 +118,38 @@ const (
// simple chronological progression.
type TemporalNode struct {
// Node identity
ID string `json:"id"` // Unique temporal node ID
UCXLAddress string `json:"ucxl_address"` // Associated UCXL address
Version int `json:"version"` // Version number (monotonic)
ID string `json:"id"` // Unique temporal node ID
UCXLAddress string `json:"ucxl_address"` // Associated UCXL address
Version int `json:"version"` // Version number (monotonic)
// Context snapshot
Context ContextNode `json:"context"` // Context data at this point
Context ContextNode `json:"context"` // Context data at this point
// Temporal metadata
Timestamp time.Time `json:"timestamp"` // When this version was created
DecisionID string `json:"decision_id"` // Associated decision identifier
ChangeReason ChangeReason `json:"change_reason"` // Why context changed
Timestamp time.Time `json:"timestamp"` // When this version was created
DecisionID string `json:"decision_id"` // Associated decision identifier
ChangeReason ChangeReason `json:"change_reason"` // Why context changed
ParentNode *string `json:"parent_node,omitempty"` // Previous version ID
// Evolution tracking
ContextHash string `json:"context_hash"` // Hash of context content
Confidence float64 `json:"confidence"` // Confidence in this version (0-1)
Staleness float64 `json:"staleness"` // Staleness indicator (0-1)
ContextHash string `json:"context_hash"` // Hash of context content
Confidence float64 `json:"confidence"` // Confidence in this version (0-1)
Staleness float64 `json:"staleness"` // Staleness indicator (0-1)
// Decision graph relationships
Influences []string `json:"influences"` // UCXL addresses this influences
InfluencedBy []string `json:"influenced_by"` // UCXL addresses that influence this
// Validation metadata
ValidatedBy []string `json:"validated_by"` // Who/what validated this
LastValidated time.Time `json:"last_validated"` // When last validated
// Change impact analysis
ImpactScope ImpactScope `json:"impact_scope"` // Scope of change impact
PropagatedTo []string `json:"propagated_to"` // Addresses that received impact
ImpactScope ImpactScope `json:"impact_scope"` // Scope of change impact
PropagatedTo []string `json:"propagated_to"` // Addresses that received impact
// Custom temporal metadata
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
}
// DecisionMetadata represents metadata about a decision that changed context.
@@ -157,56 +158,56 @@ type TemporalNode struct {
// representing why and how context evolved rather than just when.
type DecisionMetadata struct {
// Decision identity
ID string `json:"id"` // Unique decision identifier
Maker string `json:"maker"` // Who/what made the decision
Rationale string `json:"rationale"` // Why the decision was made
ID string `json:"id"` // Unique decision identifier
Maker string `json:"maker"` // Who/what made the decision
Rationale string `json:"rationale"` // Why the decision was made
// Impact and scope
Scope ImpactScope `json:"scope"` // Scope of impact
ConfidenceLevel float64 `json:"confidence_level"` // Confidence in decision (0-1)
Scope ImpactScope `json:"scope"` // Scope of impact
ConfidenceLevel float64 `json:"confidence_level"` // Confidence in decision (0-1)
// External references
ExternalRefs []string `json:"external_refs"` // External references (URLs, docs)
GitCommit *string `json:"git_commit,omitempty"` // Associated git commit
IssueNumber *int `json:"issue_number,omitempty"` // Associated issue number
PullRequestNumber *int `json:"pull_request,omitempty"` // Associated PR number
ExternalRefs []string `json:"external_refs"` // External references (URLs, docs)
GitCommit *string `json:"git_commit,omitempty"` // Associated git commit
IssueNumber *int `json:"issue_number,omitempty"` // Associated issue number
PullRequestNumber *int `json:"pull_request,omitempty"` // Associated PR number
// Timing information
CreatedAt time.Time `json:"created_at"` // When decision was made
EffectiveAt *time.Time `json:"effective_at,omitempty"` // When decision takes effect
ExpiresAt *time.Time `json:"expires_at,omitempty"` // When decision expires
CreatedAt time.Time `json:"created_at"` // When decision was made
EffectiveAt *time.Time `json:"effective_at,omitempty"` // When decision takes effect
ExpiresAt *time.Time `json:"expires_at,omitempty"` // When decision expires
// Decision quality
ReviewedBy []string `json:"reviewed_by,omitempty"` // Who reviewed this decision
ApprovedBy []string `json:"approved_by,omitempty"` // Who approved this decision
ReviewedBy []string `json:"reviewed_by,omitempty"` // Who reviewed this decision
ApprovedBy []string `json:"approved_by,omitempty"` // Who approved this decision
// Implementation tracking
ImplementationStatus string `json:"implementation_status"` // Status: planned, active, complete, cancelled
ImplementationNotes string `json:"implementation_notes"` // Implementation details
ImplementationStatus string `json:"implementation_status"` // Status: planned, active, complete, cancelled
ImplementationNotes string `json:"implementation_notes"` // Implementation details
// Custom metadata
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
}
// ChangeReason represents why context changed
type ChangeReason string
const (
ReasonInitialCreation ChangeReason = "initial_creation" // First time context creation
ReasonCodeChange ChangeReason = "code_change" // Code modification
ReasonDesignDecision ChangeReason = "design_decision" // Design/architecture decision
ReasonRefactoring ChangeReason = "refactoring" // Code refactoring
ReasonArchitectureChange ChangeReason = "architecture_change" // Major architecture change
ReasonRequirementsChange ChangeReason = "requirements_change" // Requirements modification
ReasonLearningEvolution ChangeReason = "learning_evolution" // Improved understanding
ReasonRAGEnhancement ChangeReason = "rag_enhancement" // RAG system enhancement
ReasonTeamInput ChangeReason = "team_input" // Team member input
ReasonBugDiscovery ChangeReason = "bug_discovery" // Bug found that changes understanding
ReasonPerformanceInsight ChangeReason = "performance_insight" // Performance analysis insight
ReasonSecurityReview ChangeReason = "security_review" // Security analysis
ReasonDependencyChange ChangeReason = "dependency_change" // Dependency update
ReasonEnvironmentChange ChangeReason = "environment_change" // Environment configuration change
ReasonToolingUpdate ChangeReason = "tooling_update" // Development tooling update
ReasonInitialCreation ChangeReason = "initial_creation" // First time context creation
ReasonCodeChange ChangeReason = "code_change" // Code modification
ReasonDesignDecision ChangeReason = "design_decision" // Design/architecture decision
ReasonRefactoring ChangeReason = "refactoring" // Code refactoring
ReasonArchitectureChange ChangeReason = "architecture_change" // Major architecture change
ReasonRequirementsChange ChangeReason = "requirements_change" // Requirements modification
ReasonLearningEvolution ChangeReason = "learning_evolution" // Improved understanding
ReasonRAGEnhancement ChangeReason = "rag_enhancement" // RAG system enhancement
ReasonTeamInput ChangeReason = "team_input" // Team member input
ReasonBugDiscovery ChangeReason = "bug_discovery" // Bug found that changes understanding
ReasonPerformanceInsight ChangeReason = "performance_insight" // Performance analysis insight
ReasonSecurityReview ChangeReason = "security_review" // Security analysis
ReasonDependencyChange ChangeReason = "dependency_change" // Dependency update
ReasonEnvironmentChange ChangeReason = "environment_change" // Environment configuration change
ReasonToolingUpdate ChangeReason = "tooling_update" // Development tooling update
ReasonDocumentationUpdate ChangeReason = "documentation_update" // Documentation improvement
)
@@ -222,11 +223,11 @@ const (
// DecisionPath represents a path between two decision points in the temporal graph
type DecisionPath struct {
From string `json:"from"` // Starting UCXL address
To string `json:"to"` // Ending UCXL address
Steps []*DecisionStep `json:"steps"` // Path steps
TotalHops int `json:"total_hops"` // Total decision hops
PathType string `json:"path_type"` // Type of path (direct, influence, etc.)
From string `json:"from"` // Starting UCXL address
To string `json:"to"` // Ending UCXL address
Steps []*DecisionStep `json:"steps"` // Path steps
TotalHops int `json:"total_hops"` // Total decision hops
PathType string `json:"path_type"` // Type of path (direct, influence, etc.)
}
// DecisionStep represents a single step in a decision path
@@ -239,7 +240,7 @@ type DecisionStep struct {
// DecisionTimeline represents the decision evolution timeline for a context
type DecisionTimeline struct {
PrimaryAddress string `json:"primary_address"` // Main UCXL address
PrimaryAddress string `json:"primary_address"` // Main UCXL address
DecisionSequence []*DecisionTimelineEntry `json:"decision_sequence"` // Ordered by decision hops
RelatedDecisions []*RelatedDecision `json:"related_decisions"` // Related decisions within hop limit
TotalDecisions int `json:"total_decisions"` // Total decisions in timeline
@@ -249,40 +250,40 @@ type DecisionTimeline struct {
// DecisionTimelineEntry represents an entry in the decision timeline
type DecisionTimelineEntry struct {
Version int `json:"version"` // Version number
DecisionHop int `json:"decision_hop"` // Decision distance from initial
ChangeReason ChangeReason `json:"change_reason"` // Why it changed
DecisionMaker string `json:"decision_maker"` // Who made the decision
DecisionRationale string `json:"decision_rationale"` // Rationale for decision
ConfidenceEvolution float64 `json:"confidence_evolution"` // Confidence at this point
Timestamp time.Time `json:"timestamp"` // When decision occurred
InfluencesCount int `json:"influences_count"` // Number of influenced addresses
InfluencedByCount int `json:"influenced_by_count"` // Number of influencing addresses
ImpactScope ImpactScope `json:"impact_scope"` // Scope of this decision
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
Version int `json:"version"` // Version number
DecisionHop int `json:"decision_hop"` // Decision distance from initial
ChangeReason ChangeReason `json:"change_reason"` // Why it changed
DecisionMaker string `json:"decision_maker"` // Who made the decision
DecisionRationale string `json:"decision_rationale"` // Rationale for decision
ConfidenceEvolution float64 `json:"confidence_evolution"` // Confidence at this point
Timestamp time.Time `json:"timestamp"` // When decision occurred
InfluencesCount int `json:"influences_count"` // Number of influenced addresses
InfluencedByCount int `json:"influenced_by_count"` // Number of influencing addresses
ImpactScope ImpactScope `json:"impact_scope"` // Scope of this decision
Metadata map[string]interface{} `json:"metadata,omitempty"` // Additional metadata
}
// RelatedDecision represents a decision related through the influence graph
type RelatedDecision struct {
Address string `json:"address"` // UCXL address
DecisionHops int `json:"decision_hops"` // Hops from primary address
LatestVersion int `json:"latest_version"` // Latest version number
ChangeReason ChangeReason `json:"change_reason"` // Latest change reason
DecisionMaker string `json:"decision_maker"` // Latest decision maker
Confidence float64 `json:"confidence"` // Current confidence
LastDecisionTimestamp time.Time `json:"last_decision_timestamp"` // When last decision occurred
RelationshipType string `json:"relationship_type"` // Type of relationship (influences, influenced_by)
Address string `json:"address"` // UCXL address
DecisionHops int `json:"decision_hops"` // Hops from primary address
LatestVersion int `json:"latest_version"` // Latest version number
ChangeReason ChangeReason `json:"change_reason"` // Latest change reason
DecisionMaker string `json:"decision_maker"` // Latest decision maker
Confidence float64 `json:"confidence"` // Current confidence
LastDecisionTimestamp time.Time `json:"last_decision_timestamp"` // When last decision occurred
RelationshipType string `json:"relationship_type"` // Type of relationship (influences, influenced_by)
}
// TimelineAnalysis contains analysis metadata for decision timelines
type TimelineAnalysis struct {
ChangeVelocity float64 `json:"change_velocity"` // Changes per unit time
ConfidenceTrend string `json:"confidence_trend"` // increasing, decreasing, stable
DominantChangeReasons []ChangeReason `json:"dominant_change_reasons"` // Most common reasons
DecisionMakers map[string]int `json:"decision_makers"` // Decision maker frequency
ChangeVelocity float64 `json:"change_velocity"` // Changes per unit time
ConfidenceTrend string `json:"confidence_trend"` // increasing, decreasing, stable
DominantChangeReasons []ChangeReason `json:"dominant_change_reasons"` // Most common reasons
DecisionMakers map[string]int `json:"decision_makers"` // Decision maker frequency
ImpactScopeDistribution map[ImpactScope]int `json:"impact_scope_distribution"` // Distribution of impact scopes
InfluenceNetworkSize int `json:"influence_network_size"` // Size of influence network
AnalyzedAt time.Time `json:"analyzed_at"` // When analysis was performed
InfluenceNetworkSize int `json:"influence_network_size"` // Size of influence network
AnalyzedAt time.Time `json:"analyzed_at"` // When analysis was performed
}
// NavigationDirection represents direction for temporal navigation
@@ -295,77 +296,77 @@ const (
// StaleContext represents a potentially outdated context
type StaleContext struct {
UCXLAddress string `json:"ucxl_address"` // Address of stale context
TemporalNode *TemporalNode `json:"temporal_node"` // Latest temporal node
StalenessScore float64 `json:"staleness_score"` // Staleness score (0-1)
LastUpdated time.Time `json:"last_updated"` // When last updated
Reasons []string `json:"reasons"` // Reasons why considered stale
SuggestedActions []string `json:"suggested_actions"` // Suggested remediation actions
UCXLAddress string `json:"ucxl_address"` // Address of stale context
TemporalNode *TemporalNode `json:"temporal_node"` // Latest temporal node
StalenessScore float64 `json:"staleness_score"` // Staleness score (0-1)
LastUpdated time.Time `json:"last_updated"` // When last updated
Reasons []string `json:"reasons"` // Reasons why considered stale
SuggestedActions []string `json:"suggested_actions"` // Suggested remediation actions
}
// GenerationOptions configures context generation behavior
type GenerationOptions struct {
// Analysis options
AnalyzeContent bool `json:"analyze_content"` // Analyze file content
AnalyzeStructure bool `json:"analyze_structure"` // Analyze directory structure
AnalyzeHistory bool `json:"analyze_history"` // Analyze git history
AnalyzeDependencies bool `json:"analyze_dependencies"` // Analyze dependencies
AnalyzeContent bool `json:"analyze_content"` // Analyze file content
AnalyzeStructure bool `json:"analyze_structure"` // Analyze directory structure
AnalyzeHistory bool `json:"analyze_history"` // Analyze git history
AnalyzeDependencies bool `json:"analyze_dependencies"` // Analyze dependencies
// Generation scope
MaxDepth int `json:"max_depth"` // Maximum directory depth
IncludePatterns []string `json:"include_patterns"` // File patterns to include
ExcludePatterns []string `json:"exclude_patterns"` // File patterns to exclude
MaxDepth int `json:"max_depth"` // Maximum directory depth
IncludePatterns []string `json:"include_patterns"` // File patterns to include
ExcludePatterns []string `json:"exclude_patterns"` // File patterns to exclude
// Quality settings
MinConfidence float64 `json:"min_confidence"` // Minimum confidence threshold
RequireValidation bool `json:"require_validation"` // Require human validation
MinConfidence float64 `json:"min_confidence"` // Minimum confidence threshold
RequireValidation bool `json:"require_validation"` // Require human validation
// External integration
UseRAG bool `json:"use_rag"` // Use RAG for enhancement
RAGEndpoint string `json:"rag_endpoint"` // RAG service endpoint
UseRAG bool `json:"use_rag"` // Use RAG for enhancement
RAGEndpoint string `json:"rag_endpoint"` // RAG service endpoint
// Output options
EncryptForRoles []string `json:"encrypt_for_roles"` // Roles to encrypt for
EncryptForRoles []string `json:"encrypt_for_roles"` // Roles to encrypt for
// Performance limits
Timeout time.Duration `json:"timeout"` // Generation timeout
MaxFileSize int64 `json:"max_file_size"` // Maximum file size to analyze
Timeout time.Duration `json:"timeout"` // Generation timeout
MaxFileSize int64 `json:"max_file_size"` // Maximum file size to analyze
// Custom options
CustomOptions map[string]interface{} `json:"custom_options,omitempty"` // Additional options
CustomOptions map[string]interface{} `json:"custom_options,omitempty"` // Additional options
}
// HierarchyStats represents statistics about hierarchy generation
type HierarchyStats struct {
NodesCreated int `json:"nodes_created"` // Number of nodes created
NodesUpdated int `json:"nodes_updated"` // Number of nodes updated
FilesAnalyzed int `json:"files_analyzed"` // Number of files analyzed
DirectoriesScanned int `json:"directories_scanned"` // Number of directories scanned
GenerationTime time.Duration `json:"generation_time"` // Time taken for generation
AverageConfidence float64 `json:"average_confidence"` // Average confidence score
TotalSize int64 `json:"total_size"` // Total size of analyzed content
SkippedFiles int `json:"skipped_files"` // Number of files skipped
Errors []string `json:"errors"` // Generation errors
NodesCreated int `json:"nodes_created"` // Number of nodes created
NodesUpdated int `json:"nodes_updated"` // Number of nodes updated
FilesAnalyzed int `json:"files_analyzed"` // Number of files analyzed
DirectoriesScanned int `json:"directories_scanned"` // Number of directories scanned
GenerationTime time.Duration `json:"generation_time"` // Time taken for generation
AverageConfidence float64 `json:"average_confidence"` // Average confidence score
TotalSize int64 `json:"total_size"` // Total size of analyzed content
SkippedFiles int `json:"skipped_files"` // Number of files skipped
Errors []string `json:"errors"` // Generation errors
}
// ValidationResult represents the result of context validation
type ValidationResult struct {
Valid bool `json:"valid"` // Whether context is valid
ConfidenceScore float64 `json:"confidence_score"` // Overall confidence (0-1)
QualityScore float64 `json:"quality_score"` // Quality assessment (0-1)
Issues []*ValidationIssue `json:"issues"` // Validation issues found
Suggestions []*ValidationSuggestion `json:"suggestions"` // Improvement suggestions
ValidatedAt time.Time `json:"validated_at"` // When validation occurred
ValidatedBy string `json:"validated_by"` // Who/what performed validation
Valid bool `json:"valid"` // Whether context is valid
ConfidenceScore float64 `json:"confidence_score"` // Overall confidence (0-1)
QualityScore float64 `json:"quality_score"` // Quality assessment (0-1)
Issues []*ValidationIssue `json:"issues"` // Validation issues found
Suggestions []*ValidationSuggestion `json:"suggestions"` // Improvement suggestions
ValidatedAt time.Time `json:"validated_at"` // When validation occurred
ValidatedBy string `json:"validated_by"` // Who/what performed validation
}
// ValidationIssue represents an issue found during validation
type ValidationIssue struct {
Severity string `json:"severity"` // error, warning, info
Message string `json:"message"` // Issue description
Field string `json:"field"` // Affected field
Suggestion string `json:"suggestion"` // How to fix
Severity string `json:"severity"` // error, warning, info
Message string `json:"message"` // Issue description
Field string `json:"field"` // Affected field
Suggestion string `json:"suggestion"` // How to fix
}
// ValidationSuggestion represents a suggestion for context improvement
@@ -378,24 +379,24 @@ type ValidationSuggestion struct {
// CostEstimate represents estimated resource cost for operations
type CostEstimate struct {
CPUCost float64 `json:"cpu_cost"` // Estimated CPU cost
MemoryCost float64 `json:"memory_cost"` // Estimated memory cost
StorageCost float64 `json:"storage_cost"` // Estimated storage cost
TimeCost time.Duration `json:"time_cost"` // Estimated time cost
TotalCost float64 `json:"total_cost"` // Total normalized cost
CPUCost float64 `json:"cpu_cost"` // Estimated CPU cost
MemoryCost float64 `json:"memory_cost"` // Estimated memory cost
StorageCost float64 `json:"storage_cost"` // Estimated storage cost
TimeCost time.Duration `json:"time_cost"` // Estimated time cost
TotalCost float64 `json:"total_cost"` // Total normalized cost
CostBreakdown map[string]float64 `json:"cost_breakdown"` // Detailed cost breakdown
}
// AnalysisResult represents the result of context analysis
type AnalysisResult struct {
QualityScore float64 `json:"quality_score"` // Overall quality (0-1)
ConsistencyScore float64 `json:"consistency_score"` // Consistency with hierarchy
CompletenessScore float64 `json:"completeness_score"` // Completeness assessment
AccuracyScore float64 `json:"accuracy_score"` // Accuracy assessment
Issues []*AnalysisIssue `json:"issues"` // Issues found
Strengths []string `json:"strengths"` // Context strengths
Improvements []*Suggestion `json:"improvements"` // Improvement suggestions
AnalyzedAt time.Time `json:"analyzed_at"` // When analysis occurred
QualityScore float64 `json:"quality_score"` // Overall quality (0-1)
ConsistencyScore float64 `json:"consistency_score"` // Consistency with hierarchy
CompletenessScore float64 `json:"completeness_score"` // Completeness assessment
AccuracyScore float64 `json:"accuracy_score"` // Accuracy assessment
Issues []*AnalysisIssue `json:"issues"` // Issues found
Strengths []string `json:"strengths"` // Context strengths
Improvements []*Suggestion `json:"improvements"` // Improvement suggestions
AnalyzedAt time.Time `json:"analyzed_at"` // When analysis occurred
}
// AnalysisIssue represents an issue found during analysis
@@ -418,86 +419,86 @@ type Suggestion struct {
// Pattern represents a detected context pattern
type Pattern struct {
ID string `json:"id"` // Pattern identifier
Name string `json:"name"` // Pattern name
Description string `json:"description"` // Pattern description
ID string `json:"id"` // Pattern identifier
Name string `json:"name"` // Pattern name
Description string `json:"description"` // Pattern description
MatchCriteria map[string]interface{} `json:"match_criteria"` // Criteria for matching
Confidence float64 `json:"confidence"` // Pattern confidence (0-1)
Frequency int `json:"frequency"` // How often pattern appears
Examples []string `json:"examples"` // Example contexts that match
CreatedAt time.Time `json:"created_at"` // When pattern was detected
Confidence float64 `json:"confidence"` // Pattern confidence (0-1)
Frequency int `json:"frequency"` // How often pattern appears
Examples []string `json:"examples"` // Example contexts that match
CreatedAt time.Time `json:"created_at"` // When pattern was detected
}
// PatternMatch represents a match between context and pattern
type PatternMatch struct {
PatternID string `json:"pattern_id"` // ID of matched pattern
MatchScore float64 `json:"match_score"` // How well it matches (0-1)
PatternID string `json:"pattern_id"` // ID of matched pattern
MatchScore float64 `json:"match_score"` // How well it matches (0-1)
MatchedFields []string `json:"matched_fields"` // Which fields matched
Confidence float64 `json:"confidence"` // Confidence in match
Confidence float64 `json:"confidence"` // Confidence in match
}
// ContextPattern represents a registered context pattern template
type ContextPattern struct {
ID string `json:"id"` // Pattern identifier
Name string `json:"name"` // Human-readable name
Description string `json:"description"` // Pattern description
Template *ContextNode `json:"template"` // Template for matching
Criteria map[string]interface{} `json:"criteria"` // Matching criteria
Priority int `json:"priority"` // Pattern priority
CreatedBy string `json:"created_by"` // Who created pattern
CreatedAt time.Time `json:"created_at"` // When created
UpdatedAt time.Time `json:"updated_at"` // When last updated
UsageCount int `json:"usage_count"` // How often used
ID string `json:"id"` // Pattern identifier
Name string `json:"name"` // Human-readable name
Description string `json:"description"` // Pattern description
Template *ContextNode `json:"template"` // Template for matching
Criteria map[string]interface{} `json:"criteria"` // Matching criteria
Priority int `json:"priority"` // Pattern priority
CreatedBy string `json:"created_by"` // Who created pattern
CreatedAt time.Time `json:"created_at"` // When created
UpdatedAt time.Time `json:"updated_at"` // When last updated
UsageCount int `json:"usage_count"` // How often used
}
// Inconsistency represents a detected inconsistency in the context hierarchy
type Inconsistency struct {
Type string `json:"type"` // Type of inconsistency
Description string `json:"description"` // Description of the issue
AffectedNodes []string `json:"affected_nodes"` // Nodes involved
Severity string `json:"severity"` // Severity level
Suggestion string `json:"suggestion"` // How to resolve
DetectedAt time.Time `json:"detected_at"` // When detected
Type string `json:"type"` // Type of inconsistency
Description string `json:"description"` // Description of the issue
AffectedNodes []string `json:"affected_nodes"` // Nodes involved
Severity string `json:"severity"` // Severity level
Suggestion string `json:"suggestion"` // How to resolve
DetectedAt time.Time `json:"detected_at"` // When detected
}
// SearchQuery represents a context search query
type SearchQuery struct {
// Query terms
Query string `json:"query"` // Main search query
Tags []string `json:"tags"` // Required tags
Technologies []string `json:"technologies"` // Required technologies
FileTypes []string `json:"file_types"` // File types to include
Query string `json:"query"` // Main search query
Tags []string `json:"tags"` // Required tags
Technologies []string `json:"technologies"` // Required technologies
FileTypes []string `json:"file_types"` // File types to include
// Filters
MinConfidence float64 `json:"min_confidence"` // Minimum confidence
MaxAge *time.Duration `json:"max_age"` // Maximum age
Roles []string `json:"roles"` // Required access roles
MinConfidence float64 `json:"min_confidence"` // Minimum confidence
MaxAge *time.Duration `json:"max_age"` // Maximum age
Roles []string `json:"roles"` // Required access roles
// Scope
Scope []string `json:"scope"` // Paths to search within
ExcludeScope []string `json:"exclude_scope"` // Paths to exclude
Scope []string `json:"scope"` // Paths to search within
ExcludeScope []string `json:"exclude_scope"` // Paths to exclude
// Result options
Limit int `json:"limit"` // Maximum results
Offset int `json:"offset"` // Result offset
SortBy string `json:"sort_by"` // Sort field
SortOrder string `json:"sort_order"` // asc, desc
Limit int `json:"limit"` // Maximum results
Offset int `json:"offset"` // Result offset
SortBy string `json:"sort_by"` // Sort field
SortOrder string `json:"sort_order"` // asc, desc
// Advanced options
FuzzyMatch bool `json:"fuzzy_match"` // Enable fuzzy matching
IncludeStale bool `json:"include_stale"` // Include stale contexts
FuzzyMatch bool `json:"fuzzy_match"` // Enable fuzzy matching
IncludeStale bool `json:"include_stale"` // Include stale contexts
TemporalFilter *TemporalFilter `json:"temporal_filter"` // Temporal filtering
}
// TemporalFilter represents temporal filtering options
type TemporalFilter struct {
FromTime *time.Time `json:"from_time"` // Start time
ToTime *time.Time `json:"to_time"` // End time
VersionRange *VersionRange `json:"version_range"` // Version range
ChangeReasons []ChangeReason `json:"change_reasons"` // Specific change reasons
DecisionMakers []string `json:"decision_makers"` // Specific decision makers
MinDecisionHops int `json:"min_decision_hops"` // Minimum decision hops
MaxDecisionHops int `json:"max_decision_hops"` // Maximum decision hops
FromTime *time.Time `json:"from_time"` // Start time
ToTime *time.Time `json:"to_time"` // End time
VersionRange *VersionRange `json:"version_range"` // Version range
ChangeReasons []ChangeReason `json:"change_reasons"` // Specific change reasons
DecisionMakers []string `json:"decision_makers"` // Specific decision makers
MinDecisionHops int `json:"min_decision_hops"` // Minimum decision hops
MaxDecisionHops int `json:"max_decision_hops"` // Maximum decision hops
}
// VersionRange represents a range of versions
@@ -509,58 +510,58 @@ type VersionRange struct {
// SearchResult represents a single search result
type SearchResult struct {
Context *ResolvedContext `json:"context"` // Resolved context
TemporalNode *TemporalNode `json:"temporal_node"` // Associated temporal node
MatchScore float64 `json:"match_score"` // How well it matches query (0-1)
MatchedFields []string `json:"matched_fields"` // Which fields matched
Snippet string `json:"snippet"` // Text snippet showing match
Rank int `json:"rank"` // Result rank
TemporalNode *TemporalNode `json:"temporal_node"` // Associated temporal node
MatchScore float64 `json:"match_score"` // How well it matches query (0-1)
MatchedFields []string `json:"matched_fields"` // Which fields matched
Snippet string `json:"snippet"` // Text snippet showing match
Rank int `json:"rank"` // Result rank
}
// IndexMetadata represents metadata for context indexing
type IndexMetadata struct {
IndexType string `json:"index_type"` // Type of index
IndexedFields []string `json:"indexed_fields"` // Fields that are indexed
IndexedAt time.Time `json:"indexed_at"` // When indexed
IndexVersion string `json:"index_version"` // Index version
Metadata map[string]interface{} `json:"metadata"` // Additional metadata
IndexType string `json:"index_type"` // Type of index
IndexedFields []string `json:"indexed_fields"` // Fields that are indexed
IndexedAt time.Time `json:"indexed_at"` // When indexed
IndexVersion string `json:"index_version"` // Index version
Metadata map[string]interface{} `json:"metadata"` // Additional metadata
}
// DecisionAnalysis represents analysis of decision patterns
type DecisionAnalysis struct {
TotalDecisions int `json:"total_decisions"` // Total decisions analyzed
DecisionMakers map[string]int `json:"decision_makers"` // Decision maker frequency
ChangeReasons map[ChangeReason]int `json:"change_reasons"` // Change reason frequency
ImpactScopes map[ImpactScope]int `json:"impact_scopes"` // Impact scope distribution
ConfidenceTrends map[string]float64 `json:"confidence_trends"` // Confidence trends over time
DecisionFrequency map[string]int `json:"decision_frequency"` // Decisions per time period
InfluenceNetworkStats *InfluenceNetworkStats `json:"influence_network_stats"` // Network statistics
Patterns []*DecisionPattern `json:"patterns"` // Detected decision patterns
AnalyzedAt time.Time `json:"analyzed_at"` // When analysis was performed
AnalysisTimeSpan time.Duration `json:"analysis_time_span"` // Time span analyzed
TotalDecisions int `json:"total_decisions"` // Total decisions analyzed
DecisionMakers map[string]int `json:"decision_makers"` // Decision maker frequency
ChangeReasons map[ChangeReason]int `json:"change_reasons"` // Change reason frequency
ImpactScopes map[ImpactScope]int `json:"impact_scopes"` // Impact scope distribution
ConfidenceTrends map[string]float64 `json:"confidence_trends"` // Confidence trends over time
DecisionFrequency map[string]int `json:"decision_frequency"` // Decisions per time period
InfluenceNetworkStats *InfluenceNetworkStats `json:"influence_network_stats"` // Network statistics
Patterns []*DecisionPattern `json:"patterns"` // Detected decision patterns
AnalyzedAt time.Time `json:"analyzed_at"` // When analysis was performed
AnalysisTimeSpan time.Duration `json:"analysis_time_span"` // Time span analyzed
}
// InfluenceNetworkStats represents statistics about the influence network
type InfluenceNetworkStats struct {
TotalNodes int `json:"total_nodes"` // Total nodes in network
TotalEdges int `json:"total_edges"` // Total influence relationships
AverageConnections float64 `json:"average_connections"` // Average connections per node
MaxConnections int `json:"max_connections"` // Maximum connections for any node
NetworkDensity float64 `json:"network_density"` // Network density (0-1)
ClusteringCoeff float64 `json:"clustering_coeff"` // Clustering coefficient
MaxPathLength int `json:"max_path_length"` // Maximum path length in network
CentralNodes []string `json:"central_nodes"` // Most central nodes
TotalNodes int `json:"total_nodes"` // Total nodes in network
TotalEdges int `json:"total_edges"` // Total influence relationships
AverageConnections float64 `json:"average_connections"` // Average connections per node
MaxConnections int `json:"max_connections"` // Maximum connections for any node
NetworkDensity float64 `json:"network_density"` // Network density (0-1)
ClusteringCoeff float64 `json:"clustering_coeff"` // Clustering coefficient
MaxPathLength int `json:"max_path_length"` // Maximum path length in network
CentralNodes []string `json:"central_nodes"` // Most central nodes
}
// DecisionPattern represents a detected pattern in decision-making
type DecisionPattern struct {
ID string `json:"id"` // Pattern identifier
Name string `json:"name"` // Pattern name
Description string `json:"description"` // Pattern description
Frequency int `json:"frequency"` // How often this pattern occurs
Confidence float64 `json:"confidence"` // Confidence in pattern (0-1)
ExampleDecisions []string `json:"example_decisions"` // Example decisions that match
Characteristics map[string]interface{} `json:"characteristics"` // Pattern characteristics
DetectedAt time.Time `json:"detected_at"` // When pattern was detected
ID string `json:"id"` // Pattern identifier
Name string `json:"name"` // Pattern name
Description string `json:"description"` // Pattern description
Frequency int `json:"frequency"` // How often this pattern occurs
Confidence float64 `json:"confidence"` // Confidence in pattern (0-1)
ExampleDecisions []string `json:"example_decisions"` // Example decisions that match
Characteristics map[string]interface{} `json:"characteristics"` // Pattern characteristics
DetectedAt time.Time `json:"detected_at"` // When pattern was detected
}
// ResolverStatistics represents statistics about context resolution operations
@@ -577,4 +578,4 @@ type ResolverStatistics struct {
MaxCacheSize int64 `json:"max_cache_size"` // Maximum cache size
CacheEvictions int64 `json:"cache_evictions"` // Number of cache evictions
LastResetAt time.Time `json:"last_reset_at"` // When statistics were last reset
}
}