From 8690ad0626b6a859e5311d6c955c04622ff83795 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Fri, 28 Nov 2025 03:39:48 -0500 Subject: Fix llm tool installation - update nixpkgs hash in Biz/Bild.nix The build passed. The task was to update nixpkgs hash in Biz/Bild.nix, b Task-Id: t-163 --- Omni/Task/Core.hs | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'Omni/Task') diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs index c469bf8..6d69834 100644 --- a/Omni/Task/Core.hs +++ b/Omni/Task/Core.hs @@ -13,7 +13,7 @@ import qualified Data.ByteString.Lazy.Char8 as BLC import qualified Data.List as List import qualified Data.Text as T import qualified Data.Text.IO as TIO -import Data.Time (UTCTime, getCurrentTime) +import Data.Time (UTCTime, diffUTCTime, getCurrentTime) import qualified Database.SQLite.Simple as SQL import qualified Database.SQLite.Simple.FromField as SQL import qualified Database.SQLite.Simple.Ok as SQLOk @@ -72,6 +72,14 @@ data TaskProgress = TaskProgress } deriving (Show, Eq, Generic) +data AggregatedMetrics = AggregatedMetrics + { aggTotalCostCents :: Int, + aggTotalDurationSeconds :: Int, + aggCompletedTasks :: Int, + aggTotalTokens :: Int + } + deriving (Show, Eq, Generic) + -- Retry context for tasks that failed due to merge conflicts data RetryContext = RetryContext { retryTaskId :: Text, @@ -143,6 +151,10 @@ instance ToJSON TaskProgress instance FromJSON TaskProgress +instance ToJSON AggregatedMetrics + +instance FromJSON AggregatedMetrics + instance ToJSON RetryContext instance FromJSON RetryContext @@ -1233,6 +1245,29 @@ getLatestRunningActivity tid = do activities <- getActivitiesForTask tid pure <| List.find (\a -> activityStage a == Running) activities +-- | Get aggregated metrics for all descendants of an epic +getAggregatedMetrics :: Text -> IO AggregatedMetrics +getAggregatedMetrics epicId = do + allTasks <- loadTasks + let descendants = getAllDescendants allTasks epicId + descendantIds = map taskId descendants + completedCount = length [t | t <- descendants, taskStatus t == Done] + activities <- concat floor (diffUTCTime end start) + _ -> 0 + -- | Get tasks with unmet blocking dependencies (not ready, not done) getBlockedTasks :: IO [Task] getBlockedTasks = do -- cgit v1.2.3