PraisonAI 2.3.4__tar.gz → 2.3.6__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.3.4 → praisonai-2.3.6}/PKG-INFO +42 -12
  2. {praisonai-2.3.4 → praisonai-2.3.6}/PraisonAI.egg-info/PKG-INFO +42 -12
  3. {praisonai-2.3.4 → praisonai-2.3.6}/PraisonAI.egg-info/requires.txt +1 -1
  4. {praisonai-2.3.4 → praisonai-2.3.6}/README.md +40 -10
  5. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/deploy.py +1 -1
  6. praisonai-2.3.6/praisonai/version.py +1 -0
  7. {praisonai-2.3.4 → praisonai-2.3.6}/pyproject.toml +1 -1
  8. praisonai-2.3.4/praisonai/version.py +0 -1
  9. {praisonai-2.3.4 → praisonai-2.3.6}/PraisonAI.egg-info/SOURCES.txt +0 -0
  10. {praisonai-2.3.4 → praisonai-2.3.6}/PraisonAI.egg-info/dependency_links.txt +0 -0
  11. {praisonai-2.3.4 → praisonai-2.3.6}/PraisonAI.egg-info/entry_points.txt +0 -0
  12. {praisonai-2.3.4 → praisonai-2.3.6}/PraisonAI.egg-info/top_level.txt +0 -0
  13. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/__init__.py +0 -0
  14. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/__main__.py +0 -0
  15. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/agents_generator.py +0 -0
  16. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/api/call.py +0 -0
  17. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/auto.py +0 -0
  18. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/chainlit_ui.py +0 -0
  19. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/cli.py +0 -0
  20. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/inbuilt_tools/__init__.py +0 -0
  21. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  22. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/inc/__init__.py +0 -0
  23. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/inc/config.py +0 -0
  24. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/inc/models.py +0 -0
  25. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/scheduler.py +0 -0
  26. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/setup/__init__.py +0 -0
  27. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/setup/build.py +0 -0
  28. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/setup/post_install.py +0 -0
  29. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/setup/setup_conda_env.py +0 -0
  30. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/setup.py +0 -0
  31. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/test.py +0 -0
  32. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/train.py +0 -0
  33. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/train_vision.py +0 -0
  34. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/agents.py +0 -0
  35. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/callbacks.py +0 -0
  36. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/chat.py +0 -0
  37. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/code.py +0 -0
  38. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/colab.py +0 -0
  39. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/colab_chainlit.py +0 -0
  40. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/components/aicoder.py +0 -0
  41. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/context.py +0 -0
  42. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/database_config.py +0 -0
  43. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/db.py +0 -0
  44. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/realtime.py +0 -0
  45. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/realtimeclient/__init__.py +0 -0
  46. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/realtimeclient/tools.py +0 -0
  47. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/ui/sql_alchemy.py +0 -0
  48. {praisonai-2.3.4 → praisonai-2.3.6}/praisonai/upload_vision.py +0 -0
  49. {praisonai-2.3.4 → praisonai-2.3.6}/setup.cfg +0 -0
  50. {praisonai-2.3.4 → praisonai-2.3.6}/tests/test.py +0 -0
  51. {praisonai-2.3.4 → praisonai-2.3.6}/tests/test_agents_playbook.py +0 -0
  52. {praisonai-2.3.4 → praisonai-2.3.6}/tests/test_basic.py +0 -0
  53. {praisonai-2.3.4 → praisonai-2.3.6}/tests/test_custom_tools_fix.py +0 -0
  54. {praisonai-2.3.4 → praisonai-2.3.6}/tests/test_double_api_fix.py +0 -0
  55. {praisonai-2.3.4 → praisonai-2.3.6}/tests/test_phase2_refactor.py +0 -0
  56. {praisonai-2.3.4 → praisonai-2.3.6}/tests/test_runner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 2.3.4
3
+ Version: 2.3.6
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.180
14
+ Requires-Dist: praisonaiagents>=0.0.184
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: instructor>=1.3.3
17
17
  Requires-Dist: PyYAML>=6.0
@@ -157,6 +157,9 @@ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection,
157
157
  - 💾 **Prompt Caching** (Reduce costs & latency - OpenAI, Anthropic, Bedrock, Deepseek)
158
158
  - 🧠 **Claude Memory Tool** (Persistent cross-conversation memory - Anthropic Beta)
