diff options
Diffstat (limited to 'Omni/Agent.hs')
| -rw-r--r-- | Omni/Agent.hs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Omni/Agent.hs b/Omni/Agent.hs new file mode 100644 index 0000000..0bae0b5 --- /dev/null +++ b/Omni/Agent.hs @@ -0,0 +1,55 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE NoImplicitPrelude #-} + +-- | Agent system entry point and combined test runner. +-- +-- This module provides the main entry point for the agent system +-- and re-exports core types from sub-modules. +-- +-- : out omni-agent +-- : dep aeson +module Omni.Agent + ( -- * Engine + module Omni.Agent.Engine, + + -- * Tools + module Omni.Agent.Tools, + + -- * Core + module Omni.Agent.Core, + + -- * Test + main, + test, + ) +where + +import Alpha +import Omni.Agent.Core +import Omni.Agent.Engine hiding (main, test) +import qualified Omni.Agent.Engine as Engine +import Omni.Agent.Tools hiding (ToolResult, main, test) +import qualified Omni.Agent.Tools as Tools +import qualified Omni.Test as Test + +main :: IO () +main = Test.run test + +test :: Test.Tree +test = + Test.group + "Omni.Agent" + [ Engine.test, + Tools.test, + Test.unit "Core types are re-exported" <| do + let status = Idle :: WorkerStatus + status Test.@=? status, + Test.unit "Engine and Tools integrate correctly" <| do + let tools = Tools.allTools + length tools Test.@=? 5 + let config = + Engine.defaultAgentConfig + { Engine.agentTools = tools + } + Engine.agentMaxIterations config Test.@=? 10 + ] |
