package main import ( "context" "log" "os" "os/signal" "runtime" "syscall" "stream.api/internal/workflow/agent" ) func main() { serverAddr := os.Getenv("AGENT_SERVER") if serverAddr == "" { serverAddr = "localhost:9000" } secret := os.Getenv("APP_INTERNAL_MARKER") if secret == "" { secret = os.Getenv("INTERNAL_MARKER") } if secret == "" { log.Fatal("APP_INTERNAL_MARKER environment variable is required") } capacity := runtime.NumCPU() log.Printf("Starting stream.api agent") log.Printf("Server: %s", serverAddr) log.Printf("Capacity: %d", capacity) a, err := agent.New(serverAddr, secret, capacity) if err != nil { log.Fatalf("Failed to initialize agent: %v", err) } ctx, cancel := context.WithCancel(context.Background()) defer cancel() sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM) go func() { <-sigCh log.Println("Shutting down agent...") cancel() }() if err := a.Run(ctx); err != nil { log.Fatalf("Agent error: %v", err) } }