159
159
  - 💾 **File-Based Memory** (Zero-dependency persistent memory for all agents)
160
+ - 📋 **Planning Mode** (Plan before execution - Agent & Multi-Agent)
161
+ - 🔧 **Planning Tools** (Research with tools during planning)
162
+ - 🧠 **Planning Reasoning** (Chain-of-thought planning)
160
163
 
161
164
  ## Using Python Code
162
165
 
@@ -200,7 +203,34 @@ Run:
200
203
  python app.py
201
204
  ```
202
205
 
203
- ### 3. Deep Research Agent
206
+ ### 3. Agent with Planning Mode
207
+
208
+ Enable planning for any agent - the agent creates a plan, then executes step by step:
209
+
210
+ ```python
211
+ from praisonaiagents import Agent
212
+
213
+ def search_web(query: str) -> str:
214
+ return f"Search results for: {query}"
215
+
216
+ agent = Agent(
217
+ name="AI Assistant",
218
+ instructions="Research and write about topics",
219
+ planning=True, # Enable planning mode
220
+ planning_tools=[search_web], # Tools for planning research
221
+ planning_reasoning=True # Chain-of-thought reasoning
222
+ )
223
+
224
+ result = agent.start("Research AI trends in 2025 and write a summary")
225
+ ```
226
+
227
+ **What happens:**
228
+ 1. 📋 Agent creates a multi-step plan
229
+ 2. 🚀 Executes each step sequentially
230
+ 3. 📊 Shows progress with context passing
231
+ 4. ✅ Returns final result
232
+
233
+ ### 4. Deep Research Agent
204
234
 
205
235
  Automated research with real-time streaming, web search, and citations using OpenAI or Gemini Deep Research APIs.
206
236
 
@@ -238,7 +268,7 @@ print(result.report)
238
268
  - 🛠️ Built-in tools: web search, code interpreter, MCP, file search
239
269
  - 🔄 Automatic provider detection from model name
240
270
 
241
- ### 4. Query Rewriter Agent
271
+ ### 5. Query Rewriter Agent
242
272
 
243
273
  Transform user queries to improve RAG retrieval quality using multiple strategies.
244
274
 
@@ -273,9 +303,9 @@ result = agent.rewrite("What about cost?", chat_history=[...])
273
303
  - **CONTEXTUAL**: Resolve references using conversation history
274
304
  - **AUTO**: Automatically detect best strategy
275
305
 
276
- ### 5. Agent Memory (Zero Dependencies)
306
+ ### 6. Agent Memory (Zero Dependencies)
277
307
 
278
- Enable persistent memory for agents - works out of the box without any extra packages. Features inspired by Claude, Gemini CLI, Codex CLI, Cursor, and Windsurf.
308
+ Enable persistent memory for agents - works out of the box without any extra packages.
279
309
 
280
310
  ```python
281
311
  from praisonaiagents import Agent
@@ -300,7 +330,7 @@ result = agent.start("My name is John and I prefer Python")
300
330
  - **Entity**: People, places, organizations with attributes
301
331
  - **Episodic**: Date-based interaction history
302
332
 
303
- **Advanced Features (like Gemini CLI):**
333
+ **Advanced Features:**
304
334
  ```python
305
335
  from praisonaiagents.memory import FileMemory
306
336
 
@@ -330,7 +360,7 @@ memory.handle_command("/memory save my_session")
330
360
  | `memory="sqlite"` | Built-in | SQLite with indexing |
331
361
  | `memory="chromadb"` | chromadb | Vector/semantic search |
332
362
 
333
- ### 6. Rules & Instructions (like Cursor/Windsurf)
363
+ ### 6. Rules & Instructions
334
364
 
335
365
  PraisonAI auto-discovers instruction files from your project root and git root:
336
366
 
@@ -358,7 +388,7 @@ agent = Agent(name="Assistant", instructions="You are helpful.")
358
388
  # Rules are injected into system prompt automatically
359
389
  ```
360
390
 
361
- **@Import Syntax (like Claude Code):**
391
+ **@Import Syntax:**
362
392
  ```markdown
363
393
  # CLAUDE.md
364
394
  See @README for project overview
@@ -379,7 +409,7 @@ activation: always # always, glob, manual, ai_decision
379
409
  - Follow PEP 8
380
410
  ```
