defmodule SuperintelligenceWeb.Router do use SuperintelligenceWeb, :router pipeline :browser do plug :accepts, ["html"] plug :fetch_session plug :fetch_live_flash plug :put_root_layout, html: {SuperintelligenceWeb.Layouts, :root} plug :protect_from_forgery plug :put_secure_browser_headers end pipeline :api do plug :accepts, ["json"] end scope "/", SuperintelligenceWeb do pipe_through :browser get "/", PageController, :home get "/startup", StartupController, :show live "/tree", TreeLive.Index, :index live "/dashboard", DashboardLive, :index live "/chat", ChatLive, :index live "/chat/:id", ChatLive, :show end # API routes for AI Agent control scope "/api/v1", SuperintelligenceWeb do pipe_through :api # Agent management resources "/agents", AgentController, only: [:index, :show, :create, :delete] post "/agents/:id/actions", AgentController, :execute_action get "/agents/:id/status", AgentController, :status # Task management post "/tasks", AgentController, :execute_task get "/tasks", AgentController, :tasks get "/tasks/:task_id", AgentController, :task_status # Tool management get "/tools", AgentController, :tools post "/tools", AgentController, :create_tool post "/tools/execute", AgentController, :execute_tool # Chat management resources "/conversations", ChatController, only: [:index, :show, :create] post "/conversations/:conversation_id/messages", ChatController, :send_message post "/visualizations", ChatController, :generate_visualization end # Enable LiveDashboard and Swoosh mailbox preview in development if Application.compile_env(:superintelligence, :dev_routes) do # If you want to use the LiveDashboard in production, you should put # it behind authentication and allow only admins to access it. # If your application does not have an admins-only section yet, # you can use Plug.BasicAuth to set up some basic authentication # as long as you are also using SSL (which you should anyway). import Phoenix.LiveDashboard.Router scope "/dev" do pipe_through :browser live_dashboard "/dashboard", metrics: SuperintelligenceWeb.Telemetry forward "/mailbox", Plug.Swoosh.MailboxPreview end end end