praisonAI 2.2.95__tar.gz → 2.2.96__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.
Files changed (56) hide show
  1. {praisonai-2.2.95 → praisonai-2.2.96}/PKG-INFO +12 -2
  2. {praisonai-2.2.95 → praisonai-2.2.96}/PraisonAI.egg-info/PKG-INFO +12 -2
  3. {praisonai-2.2.95 → praisonai-2.2.96}/PraisonAI.egg-info/requires.txt +1 -1
  4. {praisonai-2.2.95 → praisonai-2.2.96}/README.md +10 -0
  5. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/cli.py +46 -3
  6. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/deploy.py +1 -1
  7. praisonai-2.2.96/praisonai/version.py +1 -0
  8. {praisonai-2.2.95 → praisonai-2.2.96}/pyproject.toml +1 -1
  9. praisonai-2.2.95/praisonai/version.py +0 -1
  10. {praisonai-2.2.95 → praisonai-2.2.96}/PraisonAI.egg-info/SOURCES.txt +0 -0
  11. {praisonai-2.2.95 → praisonai-2.2.96}/PraisonAI.egg-info/dependency_links.txt +0 -0
  12. {praisonai-2.2.95 → praisonai-2.2.96}/PraisonAI.egg-info/entry_points.txt +0 -0
  13. {praisonai-2.2.95 → praisonai-2.2.96}/PraisonAI.egg-info/top_level.txt +0 -0
  14. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/__init__.py +0 -0
  15. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/__main__.py +0 -0
  16. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/agents_generator.py +0 -0
  17. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/api/call.py +0 -0
  18. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/auto.py +0 -0
  19. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/chainlit_ui.py +0 -0
  20. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/inbuilt_tools/__init__.py +0 -0
  21. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  22. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/inc/__init__.py +0 -0
  23. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/inc/config.py +0 -0
  24. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/inc/models.py +0 -0
  25. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/scheduler.py +0 -0
  26. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/setup/__init__.py +0 -0
  27. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/setup/build.py +0 -0
  28. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/setup/post_install.py +0 -0
  29. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/setup/setup_conda_env.py +0 -0
  30. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/setup.py +0 -0
  31. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/test.py +0 -0
  32. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/train.py +0 -0
  33. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/train_vision.py +0 -0
  34. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/agents.py +0 -0
  35. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/callbacks.py +0 -0
  36. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/chat.py +0 -0
  37. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/code.py +0 -0
  38. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/colab.py +0 -0
  39. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/colab_chainlit.py +0 -0
  40. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/components/aicoder.py +0 -0
  41. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/context.py +0 -0
  42. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/database_config.py +0 -0
  43. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/db.py +0 -0
  44. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/realtime.py +0 -0
  45. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/realtimeclient/__init__.py +0 -0
  46. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/realtimeclient/tools.py +0 -0
  47. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/ui/sql_alchemy.py +0 -0
  48. {praisonai-2.2.95 → praisonai-2.2.96}/praisonai/upload_vision.py +0 -0
  49. {praisonai-2.2.95 → praisonai-2.2.96}/setup.cfg +0 -0
  50. {praisonai-2.2.95 → praisonai-2.2.96}/tests/test.py +0 -0
  51. {praisonai-2.2.95 → praisonai-2.2.96}/tests/test_agents_playbook.py +0 -0
  52. {praisonai-2.2.95 → praisonai-2.2.96}/tests/test_basic.py +0 -0
  53. {praisonai-2.2.95 → praisonai-2.2.96}/tests/test_custom_tools_fix.py +0 -0
  54. {praisonai-2.2.95 → praisonai-2.2.96}/tests/test_double_api_fix.py +0 -0
  55. {praisonai-2.2.95 → praisonai-2.2.96}/tests/test_phase2_refactor.py +0 -0
  56. {praisonai-2.2.95 → praisonai-2.2.96}/tests/test_runner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 2.2.95
3
+ Version: 2.2.96
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
  License: MIT
@@ -11,7 +11,7 @@ Description-Content-Type: text/markdown
11
11
  Requires-Dist: rich>=13.7
12
12
  Requires-Dist: markdown>=3.5
13
13
  Requires-Dist: pyparsing>=3.0.0
14
- Requires-Dist: praisonaiagents>=0.0.166
14
+ Requires-Dist: praisonaiagents>=0.0.167
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: instructor>=1.3.3
17
17
  Requires-Dist: PyYAML>=6.0
