summaryrefslogtreecommitdiff
path: root/Omni
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-12-01 20:28:27 -0500
committerBen Sima <ben@bensima.com>2025-12-01 20:28:27 -0500
commit8d8dec801bf959d6e4bf1ba3fbc5af5b242f96d9 (patch)
tree41a41dfbcc83325c3fd5ede4dc67396f525d8592 /Omni
parent11ee0b44397ff5f58a11a105883c07a39d49bfa3 (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.hs2
-rw-r--r--Omni/Jr/Web.hs5
-rw-r--r--Omni/Jr/Web/Components.hs28
-rw-r--r--Omni/Jr/Web/Handlers.hs6
-rw-r--r--Omni/Jr/Web/Pages.hs13
-rw-r--r--Omni/Jr/Web/Partials.hs1
-rw-r--r--Omni/Jr/Web/Types.hs19
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 =