package main import ( "context" "log" "eino-test/config" "eino-test/internal/agent" "eino-test/internal/api" "eino-test/internal/embedding" "eino-test/internal/index" "eino-test/internal/rag" "eino-test/internal/store" ) func main() { cfg := config.Load() ctx := context.Background() noteStore := store.NewMemoryNoteStore() embedder, err := embedding.NewEmbedder(ctx, cfg.OpenAIAPIKey, cfg.OpenAIBaseURL, cfg.OpenAIEmbedModel) if err != nil { log.Fatalf("Failed to create embedder: %v", err) } vectorIdx := index.NewInMemoryVectorIndex() pipeline := rag.NewRAGPipeline(noteStore, embedder, vectorIdx) if err := pipeline.IndexAllFromDir(ctx, cfg.DataDir); err != nil { log.Printf("Warning: failed to index notes: %v", err) } supervisorAgent, err := agent.NewSupervisorAgent(ctx, cfg, pipeline) if err != nil { log.Fatalf("Failed to create supervisor agent: %v", err) } router := api.NewRouter(cfg, pipeline, supervisorAgent) log.Printf("Server starting on port %s", cfg.Port) if err := router.Run(":" + cfg.Port); err != nil { log.Fatalf("Failed to start server: %v", err) } }