Skip to content

Commit d1fb090

Browse files
committed
Release v4.5.30
1 parent 8479fff commit d1fb090

10 files changed

Lines changed: 120 additions & 12 deletions

File tree

docker/Dockerfile.chat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ RUN mkdir -p /root/.praison
1616
# Install Python packages (using latest versions)
1717
RUN pip install --no-cache-dir \
1818
praisonai_tools \
19-
"praisonai>=4.5.29" \
19+
"praisonai>=4.5.30" \
2020
"praisonai[chat]" \
2121
"embedchain[github,youtube]"
2222

docker/Dockerfile.dev

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ RUN mkdir -p /root/.praison
2020
# Install Python packages (using latest versions)
2121
RUN pip install --no-cache-dir \
2222
praisonai_tools \
23-
"praisonai>=4.5.29" \
23+
"praisonai>=4.5.30" \
2424
"praisonai[ui]" \
2525
"praisonai[chat]" \
2626
"praisonai[realtime]" \

docker/Dockerfile.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ RUN mkdir -p /root/.praison
1616
# Install Python packages (using latest versions)
1717
RUN pip install --no-cache-dir \
1818
praisonai_tools \
19-
"praisonai>=4.5.29" \
19+
"praisonai>=4.5.30" \
2020
"praisonai[ui]" \
2121
"praisonai[crewai]"
2222

src/praisonai/praisonai.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ class Praisonai < Formula
33

44
desc "AI tools for various AI applications"
55
homepage "https://github.com/MervinPraison/PraisonAI"
6-
url "https://github.com/MervinPraison/PraisonAI/archive/refs/tags/v4.5.29.tar.gz"
7-
sha256 `curl -sL https://github.com/MervinPraison/PraisonAI/archive/refs/tags/v4.5.29.tar.gz | shasum -a 256`.split.first
6+
url "https://github.com/MervinPraison/PraisonAI/archive/refs/tags/v4.5.30.tar.gz"
7+
sha256 `curl -sL https://github.com/MervinPraison/PraisonAI/archive/refs/tags/v4.5.30.tar.gz | shasum -a 256`.split.first
88
license "MIT"
99

1010
depends_on "python@3.11"

src/praisonai/praisonai/cli/app.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ def register_commands():
184184
from .commands.run import app as run_app
185185
from .commands.profile import app as profile_app
186186
from .commands.benchmark import app as benchmark_app
187+
from .commands.paths import app as paths_app
187188

188189
# Import new command modules - Previously legacy-only commands
189190
from .commands.chat import app as chat_app
@@ -252,6 +253,7 @@ def register_commands():
252253
app.add_typer(run_app, name="run", help="Run agents")
253254
app.add_typer(profile_app, name="profile", help="Performance profiling and diagnostics")
254255
app.add_typer(benchmark_app, name="benchmark", help="Comprehensive performance benchmarking")
256+
app.add_typer(paths_app, name="paths", help="Storage path inspection and migration")
255257

256258
# Register sub-apps - Terminal-native commands
257259
app.add_typer(chat_app, name="chat", help="Terminal-native interactive chat (REPL)")
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
"""
2+
Paths command group for PraisonAI CLI.
3+
4+
Provides path inspection:
5+
- paths show: Display all resolved storage paths
6+
"""
7+
8+
import os
9+
from pathlib import Path
10+
11+
import typer
12+
13+
from ..output.console import get_output_controller
14+
15+
app = typer.Typer(help="Storage path inspection and migration")
16+
17+
18+
@app.command("show")
19+
def paths_show(
20+
json_output: bool = typer.Option(
21+
False,
22+
"--json",
23+
help="Output in JSON format",
24+
),
25+
):
26+
"""
27+
Show all resolved storage paths.
28+
29+
Displays global, project-local, and environment-overridden paths.
30+
"""
31+
output = get_output_controller()
32+
33+
try:
34+
from praisonaiagents.paths import (
35+
ENV_VAR,
36+
DEFAULT_DIR_NAME,
37+
LEGACY_DIR_NAME,
38+
get_data_dir,
39+
get_all_paths,
40+
get_project_data_dir,
41+
)
42+
except ImportError:
43+
output.print_error("praisonaiagents package not installed")
44+
raise typer.Exit(1)
45+
46+
env_home = os.environ.get(ENV_VAR)
47+
global_dir = get_data_dir()
48+
project_dir = get_project_data_dir()
49+
legacy_dir = Path.home() / LEGACY_DIR_NAME
50+
all_paths = get_all_paths()
51+
52+
if json_output or (hasattr(output, "is_json_mode") and output.is_json_mode):
53+
data = {
54+
"env_var": ENV_VAR,
55+
"env_value": env_home,
56+
"global_dir": str(global_dir),
57+
"project_dir": str(project_dir),
58+
"legacy_dir_exists": legacy_dir.exists(),
59+
"paths": {k: str(v) for k, v in all_paths.items()},
60+
}
61+
output.print_json(data)
62+
return
63+
64+
# Text output using Rich console directly
65+
from rich.console import Console
66+
from rich.table import Table
67+
68+
console = Console()
69+
console.print("\n[bold cyan]PraisonAI Storage Paths[/bold cyan]\n")
70+
71+
# Environment override
72+
if env_home:
73+
console.print(f" [green]✓[/green] {ENV_VAR} = {env_home}")
74+
else:
75+
console.print(f" [dim]{ENV_VAR} is not set (using defaults)[/dim]")
76+
77+
console.print()
78+
79+
# Table of paths
80+
table = Table(title="Resolved Paths", show_lines=False)
81+
table.add_column("Category", style="cyan")
82+
table.add_column("Path", style="white")
83+
table.add_column("Exists", justify="center")
84+
85+
table.add_row(
86+
"Global data dir",
87+
str(global_dir),
88+
"✅" if global_dir.exists() else "—",
89+
)
90+
table.add_row(
91+
"Project data dir",
92+
str(project_dir),
93+
"✅" if project_dir.exists() else "—",
94+
)
95+
96+
for name, path_val in sorted(all_paths.items()):
97+
p = Path(str(path_val))
98+
table.add_row(name, str(p), "✅" if p.exists() else "—")
99+
100+
console.print(table)
101+
102+
# Legacy warning
103+
if legacy_dir.exists():
104+
console.print(
105+
f"\n [yellow]⚠ Legacy directory {legacy_dir} exists.[/yellow]"
106+
)

src/praisonai/praisonai/deploy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def create_dockerfile(self):
5757
file.write("FROM python:3.11-slim\n")
5858
file.write("WORKDIR /app\n")
5959
file.write("COPY . .\n")
60-
file.write("RUN pip install flask praisonai==4.5.29 gunicorn markdown\n")
60+
file.write("RUN pip install flask praisonai==4.5.30 gunicorn markdown\n")
6161
file.write("EXPOSE 8080\n")
6262
file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
6363

src/praisonai/praisonai/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "4.5.29"
1+
__version__ = "4.5.30"

src/praisonai/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ dependencies = [
1212
"rich>=13.7",
1313
"markdown>=3.5",
1414
"pyparsing>=3.0.0",
15-
"praisonaiagents>=1.5.29",
15+
"praisonaiagents>=1.5.30",
1616
"python-dotenv>=0.19.0",
1717
"litellm>=1.81.0",
1818
"PyYAML>=6.0",

src/praisonai/uv.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)