praisonAI 2.3.45__tar.gz → 2.3.46__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 (106) hide show
  1. {praisonai-2.3.45 → praisonai-2.3.46}/PKG-INFO +1 -1
  2. {praisonai-2.3.45 → praisonai-2.3.46}/PraisonAI.egg-info/PKG-INFO +1 -1
  3. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/main.py +83 -0
  4. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/deploy.py +1 -1
  5. praisonai-2.3.46/praisonai/version.py +1 -0
  6. praisonai-2.3.45/praisonai/version.py +0 -1
  7. {praisonai-2.3.45 → praisonai-2.3.46}/PraisonAI.egg-info/SOURCES.txt +0 -0
  8. {praisonai-2.3.45 → praisonai-2.3.46}/PraisonAI.egg-info/dependency_links.txt +0 -0
  9. {praisonai-2.3.45 → praisonai-2.3.46}/PraisonAI.egg-info/entry_points.txt +0 -0
  10. {praisonai-2.3.45 → praisonai-2.3.46}/PraisonAI.egg-info/requires.txt +0 -0
  11. {praisonai-2.3.45 → praisonai-2.3.46}/PraisonAI.egg-info/top_level.txt +0 -0
  12. {praisonai-2.3.45 → praisonai-2.3.46}/README.md +0 -0
  13. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/__init__.py +0 -0
  14. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/__main__.py +0 -0
  15. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/agents_generator.py +0 -0
  16. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/api/call.py +0 -0
  17. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/auto.py +0 -0
  18. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/chainlit_ui.py +0 -0
  19. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/__init__.py +0 -0
  20. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/__init__.py +0 -0
  21. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/auto_memory.py +0 -0
  22. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/autonomy_mode.py +0 -0
  23. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/base.py +0 -0
  24. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/cost_tracker.py +0 -0
  25. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/external_agents.py +0 -0
  26. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/fast_context.py +0 -0
  27. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/flow_display.py +0 -0
  28. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/git_integration.py +0 -0
  29. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/guardrail.py +0 -0
  30. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/handoff.py +0 -0
  31. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/image.py +0 -0
  32. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/interactive_tui.py +0 -0
  33. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/knowledge.py +0 -0
  34. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/mcp.py +0 -0
  35. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/metrics.py +0 -0
  36. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/n8n.py +0 -0
  37. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/repo_map.py +0 -0
  38. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/router.py +0 -0
  39. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/sandbox_executor.py +0 -0
  40. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/session.py +0 -0
  41. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/slash_commands.py +0 -0
  42. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/telemetry.py +0 -0
  43. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/todo.py +0 -0
  44. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/tools.py +0 -0
  45. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/cli/features/workflow.py +0 -0
  46. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/__init__.py +0 -0
  47. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/agent_tools.py +0 -0
  48. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/diff/__init__.py +0 -0
  49. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/diff/diff_strategy.py +0 -0
  50. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/tools/__init__.py +0 -0
  51. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/tools/apply_diff.py +0 -0
  52. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/tools/execute_command.py +0 -0
  53. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/tools/list_files.py +0 -0
  54. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/tools/read_file.py +0 -0
  55. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/tools/search_replace.py +0 -0
  56. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/tools/write_file.py +0 -0
  57. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/utils/__init__.py +0 -0
  58. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/utils/file_utils.py +0 -0
  59. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/utils/ignore_utils.py +0 -0
  60. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/code/utils/text_utils.py +0 -0
  61. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/inbuilt_tools/__init__.py +0 -0
  62. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  63. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/inc/__init__.py +0 -0
  64. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/inc/config.py +0 -0
  65. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/inc/models.py +0 -0
  66. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/integrations/__init__.py +0 -0
  67. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/integrations/base.py +0 -0
  68. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/integrations/claude_code.py +0 -0
  69. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/integrations/codex_cli.py +0 -0
  70. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/integrations/cursor_cli.py +0 -0
  71. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/integrations/gemini_cli.py +0 -0
  72. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/scheduler.py +0 -0
  73. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/setup/__init__.py +0 -0
  74. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/setup/build.py +0 -0
  75. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/setup/post_install.py +0 -0
  76. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/setup/setup_conda_env.py +0 -0
  77. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/setup.py +0 -0
  78. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/test.py +0 -0
  79. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/train.py +0 -0
  80. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/train_vision.py +0 -0
  81. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/agents.py +0 -0
  82. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/callbacks.py +0 -0
  83. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/chat.py +0 -0
  84. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/code.py +0 -0
  85. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/colab.py +0 -0
  86. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/colab_chainlit.py +0 -0
  87. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/components/aicoder.py +0 -0
  88. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/context.py +0 -0
  89. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/database_config.py +0 -0
  90. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/db.py +0 -0
  91. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/realtime.py +0 -0
  92. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/realtimeclient/__init__.py +0 -0
  93. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/realtimeclient/tools.py +0 -0
  94. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/ui/sql_alchemy.py +0 -0
  95. {praisonai-2.3.45 → praisonai-2.3.46}/praisonai/upload_vision.py +0 -0
  96. {praisonai-2.3.45 → praisonai-2.3.46}/pyproject.toml +0 -0
  97. {praisonai-2.3.45 → praisonai-2.3.46}/setup.cfg +0 -0
  98. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test.py +0 -0
  99. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_agents_playbook.py +0 -0
  100. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_basic.py +0 -0
  101. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_cli_features.py +0 -0
  102. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_custom_tools_fix.py +0 -0
  103. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_double_api_fix.py +0 -0
  104. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_n8n_integration.py +0 -0
  105. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_phase2_refactor.py +0 -0
  106. {praisonai-2.3.45 → praisonai-2.3.46}/tests/test_runner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 2.3.45