@@ -119,3 +119,13 @@ python src/praisonai/scripts/bump_version.py 2.2.96
119
119
  # With praisonaiagents dependency
120
120
  python src/praisonai/scripts/bump_version.py 2.2.96 --agents 0.0.167
121
121
  ```
122
+
123
+ ## Release
124
+
125
+ ```bash
126
+ # From project root (runs uv lock, build, git tag, gh release)
127
+ python src/praisonai/scripts/release.py
128
+
129
+ # Then publish
130
+ cd src/praisonai && uv publish
131
+ ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 2.2.95
3
+ Version: 2.2.96
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
  License: MIT
@@ -11,7 +11,7 @@ Description-Content-Type: text/markdown
11
11
  Requires-Dist: rich>=13.7
12
12
  Requires-Dist: markdown>=3.5
13
13
  Requires-Dist: pyparsing>=3.0.0
14
- Requires-Dist: praisonaiagents>=0.0.166
14
+ Requires-Dist: praisonaiagents>=0.0.167
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: instructor>=1.3.3
17
17
  Requires-Dist: PyYAML>=6.0
@@ -119,3 +119,13 @@ python src/praisonai/scripts/bump_version.py 2.2.96
119
119
  # With praisonaiagents dependency
120
120
  python src/praisonai/scripts/bump_version.py 2.2.96 --agents 0.0.167
121
121
  ```
122
+
123
+ ## Release
124
+
125
+ ```bash
126
+ # From project root (runs uv lock, build, git tag, gh release)
127
+ python src/praisonai/scripts/release.py
128
+
129
+ # Then publish
130
+ cd src/praisonai && uv publish
131
+ ```
@@ -1,7 +1,7 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=0.0.166
4
+ praisonaiagents>=0.0.167
5
5
  python-dotenv>=0.19.0
6
6
  instructor>=1.3.3
7
7
  PyYAML>=6.0
@@ -22,3 +22,13 @@ python src/praisonai/scripts/bump_version.py 2.2.96
22
22
  # With praisonaiagents dependency
23
23
  python src/praisonai/scripts/bump_version.py 2.2.96 --agents 0.0.167
24
24
  ```
25
+
26
+ ## Release
27
+
28
+ ```bash
29
+ # From project root (runs uv lock, build, git tag, gh release)
30
+ python src/praisonai/scripts/release.py
31
+
32
+ # Then publish
33
+ cd src/praisonai && uv publish
34
+ ```
@@ -579,6 +579,7 @@ class PraisonAI:
579
579
  parser.add_argument("--auto-analyze", action="store_true", help="Enable automatic analysis in context engineering")
580
580
  parser.add_argument("--research", action="store_true", help="Run deep research on a topic")
581
581
  parser.add_argument("--query-rewrite", action="store_true", help="Rewrite query before research for better results")
582
+ parser.add_argument("--rewrite-tools", type=str, help="Tools for query rewriter (e.g., 'internet_search' or path to tools.py)")
582
583
  parser.add_argument("--tools", "-t", type=str, help="Path to tools.py file for research agent")
583
584
  parser.add_argument("--save", "-s", action="store_true", help="Save research output to file (output/research/)")
584
585
  parser.add_argument("--verbose", "-v", action="store_true", help="Enable verbose output for research")
@@ -724,8 +725,9 @@ class PraisonAI:
724
725
  verbose = getattr(args, 'verbose', False)
725
726
  save = getattr(args, 'save', False)
726
727
  query_rewrite = getattr(args, 'query_rewrite', False)
728
+ rewrite_tools = getattr(args, 'rewrite_tools', None)
727
729
  tools_path = getattr(args, 'tools', None)
728
- self.handle_research_command(research_query, research_model, verbose, save, query_rewrite, tools_path)
730
+ self.handle_research_command(research_query, research_model, verbose, save, query_rewrite, tools_path, rewrite_tools)
729
731
  sys.exit(0)
730
732
 
731
733
  # Only check framework availability for agent-related operations
@@ -965,7 +967,7 @@ class PraisonAI:
965
967
  print(f"[red]ERROR: Context engineering failed: {e}[/red]")
966
968
  sys.exit(1)
967
969
 
