tiny-agent-os 0.65__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 (49) hide show
  1. tiny_agent_os-0.65.dist-info/METADATA +202 -0
  2. tiny_agent_os-0.65.dist-info/RECORD +49 -0
  3. tiny_agent_os-0.65.dist-info/WHEEL +5 -0
  4. tiny_agent_os-0.65.dist-info/entry_points.txt +2 -0
  5. tiny_agent_os-0.65.dist-info/top_level.txt +1 -0
  6. tinyagent/__init__.py +71 -0
  7. tinyagent/agent.py +954 -0
  8. tinyagent/chat/__init__.py +12 -0
  9. tinyagent/chat/chat_mode.py +291 -0
  10. tinyagent/cli/__init__.py +16 -0
  11. tinyagent/cli/colors.py +104 -0
  12. tinyagent/cli/main.py +665 -0
  13. tinyagent/cli/spinner.py +94 -0
  14. tinyagent/config/__init__.py +14 -0
  15. tinyagent/config/config.py +248 -0
  16. tinyagent/decorators.py +187 -0
  17. tinyagent/exceptions.py +85 -0
  18. tinyagent/factory/__init__.py +18 -0
  19. tinyagent/factory/agent_factory.py +439 -0
  20. tinyagent/factory/dynamic_agent_factory.py +561 -0
  21. tinyagent/factory/orchestrator.py +1514 -0
  22. tinyagent/logging.py +97 -0
  23. tinyagent/mcp/__init__.py +14 -0
  24. tinyagent/mcp/manager.py +321 -0
  25. tinyagent/tool.py +185 -0
  26. tinyagent/tools/__init__.py +44 -0
  27. tinyagent/tools/aider.py +122 -0
  28. tinyagent/tools/anon_coder.py +296 -0
  29. tinyagent/tools/boilerplate_tool.py +147 -0
  30. tinyagent/tools/brave_search.py +104 -0
  31. tinyagent/tools/business_deepsearch.py +797 -0
  32. tinyagent/tools/codeagent_tool.py +217 -0
  33. tinyagent/tools/content_processor.py +285 -0
  34. tinyagent/tools/custom_text_browser.py +958 -0
  35. tinyagent/tools/duckduckgo_search.py +153 -0
  36. tinyagent/tools/enhanced_deepsearch.py +1589 -0
  37. tinyagent/tools/external.py +303 -0
  38. tinyagent/tools/file_manipulator.py +274 -0
  39. tinyagent/tools/final_extractor_tool.py +249 -0
  40. tinyagent/tools/llm_serializer.py +124 -0
  41. tinyagent/tools/markdown_gen.py +300 -0
  42. tinyagent/tools/ripgrep.py +136 -0
  43. tinyagent/utils/__init__.py +13 -0
  44. tinyagent/utils/json_parser.py +231 -0
  45. tinyagent/utils/logging_utils.py +78 -0
  46. tinyagent/utils/openrouter_request.py +120 -0
  47. tinyagent/utils/serialization.py +185 -0
  48. tinyagent/utils/structured_outputs.py +126 -0
  49. tinyagent/utils/type_converter.py +134 -0