381
411
 
382
- ### 7. Auto-Generated Memories (like Windsurf Cascade)
412
+ ### 7. Auto-Generated Memories
383
413
 
384
414
  ```python
385
415
  from praisonaiagents.memory import FileMemory, AutoMemory
@@ -394,7 +424,7 @@ memories = auto.process_interaction(
394
424
  # Extracts: name="John", preference="Python for backend"
395
425
  ```
396
426
 
397
- ### 8. Workflows (like Windsurf)
427
+ ### 8. Workflows
398
428
 
399
429
  Create reusable multi-step workflows in `.praison/workflows/`:
400
430
 
@@ -411,7 +441,7 @@ result = manager.execute(
411
441
  )
412
442
  ```
413
443
 
414
- ### 9. Hooks (like Windsurf Cascade Hooks)
444
+ ### 9. Hooks
415
445
 
416
446
  Configure in `.praison/hooks.json`:
417
447
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 2.3.4
3
+ Version: 2.3.6
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.180
14
+ Requires-Dist: praisonaiagents>=0.0.184
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: instructor>=1.3.3
17
17
  Requires-Dist: PyYAML>=6.0
@@ -157,6 +157,9 @@ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection,
157
157
  - 💾 **Prompt Caching** (Reduce costs & latency - OpenAI, Anthropic, Bedrock, Deepseek)
158
158
  - 🧠 **Claude Memory Tool** (Persistent cross-conversation memory - Anthropic Beta)
159
159
  - 💾 **File-Based Memory** (Zero-dependency persistent memory for all agents)
160
+ - 📋 **Planning Mode** (Plan before execution - Agent & Multi-Agent)
161
+ - 🔧 **Planning Tools** (Research with tools during planning)
162
+ - 🧠 **Planning Reasoning** (Chain-of-thought planning)
160
163
 
161
164
  ## Using Python Code
162
165
 
@@ -200,7 +203,34 @@ Run:
200
203
  python app.py
201
204
  ```
202
205
 
203
- ### 3. Deep Research Agent
206
+ ### 3. Agent with Planning Mode
207
+
208
+ Enable planning for any agent - the agent creates a plan, then executes step by step:
209
+
210
+ ```python
211
+ from praisonaiagents import Agent
212
+
213
+ def search_web(query: str) -> str:
214
+ return f"Search results for: {query}"
215
+
216
+ agent = Agent(
217
+ name="AI Assistant",
218
+ instructions="Research and write about topics",
219
+ planning=True, # Enable planning mode
220
+ planning_tools=[search_web], # Tools for planning research
221
+ planning_reasoning=True # Chain-of-thought reasoning
222
+ )
223
+
224
+ result = agent.start("Research AI trends in 2025 and write a summary")
225
+ ```
226
+
227
+ **What happens:**
228
+ 1. 📋 Agent creates a multi-step plan
229
+ 2. 🚀 Executes each step sequentially
230
+ 3. 📊 Shows progress with context passing
231
+ 4. ✅ Returns final result
232
+
233
+ ### 4. Deep Research Agent
204
234
 
205
235
  Automated research with real-time streaming, web search, and citations using OpenAI or Gemini Deep Research APIs.
206
236
 
@@ -238,7 +268,7 @@ print(result.report)
238
268
  - 🛠️ Built-in tools: web search, code interpreter, MCP, file search
239
269
  - 🔄 Automatic provider detection from model name
240
270
 
241
- ### 4. Query Rewriter Agent
271
+ ### 5. Query Rewriter Agent
242
272
 
243
273
  Transform user queries to improve RAG retrieval quality using multiple strategies.
244
274
 
@@ -273,9 +303,9 @@ result = agent.rewrite("What about cost?", chat_history=[...])
273
303
  - **CONTEXTUAL**: Resolve references using conversation history
274
304
  - **AUTO**: Automatically detect best strategy
275
305
 
276
- ### 5. Agent Memory (Zero Dependencies)
306
+ ### 6. Agent Memory (Zero Dependencies)
277
307
 
278
- Enable persistent memory for agents - works out of the box without any extra packages. Features inspired by Claude, Gemini CLI, Codex CLI, Cursor, and Windsurf.
308
+ Enable persistent memory for agents - works out of the box without any extra packages.
279
309
 