968
- def handle_research_command(self, query: str, model: str = None, verbose: bool = False, save: bool = False, query_rewrite: bool = False, tools_path: str = None) -> str:
970
+ def handle_research_command(self, query: str, model: str = None, verbose: bool = False, save: bool = False, query_rewrite: bool = False, tools_path: str = None, rewrite_tools: str = None) -> str:
969
971
  """
970
972
  Handle the research command by creating a DeepResearchAgent and running it.
971
973
 
@@ -976,6 +978,7 @@ class PraisonAI:
976
978
  save: Save output to file (default: False)
977
979
  query_rewrite: Rewrite query before research (default: False)
978
980
  tools_path: Path to tools.py file with custom tools (default: None)
981
+ rewrite_tools: Tools for query rewriter (tool names or file path)
979
982
 
980
983
  Returns:
981
984
  str: Research report
@@ -996,7 +999,47 @@ class PraisonAI:
996
999
  try:
997
1000
  from praisonaiagents import QueryRewriterAgent, RewriteStrategy
998
1001
  print("[bold cyan]Rewriting query for better research results...[/bold cyan]")
999
- rewriter = QueryRewriterAgent(model="gpt-4o-mini", verbose=False)
1002
+
1003
+ # Load rewrite tools if specified
1004
+ rewrite_tools_list = []
1005
+ if rewrite_tools:
1006
+ if os.path.isfile(rewrite_tools):
1007
+ # Load from file
1008
+ try:
1009
+ import inspect
1010
+ spec = importlib.util.spec_from_file_location("rewrite_tools_module", rewrite_tools)
1011
+ if spec and spec.loader:
1012
+ module = importlib.util.module_from_spec(spec)
1013
+ spec.loader.exec_module(module)
1014
+ for name, obj in inspect.getmembers(module):
1015
+ if inspect.isfunction(obj) and not name.startswith('_'):
1016
+ rewrite_tools_list.append(obj)
1017
+ if rewrite_tools_list:
1018
+ print(f"[cyan]Loaded {len(rewrite_tools_list)} tools for query rewriter[/cyan]")
1019
+ except Exception as e:
1020
+ print(f"[yellow]Warning: Failed to load rewrite tools: {e}[/yellow]")
1021
+ else:
1022
+ # Treat as comma-separated tool names
1023
+ try:
1024
+ from praisonaiagents.tools import TOOL_MAPPINGS
1025
+ import praisonaiagents.tools as tools_module
1026
+
1027
+ tool_names = [t.strip() for t in rewrite_tools.split(',')]
1028
+ for tool_name in tool_names:
1029
+ if tool_name in TOOL_MAPPINGS:
1030
+ try:
1031
+ tool = getattr(tools_module, tool_name)
1032
+ rewrite_tools_list.append(tool)
1033
+ except Exception as e:
1034
+ print(f"[yellow]Warning: Failed to load rewrite tool '{tool_name}': {e}[/yellow]")
1035
+ else:
1036
+ print(f"[yellow]Warning: Unknown rewrite tool '{tool_name}'[/yellow]")
1037
+ if rewrite_tools_list:
1038
+ print(f"[cyan]Using rewrite tools: {', '.join(tool_names)}[/cyan]")
1039
+ except ImportError:
1040
+ print("[yellow]Warning: Could not import tools module[/yellow]")
1041
+
1042
+ rewriter = QueryRewriterAgent(model="gpt-4o-mini", verbose=verbose, tools=rewrite_tools_list if rewrite_tools_list else None)
1000
1043
  result = rewriter.rewrite(query, strategy=RewriteStrategy.AUTO)
1001
1044
  query = result.primary_query
1002
1045
  print(f"[cyan]Original:[/cyan] {original_query}")
@@ -57,7 +57,7 @@ class CloudDeployer:
57
57
  file.write("FROM python:3.11-slim\n")
58
58
  file.write("WORKDIR /app\n")
59
59
  file.write("COPY . .\n")
60
- file.write("RUN pip install flask praisonai==2.2.95 gunicorn markdown\n")
60
+ file.write("RUN pip install flask praisonai==2.2.96 gunicorn markdown\n")
61
61
  file.write("EXPOSE 8080\n")
62
62
  file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
63
63
 
@@ -0,0 +1 @@
1
+ __version__ = "2.2.96"
@@ -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.166",
15
+ "praisonaiagents>=0.0.167",
16
16
  "python-dotenv>=0.19.0",
17
17
  "instructor>=1.3.3",
18
18
  "PyYAML>=6.0",
@@ -1 +0,0 @@
1
- __version__ = "2.2.95"
File without changes
File without changes
File without changes
File without changes