From c3ab8403df5e5ed99e6769dcdc152408d57026a7 Mon Sep 17 00:00:00 2001 From: Omni Worker Date: Fri, 21 Nov 2025 05:14:53 -0500 Subject: feat: implement Omni.Agent.Worker loop logic Amp-Thread-ID: https://ampcode.com/threads/T-4f2905ef-a042-4880-b146-f6809ce83751 Co-authored-by: Amp --- Omni/Agent/Core.hs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Omni/Agent/Core.hs (limited to 'Omni/Agent/Core.hs') diff --git a/Omni/Agent/Core.hs b/Omni/Agent/Core.hs new file mode 100644 index 0000000..7299d51 --- /dev/null +++ b/Omni/Agent/Core.hs @@ -0,0 +1,33 @@ +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE NoImplicitPrelude #-} + +-- : out omni-agent-core +module Omni.Agent.Core where + +import Alpha +import Data.Aeson (FromJSON, ToJSON) + +-- | Status of a worker agent +data WorkerStatus + = Idle + | Syncing + | Working Text -- ^ Task ID + | Submitting Text -- ^ Task ID + | Error Text -- ^ Error message + deriving (Show, Eq, Generic) + +instance ToJSON WorkerStatus +instance FromJSON WorkerStatus + +-- | Representation of a worker agent +data Worker = Worker + { workerName :: Text + , workerPid :: Maybe Int + , workerStatus :: WorkerStatus + , workerPath :: FilePath + } + deriving (Show, Eq, Generic) + +instance ToJSON Worker +instance FromJSON Worker -- cgit v1.2.3