diff options
| author | Ben Sima <ben@bensima.com> | 2025-12-15 08:51:23 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-12-15 08:51:23 -0500 |
| commit | 4caefe45756fdc21df990b8d6e826c40db1b9c78 (patch) | |
| tree | 94c9c296456e194175f436383b976e3f8368774b /Omni/Agent | |
| parent | 0baab1972e30c0e4629e67152838e660b02a2537 (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.hs | 26 |
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 |
