mindroom 0.0.0__py3-none-any.whl → 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. mindroom/__init__.py +3 -0
  2. mindroom/agent_prompts.py +963 -0
  3. mindroom/agents.py +248 -0
  4. mindroom/ai.py +421 -0
  5. mindroom/api/__init__.py +1 -0
  6. mindroom/api/credentials.py +137 -0
  7. mindroom/api/google_integration.py +355 -0
  8. mindroom/api/google_tools_helper.py +40 -0
  9. mindroom/api/homeassistant_integration.py +421 -0
  10. mindroom/api/integrations.py +189 -0
  11. mindroom/api/main.py +506 -0
  12. mindroom/api/matrix_operations.py +219 -0
  13. mindroom/api/tools.py +94 -0
  14. mindroom/background_tasks.py +87 -0
  15. mindroom/bot.py +2470 -0
  16. mindroom/cli.py +86 -0
  17. mindroom/commands.py +377 -0
  18. mindroom/config.py +343 -0
  19. mindroom/config_commands.py +324 -0
  20. mindroom/config_confirmation.py +411 -0
  21. mindroom/constants.py +52 -0
  22. mindroom/credentials.py +146 -0
  23. mindroom/credentials_sync.py +134 -0
  24. mindroom/custom_tools/__init__.py +8 -0
  25. mindroom/custom_tools/config_manager.py +765 -0
  26. mindroom/custom_tools/gmail.py +92 -0
  27. mindroom/custom_tools/google_calendar.py +92 -0
  28. mindroom/custom_tools/google_sheets.py +92 -0
  29. mindroom/custom_tools/homeassistant.py +341 -0
  30. mindroom/error_handling.py +35 -0
  31. mindroom/file_watcher.py +49 -0
  32. mindroom/interactive.py +313 -0
  33. mindroom/logging_config.py +207 -0
  34. mindroom/matrix/__init__.py +1 -0
  35. mindroom/matrix/client.py +782 -0
  36. mindroom/matrix/event_info.py +173 -0
  37. mindroom/matrix/identity.py +149 -0
  38. mindroom/matrix/large_messages.py +267 -0
  39. mindroom/matrix/mentions.py +141 -0
  40. mindroom/matrix/message_builder.py +94 -0
  41. mindroom/matrix/message_content.py +209 -0
  42. mindroom/matrix/presence.py +178 -0
  43. mindroom/matrix/rooms.py +311 -0
  44. mindroom/matrix/state.py +77 -0
  45. mindroom/matrix/typing.py +91 -0
  46. mindroom/matrix/users.py +217 -0
  47. mindroom/memory/__init__.py +21 -0
  48. mindroom/memory/config.py +137 -0
  49. mindroom/memory/functions.py +396 -0
  50. mindroom/py.typed +0 -0
  51. mindroom/response_tracker.py +128 -0
  52. mindroom/room_cleanup.py +139 -0
  53. mindroom/routing.py +107 -0
  54. mindroom/scheduling.py +758 -0
  55. mindroom/stop.py +207 -0
  56. mindroom/streaming.py +203 -0
  57. mindroom/teams.py +749 -0
  58. mindroom/thread_utils.py +318 -0
  59. mindroom/tools/__init__.py +520 -0
  60. mindroom/tools/agentql.py +64 -0
  61. mindroom/tools/airflow.py +57 -0
  62. mindroom/tools/apify.py +49 -0
  63. mindroom/tools/arxiv.py +64 -0
  64. mindroom/tools/aws_lambda.py +41 -0
  65. mindroom/tools/aws_ses.py +57 -0
  66. mindroom/tools/baidusearch.py +87 -0
  67. mindroom/tools/brightdata.py +116 -0
  68. mindroom/tools/browserbase.py +62 -0
  69. mindroom/tools/cal_com.py +98 -0
  70. mindroom/tools/calculator.py +112 -0
  71. mindroom/tools/cartesia.py +84 -0
  72. mindroom/tools/composio.py +166 -0
  73. mindroom/tools/config_manager.py +44 -0
  74. mindroom/tools/confluence.py +73 -0
  75. mindroom/tools/crawl4ai.py +101 -0
  76. mindroom/tools/csv.py +104 -0
  77. mindroom/tools/custom_api.py +106 -0
  78. mindroom/tools/dalle.py +85 -0
  79. mindroom/tools/daytona.py +180 -0
  80. mindroom/tools/discord.py +81 -0
  81. mindroom/tools/docker.py +73 -0
  82. mindroom/tools/duckdb.py +124 -0
  83. mindroom/tools/duckduckgo.py +99 -0
  84. mindroom/tools/e2b.py +121 -0
  85. mindroom/tools/eleven_labs.py +77 -0
  86. mindroom/tools/email.py +74 -0
  87. mindroom/tools/exa.py +246 -0
  88. mindroom/tools/fal.py +50 -0
  89. mindroom/tools/file.py +80 -0
  90. mindroom/tools/financial_datasets_api.py +112 -0
  91. mindroom/tools/firecrawl.py +124 -0
  92. mindroom/tools/gemini.py +85 -0
  93. mindroom/tools/giphy.py +49 -0
  94. mindroom/tools/github.py +376 -0
  95. mindroom/tools/gmail.py +102 -0
  96. mindroom/tools/google_calendar.py +55 -0
  97. mindroom/tools/google_maps.py +112 -0
  98. mindroom/tools/google_sheets.py +86 -0
  99. mindroom/tools/googlesearch.py +83 -0
  100. mindroom/tools/groq.py +77 -0
  101. mindroom/tools/hackernews.py +54 -0
  102. mindroom/tools/jina.py +108 -0
  103. mindroom/tools/jira.py +70 -0
  104. mindroom/tools/linear.py +103 -0
  105. mindroom/tools/linkup.py +65 -0
  106. mindroom/tools/lumalabs.py +71 -0
  107. mindroom/tools/mem0.py +82 -0
  108. mindroom/tools/modelslabs.py +85 -0
  109. mindroom/tools/moviepy_video_tools.py +62 -0
  110. mindroom/tools/newspaper4k.py +63 -0
  111. mindroom/tools/openai.py +143 -0
  112. mindroom/tools/openweather.py +89 -0
  113. mindroom/tools/oxylabs.py +54 -0
  114. mindroom/tools/pandas.py +35 -0
  115. mindroom/tools/pubmed.py +64 -0
  116. mindroom/tools/python.py +120 -0
  117. mindroom/tools/reddit.py +155 -0
  118. mindroom/tools/replicate.py +56 -0
  119. mindroom/tools/resend.py +55 -0
  120. mindroom/tools/scrapegraph.py +87 -0
  121. mindroom/tools/searxng.py +120 -0
  122. mindroom/tools/serpapi.py +55 -0
  123. mindroom/tools/serper.py +81 -0
  124. mindroom/tools/shell.py +46 -0
  125. mindroom/tools/slack.py +80 -0
  126. mindroom/tools/sleep.py +38 -0
  127. mindroom/tools/spider.py +62 -0
  128. mindroom/tools/sql.py +138 -0
  129. mindroom/tools/tavily.py +104 -0
  130. mindroom/tools/telegram.py +54 -0
  131. mindroom/tools/todoist.py +103 -0
  132. mindroom/tools/trello.py +121 -0
  133. mindroom/tools/twilio.py +97 -0
  134. mindroom/tools/web_browser_tools.py +37 -0
  135. mindroom/tools/webex.py +63 -0
  136. mindroom/tools/website.py +45 -0
  137. mindroom/tools/whatsapp.py +81 -0
  138. mindroom/tools/wikipedia.py +45 -0
  139. mindroom/tools/x.py +97 -0
  140. mindroom/tools/yfinance.py +121 -0
  141. mindroom/tools/youtube.py +81 -0
  142. mindroom/tools/zendesk.py +62 -0
  143. mindroom/tools/zep.py +107 -0
  144. mindroom/tools/zoom.py +62 -0
  145. mindroom/tools_metadata.json +7643 -0
  146. mindroom/tools_metadata.py +220 -0
  147. mindroom/topic_generator.py +153 -0
  148. mindroom/voice_handler.py +266 -0
  149. mindroom-0.1.0.dist-info/METADATA +425 -0
  150. mindroom-0.1.0.dist-info/RECORD +152 -0
  151. {mindroom-0.0.0.dist-info → mindroom-0.1.0.dist-info}/WHEEL +1 -2
  152. mindroom-0.1.0.dist-info/entry_points.txt +2 -0
  153. mindroom-0.0.0.dist-info/METADATA +0 -24
  154. mindroom-0.0.0.dist-info/RECORD +0 -4
  155. mindroom-0.0.0.dist-info/top_level.txt +0 -1
