PraisonAI 2.2.35__tar.gz → 2.2.36__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 PraisonAI might be problematic. Click here for more details.
- {praisonai-2.2.35 → praisonai-2.2.36}/PKG-INFO +2 -2
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/cli.py +48 -9
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/deploy.py +1 -1
- {praisonai-2.2.35 → praisonai-2.2.36}/pyproject.toml +4 -4
- {praisonai-2.2.35 → praisonai-2.2.36}/README.md +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/README.md +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/__init__.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/__main__.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/agents_generator.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/api/call.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/auto.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/chainlit_ui.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/inc/__init__.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/inc/config.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/inc/models.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/fantasy.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/favicon.ico +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/game.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/logo_dark.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/logo_light.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/movie.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/praison-ai-agents-architecture.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/thriller.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/scheduler.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/setup/__init__.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/setup/build.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/setup/config.yaml +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/setup/post_install.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/setup/setup_conda_env.sh +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/setup.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/test.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/train.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/train_vision.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/README.md +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/agents.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/callbacks.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/chat.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/code.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/colab.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/colab_chainlit.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/chainlit.md +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/bn.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/en-US.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/gu.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/he-IL.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/hi.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/kn.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/ml.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/mr.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/ta.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/te.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/config/translations/zh-CN.json +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/context.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/database_config.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/db.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/public/game.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/public/praison.css +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/realtime.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/realtimeclient/__init__.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/realtimeclient/tools.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/sql_alchemy.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/ui/tools.md +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/upload_vision.py +0 -0
- {praisonai-2.2.35 → praisonai-2.2.36}/praisonai/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: PraisonAI
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.36
|
|
4
4
|
Summary: PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration.
|
|
5
5
|
Author: Mervin Praison
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -64,7 +64,7 @@ Requires-Dist: playwright (>=1.47.0) ; extra == "code"
|
|
|
64
64
|
Requires-Dist: plotly (>=5.24.0) ; extra == "realtime"
|
|
65
65
|
Requires-Dist: praisonai-tools (>=0.0.15) ; extra == "autogen"
|
|
66
66
|
Requires-Dist: praisonai-tools (>=0.0.15) ; extra == "crewai"
|
|
67
|
-
Requires-Dist: praisonaiagents (>=0.0.
|
|
67
|
+
Requires-Dist: praisonaiagents (>=0.0.109)
|
|
68
68
|
Requires-Dist: pyautogen (>=0.2.19) ; extra == "autogen"
|
|
69
69
|
Requires-Dist: pydantic (<=2.10.1) ; extra == "chat"
|
|
70
70
|
Requires-Dist: pydantic (<=2.10.1) ; extra == "code"
|
|
@@ -170,6 +170,25 @@ class PraisonAI:
|
|
|
170
170
|
pass
|
|
171
171
|
return None
|
|
172
172
|
|
|
173
|
+
def read_file_if_provided(self, file_path):
|
|
174
|
+
"""
|
|
175
|
+
Read content from a file if the file path is provided.
|
|
176
|
+
Returns the file content or None if file cannot be read.
|
|
177
|
+
"""
|
|
178
|
+
if not file_path:
|
|
179
|
+
return None
|
|
180
|
+
|
|
181
|
+
try:
|
|
182
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
|
183
|
+
file_content = f.read().strip()
|
|
184
|
+
return file_content if file_content else None
|
|
185
|
+
except FileNotFoundError:
|
|
186
|
+
print(f"[red]ERROR: File not found: {file_path}[/red]")
|
|
187
|
+
sys.exit(1)
|
|
188
|
+
except Exception as e:
|
|
189
|
+
print(f"[red]ERROR: Failed to read file: {e}[/red]")
|
|
190
|
+
sys.exit(1)
|
|
191
|
+
|
|
173
192
|
def main(self):
|
|
174
193
|
"""
|
|
175
194
|
The main function of the PraisonAI object. It parses the command-line arguments,
|
|
@@ -189,15 +208,24 @@ class PraisonAI:
|
|
|
189
208
|
|
|
190
209
|
# Check for piped input from stdin
|
|
191
210
|
stdin_input = self.read_stdin_if_available()
|
|
211
|
+
|
|
212
|
+
# Check for file input if --file is provided
|
|
213
|
+
file_input = self.read_file_if_provided(getattr(args, 'file', None))
|
|
192
214
|
|
|
193
215
|
if args.command:
|
|
194
216
|
if args.command.startswith("tests.test") or args.command.startswith("tests/test"): # Argument used for testing purposes
|
|
195
217
|
print("test")
|
|
196
218
|
return "test"
|
|
197
219
|
else:
|
|
198
|
-
#
|
|
220
|
+
# Combine command with any available inputs (stdin and/or file)
|
|
221
|
+
combined_inputs = []
|
|
199
222
|
if stdin_input:
|
|
200
|
-
|
|
223
|
+
combined_inputs.append(stdin_input)
|
|
224
|
+
if file_input:
|
|
225
|
+
combined_inputs.append(file_input)
|
|
226
|
+
|
|
227
|
+
if combined_inputs:
|
|
228
|
+
combined_prompt = f"{args.command} {' '.join(combined_inputs)}"
|
|
201
229
|
result = self.handle_direct_prompt(combined_prompt)
|
|
202
230
|
print(result)
|
|
203
231
|
return result
|
|
@@ -206,20 +234,30 @@ class PraisonAI:
|
|
|
206
234
|
elif hasattr(args, 'direct_prompt') and args.direct_prompt:
|
|
207
235
|
# Only handle direct prompt if agent_file wasn't explicitly set in constructor
|
|
208
236
|
if original_agent_file == "agents.yaml": # Default value, so safe to use direct prompt
|
|
209
|
-
#
|
|
210
|
-
|
|
237
|
+
# Combine direct prompt with any available inputs (stdin and/or file)
|
|
238
|
+
prompt_parts = [args.direct_prompt]
|
|
211
239
|
if stdin_input:
|
|
212
|
-
|
|
240
|
+
prompt_parts.append(stdin_input)
|
|
241
|
+
if file_input:
|
|
242
|
+
prompt_parts.append(file_input)
|
|
243
|
+
prompt = ' '.join(prompt_parts)
|
|
213
244
|
result = self.handle_direct_prompt(prompt)
|
|
214
245
|
print(result)
|
|
215
246
|
return result
|
|
216
247
|
else:
|
|
217
248
|
# Agent file was explicitly set, ignore direct prompt and use the file
|
|
218
249
|
pass
|
|
219
|
-
elif stdin_input:
|
|
220
|
-
# If only stdin input is provided (no command), use it as direct prompt
|
|
221
|
-
if original_agent_file == "agents.yaml": # Default value, so safe to use
|
|
222
|
-
|
|
250
|
+
elif stdin_input or file_input:
|
|
251
|
+
# If only stdin/file input is provided (no command), use it as direct prompt
|
|
252
|
+
if original_agent_file == "agents.yaml": # Default value, so safe to use input as prompt
|
|
253
|
+
# Combine any available inputs
|
|
254
|
+
inputs = []
|
|
255
|
+
if stdin_input:
|
|
256
|
+
inputs.append(stdin_input)
|
|
257
|
+
if file_input:
|
|
258
|
+
inputs.append(file_input)
|
|
259
|
+
combined_input = ' '.join(inputs)
|
|
260
|
+
result = self.handle_direct_prompt(combined_input)
|
|
223
261
|
print(result)
|
|
224
262
|
return result
|
|
225
263
|
# If no command or direct_prompt, preserve agent_file from constructor (don't overwrite)
|
|
@@ -530,6 +568,7 @@ class PraisonAI:
|
|
|
530
568
|
parser.add_argument("--public", action="store_true", help="Use ngrok to expose the server publicly (only with --call)")
|
|
531
569
|
parser.add_argument("--merge", action="store_true", help="Merge existing agents.yaml with auto-generated agents instead of overwriting")
|
|
532
570
|
parser.add_argument("--claudecode", action="store_true", help="Enable Claude Code integration for file modifications and coding tasks")
|
|
571
|
+
parser.add_argument("--file", "-f", type=str, help="Read input from a file and append it to the prompt")
|
|
533
572
|
|
|
534
573
|
# If we're in a test environment, parse with empty args to avoid pytest interference
|
|
535
574
|
if in_test_env:
|
|
@@ -56,7 +56,7 @@ class CloudDeployer:
|
|
|
56
56
|
file.write("FROM python:3.11-slim\n")
|
|
57
57
|
file.write("WORKDIR /app\n")
|
|
58
58
|
file.write("COPY . .\n")
|
|
59
|
-
file.write("RUN pip install flask praisonai==2.2.
|
|
59
|
+
file.write("RUN pip install flask praisonai==2.2.36 gunicorn markdown\n")
|
|
60
60
|
file.write("EXPOSE 8080\n")
|
|
61
61
|
file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
|
|
62
62
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "PraisonAI"
|
|
3
|
-
version = "2.2.
|
|
3
|
+
version = "2.2.36"
|
|
4
4
|
description = "PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = ""
|
|
@@ -12,7 +12,7 @@ dependencies = [
|
|
|
12
12
|
"rich>=13.7",
|
|
13
13
|
"markdown>=3.5",
|
|
14
14
|
"pyparsing>=3.0.0",
|
|
15
|
-
"praisonaiagents>=0.0.
|
|
15
|
+
"praisonaiagents>=0.0.109",
|
|
16
16
|
"python-dotenv>=0.19.0",
|
|
17
17
|
"instructor>=1.3.3",
|
|
18
18
|
"PyYAML>=6.0",
|
|
@@ -95,7 +95,7 @@ autogen = ["pyautogen>=0.2.19", "praisonai-tools>=0.0.15", "crewai"]
|
|
|
95
95
|
|
|
96
96
|
[tool.poetry]
|
|
97
97
|
name = "PraisonAI"
|
|
98
|
-
version = "2.2.
|
|
98
|
+
version = "2.2.36"
|
|
99
99
|
description = "PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration."
|
|
100
100
|
authors = ["Mervin Praison"]
|
|
101
101
|
license = ""
|
|
@@ -113,7 +113,7 @@ python = ">=3.10,<3.13"
|
|
|
113
113
|
rich = ">=13.7"
|
|
114
114
|
markdown = ">=3.5"
|
|
115
115
|
pyparsing = ">=3.0.0"
|
|
116
|
-
praisonaiagents = ">=0.0.
|
|
116
|
+
praisonaiagents = ">=0.0.109"
|
|
117
117
|
python-dotenv = ">=0.19.0"
|
|
118
118
|
instructor = ">=1.3.3"
|
|
119
119
|
PyYAML = ">=6.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai-2.2.35 → praisonai-2.2.36}/praisonai/public/praison-ai-agents-architecture-dark.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|