280
310
  ```python
281
311
  from praisonaiagents import Agent
@@ -300,7 +330,7 @@ result = agent.start("My name is John and I prefer Python")
300
330
  - **Entity**: People, places, organizations with attributes
301
331
  - **Episodic**: Date-based interaction history
302
332
 
303
- **Advanced Features (like Gemini CLI):**
333
+ **Advanced Features:**
304
334
  ```python
305
335
  from praisonaiagents.memory import FileMemory
306
336
 
@@ -330,7 +360,7 @@ memory.handle_command("/memory save my_session")
330
360
  | `memory="sqlite"` | Built-in | SQLite with indexing |
331
361
  | `memory="chromadb"` | chromadb | Vector/semantic search |
332
362
 
333
- ### 6. Rules & Instructions (like Cursor/Windsurf)
363
+ ### 6. Rules & Instructions
334
364
 
335
365
  PraisonAI auto-discovers instruction files from your project root and git root:
336
366
 
@@ -358,7 +388,7 @@ agent = Agent(name="Assistant", instructions="You are helpful.")
358
388
  # Rules are injected into system prompt automatically
359
389
  ```
360
390
 
361
- **@Import Syntax (like Claude Code):**
391
+ **@Import Syntax:**
362
392
  ```markdown
363
393
  # CLAUDE.md
364
394
  See @README for project overview
@@ -379,7 +409,7 @@ activation: always # always, glob, manual, ai_decision
379
409
  - Follow PEP 8
380
410
  ```
381
411
 
382
- ### 7. Auto-Generated Memories (like Windsurf Cascade)
412
+ ### 7. Auto-Generated Memories
383
413
 
384
414
  ```python
385
415
  from praisonaiagents.memory import FileMemory, AutoMemory
