diff options
Diffstat (limited to 'Omni/Ava')
| -rw-r--r-- | Omni/Ava/Trace.hs | 20 | ||||
| -rw-r--r-- | Omni/Ava/Web.hs | 5 |
2 files changed, 25 insertions, 0 deletions
diff --git a/Omni/Ava/Trace.hs b/Omni/Ava/Trace.hs index 6dbdf51..d648da1 100644 --- a/Omni/Ava/Trace.hs +++ b/Omni/Ava/Trace.hs @@ -12,6 +12,7 @@ -- : dep uuid module Omni.Ava.Trace ( TraceRecord (..), + initTraceDb, insertTrace, getTrace, cleanupOldTraces, @@ -30,6 +31,25 @@ import qualified Database.SQLite.Simple as SQL import qualified Database.SQLite.Simple.ToField as SQL import qualified Omni.Test as Test +-- | Initialize the tool_traces table if it doesn't exist. +initTraceDb :: SQL.Connection -> IO () +initTraceDb conn = do + SQL.execute_ + conn + "CREATE TABLE IF NOT EXISTS tool_traces (\ + \ id TEXT PRIMARY KEY,\ + \ created_at TEXT NOT NULL,\ + \ tool_name TEXT NOT NULL,\ + \ input TEXT NOT NULL,\ + \ output TEXT NOT NULL,\ + \ duration_ms INTEGER NOT NULL,\ + \ user_id TEXT,\ + \ chat_id TEXT\ + \)" + SQL.execute_ + conn + "CREATE INDEX IF NOT EXISTS idx_traces_created ON tool_traces(created_at)" + main :: IO () main = Test.run test diff --git a/Omni/Ava/Web.hs b/Omni/Ava/Web.hs index 86a8280..4d4ece6 100644 --- a/Omni/Ava/Web.hs +++ b/Omni/Ava/Web.hs @@ -17,6 +17,7 @@ module Omni.Ava.Web ( startWebServer, app, defaultPort, + main, ) where @@ -33,12 +34,16 @@ import qualified Network.Wai.Handler.Warp as Warp import qualified Omni.Ava.Trace as Trace import qualified System.Environment as Environment +main :: IO () +main = putText "Use Omni.Ava for the main entry point" + defaultPort :: Int defaultPort = 8079 startWebServer :: Int -> FilePath -> IO () startWebServer port dbPath = do putText <| "Starting Ava web server on port " <> tshow port + SQL.withConnection dbPath Trace.initTraceDb Warp.run port (app dbPath) app :: FilePath -> Wai.Application |
