Skip to content

Commit cb401fe

Browse files
committed
feat(version): bump version to 1.6.10 and update dependencies
Updated the version in `pyproject.toml` and `uv.lock` to 1.6.10. Modified dependencies in `pyproject.toml` for clarity and to include new libraries necessary for core agent functionality. Fixed file handling in the SetupHandler and improved path resolution in tests. Added checks for missing required arguments in the setup command tests.
1 parent e1642ee commit cb401fe

File tree

6 files changed

+43
-18
lines changed

6 files changed

+43
-18
lines changed

src/praisonai-agents/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "praisonaiagents"
7-
version = "1.6.9"
7+
version = "1.6.10"
88
description = "Praison AI agents for completing complex tasks with Self Reflection Agents"
99
readme = "README.md"
1010
requires-python = ">=3.10"

src/praisonai-agents/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/praisonai/praisonai/cli/features/setup/handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ def _save_env(self, praison_home: Path, env_vars: Dict[str, str], output) -> Non
281281
def secure_opener(path, flags):
282282
return os.open(path, flags, 0o600)
283283

284-
with env_file.open("w", encoding="utf-8", opener=secure_opener) as file:
284+
with open(env_file, "w", encoding="utf-8", opener=secure_opener) as file:
285285
file.write(env_content)
286286
env_file.chmod(0o600)
287287

src/praisonai/pyproject.toml

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,31 +110,45 @@ lite = [
110110
# Use: pip install praisonai[lite] for lightweight deployments
111111
]
112112
all = [
113-
# Full installation with all main features
114-
"aiui>=0.3.100",
115-
"gradio>=4.26.0",
116-
"flask>=3.0.0",
113+
# Full installation — trimmed to what `praisonai onboard` + gateway + core
114+
# agent loops actually need out of the box. Heavy UI/science/telemetry
115+
# stacks live in their own extras (`[ui]`, `[gradio]`, `[realtime]`,
116+
# `[observability]`) so the default install stays lean and every
117+
# messaging bot the onboarding wizard offers runs without a second
118+
# `pip install`.
119+
# Gateway / web surface
117120
"fastapi>=0.115.0",
118121
"uvicorn>=0.34.0",
119122
"sse-starlette>=1.6.0",
123+
"websockets>=12.0",
124+
# Browser + search tools (agent defaults)
120125
"tavily-python==0.5.0",
121126
"crawl4ai>=0.7.0",
122127
"playwright>=1.47.0",
123-
"websockets>=12.0",
124-
"plotly>=5.24.0",
125-
"yfinance>=0.2.44",
126128
"ddgs>=9.0.0",
127129
"psutil>=5.9.0", # Shell tools
128-
# Observability
129-
"langfuse>=3.0.0",
130+
# Messaging bot SDKs — required by `praisonai onboard` (Telegram, Discord,
131+
# Slack, WhatsApp Cloud). Kept in sync with the [bot] extra below.
132+
"python-telegram-bot>=20.0",
133+
"discord.py>=2.0.0",
134+
"slack_sdk>=3.0.0",
135+
"slack-bolt>=1.18.0",
136+
"brotlicffi>=1.0.0",
137+
"aiohttp>=3.8.0",
130138
# Storage backends
131139
"redis>=5.0.0",
132-
"pymongo>=4.6.0",
140+
"pymongo>=4.6.0",
133141
"psycopg2-binary>=2.9.0",
134142
"boto3>=1.35.0",
135143
# n8n integration
136144
"httpx>=0.27.0",
137145
]
146+
observability = [
147+
# Telemetry stack (Langfuse + transitive OpenTelemetry instrumentations).
148+
# Opt-in because it pulls 40+ packages. For back-compat the existing
149+
# [langfuse] extra (declared above) remains as an alias.
150+
"langfuse>=3.0.0",
151+
]
138152
bot = [
139153
# Dependencies for Telegram, Discord, Slack, and WhatsApp bots
140154
"python-telegram-bot>=20.0",

src/praisonai/tests/integration/test_install_sh_bot_onboarding.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,20 @@
77
import os
88
import tempfile
99
import subprocess
10+
from pathlib import Path
1011
from unittest.mock import patch
1112
import pytest
1213

1314

15+
# Resolve install.sh relative to this test file so it works in any checkout.
16+
SCRIPT_PATH = (
17+
Path(__file__).resolve().parents[2] / "scripts" / "install.sh"
18+
)
19+
20+
1421
def test_install_sh_mentions_bot_onboarding():
1522
"""Test that install.sh mentions bot onboarding in dry-run mode."""
16-
script_path = "/home/runner/work/PraisonAI/PraisonAI/src/praisonai/scripts/install.sh"
23+
script_path = str(SCRIPT_PATH)
1724

1825
# Check that the function exists in the script
1926
with open(script_path, 'r') as f:
@@ -27,7 +34,7 @@ def test_install_sh_mentions_bot_onboarding():
2734

2835
def test_bot_onboarding_function_logic():
2936
"""Test the logic of the bot onboarding function."""
30-
script_path = "/home/runner/work/PraisonAI/PraisonAI/src/praisonai/scripts/install.sh"
37+
script_path = str(SCRIPT_PATH)
3138

3239
with open(script_path, 'r') as f:
3340
content = f.read()
@@ -50,7 +57,7 @@ def test_bot_onboarding_function_logic():
5057

5158
def test_install_sh_has_no_syntax_errors():
5259
"""Test that install.sh has no basic syntax errors."""
53-
script_path = "/home/runner/work/PraisonAI/PraisonAI/src/praisonai/scripts/install.sh"
60+
script_path = str(SCRIPT_PATH)
5461

5562
# Simple syntax validation - check for basic shell syntax issues
5663
with open(script_path, 'r') as f:

src/praisonai/tests/unit/cli/test_setup_command.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,18 @@ def test_setup_interactive_mode(self, mock_getpass, mock_confirm, mock_prompt, t
195195
env_content = env_file.read_text()
196196
assert "OPENAI_API_KEY=sk-interactive123" in env_content
197197

198-
def test_setup_missing_required_args(self):
198+
def test_setup_missing_required_args(self, monkeypatch):
199199
"""Test that setup fails when required args are missing in non-interactive mode."""
200+
# Ensure no provider API key is present in the environment
201+
for key in ("OPENAI_API_KEY", "ANTHROPIC_API_KEY", "GEMINI_API_KEY"):
202+
monkeypatch.delenv(key, raising=False)
203+
200204
result = runner.invoke(app, [
201205
"--non-interactive",
202206
"--provider", "openai"
203207
# Missing --api-key
204208
])
205-
209+
206210
assert result.exit_code != 0
207211
assert "API key is required" in result.stdout or "required" in result.stdout
208212

0 commit comments

Comments
 (0)