{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module IntelliMonad.Tools ( module IntelliMonad.Tools.Utils, module IntelliMonad.Tools.Arxiv, module IntelliMonad.Tools.Bash, module IntelliMonad.Tools.TextToSpeech, module IntelliMonad.Tools.DallE3, defaultTools, ) where import Data.Proxy import IntelliMonad.Tools.Arxiv import IntelliMonad.Tools.Bash import IntelliMonad.Tools.DallE3 import IntelliMonad.Tools.TextToSpeech import IntelliMonad.Tools.Utils import IntelliMonad.Types arxiv :: ToolProxy arxiv = Proxy Arxiv -> ToolProxy forall t. (Tool t, FromJSON t, ToJSON t, FromJSON (Output t), ToJSON (Output t)) => Proxy t -> ToolProxy ToolProxy (Proxy Arxiv forall {k} (t :: k). Proxy t Proxy :: Proxy Arxiv) bash :: ToolProxy bash = Proxy Bash -> ToolProxy forall t. (Tool t, FromJSON t, ToJSON t, FromJSON (Output t), ToJSON (Output t)) => Proxy t -> ToolProxy ToolProxy (Proxy Bash forall {k} (t :: k). Proxy t Proxy :: Proxy Bash) textToSpeech :: ToolProxy textToSpeech = Proxy TextToSpeech -> ToolProxy forall t. (Tool t, FromJSON t, ToJSON t, FromJSON (Output t), ToJSON (Output t)) => Proxy t -> ToolProxy ToolProxy (Proxy TextToSpeech forall {k} (t :: k). Proxy t Proxy :: Proxy TextToSpeech) dallE3 :: ToolProxy dallE3 = Proxy DallE3 -> ToolProxy forall t. (Tool t, FromJSON t, ToJSON t, FromJSON (Output t), ToJSON (Output t)) => Proxy t -> ToolProxy ToolProxy (Proxy DallE3 forall {k} (t :: k). Proxy t Proxy :: Proxy DallE3) defaultTools :: [ToolProxy] defaultTools :: [ToolProxy] defaultTools = [ Item [ToolProxy] ToolProxy bash, Item [ToolProxy] ToolProxy arxiv ]