never executed always true always false
    1 module PureClaw.Agent.Context
    2   ( -- * Context type (constructor intentionally NOT exported)
    3     Context
    4     -- * Construction
    5   , emptyContext
    6     -- * Operations
    7   , addMessage
    8   , contextMessages
    9   , contextSystemPrompt
   10   ) where
   11 
   12 import Data.Text (Text)
   13 
   14 import PureClaw.Providers.Class
   15 
   16 -- | Conversation context. Maintains message history and an optional
   17 -- system prompt. Constructor is not exported — use 'emptyContext'.
   18 data Context = Context
   19   { _ctx_systemPrompt :: Maybe Text
   20   , _ctx_messages     :: [Message]  -- oldest first
   21   }
   22   deriving stock (Show, Eq)
   23 
   24 -- | Create an empty context with an optional system prompt.
   25 emptyContext :: Maybe Text -> Context
   26 emptyContext sys = Context sys []
   27 
   28 -- | Append a message to the conversation history.
   29 addMessage :: Message -> Context -> Context
   30 addMessage msg ctx = ctx { _ctx_messages = _ctx_messages ctx ++ [msg] }
   31 
   32 -- | Get all messages in chronological order.
   33 contextMessages :: Context -> [Message]
   34 contextMessages = _ctx_messages
   35 
   36 -- | Get the system prompt, if any.
   37 contextSystemPrompt :: Context -> Maybe Text
   38 contextSystemPrompt = _ctx_systemPrompt