summaryrefslogtreecommitdiff
path: root/Omni/Agent
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-12-15 08:51:23 -0500
committerBen Sima <ben@bensima.com>2025-12-15 08:51:23 -0500
commit4caefe45756fdc21df990b8d6e826c40db1b9c78 (patch)
tree94c9c296456e194175f436383b976e3f8368774b /Omni/Agent
parent0baab1972e30c0e4629e67152838e660b02a2537 (diff)
Restrict new tools to Ben only
python_exec, http_get/post, outreach_*, feedback_list, and read_file now require isBenAuthorized check, matching email/hledger pattern.
Diffstat (limited to 'Omni/Agent')
-rw-r--r--Omni/Agent/Telegram.hs26
1 files changed, 21 insertions, 5 deletions
diff --git a/Omni/Agent/Telegram.hs b/Omni/Agent/Telegram.hs
index 76a7be9..07c8e4b 100644
--- a/Omni/Agent/Telegram.hs
+++ b/Omni/Agent/Telegram.hs
@@ -990,11 +990,22 @@ processEngagedMessage tgConfig provider engineCfg msg uid userName chatId userMe
if isEmailAuthorized userName
then Email.allEmailTools
else []
- pythonTools = [Python.pythonExecTool]
- httpTools = Http.allHttpTools
- outreachTools = Outreach.allOutreachTools
- feedbackTools = Feedback.allFeedbackTools
- fileTools = [Tools.readFileTool]
+ pythonTools =
+ [Python.pythonExecTool | isBenAuthorized userName]
+ httpTools =
+ if isBenAuthorized userName
+ then Http.allHttpTools
+ else []
+ outreachTools =
+ if isBenAuthorized userName
+ then Outreach.allOutreachTools
+ else []
+ feedbackTools =
+ if isBenAuthorized userName
+ then Feedback.allFeedbackTools
+ else []
+ fileTools =
+ [Tools.readFileTool | isBenAuthorized userName]
tools = memoryTools <> searchTools <> webReaderTools <> pdfTools <> notesTools <> calendarTools <> todoTools <> messageTools <> hledgerTools <> emailTools <> pythonTools <> httpTools <> outreachTools <> feedbackTools <> fileTools
let agentCfg =
@@ -1065,6 +1076,11 @@ isEmailAuthorized userName =
let lowerName = Text.toLower userName
in "ben" `Text.isInfixOf` lowerName
+isBenAuthorized :: Text -> Bool
+isBenAuthorized userName =
+ let lowerName = Text.toLower userName
+ in "ben" `Text.isInfixOf` lowerName
+
checkAndSummarize :: Text -> Text -> Int -> IO ()
checkAndSummarize openRouterKey uid chatId = do
(_, currentTokens) <- Memory.getConversationContext uid chatId maxConversationTokens