@@ -394,7 +424,7 @@ memories = auto.process_interaction(
394
424
  # Extracts: name="John", preference="Python for backend"
395
425
  ```
396
426
 
397
- ### 8. Workflows (like Windsurf)
427
+ ### 8. Workflows
398
428
 
399
429
  Create reusable multi-step workflows in `.praison/workflows/`:
400
430
 
@@ -411,7 +441,7 @@ result = manager.execute(
411
441
  )
412
442
  ```
413
443
 
414
- ### 9. Hooks (like Windsurf Cascade Hooks)
444
+ ### 9. Hooks
415
445
 
416
446
  Configure in `.praison/hooks.json`:
417
447
 
@@ -1,7 +1,7 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=0.0.180
4
+ praisonaiagents>=0.0.184
5
5
  python-dotenv>=0.19.0
6
6
  instructor>=1.3.3
7
7
  PyYAML>=6.0
@@ -60,6 +60,9 @@ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection,
60
60
  - 💾 **Prompt Caching** (Reduce costs & latency - OpenAI, Anthropic, Bedrock, Deepseek)
61
61
  - 🧠 **Claude Memory Tool** (Persistent cross-conversation memory - Anthropic Beta)
62
62
  - 💾 **File-Based Memory** (Zero-dependency persistent memory for all agents)
63
+ - 📋 **Planning Mode** (Plan before execution - Agent & Multi-Agent)
64
+ - 🔧 **Planning Tools** (Research with tools during planning)
65
+ - 🧠 **Planning Reasoning** (Chain-of-thought planning)
63
66
 
64
67
  ## Using Python Code
65
68
 
@@ -103,7 +106,34 @@ Run:
103
106
  python app.py
104
107
  ```
105
108
 
106
- ### 3. Deep Research Agent
109
+ ### 3. Agent with Planning Mode
110
+
111
+ Enable planning for any agent - the agent creates a plan, then executes step by step:
112
+
113
+ ```python
114
+ from praisonaiagents import Agent
115
+
116
+ def search_web(query: str) -> str:
117
+ return f"Search results for: {query}"
118
+
119
+ agent = Agent(
120
+ name="AI Assistant",
121
+ instructions="Research and write about topics",
122
+ planning=True, # Enable planning mode
123
+ planning_tools=[search_web], # Tools for planning research
124
+ planning_reasoning=True # Chain-of-thought reasoning
125
+ )
126
+
127
+ result = agent.start("Research AI trends in 2025 and write a summary")
128
+ ```
129
+
130
+ **What happens:**
131
+ 1. 📋 Agent creates a multi-step plan
132
+ 2. 🚀 Executes each step sequentially
133
+ 3. 📊 Shows progress with context passing
134
+ 4. ✅ Returns final result
135
+
136
+ ### 4. Deep Research Agent
107
137
 
108
138
  Automated research with real-time streaming, web search, and citations using OpenAI or Gemini Deep Research APIs.
109
139
 
@@ -141,7 +171,7 @@ print(result.report)
141
171
  - 🛠️ Built-in tools: web search, code interpreter, MCP, file search
142
172
  - 🔄 Automatic provider detection from model name
143
173
 
144
- ### 4. Query Rewriter Agent
174
+ ### 5. Query Rewriter Agent
145
175
 
146
176
  Transform user queries to improve RAG retrieval quality using multiple strategies.
147
177
 
@@ -176,9 +206,9 @@ result = agent.rewrite("What about cost?", chat_history=[...])
176
206
  - **CONTEXTUAL**: Resolve references using conversation history
177
207
  - **AUTO**: Automatically detect best strategy
178
208
 
179
- ### 5. Agent Memory (Zero Dependencies)
209
+ ### 6. Agent Memory (Zero Dependencies)
180
210
 
181
- Enable persistent memory for agents - works out of the box without any extra packages. Features inspired by Claude, Gemini CLI, Codex CLI, Cursor, and Windsurf.
211
+ Enable persistent memory for agents - works out of the box without any extra packages.
182
212
 
183
213
  ```python
184
214
  from praisonaiagents import Agent
@@ -203,7 +233,7 @@ result = agent.start("My name is John and I prefer Python")
203
233
  - **Entity**: People, places, organizations with attributes
204
234
  - **Episodic**: Date-based interaction history
205
235
 
206
- **Advanced Features (like Gemini CLI):**
236
+ **Advanced Features:**
207
237
  ```python
208
238
  from praisonaiagents.memory import FileMemory
209
239
 
@@ -233,7 +263,7 @@ memory.handle_command("/memory save my_session")
233
263
  | `memory="sqlite"` | Built-in | SQLite with indexing |
234
264
  | `memory="chromadb"` | chromadb | Vector/semantic search |
235
265
 
236
- ### 6. Rules & Instructions (like Cursor/Windsurf)
266
+ ### 6. Rules & Instructions
237
267
 
238
268
  PraisonAI auto-discovers instruction files from your project root and git root:
239
269
 
@@ -261,7 +291,7 @@ agent = Agent(name="Assistant", instructions="You are helpful.")
261
291
  # Rules are injected into system prompt automatically
262
292
  ```
263
293
 
264
- **@Import Syntax (like Claude Code):**
294
+ **@Import Syntax:**
265
295
  ```markdown
266
296
  # CLAUDE.md
267
297
  See @README for project overview
@@ -282,7 +312,7 @@ activation: always # always, glob, manual, ai_decision
282
312
  - Follow PEP 8
283
313
  ```
284
314
 
285
- ### 7. Auto-Generated Memories (like Windsurf Cascade)
315
+ ### 7. Auto-Generated Memories
286
316
 
287
317
  ```python
288
318
  from praisonaiagents.memory import FileMemory, AutoMemory
@@ -297,7 +327,7 @@ memories = auto.process_interaction(
297
327
  # Extracts: name="John", preference="Python for backend"
298
328
  ```
299
329
 
300
- ### 8. Workflows (like Windsurf)
330
+ ### 8. Workflows
301
331
 
302
332
  Create reusable multi-step workflows in `.praison/workflows/`:
303
333
 
@@ -314,7 +344,7 @@ result = manager.execute(
314
344
  )
315
345
  ```
316
346
 
317
- ### 9. Hooks (like Windsurf Cascade Hooks)
347
+ ### 9. Hooks
318
348
 
319
349
  Configure in `.praison/hooks.json`:
320
350
 
@@ -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.4 gunicorn markdown\n")
60
+ file.write("RUN pip install flask praisonai==2.3.6 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.6"
@@ -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.180",
15
+ "praisonaiagents>=0.0.184",
16
16
  "python-dotenv>=0.19.0",
17
17
  "instructor>=1.3.3",
18
18
  "PyYAML>=6.0",
@@ -1 +0,0 @@
1
- __version__ = "2.3.4"
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