summaryrefslogtreecommitdiff
path: root/Omni/Ava/Trace.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Omni/Ava/Trace.hs')
-rw-r--r--Omni/Ava/Trace.hs20
1 files changed, 20 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