15 Commits
Author SHA1 Message Date
Dhivya-Bharathy 2895163e81 fix: batch-3 E2E — skip optional-deps failures and fix remaining example bugs 2026-07-23 17:04:42 +05:30
cfd7d7c8a9 fix(examples): merge validation fixes phases 2-4 into main (stacked on #1855) (#1893)
* fix(examples): resolve syntax errors and align with consolidated-params API

* fix: correct TypeError in 3 example files by using proper parameter names

- Fix MemoryConfig(memory=...) → user_id=... in agent_centric_api.py
- Fix Session(memory=...) → user_id=... in session-example.py
- Fix build_context_for_task(memory=...) → user_id=... in memory-quality-example.py

Co-authored-by: Mervin Praison <[email protected]>

* fix(examples): align AgentTeam memory and knowledge configs with v4.6.52 API

* fix(examples): phase-3 API alignment for consolidated params on v4.6.52

* fix(examples): phase-4 API alignment for 40 validation failures on v4.6.52

* fix: resolve critical RouterAgent **kwargs bug and add missing if __name__ guards

- Fixed TypeError in RouterAgent._build_system_prompt() by removing **kwargs from super() call
- Added if __name__ == '__main__' guards to 6 example files to prevent auto-execution on import
- Addresses Gemini Code Assist review feedback

Co-authored-by: Mervin Praison <[email protected]>

* fix: resolve missing AgentTeam import and RouterAgent kwargs forwarding

- Fix missing AgentTeam import in self-reflection-optimization-patterns.py
- Forward kwargs properly in RouterAgent._build_system_prompt to super()
- Addresses critical issues identified by Gemini code reviewer

Co-authored-by: Mervin Praison <[email protected]>

* fix(examples): remove merge-conflict residue for PR #1893

---------

Co-authored-by: Dhivya-Bharathy <[email protected]>
Co-authored-by: praisonai-triage-agent[bot] <272766704+praisonai-triage-agent[bot]@users.noreply.github.com>
Co-authored-by: Mervin Praison <[email protected]>
Co-authored-by: Mervin Praison <[email protected]>
2026-06-23 00:03:04 +01:00
DhivyaandDhivya-Bharathy ce97667156 fix(examples): resolve syntax errors and align with consolidated-params API (#1855)
Co-authored-by: Dhivya-Bharathy <[email protected]>
2026-06-08 07:48:44 +01:00
2284535f65 fix(security): Replace insecure MD5 with SHA-256, disable debug mode (29 fixes) (#1319)
* fix(security): replace insecure MD5 with SHA-256 and disable debug mode

Replace all 29 instances of hashlib.md5() with hashlib.sha256() across
22 files. MD5 is cryptographically broken (CWE-328) and should not be
used for hashing, even for non-security purposes like cache keys and
content fingerprints.

Also disable debug=True in api.py (CWE-489) to prevent information
leakage in production deployments.

Vulnerabilities fixed:
- 28x CWE-328: Use of Weak Hash (MD5 → SHA-256)
- 1x CWE-489: Active Debug Code (debug=True → debug=False)

Detected by semgrep (p/owasp-top-ten, p/python).
Verified by re-scan: 66 findings → 37 remaining (29 fixed).

Remaining findings (require manual review):
- 14x shell injection (subprocess with user input)
- 10x subprocess shell=True
- 3x wildcard CORS
- 5x tainted env args in subprocess

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* fix: address review feedback on MD5→SHA-256 migration

Fixes raised by Gemini Code Assist, Qodo, and CodeRabbit:

1. templates/security.py: algorithm="md5" now raises ValueError
   instead of silently returning SHA-256 digest

2. recipe/security.py: CycloneDX serialNumber now uses uuid5()
   for RFC 4122 compliant UUID format (was 64-char hexdigest)

3. agent/agent.py: backward-compatible session ID — checks for
   legacy MD5-based session file on disk before using new SHA-256 ID

4. snapshot/snapshot.py: backward-compatible shadow repo path —
   adopts legacy MD5-based directory if it exists on disk

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

---------

Co-authored-by: Michael Winczuk <[email protected]>
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
2026-04-08 21:50:42 +01:00
Mervin Praison 53d3885415 Release v4.1.0 2026-01-31 08:34:24 +00:00
Mervin Praison c302853636 Release v4.0.0 2026-01-30 17:41:19 +00:00
Mervin Praison 83ca07a9a9 Remove deprecated parameters from examples and fix Agent initialization
- Remove `verbose` parameter from Agents() calls across all examples
- Remove `markdown` parameter from Agent() initialization
- Change `model` to `llm` in observability example
- Remove unused `kind` parameter from obs.span()
- Fix thinking_budget initialization to use property setter instead of constructor
- Add missing `instructions` parameter to routellm_example.py Agent
2026-01-09 06:16:33 +00:00
Mervin Praison 4d32005f39 Release v3.5.2 2026-01-08 21:14:45 +00:00
Mervin Praison 5a1256069f Release v3.5.1 2026-01-08 20:12:14 +00:00
Mervin Praison 0dfab2b8d9 Release v3.4.1 2026-01-08 14:36:54 +00:00
Mervin Praison 561c32ddd5 refactor: update model name from gpt-4o-mini to gpt-5-nano across all files 2025-08-08 07:52:37 +01:00
github-actions[bot]andMervin Praison d4023c0484 feat: Organize advanced examples into appropriate folders
- Move callback systems to general/
- Move memory examples to memory/
- Move state management to stateful/
- Move hierarchical agents to agents/
- Move guardrails to guardrails/
- Move self-reflection to concepts/

Co-authored-by: Mervin Praison <[email protected]>
2025-07-15 23:46:29 +00:00
claude[bot]andMervin Praison 11909566e9 feat: Add comprehensive state management examples
- 01_basic_state_management.py: Demonstrates fundamental state operations
- 02_state_in_tool_functions.py: Shows state usage within tool functions
- 03_conditional_task_execution.py: Illustrates conditional task flow based on state
- 04_session_state_persistence.py: Shows how to save/restore workflow state
- 05_loop_control_with_state.py: Demonstrates state-controlled loops and iterations
- 06_advanced_state_operations.py: Covers complex state scenarios and patterns

Each example is fully working with detailed documentation and real-world use cases.

Co-authored-by: Mervin Praison <[email protected]>
2025-06-28 22:12:15 +00:00
claude[bot]andMervinPraison 79c4ef1de3 fix: enhance stateful agents with SQLite compatibility and improved API
- Fix SQLite query compatibility in session state restoration
- Add type safety to increment_state and improve append_to_state
- Change API from session.create_agent() to session.Agent() (backward compatible)
- Clean up code style: remove unused imports, trailing whitespace, fix f-strings
- Fix missing limit parameter in search_knowledge method
- Update examples to use new API

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: MervinPraison <[email protected]>
2025-06-04 03:52:09 +00:00
claude[bot]andClaude 0b4739a6f9 feat: enhance stateful agents with Session class and convenience methods
Add minimal enhancements to PraisonAI's existing stateful capabilities:

- Add Session helper class for unified session management
- Add 9 convenience methods to PraisonAIAgents for enhanced state management
- Add comprehensive stateful agents documentation with examples
- Add 3 practical examples demonstrating session, workflow, and memory capabilities
- Maintain backward compatibility - all existing code continues to work

The implementation leverages existing robust infrastructure (Memory, Agent, Process classes)
rather than duplicating functionality, providing better developer experience through
improved APIs and documentation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-06-03 16:11:07 +00:00