3
+ Version: 2.3.46
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 2.3.45
3
+ Version: 2.3.46
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
@@ -209,6 +209,11 @@ class PraisonAI:
209
209
  invocation_cmd = "praisonai"
210
210
  version_string = f"PraisonAI version {__version__}"
211
211
 
212
+ # Handle --interactive flag - start interactive TUI mode
213
+ if getattr(args, 'interactive', False):
214
+ self._start_interactive_mode(args)
215
+ return None
216
+
212
217
  self.framework = args.framework or self.framework
213
218
 
214
219
  # Update config_list model if --model flag is provided
@@ -690,6 +695,15 @@ class PraisonAI:
690
695
  parser.add_argument("--port", type=int, default=8005, help="Server port (default: 8005)")
691
696
  parser.add_argument("--host", type=str, default="127.0.0.1", help="Server host (default: 127.0.0.1)")
692
697
 
698
+ # Interactive TUI - terminal interface with slash commands
699
+ parser.add_argument("--interactive", "-i", action="store_true", help="Start interactive terminal mode with slash commands")
700
+
701
+ # Autonomy Mode - control AI action approval
702
+ parser.add_argument("--autonomy", type=str, choices=["suggest", "auto_edit", "full_auto"], help="Set autonomy mode for AI actions")
703
+
704
+ # Sandbox Execution - secure command execution
705
+ parser.add_argument("--sandbox", type=str, choices=["off", "basic", "strict"], help="Enable sandboxed command execution")
706
+
693
707
  # If we're in a test environment, parse with empty args to avoid pytest interference
694
708
  if in_test_env:
695
709
  args, unknown_args = parser.parse_known_args([])
@@ -3605,6 +3619,75 @@ Now, {final_instruction.lower()}:"""
3605
3619
  print(f"[red]ERROR: Research failed: {e}[/red]")
3606
3620
  sys.exit(1)
3607
3621
 
3622
+ def _start_interactive_mode(self, args):
3623
+ """Start interactive TUI mode with slash commands."""
3624
+ try:
3625
+ from praisonai.cli.features import InteractiveTUIHandler, SlashCommandHandler, CostTrackerHandler
3626
+ from praisonai.cli.features.interactive_tui import InteractiveConfig
3627
+
3628
+ # Initialize handlers
3629
+ slash_handler = SlashCommandHandler()
3630
+ cost_handler = CostTrackerHandler()
3631
+ cost_handler.initialize()
3632
+
3633
+ # Configure interactive session
3634
+ config = InteractiveConfig(
3635
+ prompt="praisonai> ",
3636
+ multiline=False,
3637
+ enable_completions=True,
3638
+ show_status_bar=True
3639
+ )
3640
+
3641
+ # Define input handler
3642
+ def on_input(text):
3643
+ """Handle regular input - send to agent."""
3644
+ if not text.strip():
3645
+ return ""
3646
+
3647
+ # Track cost if enabled
3648
+ result = self.handle_direct_prompt(text)
3649
+ return result
3650
+
3651
+ # Define command handler
3652
+ def on_command(cmd):
3653
+ """Handle slash commands."""
3654
+ result = slash_handler.execute(cmd)
3655
+ if result.get("type") == "exit":
3656
+ return result
3657
+
3658
+ # Handle special commands
3659
+ if result.get("type") == "cost":
3660
+ return {"type": "info", "message": cost_handler.get_summary()}
3661
+
3662
+ return result
3663
+
3664
+ # Initialize TUI handler
3665
+ tui_handler = InteractiveTUIHandler()
3666
+ session = tui_handler.initialize(
3667
+ config=config,
3668
+ on_input=on_input,
3669
+ on_command=on_command
3670
+ )
3671
+
3672
+ # Add slash commands for completion
3673
+ session.add_commands(["help", "exit", "quit", "cost", "tokens", "model", "diff", "commit", "undo", "plan", "map", "clear", "settings"])
3674
+
3675
+ print("[bold green]PraisonAI Interactive Mode[/bold green]")
3676
+ print("Type your prompt or use /help for commands. /exit to quit.\n")
3677
+
3678
+ # Run the interactive session
3679
+ tui_handler.run()
3680
+
3681
+ except ImportError as e:
3682
+ print(f"[red]ERROR: Interactive mode requires additional dependencies: {e}[/red]")
3683
+ print("Install with: pip install prompt_toolkit")
3684
+ sys.exit(1)
3685
+ except KeyboardInterrupt:
3686
+ print("\n[yellow]Exiting interactive mode.[/yellow]")
3687
+ except Exception as e:
3688
+ print(f"[red]ERROR: Interactive mode failed: {e}[/red]")
3689
+ sys.exit(1)
3690
+
3608
3691
  if __name__ == "__main__":
3609
3692
  praison_ai = PraisonAI()
3610
3693
  praison_ai.main()
@@ -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.3.45 gunicorn markdown\n")
60
+ file.write("RUN pip install flask praisonai==2.3.46 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.3.46"
@@ -1 +0,0 @@
1
- __version__ = "2.3.45"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes