Update logging

Change-Id: I13279582aa717edad5d56323866b941db1919404
diff --git a/server/agent/example.go b/server/agent/example.go
index 1233bdc..a7faea9 100644
--- a/server/agent/example.go
+++ b/server/agent/example.go
@@ -2,7 +2,8 @@
 
 import (
 	"context"
-	"log"
+	"log/slog"
+	"os"
 	"time"
 
 	"github.com/iomodo/staff/git"
@@ -13,11 +14,14 @@
 
 // ExampleAgent demonstrates how to create and run an agent
 func ExampleAgent() {
+	// Create logger
+	logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}))
+
 	// Create git interface for task management
 	gitInterface := git.DefaultGit("./tasks-repo")
 
 	// Create task manager
-	taskManager := git_tm.NewGitTaskManager(gitInterface, "./tasks-repo")
+	taskManager := git_tm.NewGitTaskManagerWithLogger(gitInterface, "./tasks-repo", logger)
 
 	// Create LLM configuration
 	llmConfig := llm.Config{
@@ -57,9 +61,10 @@
 	}
 
 	// Create agent
-	agent, err := NewAgent(config)
+	agent, err := NewAgent(config, logger)
 	if err != nil {
-		log.Fatalf("Failed to create agent: %v", err)
+		logger.Error("Failed to create agent", slog.String("error", err.Error()))
+		os.Exit(1)
 	}
 
 	// Create a sample task
@@ -71,15 +76,16 @@
 		Priority:    tm.PriorityHigh,
 	})
 	if err != nil {
-		log.Fatalf("Failed to create task: %v", err)
+		logger.Error("Failed to create task", slog.String("error", err.Error()))
+		os.Exit(1)
 	}
 
-	log.Printf("Created task: %s", task.ID)
+	logger.Info("Created task", slog.String("id", task.ID))
 
 	// Run the agent (this will process tasks in an infinite loop)
 	go func() {
 		if err := agent.Run(); err != nil {
-			log.Printf("Agent stopped with error: %v", err)
+			logger.Error("Agent stopped with error", slog.String("error", err.Error()))
 		}
 	}()
 
@@ -92,9 +98,12 @@
 
 // ExampleMultipleAgents demonstrates how to create multiple agents with different roles
 func ExampleMultipleAgents() {
+	// Create logger
+	logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}))
+
 	// Create shared git interface for task management
 	gitInterface := git.DefaultGit("./tasks-repo")
-	taskManager := git_tm.NewGitTaskManager(gitInterface, "./tasks-repo")
+	taskManager := git_tm.NewGitTaskManagerWithLogger(gitInterface, "./tasks-repo", logger)
 
 	// Create agents with different roles
 	agents := []AgentConfig{
@@ -177,16 +186,16 @@
 
 	// Create and start all agents
 	for _, config := range agents {
-		agent, err := NewAgent(config)
+		agent, err := NewAgent(config, logger)
 		if err != nil {
-			log.Printf("Failed to create agent %s: %v", config.Name, err)
+			logger.Error("Failed to create agent", slog.String("name", config.Name), slog.String("error", err.Error()))
 			continue
 		}
 
 		go func(agent *Agent, name string) {
-			log.Printf("Starting agent: %s", name)
+			logger.Info("Starting agent", slog.String("name", name))
 			if err := agent.Run(); err != nil {
-				log.Printf("Agent %s stopped with error: %v", name, err)
+				logger.Error("Agent stopped with error", slog.String("name", name), slog.String("error", err.Error()))
 			}
 		}(agent, config.Name)
 	}