@@ -0,0 +1,202 @@
1
+ Metadata-Version: 2.4
2
+ Name: tiny_agent_os
3
+ Version: 0.65
4
+ Summary: A streamlined framework for building powerful LLM-powered agents
5
+ Author-email: tinyagent <contact@example.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/tinyagent/tinyagent
8
+ Project-URL: Bug Tracker, https://github.com/tinyagent/tinyagent/issues
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+ Requires-Dist: python-dotenv>=1.0.0
16
+ Requires-Dist: requests>=2.31.0
17
+ Requires-Dist: openai>=1.0.0
18
+ Requires-Dist: pyyaml>=6.0.1
19
+ Requires-Dist: jinja2>=3.1.2
20
+ Requires-Dist: click>=8.1.6
21
+ Requires-Dist: rich>=13.7.1
22
+ Requires-Dist: jsonschema>=4.10.3
23
+ Requires-Dist: typing-extensions>=4.10.0
24
+ Requires-Dist: colorama>=0.4.6
25
+ Requires-Dist: regex>=2023.0.0
26
+
27
+ # tinyAgent 🤖
28
+
29
+ A streamlined framework for building powerful LLM-powered agents that can solve complex tasks through tool execution, orchestration, and dynamic capability creation.
30
+
31
+ **Made by (x) @tunahorse21 | A product of alchemiststudios.ai**
32
+
33
+ > **Heads Up**: tinyAgent is in BETA until V1. It's working but still evolving!
34
+ > While I can't guarantee it's 100% bug-free, I'm actively improving it whenever I can between my day job and business.
35
+ > Found something that could be better? Show off your skills and open an issue with a fix: I'd genuinely appreciate it!
36
+
37
+ ![tinyAgent Logo](tintAgentLogo.png)
38
+
39
+ ```
40
+ __ .__ _____ __
41
+ _/ |_|__| ____ ___.__. / _ \ ____ ____ _____/ |_
42
+ \ __\ |/ < | |/ /_\ \ / ___\_/ __ \ / \ __\
43
+ | | | | | \___ / | \/ /_/ > ___/| | \ |
44
+ |__| |__|___| / ____\____|__ /\___ / \___ >___| /__|
45
+ \/\/ \//_____/ \/ \/
46
+ ```
47
+
48
+ ### Installation
49
+
50
+ ```bash
51
+ # Clone the repository
52
+ git clone https://github.com/alchemiststudiosDOTai/tinyAgent.git
53
+
54
+ cd tinyagent
55
+
56
+ # Option 1: For Linux users, run the installation script
57
+ chmod +x install/linuxInstall.sh && ./install/linuxInstall.sh
58
+
59
+ # Option 2: Manual installation
60
+ # Create a virtual environment (recommended)
61
+ python3 -m venv .venv
62
+
63
+ # Activate the virtual environment
64
+ # On macOS/Linux
65
+ source .venv/bin/activate
66
+ # On Windows
67
+ .\.venv\Scripts\activate
68
+
69
+ # Install dependencies
70
+ # Option 1: Using UV (recommended - see INSTALL.md for details)
71
+ # Option 2: Using pip
72
+ pip install -r requirements.txt
73
+
74
+ # Set up required configuration files
75
+ # 1. Environment variables
76
+ cp .envexample .env
77
+ # Edit .env to add your API keys (especially OpenRouter)
78
+
79
+ # 2. Configuration file
80
+ cp exampleconfig.yml config.yml
81
+ # Edit config.yml to customize your settings
82
+ ```
83
+
84
+ ### Pip Installation
85
+
86
+ ```bash
87
+ # Simple pip installation
88
+ pip install tinyagent
89
+ ```
90
+
91
+ **Note:** The orchestrator component is currently being built and is in beta.
92
+
93
+ ---
94
+
95
+ ## Philosophy
96
+
97
+ 1. **Functions as Agents**
98
+ - You can turn **any function** into a **tool** or **agent**.
99
+ - This makes it easy to add new capabilities.
100
+
101
+ ```mermaid
102
+ flowchart LR
103
+ A["Python Function"] --> B["Tool"]
104
+ B --> C["Agent"]
105
+ C --> D["Result"]
106
+ ```
107
+
108
+ ![Function to Agent Flow](static/images/func_agent.png)
109
+
110
+ ```python
111
+ # Define a simple calculator function and turn it into a tool
112
+ @tool
113
+ def calculate_sum(a: int, b: int) -> int:
114
+ """Calculate the sum of two integers."""
115
+ return a + b
116
+
117
+ def main():
118
+ """Create a basic agent with a calculator tool."""
119
+ # One-liner: create agent with our tool directly
120
+ agent = AgentFactory.get_instance().create_agent(tools=[calculate_sum])
121
+ # Run the agent with a query
122
+ query = "calculate the sum of 5 and 3"
123
+ print(f"Running agent with query: '{query}'")
124
+ # you can also specify the expected type of the result
125
+ result = agent.run(query, expected_type=int)
126
+ print(f"Result: {result}")
127
+ print(f"Result Type: {type(result)}")
128
+ ```
129
+
130
+ 2. **Hierarchical Orchestration**
131
+ - You can **combine many agents** together.
132
+ - A **top-level agent** or **orchestrator** can **delegate tasks** to **specialized agents**.
133
+ - This helps solve **complex problems** by breaking them into parts.
134
+
135
+ ```mermaid
136
+ flowchart TD
137
+ O["Research Orchestrator"] --> A1["Web Search Agent"]
138
+ O --> A2["Summarizer Agent"]
139
+ O --> A3["Code Snippet Agent"]
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Features
145
+
146
+ 1. **Modular Design**
147
+
148
+ - Tools are defined with `@tool` and easily integrated or swapped.
149
+
150
+ 2. **Flexible Agent Options**
151
+
152
+ - **Orchestrator**: Simple task execution.
153
+ - **AgentFactory**: Fine-tuned control.
154
+ - **DynamicAgentFactory**: Dynamic agent creation.
155
+
156
+ 3. **Centralized Setup**
157
+
158
+ - Factory pattern streamlines configuration and logging.
159
+
160
+ 4. **Robust Error Handling**
161
+
162
+ - Custom exceptions (e.g., `ToolError`) improve debugging.
163
+
164
+ 5. **Clean Code Structure**
165
+
166
+ - Agents handle logic; tools handle execution.
167
+
168
+ 6. **Versatile Interaction**
169
+
170
+ - Use `agent.execute_tool()` for precision or `agent.run()` for broader tasks.
171
+
172
+ 7. **Structured Output**
173
+ - Enforce JSON structure on LLM responses for consistent parsing
174
+ - Enable with `output.structured: true` in config.yml
175
+ - Compatible with OpenRouter's JSON schema validation
176
+
177
+ ---
178
+
179
+ ## Acknowledgments & Inspo
180
+
181
+ We'd like to thank the creators of these amazing projects that inspired TinyAgent:
182
+
183
+ - My Wife
184
+ - [HuggingFace SmoLAgents](https://github.com/huggingface/smolagents)
185
+ - [Aider-AI](https://github.com/Aider-AI/aider)
186
+ - [Kyon-eth](https://github.com/kyon-eth)
187
+ - [RA.Aid](https://github.com/ai-christianson/RA.Aid)
188
+
189
+ ---
190
+
191
+ ## Key Takeaways
192
+
193
+ - **tinyAgent** is perfect for scalable AI projects needing structured agent and tool management.
194
+ - It offers **extensibility**, **error handling**, and **logging**, but may be overkill for simple tasks.
195
+
196
+ _Important Note on Tools_:
197
+
198
+ The aider tool integrated in TinyAgent is extremely powerful but requires proper understanding to use effectively. It's highly configurable with many advanced features that can dramatically enhance productivity when used correctly.
199
+
200
+ **⚠️ We strongly recommend thoroughly learning aider before using it in any serious projects.**
201
+
202
+ Invest time in studying the documentation at https://aider.chat/ to understand its capabilities, configuration options, and best practices. This investment will pay off significantly in your development workflow.
@@ -0,0 +1,49 @@
1
+ tinyagent/__init__.py,sha256=ihXSN3WrMmlmMGKf4l-0NFYXEwUrRuXxcHjdFWBcn1g,1681
2
+ tinyagent/agent.py,sha256=3911u3i5eGkq1nHa-cuxQeIRNWXyUvmmQswT8gLL4-8,40031
3
+ tinyagent/decorators.py,sha256=f_PCRZAzB8y_sQOCR0ImnEGGzd7oGIEguRHyc-Q-OoE,6174
4
+ tinyagent/exceptions.py,sha256=EkwEDZ3iQT8WyieB_CiIORldSOFOx9W4WSmQm753qdA,2806
5
+ tinyagent/logging.py,sha256=u8K4zQ9wLhhL0ZHHPDfdF_BFVT3snvk_xi-aP689fZQ,3203
6
+ tinyagent/tool.py,sha256=HKsE3x-hzFLYlmB8aq8hjbY8-FAA0GGGzFlYTDq7g3I,7503
7
+ tinyagent/chat/__init__.py,sha256=owc9w-CD15RjxT7hEU-pdFNykuFmNhsvMc2xb3wVDr8,284
8
+ tinyagent/chat/chat_mode.py,sha256=0Ub1YTGvQxin1Be3xLzXX01SgltAnl6LHQJygcLtZtw,11115
9
+ tinyagent/cli/__init__.py,sha256=6JNnHXyHi1-ukZK3elVFL8k7KKGC7nV1etH_MjBMaS8,343
10
+ tinyagent/cli/colors.py,sha256=yr8wSfW13glywI8lySfvhDLhiXf9O6ULHZFO-1BrMFc,2996
11
+ tinyagent/cli/main.py,sha256=hv8sMF74BZQb-Sma0FZ0_deuaYDQDtrHYDDrk1cGcrE,29859
12
+ tinyagent/cli/spinner.py,sha256=rJvt6SEG-Gt6js-tzkhI1G3-06xzSns9d92y1JTYNdg,2934
13
+ tinyagent/config/__init__.py,sha256=AFD7-AQOJsVBsSN3qmvcjDgdTJhwY3aM2h7VJ3AehwQ,367
14
+ tinyagent/config/config.py,sha256=U-1bcjzm8Mww1XNowtoexrtgfedH0AXNwAmvVpM-tvI,8319
15
+ tinyagent/factory/__init__.py,sha256=bHmJLXpTRZUFjVLGq_F3yl9av3ArHaABvzJ8oH2cM-Y,486
16
+ tinyagent/factory/agent_factory.py,sha256=N-FWUrP82EChhJWULusEfAxUa3Oq-DWU2sUwRNq_0BE,14595
17
+ tinyagent/factory/dynamic_agent_factory.py,sha256=dMjI3XFKIUYLQbGvV1v-Dy2A4kqtg9CQE9WzHpSCiOg,22362
18
+ tinyagent/factory/orchestrator.py,sha256=NRXp34-VK1dM6nFAW1czuMjf1-zE5uhM17pVXdZR1Z0,66105
19
+ tinyagent/mcp/__init__.py,sha256=69prCGimznH3qCPUv_5nQSuTrhTs7t56xvi8Vcg4zNo,367
20
+ tinyagent/mcp/manager.py,sha256=J1WdJDm-31XJcRjbVGTdG2cJuAN1BQdZzaJRuZJNzoY,11084
21
+ tinyagent/tools/__init__.py,sha256=UqvRXrWfF4a2pJJof6j9R_pb-DKqX7x1pbxfyzoHslQ,1537
22
+ tinyagent/tools/aider.py,sha256=Uqe1F0o_Hrzs-OyycPqqqaKM0Ufs2S0Vbz_cGthmyT4,4365
23
+ tinyagent/tools/anon_coder.py,sha256=AHu9KG_cxeHtzazCe2D0TEurImpP6D5yWNOJXcL4vQo,10980
24
+ tinyagent/tools/boilerplate_tool.py,sha256=iNLHNscgNFz6jv4jPmfItCtuL1ZDM1zjAhG0Ngxi3g8,4606
25
+ tinyagent/tools/brave_search.py,sha256=_2gLgI7BB9WWX3ukvqHi-0vCWhNwT7dGe_iyRlCv3Xo,3121
26
+ tinyagent/tools/business_deepsearch.py,sha256=TWminnLJHh36IvyalJBMCjhrJ1xVGsisp-mN7412uZY,32918
27
+ tinyagent/tools/codeagent_tool.py,sha256=npID8oDEn3NtvcF9FKWgvAJXBIxrktm8vbtl5VveKMo,6918
28
+ tinyagent/tools/content_processor.py,sha256=PEuMUzbMvDd2ufc4zqhoiZnWJlyxPU4jeam_dAdEiN0,11211
29
+ tinyagent/tools/custom_text_browser.py,sha256=XxsFeJ90g1WIwbxTLSzOnKaUmNVBxLPfLQr-0pL3Ryo,34922
30
+ tinyagent/tools/duckduckgo_search.py,sha256=9G2eaM8toz-JKZMbALCIToXq8mVWVq0EV5fT8mN4PAI,5643
31
+ tinyagent/tools/enhanced_deepsearch.py,sha256=mLu2MdEg4XxxbhCyumjHy0tv69y7S28IBFgYCByZVrk,63359
32
+ tinyagent/tools/external.py,sha256=qF-ufyaYI9ZW7Fh2ZOyIxdHbXzxDFnU0re3aYoe1avw,12873
33
+ tinyagent/tools/file_manipulator.py,sha256=v6LM384_Im-OM-KuqxaiHAbbMPWZRYSKVcm0xUQtd10,11377
34
+ tinyagent/tools/final_extractor_tool.py,sha256=ofoeIINm8wIyP7N5HfbYdvqRs0RIpBATa_krr0eV8vE,9540
35
+ tinyagent/tools/llm_serializer.py,sha256=12z-DXLm3MJl6eeSCPnAGieUHoSiApaOBDnm1js1LFE,4321
36
+ tinyagent/tools/markdown_gen.py,sha256=Nr3mw0uJQsaCRLLWHHiZ0O4e9SSbybxHUS_zwGaRm_Q,10963
37
+ tinyagent/tools/ripgrep.py,sha256=mrXraq-RbUAPCxrbXLDmWycAhCoyU4n1if_2IyzDh5A,4288
38
+ tinyagent/utils/__init__.py,sha256=ZqqDlpSKbeBZ9XNIa4xUi-KE7de7btI3E69Irif4E20,309
39
+ tinyagent/utils/json_parser.py,sha256=DF_x7ygz3xZwuK49GrKMO7vLa3hsZqw59wiUWGEuOeQ,7647
40
+ tinyagent/utils/logging_utils.py,sha256=YxMCY9PNEXulxuzKR5PDMfyWf7-7o_g0-k5Qyb0X9MU,1998
41
+ tinyagent/utils/openrouter_request.py,sha256=wfNjg-tzrgErKCAWZ0df0-0fmKUiKK7pt_WxxoMZzjU,3760
42
+ tinyagent/utils/serialization.py,sha256=jd0b_Gf9sNyg0haUYw5oY0wc3EuobHOUa6TfhkYiFwc,5453
43
+ tinyagent/utils/structured_outputs.py,sha256=IKkZSOHKorpiVc32fA-DtEiBjogTTwtKVyCEFxmsm3A,4843
44
+ tinyagent/utils/type_converter.py,sha256=imPyWYmTIZHDDBwLAdGJHojYLWFERz4Yjl9kKHPtp3Y,7183
45
+ tiny_agent_os-0.65.dist-info/METADATA,sha256=aKcyqN5siaEmwjrkYRPSI9muqtDGAHKha7rPcqrcSV4,6384
46
+ tiny_agent_os-0.65.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
47
+ tiny_agent_os-0.65.dist-info/entry_points.txt,sha256=_haUtRmoC4JvXuzSJfRQXaMd7mpC1AbL_DTRpXRYa0w,50
48
+ tiny_agent_os-0.65.dist-info/top_level.txt,sha256=Ny8aJNchZpc2Vvhp3306L5vjceJakvFxBk-UjjVeA_I,10
49
+ tiny_agent_os-0.65.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (78.1.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ tinyagent = tinyagent.main:main
@@ -0,0 +1 @@
1
+ tinyagent
tinyagent/__init__.py ADDED
@@ -0,0 +1,71 @@
1
+ """
2
+ Core components for the tinyAgent framework.
3
+
4
+ This package contains the core components of the tinyAgent framework, including
5
+ the Agent class, Tool framework, configuration management, and utilities.
6
+ """
7
+
8
+ __version__ = "0.65"
9
+
10
+ # Core components
11
+ from .agent import Agent, get_llm
12
+ from .tool import Tool, ParamType
13
+ from .decorators import tool
14
+ from .exceptions import (
15
+ TinyAgentError, ConfigurationError,
16
+ ToolError, ToolNotFoundError, ToolExecutionError,
17
+ RateLimitExceeded, ParsingError,
18
+ AgentRetryExceeded, OrchestratorError, AgentNotFoundError
19
+ )
20
+
21
+ # Factory components
22
+ from .factory import (
23
+ AgentFactory, DynamicAgentFactory,
24
+ Orchestrator, TaskStatus
25
+ )
26
+
27
+ # Logging utilities
28
+ from .logging import configure_logging, get_logger
29
+
30
+ # Configuration utilities
31
+ from .config import load_config, get_config_value
32
+
33
+ # CLI utilities
34
+ from .cli import (
35
+ main as CLI, # Use main function as CLI for backward compatibility
36
+ Colors,
37
+ Spinner
38
+ )
39
+
40
+ # Chat mode
41
+ from .chat import run_chat_mode
42
+
43
+ # Public exports
44
+ __all__ = [
45
+ # Core components
46
+ 'Agent', 'get_llm',
47
+ 'Tool', 'ParamType',
48
+ 'tool',
49
+
50
+ # Exception classes
51
+ 'TinyAgentError',
52
+ 'ConfigurationError',
53
+ 'ToolError', 'ToolNotFoundError', 'ToolExecutionError',
54
+ 'RateLimitExceeded',
55
+ 'ParsingError',
56
+ 'AgentRetryExceeded',
57
+ 'OrchestratorError', 'AgentNotFoundError',
58
+
59
+ # Factory components
60
+ 'AgentFactory', 'DynamicAgentFactory',
61
+ 'Orchestrator', 'TaskStatus',
62
+
63
+ # Utilities
64
+ 'configure_logging', 'get_logger',
65
+ 'load_config', 'get_config_value',
66
+ 'Colors', 'Spinner', 'CLI',
67
+ 'run_chat_mode',
68
+
69
+ # Version
70
+ '__version__'
71
+ ]