astonish 0.1__tar.gz

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.

Potentially problematic release.


This version of astonish might be problematic. Click here for more details.

astonish-0.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 The Astonish Authors.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ include astonish/agents/*
astonish-0.1/PKG-INFO ADDED
@@ -0,0 +1,251 @@
1
+ Metadata-Version: 2.4
2
+ Name: astonish
3
+ Version: 0.1
4
+ Summary: Astonish AI Companion
5
+ Author-email: Rafael Schardosin Silva <rafael.rs@gmail.com>
6
+ Project-URL: Homepage, https://github.com/schardosin/astonish
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.7
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: appdirs
14
+ Requires-Dist: generative-ai-hub-sdk[all]
15
+ Requires-Dist: langchain-ollama
16
+ Requires-Dist: langchain
17
+ Requires-Dist: langgraph
18
+ Requires-Dist: langgraph-checkpoint-sqlite
19
+ Requires-Dist: pydantic
20
+ Requires-Dist: tavily-python
21
+ Requires-Dist: colorama
22
+ Requires-Dist: langchain-mcp-adapters
23
+ Requires-Dist: aiosqlite
24
+ Requires-Dist: grandalf
25
+ Dynamic: license-file
26
+
27
+ # Astonish AI Companion
28
+
29
+ Astonish is a powerful, low-code AI companion tool that allows you to create and run agentic workflows, manage AI providers, and extend capabilities through the Model Context Protocol (MCP). It provides a flexible, YAML-based framework for configuring and executing AI-powered tasks without requiring extensive coding knowledge.
30
+
31
+ ## Features
32
+
33
+ - Create and run customizable agentic workflows using a low-code, YAML-based approach
34
+ - Create new agents using an AI-powered agent creator
35
+ - Configure and manage multiple AI providers
36
+ - Extend capabilities through Model Context Protocol (MCP) support
37
+ - Integrate and use various tools within workflows, including embedded and custom tools
38
+ - Extensible architecture for adding new providers and tools
39
+ - Logging and configuration management
40
+
41
+ ## Key Concepts
42
+
43
+ ### Low-Code Agent Creation
44
+
45
+ Astonish embraces a low-code philosophy, allowing users to create complex AI agents using YAML configuration files. This approach democratizes AI agent creation, making it accessible to both developers and non-developers alike.
46
+
47
+ ### Model Context Protocol (MCP) Support
48
+
49
+ Astonish leverages the Model Context Protocol (MCP) to extend its capabilities. MCP allows for seamless integration of additional tools and resources, enhancing the power and flexibility of your AI agents.
50
+
51
+ ### Embedded Tools
52
+
53
+ Astonish comes with several powerful tools embedded out-of-the-box:
54
+
55
+ - `read_file`: Read the contents of files
56
+ - `write_file`: Write or modify file contents
57
+ - `shell_command`: Execute shell commands
58
+
59
+ These tools provide a solid foundation for creating versatile agents capable of interacting with the file system and executing system commands.
60
+
61
+ ## Installation
62
+
63
+ To install Astonish, follow these steps:
64
+
65
+ 1. Clone the repository:
66
+
67
+ ```
68
+ git clone https://github.com/yourusername/astonish.git
69
+ cd astonish
70
+ ```
71
+
72
+ 2. Build and install the package:
73
+
74
+ ```
75
+ make install
76
+ ```
77
+
78
+ This command will build the package as a wheel and install it.
79
+
80
+ 3. For development purposes, you can install in editable mode:
81
+
82
+ ```
83
+ make installdev
84
+ ```
85
+
86
+ 4. Set up the configuration:
87
+ ```
88
+ astonish setup
89
+ ```
90
+
91
+ ## Usage
92
+
93
+ ### Setup
94
+
95
+ To configure Astonish providers, use the `setup` command:
96
+
97
+ ```
98
+ astonish setup
99
+ ```
100
+
101
+ ### Creating New Agents
102
+
103
+ One of the key features of Astonish is the ability to create new agents using an AI-powered agent creator:
104
+
105
+ ```
106
+ astonish agents run agents_creator
107
+ ```
108
+
109
+ This command starts an interactive session where the AI will guide you through the process of creating a new agent using YAML configuration. Once the process is complete, your new agent will be ready for use.
110
+
111
+ ### Running Agents
112
+
113
+ To run an agentic workflow:
114
+
115
+ ```
116
+ astonish agents run <task_name>
117
+ ```
118
+
119
+ This works for both pre-defined agents and agents you've created using the `agents_creator`.
120
+
121
+ To view the flow of an agentic workflow:
122
+
123
+ ```
124
+ astonish agents flow <task_name>
125
+ ```
126
+
127
+ ### Managing Tools
128
+
129
+ To list available tools (including MCP-enabled tools):
130
+
131
+ ```
132
+ astonish tools list
133
+ ```
134
+
135
+ To edit the MCP (Model Context Protocol) configuration:
136
+
137
+ ```
138
+ astonish tools edit
139
+ ```
140
+
141
+ ## Configuration
142
+
143
+ Astonish uses configuration files stored in the user's config directory:
144
+
145
+ - `config.ini`: General configuration
146
+ - `mcp_config.json`: MCP server configuration
147
+
148
+ These files are automatically created and managed by the application.
149
+
150
+ ## Example YAML Configuration
151
+
152
+ Here's an example of an agent configuration in YAML that demonstrates tool usage:
153
+
154
+ ```yaml
155
+ description: An agent that reads a file, extracts key information, and summarizes it for the user
156
+ nodes:
157
+ - name: get_file_path
158
+ type: input
159
+ prompt: |
160
+ Please enter the path to the file you want to analyze:
161
+ output_model:
162
+ file_path: str
163
+
164
+ - name: read_file_content
165
+ type: llm
166
+ system: |
167
+ You are a file reading assistant.
168
+ prompt: |
169
+ Read the contents of the file at path: {file_path}
170
+ output_model:
171
+ file_content: str
172
+ tools: true
173
+ tools_selection:
174
+ - read_file
175
+
176
+ - name: extract_key_info
177
+ type: llm
178
+ system: |
179
+ You are an AI assistant specialized in extracting and summarizing key information from text.
180
+ prompt: |
181
+ Analyze the following file content and extract the core information:
182
+
183
+ {file_content}
184
+
185
+ Provide a concise summary of the key points.
186
+ output_model:
187
+ summary: str
188
+
189
+ - name: present_summary
190
+ type: llm
191
+ system: |
192
+ You are a helpful AI assistant presenting information to users.
193
+ prompt: |
194
+ Present the following summary to the user in a clear and engaging manner:
195
+
196
+ {summary}
197
+ output_model:
198
+ final_response: str
199
+ user_message:
200
+ - final_response
201
+
202
+ flow:
203
+ - from: START
204
+ to: get_file_path
205
+ - from: get_file_path
206
+ to: read_file_content
207
+ - from: read_file_content
208
+ to: extract_key_info
209
+ - from: extract_key_info
210
+ to: present_summary
211
+ - from: present_summary
212
+ to: END
213
+ ```
214
+
215
+ This agent demonstrates the following capabilities:
216
+
217
+ 1. Gets a file path from the user
218
+ 2. Uses the `read_file` tool to read the content of the specified file
219
+ 3. Extracts and summarizes key information from the file content
220
+ 4. Presents the summarized information to the user
221
+
222
+ The flow defines the sequence of operations, starting with user input for the file path, followed by file reading, information extraction, summary presentation, and ending the process.
223
+
224
+ ## Project Structure
225
+
226
+ - `astonish/`: Main package directory
227
+ - `main.py`: Entry point of the application
228
+ - `globals.py`: Global variables and configuration
229
+ - `core/`: Core functionality
230
+ - `agent_runner.py`: Executes agentic workflows
231
+ - `graph_builder.py`: Builds and runs workflow graphs
232
+ - `factory/`: Factory classes for creating providers
233
+ - `providers/`: AI provider implementations
234
+ - `tools/`: Tool implementations (including embedded and MCP-enabled tools)
235
+ - `agents/`: Predefined and user-created agent configurations (YAML files)
236
+
237
+ ## Contributing
238
+
239
+ Contributions to Astonish are welcome! Please follow these steps to contribute:
240
+
241
+ 1. Fork the repository
242
+ 2. Create a new branch for your feature or bug fix
243
+ 3. Make your changes and commit them with a clear commit message
244
+ 4. Push your changes to your fork
245
+ 5. Create a pull request with a description of your changes
246
+
247
+ Please ensure your code adheres to the project's coding standards and include tests for new features.
248
+
249
+ ## License
250
+
251
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
astonish-0.1/README.md ADDED
@@ -0,0 +1,225 @@
1
+ # Astonish AI Companion
2
+
3
+ Astonish is a powerful, low-code AI companion tool that allows you to create and run agentic workflows, manage AI providers, and extend capabilities through the Model Context Protocol (MCP). It provides a flexible, YAML-based framework for configuring and executing AI-powered tasks without requiring extensive coding knowledge.
4
+
5
+ ## Features
6
+
7
+ - Create and run customizable agentic workflows using a low-code, YAML-based approach
8
+ - Create new agents using an AI-powered agent creator
9
+ - Configure and manage multiple AI providers
10
+ - Extend capabilities through Model Context Protocol (MCP) support
11
+ - Integrate and use various tools within workflows, including embedded and custom tools
12
+ - Extensible architecture for adding new providers and tools
13
+ - Logging and configuration management
14
+
15
+ ## Key Concepts
16
+
17
+ ### Low-Code Agent Creation
18
+
19
+ Astonish embraces a low-code philosophy, allowing users to create complex AI agents using YAML configuration files. This approach democratizes AI agent creation, making it accessible to both developers and non-developers alike.
20
+
21
+ ### Model Context Protocol (MCP) Support
22
+
23
+ Astonish leverages the Model Context Protocol (MCP) to extend its capabilities. MCP allows for seamless integration of additional tools and resources, enhancing the power and flexibility of your AI agents.
24
+
25
+ ### Embedded Tools
26
+
27
+ Astonish comes with several powerful tools embedded out-of-the-box:
28
+
29
+ - `read_file`: Read the contents of files
30
+ - `write_file`: Write or modify file contents
31
+ - `shell_command`: Execute shell commands
32
+
33
+ These tools provide a solid foundation for creating versatile agents capable of interacting with the file system and executing system commands.
34
+
35
+ ## Installation
36
+
37
+ To install Astonish, follow these steps:
38
+
39
+ 1. Clone the repository:
40
+
41
+ ```
42
+ git clone https://github.com/yourusername/astonish.git
43
+ cd astonish
44
+ ```
45
+
46
+ 2. Build and install the package:
47
+
48
+ ```
49
+ make install
50
+ ```
51
+
52
+ This command will build the package as a wheel and install it.
53
+
54
+ 3. For development purposes, you can install in editable mode:
55
+
56
+ ```
57
+ make installdev
58
+ ```
59
+
60
+ 4. Set up the configuration:
61
+ ```
62
+ astonish setup
63
+ ```
64
+
65
+ ## Usage
66
+
67
+ ### Setup
68
+
69
+ To configure Astonish providers, use the `setup` command:
70
+
71
+ ```
72
+ astonish setup
73
+ ```
74
+
75
+ ### Creating New Agents
76
+
77
+ One of the key features of Astonish is the ability to create new agents using an AI-powered agent creator:
78
+
79
+ ```
80
+ astonish agents run agents_creator
81
+ ```
82
+
83
+ This command starts an interactive session where the AI will guide you through the process of creating a new agent using YAML configuration. Once the process is complete, your new agent will be ready for use.
84
+
85
+ ### Running Agents
86
+
87
+ To run an agentic workflow:
88
+
89
+ ```
90
+ astonish agents run <task_name>
91
+ ```
92
+
93
+ This works for both pre-defined agents and agents you've created using the `agents_creator`.
94
+
95
+ To view the flow of an agentic workflow:
96
+
97
+ ```
98
+ astonish agents flow <task_name>
99
+ ```
100
+
101
+ ### Managing Tools
102
+
103
+ To list available tools (including MCP-enabled tools):
104
+
105
+ ```
106
+ astonish tools list
107
+ ```
108
+
109
+ To edit the MCP (Model Context Protocol) configuration:
110
+
111
+ ```
112
+ astonish tools edit
113
+ ```
114
+
115
+ ## Configuration
116
+
117
+ Astonish uses configuration files stored in the user's config directory:
118
+
119
+ - `config.ini`: General configuration
120
+ - `mcp_config.json`: MCP server configuration
121
+
122
+ These files are automatically created and managed by the application.
123
+
124
+ ## Example YAML Configuration
125
+
126
+ Here's an example of an agent configuration in YAML that demonstrates tool usage:
127
+
128
+ ```yaml
129
+ description: An agent that reads a file, extracts key information, and summarizes it for the user
130
+ nodes:
131
+ - name: get_file_path
132
+ type: input
133
+ prompt: |
134
+ Please enter the path to the file you want to analyze:
135
+ output_model:
136
+ file_path: str
137
+
138
+ - name: read_file_content
139
+ type: llm
140
+ system: |
141
+ You are a file reading assistant.
142
+ prompt: |
143
+ Read the contents of the file at path: {file_path}
144
+ output_model:
145
+ file_content: str
146
+ tools: true
147
+ tools_selection:
148
+ - read_file
149
+
150
+ - name: extract_key_info
151
+ type: llm
152
+ system: |
153
+ You are an AI assistant specialized in extracting and summarizing key information from text.
154
+ prompt: |
155
+ Analyze the following file content and extract the core information:
156
+
157
+ {file_content}
158
+
159
+ Provide a concise summary of the key points.
160
+ output_model:
161
+ summary: str
162
+
163
+ - name: present_summary
164
+ type: llm
165
+ system: |
166
+ You are a helpful AI assistant presenting information to users.
167
+ prompt: |
168
+ Present the following summary to the user in a clear and engaging manner:
169
+
170
+ {summary}
171
+ output_model:
172
+ final_response: str
173
+ user_message:
174
+ - final_response
175
+
176
+ flow:
177
+ - from: START
178
+ to: get_file_path
179
+ - from: get_file_path
180
+ to: read_file_content
181
+ - from: read_file_content
182
+ to: extract_key_info
183
+ - from: extract_key_info
184
+ to: present_summary
185
+ - from: present_summary
186
+ to: END
187
+ ```
188
+
189
+ This agent demonstrates the following capabilities:
190
+
191
+ 1. Gets a file path from the user
192
+ 2. Uses the `read_file` tool to read the content of the specified file
193
+ 3. Extracts and summarizes key information from the file content
194
+ 4. Presents the summarized information to the user
195
+
196
+ The flow defines the sequence of operations, starting with user input for the file path, followed by file reading, information extraction, summary presentation, and ending the process.
197
+
198
+ ## Project Structure
199
+
200
+ - `astonish/`: Main package directory
201
+ - `main.py`: Entry point of the application
202
+ - `globals.py`: Global variables and configuration
203
+ - `core/`: Core functionality
204
+ - `agent_runner.py`: Executes agentic workflows
205
+ - `graph_builder.py`: Builds and runs workflow graphs
206
+ - `factory/`: Factory classes for creating providers
207
+ - `providers/`: AI provider implementations
208
+ - `tools/`: Tool implementations (including embedded and MCP-enabled tools)
209
+ - `agents/`: Predefined and user-created agent configurations (YAML files)
210
+
211
+ ## Contributing
212
+
213
+ Contributions to Astonish are welcome! Please follow these steps to contribute:
214
+
215
+ 1. Fork the repository
216
+ 2. Create a new branch for your feature or bug fix
217
+ 3. Make your changes and commit them with a clear commit message
218
+ 4. Push your changes to your fork
219
+ 5. Create a pull request with a description of your changes
220
+
221
+ Please ensure your code adheres to the project's coding standards and include tests for new features.
222
+
223
+ ## License
224
+
225
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
File without changes