diff --git a/internal/ai/context/formatter.go b/internal/ai/context/formatter.go index d2da8ca..f4b9021 100644 --- a/internal/ai/context/formatter.go +++ b/internal/ai/context/formatter.go @@ -63,7 +63,7 @@ func FormatResourceContext(ctx ResourceContext) string { // Anomalies (high value - what's unusual) if len(ctx.Anomalies) > 0 { - sb.WriteString("**⚠️ Anomalies**: ") + sb.WriteString("**ANOMALIES**: ") var anomalyDescs []string for _, a := range ctx.Anomalies { anomalyDescs = append(anomalyDescs, a.Description) @@ -74,7 +74,7 @@ func FormatResourceContext(ctx ResourceContext) string { // Predictions (proactive value) if len(ctx.Predictions) > 0 { - sb.WriteString("**⏰ Predictions**: ") + sb.WriteString("**Predictions**: ") var predDescs []string for _, p := range ctx.Predictions { predDescs = append(predDescs, fmt.Sprintf("%s in ~%.0f days", p.Event, p.DaysUntil)) @@ -118,14 +118,14 @@ func formatTrendLine(metric string, trend Trend) string { switch trend.Direction { case TrendGrowing: rate := formatRate(trend.RatePerDay) - directionStr = fmt.Sprintf("↑ %s", rate) + directionStr = fmt.Sprintf("(rising %s)", rate) case TrendDeclining: rate := formatRate(-trend.RatePerDay) // Make positive for display - directionStr = fmt.Sprintf("↓ %s", rate) + directionStr = fmt.Sprintf("(falling %s)", rate) case TrendVolatile: - directionStr = "⚡ volatile" + directionStr = "(volatile)" case TrendStable: - directionStr = "→ stable" + directionStr = "(stable)" default: return "" } @@ -168,7 +168,7 @@ func FormatInfrastructureContext(ctx *InfrastructureContext) string { // Global anomalies first (high priority) if len(ctx.Anomalies) > 0 { - sb.WriteString("## ⚠️ Current Anomalies\n") + sb.WriteString("## Current Anomalies\n") for _, a := range ctx.Anomalies { sb.WriteString(fmt.Sprintf("- **%s**: %s\n", a.Metric, a.Description)) } @@ -177,7 +177,7 @@ func FormatInfrastructureContext(ctx *InfrastructureContext) string { // Predictions (proactive insights) if len(ctx.Predictions) > 0 { - sb.WriteString("## ⏰ Predictions\n") + sb.WriteString("## Predictions\n") for _, p := range ctx.Predictions { sb.WriteString(fmt.Sprintf("- **%s** on %s: %s (%.0f days, %.0f%% confidence)\n", p.Event, p.ResourceID, p.Basis, p.DaysUntil, p.Confidence*100)) @@ -187,7 +187,7 @@ func FormatInfrastructureContext(ctx *InfrastructureContext) string { // Recent changes (what's different) if len(ctx.Changes) > 0 { - sb.WriteString("## 🔄 Recent Changes\n") + sb.WriteString("## Recent Changes\n") for _, c := range ctx.Changes { sb.WriteString(fmt.Sprintf("- %s: %s\n", c.ResourceName, c.Description)) } @@ -287,7 +287,7 @@ func FormatCompactSummary(ctx *InfrastructureContext) string { earliest = p } } - sb.WriteString(fmt.Sprintf("⏰ Nearest: %s in %.0f days\n", earliest.Event, earliest.DaysUntil)) + sb.WriteString(fmt.Sprintf("Nearest prediction: %s in %.0f days\n", earliest.Event, earliest.DaysUntil)) } return sb.String() diff --git a/internal/ai/correlation/detector.go b/internal/ai/correlation/detector.go index f722b20..a9524cf 100644 --- a/internal/ai/correlation/detector.go +++ b/internal/ai/correlation/detector.go @@ -367,7 +367,7 @@ func (d *Detector) FormatForContext(resourceID string) string { } var result string - result = "\n## 🔗 Resource Correlations\n" + result = "\n## Resource Correlations\n" result += "Observed relationships between resources:\n" for i, c := range correlations { diff --git a/internal/ai/patrol.go b/internal/ai/patrol.go index 309c6aa..a0f22da 100644 --- a/internal/ai/patrol.go +++ b/internal/ai/patrol.go @@ -2053,9 +2053,9 @@ func (p *PatrolService) buildPatrolPrompt(summary string) string { %s Analyze the above and report any findings using the structured format. Focus on: -- Resources showing high utilization or concerning trends (look for ↑ growing indicators) -- Predictions showing resources approaching capacity (look for ⏰ predictions) -- Anomalies flagged as unusual (look for ⚠️ anomalies) +- Resources showing high utilization or concerning trends (look for "rising" indicators) +- Predictions showing resources approaching capacity +- Anomalies flagged as unusual in the "ANOMALIES" section - Patterns that might indicate problems over time (compare 24h vs 7d trends) - Missing backups or stale backup schedules - Unbalanced resource distribution diff --git a/internal/ai/service.go b/internal/ai/service.go index 6eba297..5fb5138 100644 --- a/internal/ai/service.go +++ b/internal/ai/service.go @@ -1877,7 +1877,7 @@ func (s *Service) executeTool(ctx context.Context, req ExecuteRequest, tc provid return execution.Output, execution } - execution.Output = fmt.Sprintf("✅ Successfully set URL for %s '%s' to: %s\nThe URL is now visible in the Pulse dashboard as a clickable link.", resourceType, resourceID, url) + execution.Output = fmt.Sprintf("Successfully set URL for %s '%s' to: %s\nThe URL is now visible in the Pulse dashboard as a clickable link.", resourceType, resourceID, url) execution.Success = true return execution.Output, execution @@ -1918,7 +1918,7 @@ func (s *Service) executeTool(ctx context.Context, req ExecuteRequest, tc provid return execution.Output, execution } - execution.Output = fmt.Sprintf("✅ Finding resolved! The AI Insight has been marked as fixed.\nID: %s\nResolution: %s", findingID, resolutionNote) + execution.Output = fmt.Sprintf("Finding resolved! The AI Insight has been marked as fixed.\nID: %s\nResolution: %s", findingID, resolutionNote) execution.Success = true return execution.Output, execution