@@ -0,0 +1,112 @@
1
+ """Financial Datasets API tool configuration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from mindroom.tools_metadata import ConfigField, SetupType, ToolCategory, ToolStatus, register_tool_with_metadata
8
+
9
+ if TYPE_CHECKING:
10
+ from agno.tools.financial_datasets import FinancialDatasetsTools
11
+
12
+
13
+ @register_tool_with_metadata(
14
+ name="financial_datasets_api",
15
+ display_name="Financial Datasets API",
16
+ description="Comprehensive financial data API for stocks, financial statements, SEC filings, and cryptocurrency",
17
+ category=ToolCategory.DEVELOPMENT, # From /tools/toolkits/others/ path
18
+ status=ToolStatus.REQUIRES_CONFIG, # Requires API key
19
+ setup_type=SetupType.API_KEY, # Uses API key authentication
20
+ icon="TrendingUp", # Financial/trending icon
21
+ icon_color="text-green-600", # Financial green color
22
+ config_fields=[
23
+ # Authentication
24
+ ConfigField(
25
+ name="api_key",
26
+ label="API Key",
27
+ type="password",
28
+ required=False,
29
+ placeholder="your_api_key_here",
30
+ description="Financial Datasets API key (can also be set via FINANCIAL_DATASETS_API_KEY env var)",
31
+ ),
32
+ # Financial Statements
33
+ ConfigField(
34
+ name="enable_financial_statements",
35
+ label="Enable Financial Statements",
36
+ type="boolean",
37
+ required=False,
38
+ default=True,
39
+ description="Enable financial statement related functions (income statements, balance sheets, cash flow)",
40
+ ),
41
+ # Company Information
42
+ ConfigField(
43
+ name="enable_company_info",
44
+ label="Enable Company Info",
45
+ type="boolean",
46
+ required=False,
47
+ default=True,
48
+ description="Enable company information related functions",
49
+ ),
50
+ # Market Data
51
+ ConfigField(
52
+ name="enable_market_data",
53
+ label="Enable Market Data",
54
+ type="boolean",
55
+ required=False,
56
+ default=True,
57
+ description="Enable market data related functions (stock prices, earnings, metrics)",
58
+ ),
59
+ # Ownership Data
60
+ ConfigField(
61
+ name="enable_ownership_data",
62
+ label="Enable Ownership Data",
63
+ type="boolean",
64
+ required=False,
65
+ default=True,
66
+ description="Enable ownership data related functions (insider trades, institutional ownership)",
67
+ ),
68
+ # News
69
+ ConfigField(
70
+ name="enable_news",
71
+ label="Enable News",
72
+ type="boolean",
73
+ required=False,
74
+ default=True,
75
+ description="Enable news related functions",
76
+ ),
77
+ # SEC Filings
78
+ ConfigField(
79
+ name="enable_sec_filings",
80
+ label="Enable SEC Filings",
81
+ type="boolean",
82
+ required=False,
83
+ default=True,
84
+ description="Enable SEC filings related functions",
85
+ ),
86
+ # Cryptocurrency
87
+ ConfigField(
88
+ name="enable_crypto",
89
+ label="Enable Crypto",
90
+ type="boolean",
91
+ required=False,
92
+ default=True,
93
+ description="Enable cryptocurrency related functions",
94
+ ),
95
+ # Search
96
+ ConfigField(
97
+ name="enable_search",
98
+ label="Enable Search",
99
+ type="boolean",
100
+ required=False,
101
+ default=True,
102
+ description="Enable search related functions",
103
+ ),
104
+ ],
105
+ dependencies=["requests"], # Only standard dependency needed
106
+ docs_url="https://docs.agno.com/tools/toolkits/others/financial_datasets",
107
+ )
108
+ def financial_datasets_api_tools() -> type[FinancialDatasetsTools]:
109
+ """Return Financial Datasets API tools for comprehensive financial data access."""
110
+ from agno.tools.financial_datasets import FinancialDatasetsTools
111
+
112
+ return FinancialDatasetsTools
@@ -0,0 +1,124 @@
1
+ """Firecrawl tool configuration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from mindroom.tools_metadata import (
8
+ ConfigField,
9
+ SetupType,
10
+ ToolCategory,
11
+ ToolStatus,
12
+ register_tool_with_metadata,
13
+ )
14
+
15
+ if TYPE_CHECKING:
16
+ from agno.tools.firecrawl import FirecrawlTools
17
+
18
+
19
+ @register_tool_with_metadata(
20
+ name="firecrawl",
21
+ display_name="Firecrawl",
22
+ description="Web scraping and crawling tool for extracting content from websites",
23
+ category=ToolCategory.RESEARCH, # Web scraping tool for research
24
+ status=ToolStatus.REQUIRES_CONFIG, # Requires API key
25
+ setup_type=SetupType.API_KEY, # API key authentication
26
+ icon="FaSpider", # Web crawler icon
27
+ icon_color="text-orange-500", # Orange color for fire/crawling theme
28
+ config_fields=[
29
+ # Authentication/Connection parameters first
30
+ ConfigField(
31
+ name="api_key",
32
+ label="API Key",
33
+ type="password",
34
+ required=False,
35
+ placeholder="fc-...",
36
+ description="Firecrawl API key for authentication (can also be set via FIRECRAWL_API_KEY env var)",
37
+ ),
38
+ ConfigField(
39
+ name="api_url",
40
+ label="API URL",
41
+ type="url",
42
+ required=False,
43
+ default="https://api.firecrawl.dev",
44
+ placeholder="https://api.firecrawl.dev",
45
+ description="Firecrawl API endpoint URL",
46
+ ),
47
+ # Configuration parameters
48
+ ConfigField(
49
+ name="formats",
50
+ label="Output Formats",
51
+ type="text",
52
+ required=False,
53
+ placeholder="markdown,html,text",
54
+ description="Comma-separated list of output formats (e.g., markdown, html, text)",
55
+ ),
56
+ ConfigField(
57
+ name="limit",
58
+ label="Crawl Limit",
59
+ type="number",
60
+ required=False,
61
+ default=10,
62
+ placeholder="10",
63
+ description="Maximum number of pages to crawl",
64
+ ),
65
+ ConfigField(
66
+ name="poll_interval",
67
+ label="Poll Interval",
68
+ type="number",
69
+ required=False,
70
+ default=30,
71
+ placeholder="30",
72
+ description="Polling interval in seconds for crawl operations",
73
+ ),
74
+ ConfigField(
75
+ name="search_params",
76
+ label="Search Parameters",
77
+ type="text",
78
+ required=False,
79
+ placeholder='{"location": "US", "language": "en"}',
80
+ description="Additional search parameters as JSON string",
81
+ ),
82
+ # Feature flags/boolean parameters grouped by functionality
83
+ # Core Operations
84
+ ConfigField(
85
+ name="scrape",
86
+ label="Enable Scraping",
87
+ type="boolean",
88
+ required=False,
89
+ default=True,
90
+ description="Enable website scraping functionality",
91
+ ),
92
+ ConfigField(
93
+ name="crawl",
94
+ label="Enable Crawling",
95
+ type="boolean",
96
+ required=False,
97
+ default=False,
98
+ description="Enable website crawling functionality",
99
+ ),
100
+ ConfigField(
101
+ name="mapping",
102
+ label="Enable Mapping",
103
+ type="boolean",
104
+ required=False,
105
+ default=False,
106
+ description="Enable website structure mapping functionality",
107
+ ),
108
+ ConfigField(
109
+ name="search",
110
+ label="Enable Search",
111
+ type="boolean",
112
+ required=False,
113
+ default=False,
114
+ description="Enable web search functionality",
115
+ ),
116
+ ],
117
+ dependencies=["firecrawl-py"],
118
+ docs_url="https://docs.agno.com/tools/toolkits/web_scrape/firecrawl",
119
+ )
120
+ def firecrawl_tools() -> type[FirecrawlTools]:
121
+ """Return Firecrawl tools for web scraping and crawling."""
122
+ from agno.tools.firecrawl import FirecrawlTools
123
+
124
+ return FirecrawlTools
@@ -0,0 +1,85 @@
1
+ """Gemini tool configuration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from mindroom.tools_metadata import ConfigField, SetupType, ToolCategory, ToolStatus, register_tool_with_metadata
8
+
9
+ if TYPE_CHECKING:
10
+ from agno.tools.models.gemini import GeminiTools
11
+
12
+
13
+ @register_tool_with_metadata(
14
+ name="gemini",
15
+ display_name="Gemini",
16
+ description="Google AI API services for generating images and videos using Gemini models",
17
+ category=ToolCategory.DEVELOPMENT,
18
+ status=ToolStatus.REQUIRES_CONFIG,
19
+ setup_type=SetupType.API_KEY,
20
+ icon="FaGoogle",
21
+ icon_color="text-blue-500",
22
+ config_fields=[
23
+ # Authentication
24
+ ConfigField(
25
+ name="api_key",
26
+ label="API Key",
27
+ type="password",
28
+ required=False,
29
+ placeholder="AIza...",
30
+ description="Google AI API key for authentication (can also be set via GOOGLE_API_KEY env var)",
31
+ ),
32
+ # Vertex AI configuration
33
+ ConfigField(
34
+ name="vertexai",
35
+ label="Use Vertex AI",
36
+ type="boolean",
37
+ required=False,
38
+ default=False,
39
+ description="Enable Vertex AI API instead of Gemini API (required for video generation)",
40
+ ),
41
+ ConfigField(
42
+ name="project_id",
43
+ label="Project ID",
44
+ type="text",
45
+ required=False,
46
+ placeholder="my-project-123",
47
+ description="Google Cloud project ID (for Vertex AI, can also be set via GOOGLE_CLOUD_PROJECT env var)",
48
+ ),
49
+ ConfigField(
50
+ name="location",
51
+ label="Location",
52
+ type="text",
53
+ required=False,
54
+ default="us-central1",
55
+ placeholder="us-central1",
56
+ description="Google Cloud location/region (for Vertex AI, can also be set via GOOGLE_CLOUD_LOCATION env var)",
57
+ ),
58
+ # Model configuration
59
+ ConfigField(
60
+ name="image_generation_model",
61
+ label="Image Generation Model",
62
+ type="text",
63
+ required=False,
64
+ default="imagen-3.0-generate-002",
65
+ placeholder="imagen-3.0-generate-002",
66
+ description="Model to use for image generation",
67
+ ),
68
+ ConfigField(
69
+ name="video_generation_model",
70
+ label="Video Generation Model",
71
+ type="text",
72
+ required=False,
73
+ default="veo-2.0-generate-001",
74
+ placeholder="veo-2.0-generate-001",
75
+ description="Model to use for video generation (requires Vertex AI)",
76
+ ),
77
+ ],
78
+ dependencies=["google-genai"],
79
+ docs_url="https://docs.agno.com/tools/toolkits/models/gemini",
80
+ )
81
+ def gemini_tools() -> type[GeminiTools]:
82
+ """Return Gemini tools for image and video generation."""
83
+ from agno.tools.models.gemini import GeminiTools
84
+
85
+ return GeminiTools
@@ -0,0 +1,49 @@
1
+ """Giphy tool configuration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from mindroom.tools_metadata import ConfigField, SetupType, ToolCategory, ToolStatus, register_tool_with_metadata
8
+
9
+ if TYPE_CHECKING:
10
+ from agno.tools.giphy import GiphyTools
11
+
12
+
13
+ @register_tool_with_metadata(
14
+ name="giphy",
15
+ display_name="Giphy",
16
+ description="GIF search and integration",
17
+ category=ToolCategory.DEVELOPMENT,
18
+ status=ToolStatus.REQUIRES_CONFIG,
19
+ setup_type=SetupType.API_KEY,
20
+ icon="GiGift",
21
+ icon_color="text-purple-500",
22
+ config_fields=[
23
+ # Authentication
24
+ ConfigField(
25
+ name="api_key",
26
+ label="API Key",
27
+ type="password",
28
+ required=False,
29
+ placeholder="dc6zaTOxFJmzC",
30
+ description="Giphy API key (can also be set via GIPHY_API_KEY env var)",
31
+ ),
32
+ # Search configuration
33
+ ConfigField(
34
+ name="limit",
35
+ label="GIF Limit",
36
+ type="number",
37
+ required=False,
38
+ default=1,
39
+ description="Number of GIFs to return in search results",
40
+ ),
41
+ ],
42
+ dependencies=["httpx"],
43
+ docs_url="https://docs.agno.com/tools/toolkits/others/giphy",
44
+ )
45
+ def giphy_tools() -> type[GiphyTools]:
46
+ """Return Giphy tools for GIF search and integration."""
47
+ from agno.tools.giphy import GiphyTools
48
+
49
+ return GiphyTools