diff options
| author | Ben Sima <ben@bensima.com> | 2025-12-01 20:28:27 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-12-01 20:28:27 -0500 |
| commit | 8d8dec801bf959d6e4bf1ba3fbc5af5b242f96d9 (patch) | |
| tree | 41a41dfbcc83325c3fd5ede4dc67396f525d8592 /Omni | |
| parent | 11ee0b44397ff5f58a11a105883c07a39d49bfa3 (diff) | |
Fix build errors in Jr modules
- Fix Worker.hs to use EngineError instead of tuple
- Fix Types.hs imports for LazyText.encodeUtf8 and dayOfWeek
- Remove duplicate SortOrder from Components.hs (import from Types.hs)
- Add orphan instance pragmas to Pages.hs and Partials.hs
- Clean up unused imports
Diffstat (limited to 'Omni')
| -rw-r--r-- | Omni/Agent/Worker.hs | 2 | ||||
| -rw-r--r-- | Omni/Jr/Web.hs | 5 | ||||
| -rw-r--r-- | Omni/Jr/Web/Components.hs | 28 | ||||
| -rw-r--r-- | Omni/Jr/Web/Handlers.hs | 6 | ||||
| -rw-r--r-- | Omni/Jr/Web/Pages.hs | 13 | ||||
| -rw-r--r-- | Omni/Jr/Web/Partials.hs | 1 | ||||
| -rw-r--r-- | Omni/Jr/Web/Types.hs | 19 |
7 files changed, 27 insertions, 47 deletions
diff --git a/Omni/Agent/Worker.hs b/Omni/Agent/Worker.hs index a8bbfc9..07293c5 100644 --- a/Omni/Agent/Worker.hs +++ b/Omni/Agent/Worker.hs @@ -236,7 +236,7 @@ runWithEngine worker repo task = do -- Read API key from environment maybeApiKey <- Env.lookupEnv "OPENROUTER_API_KEY" case maybeApiKey of - Nothing -> pure (Exit.ExitFailure 1, "OPENROUTER_API_KEY not set", 0) + Nothing -> pure (EngineError "OPENROUTER_API_KEY not set" 0) Just apiKey -> do -- Check for retry context maybeRetry <- TaskCore.getRetryContext (TaskCore.taskId task) diff --git a/Omni/Jr/Web.hs b/Omni/Jr/Web.hs index 761428e..bb28e93 100644 --- a/Omni/Jr/Web.hs +++ b/Omni/Jr/Web.hs @@ -26,8 +26,9 @@ where import Alpha import qualified Network.Wai.Handler.Warp as Warp -import Omni.Jr.Web.Handlers (api, server) -import Omni.Jr.Web.Types (API) +import Omni.Jr.Web.Handlers (API, api, server) +import Omni.Jr.Web.Pages () +import Omni.Jr.Web.Partials () import Servant (serve) defaultPort :: Warp.Port diff --git a/Omni/Jr/Web/Components.hs b/Omni/Jr/Web/Components.hs index 9c32cf2..f1a8168 100644 --- a/Omni/Jr/Web/Components.hs +++ b/Omni/Jr/Web/Components.hs @@ -46,9 +46,6 @@ module Omni.Jr.Web.Components priorityOption, -- * Sorting - SortOrder (..), - sortOrderToParam, - sortOrderLabel, sortDropdown, sortOption, @@ -130,6 +127,7 @@ import Data.Time (NominalDiffTime, UTCTime, defaultTimeLocale, diffUTCTime, form import qualified Lucid import qualified Lucid.Base as Lucid import Numeric (showFFloat) +import Omni.Jr.Web.Types (SortOrder (..), sortOrderLabel, sortOrderToParam) import qualified Omni.Task.Core as TaskCore -- * Time formatting @@ -169,30 +167,6 @@ renderRelativeTimestamp now timestamp = metaSep :: (Monad m) => Lucid.HtmlT m () metaSep = Lucid.span_ [Lucid.class_ "meta-sep"] "ยท" --- * Sort types - -data SortOrder - = SortNewest - | SortOldest - | SortUpdated - | SortPriorityHigh - | SortPriorityLow - deriving (Show, Eq) - -sortOrderToParam :: SortOrder -> Text -sortOrderToParam SortNewest = "newest" -sortOrderToParam SortOldest = "oldest" -sortOrderToParam SortUpdated = "updated" -sortOrderToParam SortPriorityHigh = "priority-high" -sortOrderToParam SortPriorityLow = "priority-low" - -sortOrderLabel :: SortOrder -> Text -sortOrderLabel SortNewest = "Newest First" -sortOrderLabel SortOldest = "Oldest First" -sortOrderLabel SortUpdated = "Recently Updated" -sortOrderLabel SortPriorityHigh = "Priority (High to Low)" -sortOrderLabel SortPriorityLow = "Priority (Low to High)" - -- * Page layout pageHead :: (Monad m) => Text -> Lucid.HtmlT m () diff --git a/Omni/Jr/Web/Handlers.hs b/Omni/Jr/Web/Handlers.hs index da8a2e6..5b542dd 100644 --- a/Omni/Jr/Web/Handlers.hs +++ b/Omni/Jr/Web/Handlers.hs @@ -10,7 +10,8 @@ -- : dep process -- : dep aeson module Omni.Jr.Web.Handlers - ( server, + ( API, + server, api, streamAgentEvents, ) @@ -19,11 +20,10 @@ where import Alpha import qualified Control.Concurrent as Concurrent import qualified Data.Aeson as Aeson -import qualified Data.ByteString.Lazy as LBS import qualified Data.List as List import qualified Data.Text as Text import qualified Data.Text.Lazy as LazyText -import Data.Time (UTCTime, getCurrentTime) +import Data.Time (getCurrentTime) import Data.Time.Clock.POSIX (posixSecondsToUTCTime, utcTimeToPOSIXSeconds) import qualified Omni.Fact as Fact import qualified Omni.Jr.Web.Style as Style diff --git a/Omni/Jr/Web/Pages.hs b/Omni/Jr/Web/Pages.hs index 8e335ea..2fbbc00 100644 --- a/Omni/Jr/Web/Pages.hs +++ b/Omni/Jr/Web/Pages.hs @@ -1,5 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE NoImplicitPrelude #-} +{-# OPTIONS_GHC -Wno-orphans #-} -- : dep lucid -- : dep servant-lucid @@ -10,18 +11,14 @@ module Omni.Jr.Web.Pages where import Alpha -import Data.List (init) import qualified Data.Text as Text -import Data.Time (UTCTime) +import Data.Time (utctDayTime) import qualified Lucid import qualified Lucid.Base as Lucid import Numeric (showFFloat) import Omni.Jr.Web.Components ( Breadcrumb (..), - SortOrder (..), complexityBadge, - epicProgressBar, - getDescendants, metaSep, multiColorProgressBar, pageBody, @@ -38,11 +35,11 @@ import Omni.Jr.Web.Components renderTaskCard, renderUnifiedTimeline, sortDropdown, - sortOrderToParam, statusBadge, statusBadgeWithForm, taskBreadcrumbs, ) +import Omni.Jr.Web.Partials () import Omni.Jr.Web.Types ( BlockedPage (..), DescriptionViewPartial (..), @@ -54,6 +51,7 @@ import Omni.Jr.Web.Types KBPage (..), ReadyQueuePage (..), ReviewInfo (..), + SortOrder (..), StatsPage (..), TaskDetailPage (..), TaskDiffPage (..), @@ -64,6 +62,7 @@ import Omni.Jr.Web.Types filterNamespace, filterPriority, filterStatus, + sortOrderToParam, sortTasks, timeRangeToParam, ) @@ -72,7 +71,7 @@ import qualified Omni.Task.Core as TaskCore taskToUnixTs :: TaskCore.Task -> Int taskToUnixTs t = let ts = TaskCore.taskUpdatedAt t - in floor (realToFrac (Data.Time.utctDayTime ts) :: Double) + in floor (realToFrac (utctDayTime ts) :: Double) instance Lucid.ToHtml HomePage where toHtmlRaw = Lucid.toHtml diff --git a/Omni/Jr/Web/Partials.hs b/Omni/Jr/Web/Partials.hs index 9c0e870..25a4d1e 100644 --- a/Omni/Jr/Web/Partials.hs +++ b/Omni/Jr/Web/Partials.hs @@ -1,5 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE NoImplicitPrelude #-} +{-# OPTIONS_GHC -Wno-orphans #-} -- : dep lucid -- : dep servant-lucid diff --git a/Omni/Jr/Web/Types.hs b/Omni/Jr/Web/Types.hs index 025f3a6..85ea0f0 100644 --- a/Omni/Jr/Web/Types.hs +++ b/Omni/Jr/Web/Types.hs @@ -69,10 +69,8 @@ import qualified Data.ByteString.Lazy as LBS import qualified Data.List as List import qualified Data.Text as Text import qualified Data.Text.Lazy as LazyText -import Data.Time (Day, UTCTime (..), diffUTCTime, toGregorian) -import Data.Time.Calendar (DayOfWeek (..)) -import Data.Time.Calendar.WeekDate (toWeekCalendar) -import qualified Lucid +import qualified Data.Text.Lazy.Encoding as LazyText +import Data.Time (Day, DayOfWeek (..), UTCTime (..), dayOfWeek, diffUTCTime, toGregorian) import qualified Omni.Task.Core as TaskCore import Servant (Accept (..), MimeRender (..)) import Web.FormUrlEncoded (FromForm (..), lookupUnique, parseUnique) @@ -148,9 +146,16 @@ startOfDay t = UTCTime (utctDay t) 0 startOfWeek :: UTCTime -> UTCTime startOfWeek t = let day = utctDay t - (_, _, dow) = toWeekCalendar day - daysBack = dow - 1 - in UTCTime (addDays (negate (toInteger daysBack)) day) 0 + dow = dayOfWeek day + daysBack = case dow of + Monday -> 0 + Tuesday -> 1 + Wednesday -> 2 + Thursday -> 3 + Friday -> 4 + Saturday -> 5 + Sunday -> 6 + in UTCTime (addDays (negate daysBack) day) 0 addDays :: Integer -> Day -> Day addDays n d = |
