PraisonAI 4.6.30__tar.gz → 4.6.32__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 (775) hide show
  1. {praisonai-4.6.30 → praisonai-4.6.32}/PKG-INFO +3 -3
  2. {praisonai-4.6.30 → praisonai-4.6.32}/PraisonAI.egg-info/PKG-INFO +3 -3
  3. {praisonai-4.6.30 → praisonai-4.6.32}/PraisonAI.egg-info/SOURCES.txt +3 -0
  4. {praisonai-4.6.30 → praisonai-4.6.32}/PraisonAI.egg-info/requires.txt +1 -1
  5. {praisonai-4.6.30 → praisonai-4.6.32}/README.md +1 -1
  6. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/__init__.py +41 -17
  7. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/__main__.py +56 -20
  8. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_async_bridge.py +45 -26
  9. praisonai-4.6.32/praisonai/agent_scheduler.py +19 -0
  10. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/agents_generator.py +6 -18
  11. praisonai-4.6.32/praisonai/async_agent_scheduler.py +351 -0
  12. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/auto.py +134 -143
  13. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/app.py +17 -2
  14. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/main.py +48 -29
  15. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/output/console.py +101 -15
  16. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy.py +1 -1
  17. praisonai-4.6.32/praisonai/framework_adapters/registry.py +177 -0
  18. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/inc/models.py +16 -4
  19. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/__init__.py +18 -0
  20. praisonai-4.6.32/praisonai/integrations/hosted_agent.py +93 -0
  21. praisonai-4.6.32/praisonai/integrations/local_agent.py +86 -0
  22. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/managed_agents.py +54 -29
  23. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/registry.py +16 -8
  24. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/cli_tools.py +9 -15
  25. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/profiler.py +49 -23
  26. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/tool_override.py +60 -18
  27. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tool_resolver.py +37 -35
  28. praisonai-4.6.32/praisonai/ui/_aiui_datastore.py +141 -0
  29. praisonai-4.6.32/praisonai/version.py +1 -0
  30. {praisonai-4.6.30 → praisonai-4.6.32}/pyproject.toml +1 -1
  31. praisonai-4.6.30/praisonai/agent_scheduler.py +0 -291
  32. praisonai-4.6.30/praisonai/async_agent_scheduler.py +0 -307
  33. praisonai-4.6.30/praisonai/ui/_aiui_datastore.py +0 -108
  34. praisonai-4.6.30/praisonai/version.py +0 -1
  35. {praisonai-4.6.30 → praisonai-4.6.32}/PraisonAI.egg-info/dependency_links.txt +0 -0
  36. {praisonai-4.6.30 → praisonai-4.6.32}/PraisonAI.egg-info/entry_points.txt +0 -0
  37. {praisonai-4.6.30 → praisonai-4.6.32}/PraisonAI.egg-info/top_level.txt +0 -0
  38. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_approval_spec.py +0 -0
  39. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/__init__.py +0 -0
  40. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/api_md.py +0 -0
  41. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/__init__.py +0 -0
  42. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/docs_extractor.py +0 -0
  43. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/docs_generator.py +0 -0
  44. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/generator.py +0 -0
  45. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  46. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/python_extractor.py +0 -0
  47. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  48. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/rust_extractor.py +0 -0
  49. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  50. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  51. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  52. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/_logging.py +0 -0
  53. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/acp/__init__.py +0 -0
  54. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/acp/config.py +0 -0
  55. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/acp/safe_edit.py +0 -0
  56. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/acp/server.py +0 -0
  57. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/acp/session.py +0 -0
  58. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/adapters/__init__.py +0 -0
  59. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/adapters/readers.py +0 -0
  60. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/adapters/rerankers.py +0 -0
  61. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/adapters/retrievers.py +0 -0
  62. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/adapters/vector_stores.py +0 -0
  63. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/agent.py +0 -0
  64. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/api/agent_invoke.py +0 -0
  65. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/api/call.py +0 -0
  66. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/app/__init__.py +0 -0
  67. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/app/agentos.py +0 -0
  68. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/audit/__init__.py +0 -0
  69. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/audit/agent_centric.py +0 -0
  70. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/__init__.py +0 -0
  71. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_ack.py +0 -0
  72. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_approval.py +0 -0
  73. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_approval_base.py +0 -0
  74. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_auth.py +0 -0
  75. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_chunk.py +0 -0
  76. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_commands.py +0 -0
  77. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_config_schema.py +0 -0
  78. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_debounce.py +0 -0
  79. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_defaults.py +0 -0
  80. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_discord_approval.py +0 -0
  81. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_email_utils.py +0 -0
  82. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_http_approval.py +0 -0
  83. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_pairing_ui.py +0 -0
  84. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_protocol_mixin.py +0 -0
  85. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_rate_limit.py +0 -0
  86. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_registry.py +0 -0
  87. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_resilience.py +0 -0
  88. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_session.py +0 -0
  89. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_slack_approval.py +0 -0
  90. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_telegram_approval.py +0 -0
  91. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_unknown_user.py +0 -0
  92. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_webhook_approval.py +0 -0
  93. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/_whatsapp_web_adapter.py +0 -0
  94. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/agentmail.py +0 -0
  95. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/bot.py +0 -0
  96. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/botos.py +0 -0
  97. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/discord.py +0 -0
  98. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/email.py +0 -0
  99. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/media.py +0 -0
  100. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/slack.py +0 -0
  101. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/telegram.py +0 -0
  102. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/bots/whatsapp.py +0 -0
  103. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/__init__.py +0 -0
  104. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/agent.py +0 -0
  105. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/benchmark.py +0 -0
  106. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/cdp_agent.py +0 -0
  107. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/cdp_utils.py +0 -0
  108. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/cli.py +0 -0
  109. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/diagnostics.py +0 -0
  110. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/launcher.py +0 -0
  111. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/playwright_agent.py +0 -0
  112. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/profiling.py +0 -0
  113. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/protocol.py +0 -0
  114. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/report.py +0 -0
  115. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/server.py +0 -0
  116. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/sessions.py +0 -0
  117. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/browser/video.py +0 -0
  118. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/__init__.py +0 -0
  119. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/a2a.py +0 -0
  120. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/assistants.py +0 -0
  121. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/audio.py +0 -0
  122. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/batches.py +0 -0
  123. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/completions.py +0 -0
  124. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/container_files.py +0 -0
  125. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/containers.py +0 -0
  126. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/embeddings.py +0 -0
  127. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/files.py +0 -0
  128. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/fine_tuning.py +0 -0
  129. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/guardrails.py +0 -0
  130. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/images.py +0 -0
  131. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/mcp.py +0 -0
  132. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/messages.py +0 -0
  133. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/moderations.py +0 -0
  134. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/ocr.py +0 -0
  135. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/passthrough.py +0 -0
  136. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/rag.py +0 -0
  137. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/realtime.py +0 -0
  138. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/rerank.py +0 -0
  139. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/responses.py +0 -0
  140. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/search.py +0 -0
  141. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/skills.py +0 -0
  142. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/vector_store_files.py +0 -0
  143. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/vector_stores.py +0 -0
  144. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/capabilities/videos.py +0 -0
  145. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/claw/__init__.py +0 -0
  146. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/claw/default_app.py +0 -0
  147. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/__init__.py +0 -0
  148. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/_paths.py +0 -0
  149. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/branding.py +0 -0
  150. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/__init__.py +0 -0
  151. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/acp.py +0 -0
  152. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/agents.py +0 -0
  153. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/app.py +0 -0
  154. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/audit.py +0 -0
  155. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/batch.py +0 -0
  156. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/benchmark.py +0 -0
  157. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/bot.py +0 -0
  158. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/browser.py +0 -0
  159. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/call.py +0 -0
  160. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/chat.py +0 -0
  161. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/claw.py +0 -0
  162. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/code.py +0 -0
  163. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/commit.py +0 -0
  164. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/completion.py +0 -0
  165. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/config.py +0 -0
  166. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/context.py +0 -0
  167. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/dashboard.py +0 -0
  168. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/debug.py +0 -0
  169. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/deploy.py +0 -0
  170. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/diag.py +0 -0
  171. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/docs.py +0 -0
  172. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/doctor.py +0 -0
  173. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/endpoints.py +0 -0
  174. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/environment.py +0 -0
  175. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/eval.py +0 -0
  176. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/examples.py +0 -0
  177. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/flow.py +0 -0
  178. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/gateway.py +0 -0
  179. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/github.py +0 -0
  180. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/hooks.py +0 -0
  181. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/knowledge.py +0 -0
  182. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/langextract.py +0 -0
  183. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/langfuse.py +0 -0
  184. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/loop.py +0 -0
  185. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/lsp.py +0 -0
  186. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/managed.py +0 -0
  187. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/mcp.py +0 -0
  188. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/memory.py +0 -0
  189. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/mint_link.py +0 -0
  190. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/n8n.py +0 -0
  191. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/obs.py +0 -0
  192. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/onboard.py +0 -0
  193. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/package.py +0 -0
  194. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/pairing.py +0 -0
  195. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/paths.py +0 -0
  196. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/plugins.py +0 -0
  197. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/port.py +0 -0
  198. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/profile.py +0 -0
  199. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/publish.py +0 -0
  200. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/rag.py +0 -0
  201. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/realtime.py +0 -0
  202. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/recipe.py +0 -0
  203. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/registry.py +0 -0
  204. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/replay.py +0 -0
  205. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/research.py +0 -0
  206. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/retrieval.py +0 -0
  207. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/rules.py +0 -0
  208. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/run.py +0 -0
  209. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/sandbox.py +0 -0
  210. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/schedule.py +0 -0
  211. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/serve.py +0 -0
  212. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/session.py +0 -0
  213. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/setup.py +0 -0
  214. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/skills.py +0 -0
  215. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/standardise.py +0 -0
  216. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/templates.py +0 -0
  217. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/test.py +0 -0
  218. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/todo.py +0 -0
  219. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/tools.py +0 -0
  220. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/traces.py +0 -0
  221. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/tracker.py +0 -0
  222. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/train.py +0 -0
  223. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/ui.py +0 -0
  224. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/up.py +0 -0
  225. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/version.py +0 -0
  226. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/commands/workflow.py +0 -0
  227. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/config_loader.py +0 -0
  228. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/configuration/__init__.py +0 -0
  229. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/configuration/loader.py +0 -0
  230. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/configuration/paths.py +0 -0
  231. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/configuration/schema.py +0 -0
  232. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/execution/__init__.py +0 -0
  233. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/execution/core.py +0 -0
  234. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/execution/profiler.py +0 -0
  235. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/execution/request.py +0 -0
  236. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/execution/result.py +0 -0
  237. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/fallback_schema.py +0 -0
  238. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/__init__.py +0 -0
  239. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/acp.py +0 -0
  240. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/action_orchestrator.py +0 -0
  241. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/agent_scheduler.py +0 -0
  242. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/agent_tools.py +0 -0
  243. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/agents.py +0 -0
  244. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/approval.py +0 -0
  245. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/at_mentions.py +0 -0
  246. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/audit_cli.py +0 -0
  247. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/auto_memory.py +0 -0
  248. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/auto_mode.py +0 -0
  249. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/autonomy_mode.py +0 -0
  250. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/background.py +0 -0
  251. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/base.py +0 -0
  252. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/benchmark.py +0 -0
  253. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/bots_cli.py +0 -0
  254. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/capabilities.py +0 -0
  255. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/checkpoints.py +0 -0
  256. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/cli_profiler.py +0 -0
  257. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/code_intelligence.py +0 -0
  258. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/compaction.py +0 -0
  259. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/compare.py +0 -0
  260. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/config_hierarchy.py +0 -0
  261. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/context_manager.py +0 -0
  262. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/cost_tracker.py +0 -0
  263. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/csv_test_runner.py +0 -0
  264. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/debug.py +0 -0
  265. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/deploy.py +0 -0
  266. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/diag.py +0 -0
  267. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/display_jsonl.py +0 -0
  268. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/__init__.py +0 -0
  269. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/__init__.py +0 -0
  270. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/acp_checks.py +0 -0
  271. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/bot_checks.py +0 -0
  272. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/config_checks.py +0 -0
  273. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/db_checks.py +0 -0
  274. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/env_checks.py +0 -0
  275. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/lsp_checks.py +0 -0
  276. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/mcp_checks.py +0 -0
  277. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/memory_checks.py +0 -0
  278. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/network_checks.py +0 -0
  279. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/obs_checks.py +0 -0
  280. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/performance_checks.py +0 -0
  281. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/permissions_checks.py +0 -0
  282. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/selftest_checks.py +0 -0
  283. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/serve_checks.py +0 -0
  284. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/skills_checks.py +0 -0
  285. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/checks/tools_checks.py +0 -0
  286. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/engine.py +0 -0
  287. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/formatters.py +0 -0
  288. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/handler.py +0 -0
  289. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/models.py +0 -0
  290. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/doctor/registry.py +0 -0
  291. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/endpoints.py +0 -0
  292. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/eval.py +0 -0
  293. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/examples.py +0 -0
  294. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/external_agents.py +0 -0
  295. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/fast_context.py +0 -0
  296. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/file_history.py +0 -0
  297. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/flow_display.py +0 -0
  298. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/gateway.py +0 -0
  299. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/git_attribution.py +0 -0
  300. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/git_integration.py +0 -0
  301. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/guardrail.py +0 -0
  302. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/handoff.py +0 -0
  303. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/hooks.py +0 -0
  304. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/hybrid_workflow.py +0 -0
  305. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/image.py +0 -0
  306. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/interactive_core_headless.py +0 -0
  307. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/interactive_runtime.py +0 -0
  308. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/interactive_test_harness.py +0 -0
  309. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/interactive_tools.py +0 -0
  310. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/interactive_tui.py +0 -0
  311. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/job_workflow.py +0 -0
  312. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/jobs.py +0 -0
  313. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/knowledge.py +0 -0
  314. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/knowledge_cli.py +0 -0
  315. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/lite.py +0 -0
  316. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/logs.py +0 -0
  317. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/lsp_cli.py +0 -0
  318. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/lsp_diagnostics.py +0 -0
  319. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/mcp.py +0 -0
  320. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/message_queue.py +0 -0
  321. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/metrics.py +0 -0
  322. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/migrate.py +0 -0
  323. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/migration_flow.py +0 -0
  324. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/migration_spec.py +0 -0
  325. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/n8n.py +0 -0
  326. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/observability.py +0 -0
  327. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/ollama.py +0 -0
  328. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/onboard.py +0 -0
  329. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/output_modes.py +0 -0
  330. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/output_style.py +0 -0
  331. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/package.py +0 -0
  332. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/performance.py +0 -0
  333. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/persistence.py +0 -0
  334. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/plugin_cli.py +0 -0
  335. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/profile.py +0 -0
  336. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/profiler/__init__.py +0 -0
  337. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/profiler/core.py +0 -0
  338. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/profiler/optimizations.py +0 -0
  339. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/profiler/suite.py +0 -0
  340. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/profiling.py +0 -0
  341. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/queue/__init__.py +0 -0
  342. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/queue/manager.py +0 -0
  343. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/queue/models.py +0 -0
  344. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/queue/persistence.py +0 -0
  345. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/queue/scheduler.py +0 -0
  346. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/queue/worker.py +0 -0
  347. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/recipe.py +0 -0
  348. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/recipe_creator.py +0 -0
  349. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/recipe_optimizer.py +0 -0
  350. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/recipe_prompts.py +0 -0
  351. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/recipes.py +0 -0
  352. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/registry.py +0 -0
  353. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/repo_map.py +0 -0
  354. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/router.py +0 -0
  355. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/safe_shell.py +0 -0
  356. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/sandbox_cli.py +0 -0
  357. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/sandbox_executor.py +0 -0
  358. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/sdk_knowledge.py +0 -0
  359. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/serve.py +0 -0
  360. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/session.py +0 -0
  361. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/setup/__init__.py +0 -0
  362. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/setup/handler.py +0 -0
  363. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/setup/templates.py +0 -0
  364. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/skills.py +0 -0
  365. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/slash_commands.py +0 -0
  366. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/telemetry.py +0 -0
  367. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/templates.py +0 -0
  368. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/thinking.py +0 -0
  369. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/todo.py +0 -0
  370. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tools.py +0 -0
  371. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/__init__.py +0 -0
  372. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/app.py +0 -0
  373. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/cli.py +0 -0
  374. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/config.py +0 -0
  375. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/debug.py +0 -0
  376. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/events.py +0 -0
  377. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/mock_provider.py +0 -0
  378. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/orchestrator.py +0 -0
  379. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/screens/__init__.py +0 -0
  380. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/screens/help.py +0 -0
  381. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/screens/main.py +0 -0
  382. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/screens/queue.py +0 -0
  383. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/screens/session.py +0 -0
  384. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/screens/settings.py +0 -0
  385. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/session_store.py +0 -0
  386. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/__init__.py +0 -0
  387. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/chat.py +0 -0
  388. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/command_popup.py +0 -0
  389. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/composer.py +0 -0
  390. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/file_popup.py +0 -0
  391. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/queue_panel.py +0 -0
  392. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/status.py +0 -0
  393. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/tui/widgets/tool_panel.py +0 -0
  394. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/wizard.py +0 -0
  395. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/workflow.py +0 -0
  396. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/features/yaml_utils.py +0 -0
  397. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/__init__.py +0 -0
  398. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/async_tui.py +0 -0
  399. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/config.py +0 -0
  400. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/core.py +0 -0
  401. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/events.py +0 -0
  402. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/frontends/__init__.py +0 -0
  403. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/frontends/rich_frontend.py +0 -0
  404. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/frontends/textual_frontend.py +0 -0
  405. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/praison_io.py +0 -0
  406. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/repl.py +0 -0
  407. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/split_tui.py +0 -0
  408. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/interactive/tui_app.py +0 -0
  409. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/langfuse_client.py +0 -0
  410. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/legacy.py +0 -0
  411. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/output/__init__.py +0 -0
  412. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/schedule_cli.py +0 -0
  413. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/schema_provider.py +0 -0
  414. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/session/__init__.py +0 -0
  415. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/session/unified.py +0 -0
  416. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/state/__init__.py +0 -0
  417. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/state/identifiers.py +0 -0
  418. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/state/sessions.py +0 -0
  419. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/ui/__init__.py +0 -0
  420. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/ui/config.py +0 -0
  421. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/ui/events.py +0 -0
  422. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/ui/mg_backend.py +0 -0
  423. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/ui/plain.py +0 -0
  424. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/ui/rich_backend.py +0 -0
  425. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli/unified_schema.py +0 -0
  426. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli_backends/__init__.py +0 -0
  427. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli_backends/claude.py +0 -0
  428. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/cli_backends/registry.py +0 -0
  429. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/__init__.py +0 -0
  430. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/agent_tools.py +0 -0
  431. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/diff/__init__.py +0 -0
  432. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/diff/diff_strategy.py +0 -0
  433. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/tools/__init__.py +0 -0
  434. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/tools/apply_diff.py +0 -0
  435. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/tools/execute_command.py +0 -0
  436. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/tools/list_files.py +0 -0
  437. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/tools/read_file.py +0 -0
  438. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/tools/search_replace.py +0 -0
  439. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/tools/write_file.py +0 -0
  440. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/utils/__init__.py +0 -0
  441. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/utils/file_utils.py +0 -0
  442. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/utils/ignore_utils.py +0 -0
  443. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/code/utils/text_utils.py +0 -0
  444. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/context/__init__.py +0 -0
  445. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/context/artifact_store.py +0 -0
  446. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/context/config.py +0 -0
  447. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/context/history_store.py +0 -0
  448. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/context/queue.py +0 -0
  449. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/context/setup.py +0 -0
  450. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/context/terminal_logger.py +0 -0
  451. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/daemon/__init__.py +0 -0
  452. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/daemon/launchd.py +0 -0
  453. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/daemon/systemd.py +0 -0
  454. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/daemon/windows.py +0 -0
  455. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/db/__init__.py +0 -0
  456. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/db/adapter.py +0 -0
  457. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/__init__.py +0 -0
  458. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/api.py +0 -0
  459. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/docker.py +0 -0
  460. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/doctor.py +0 -0
  461. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/main.py +0 -0
  462. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/models.py +0 -0
  463. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/providers/__init__.py +0 -0
  464. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/providers/aws.py +0 -0
  465. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/providers/azure.py +0 -0
  466. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/providers/base.py +0 -0
  467. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/providers/gcp.py +0 -0
  468. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/deploy/schema.py +0 -0
  469. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/docs_runner/__init__.py +0 -0
  470. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/docs_runner/classifier.py +0 -0
  471. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/docs_runner/executor.py +0 -0
  472. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/docs_runner/extractor.py +0 -0
  473. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/docs_runner/reporter.py +0 -0
  474. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/docs_runner/runner.py +0 -0
  475. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/docs_runner/workspace.py +0 -0
  476. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/__init__.py +0 -0
  477. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/a2u_server.py +0 -0
  478. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/discovery.py +0 -0
  479. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/__init__.py +0 -0
  480. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/a2a.py +0 -0
  481. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/a2u.py +0 -0
  482. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/agents_api.py +0 -0
  483. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/base.py +0 -0
  484. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/mcp.py +0 -0
  485. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/recipe.py +0 -0
  486. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  487. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/registry.py +0 -0
  488. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/endpoints/server.py +0 -0
  489. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/flow/__init__.py +0 -0
  490. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/flow/client.py +0 -0
  491. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  492. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  493. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/flow/components/__init__.py +0 -0
  494. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/flow/converter.py +0 -0
  495. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/flow/helpers.py +0 -0
  496. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/framework_adapters/__init__.py +0 -0
  497. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  498. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/framework_adapters/base.py +0 -0
  499. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  500. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  501. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/__init__.py +0 -0
  502. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/auth.py +0 -0
  503. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/cookie_auth.py +0 -0
  504. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/exec_approval.py +0 -0
  505. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/gateway_approval.py +0 -0
  506. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/magic_link.py +0 -0
  507. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/origin_check.py +0 -0
  508. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/pairing.py +0 -0
  509. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/pairing_routes.py +0 -0
  510. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/push_channels.py +0 -0
  511. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/push_delivery.py +0 -0
  512. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/push_polling.py +0 -0
  513. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/push_presence.py +0 -0
  514. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/rate_limiter.py +0 -0
  515. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/redis_pubsub.py +0 -0
  516. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/gateway/server.py +0 -0
  517. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/inbuilt_tools/__init__.py +0 -0
  518. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  519. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/inc/__init__.py +0 -0
  520. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/inc/config.py +0 -0
  521. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/_session_info.py +0 -0
  522. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/_tool_aliases.py +0 -0
  523. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/base.py +0 -0
  524. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/claude_code.py +0 -0
  525. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/codex_cli.py +0 -0
  526. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/compute/__init__.py +0 -0
  527. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/compute/daytona.py +0 -0
  528. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/compute/docker.py +0 -0
  529. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/compute/e2b.py +0 -0
  530. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/compute/flyio.py +0 -0
  531. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/compute/local.py +0 -0
  532. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/compute/modal_compute.py +0 -0
  533. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/cursor_cli.py +0 -0
  534. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/db_session_adapter.py +0 -0
  535. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/gemini_cli.py +0 -0
  536. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/managed_local.py +0 -0
  537. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/integrations/sandboxed_agent.py +0 -0
  538. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/jobs/__init__.py +0 -0
  539. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/jobs/executor.py +0 -0
  540. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/jobs/models.py +0 -0
  541. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/jobs/router.py +0 -0
  542. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/jobs/server.py +0 -0
  543. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/jobs/store.py +0 -0
  544. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/llm/__init__.py +0 -0
  545. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/llm/registry.py +0 -0
  546. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/__init__.py +0 -0
  547. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/__init__.py +0 -0
  548. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/agents.py +0 -0
  549. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/capabilities.py +0 -0
  550. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
  551. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/knowledge.py +0 -0
  552. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/memory.py +0 -0
  553. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/prompts.py +0 -0
  554. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/resources.py +0 -0
  555. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
  556. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/auth/__init__.py +0 -0
  557. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/auth/api_key.py +0 -0
  558. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/auth/oauth.py +0 -0
  559. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/auth/oidc.py +0 -0
  560. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/auth/scopes.py +0 -0
  561. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/cli.py +0 -0
  562. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/elicitation.py +0 -0
  563. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/icons.py +0 -0
  564. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/recipe_adapter.py +0 -0
  565. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/recipe_cli.py +0 -0
  566. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/registry.py +0 -0
  567. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/sampling.py +0 -0
  568. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/server.py +0 -0
  569. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/tasks.py +0 -0
  570. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/tool_index.py +0 -0
  571. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/transports/__init__.py +0 -0
  572. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/transports/http_stream.py +0 -0
  573. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/mcp_server/transports/stdio.py +0 -0
  574. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/n8n/__init__.py +0 -0
  575. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/n8n/client.py +0 -0
  576. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/n8n/converter.py +0 -0
  577. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/n8n/preview.py +0 -0
  578. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/n8n/reverse_converter.py +0 -0
  579. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/observability/__init__.py +0 -0
  580. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/observability/langextract.py +0 -0
  581. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/observability/langfuse.py +0 -0
  582. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/__init__.py +0 -0
  583. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/config.py +0 -0
  584. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/__init__.py +0 -0
  585. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/async_mysql.py +0 -0
  586. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/async_postgres.py +0 -0
  587. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  588. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/base.py +0 -0
  589. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/json_store.py +0 -0
  590. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/mysql.py +0 -0
  591. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/postgres.py +0 -0
  592. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/singlestore.py +0 -0
  593. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/sqlite.py +0 -0
  594. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/supabase.py +0 -0
  595. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/surrealdb.py +0 -0
  596. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/conversation/turso.py +0 -0
  597. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/factory.py +0 -0
  598. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/hooks/__init__.py +0 -0
  599. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  600. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/__init__.py +0 -0
  601. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/base.py +0 -0
  602. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/cassandra.py +0 -0
  603. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/chroma.py +0 -0
  604. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  605. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  606. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/couchbase.py +0 -0
  607. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/lancedb.py +0 -0
  608. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  609. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  610. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  611. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/milvus.py +0 -0
  612. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  613. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/pgvector.py +0 -0
  614. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/pinecone.py +0 -0
  615. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/qdrant.py +0 -0
  616. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  617. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  618. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  619. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  620. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/knowledge/weaviate.py +0 -0
  621. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/migrations/__init__.py +0 -0
  622. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/migrations/manager.py +0 -0
  623. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/orchestrator.py +0 -0
  624. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/__init__.py +0 -0
  625. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/async_mongodb.py +0 -0
  626. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/base.py +0 -0
  627. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/dynamodb.py +0 -0
  628. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/firestore.py +0 -0
  629. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/gcs.py +0 -0
  630. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/memory.py +0 -0
  631. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/mongodb.py +0 -0
  632. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/redis.py +0 -0
  633. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/state/upstash.py +0 -0
  634. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/tests/__init__.py +0 -0
  635. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/persistence/tests/test_all_backends.py +0 -0
  636. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/push/__init__.py +0 -0
  637. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/push/client.py +0 -0
  638. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/push/transports.py +0 -0
  639. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/__init__.py +0 -0
  640. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/bridge.py +0 -0
  641. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/core.py +0 -0
  642. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/exceptions.py +0 -0
  643. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/history.py +0 -0
  644. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/models.py +0 -0
  645. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/operations.py +0 -0
  646. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/policy.py +0 -0
  647. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/registry.py +0 -0
  648. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/runtime.py +0 -0
  649. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/security.py +0 -0
  650. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/serve.py +0 -0
  651. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/recipe/server.py +0 -0
  652. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/__init__.py +0 -0
  653. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/analyzer.py +0 -0
  654. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/applier.py +0 -0
  655. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/judge.py +0 -0
  656. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/plan.py +0 -0
  657. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/player.py +0 -0
  658. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/reader.py +0 -0
  659. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/storage.py +0 -0
  660. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/replay/writer.py +0 -0
  661. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/sandbox/__init__.py +0 -0
  662. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/sandbox/daytona.py +0 -0
  663. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/sandbox/docker.py +0 -0
  664. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/sandbox/modal.py +0 -0
  665. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/sandbox/sandlock.py +0 -0
  666. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/sandbox/ssh.py +0 -0
  667. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/sandbox/subprocess.py +0 -0
  668. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/__init__.py +0 -0
  669. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/agent_scheduler.py +0 -0
  670. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/base.py +0 -0
  671. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/daemon_manager.py +0 -0
  672. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/executor.py +0 -0
  673. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/shared.py +0 -0
  674. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/state_manager.py +0 -0
  675. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler/yaml_loader.py +0 -0
  676. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/scheduler.py +0 -0
  677. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/security/__init__.py +0 -0
  678. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/security/audit.py +0 -0
  679. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/security/injection.py +0 -0
  680. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/security/protected.py +0 -0
  681. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/setup/__init__.py +0 -0
  682. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/setup/build.py +0 -0
  683. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/setup/post_install.py +0 -0
  684. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/setup/setup_conda_env.py +0 -0
  685. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/setup.py +0 -0
  686. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/__init__.py +0 -0
  687. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/ai_generator.py +0 -0
  688. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/config.py +0 -0
  689. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/dedupe.py +0 -0
  690. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/discovery.py +0 -0
  691. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/drift.py +0 -0
  692. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/engine.py +0 -0
  693. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/enhanced_templates.py +0 -0
  694. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/example_verifier.py +0 -0
  695. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/manifest.py +0 -0
  696. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/models.py +0 -0
  697. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/reports.py +0 -0
  698. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/templates.py +0 -0
  699. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/undo_redo.py +0 -0
  700. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/standardise/validator.py +0 -0
  701. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/storage/__init__.py +0 -0
  702. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/storage/dynamodb_adapter.py +0 -0
  703. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/storage/mongodb_adapter.py +0 -0
  704. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/storage/postgresql_adapter.py +0 -0
  705. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/storage/redis_adapter.py +0 -0
  706. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/__init__.py +0 -0
  707. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/batch_source.py +0 -0
  708. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/cli_docs_source.py +0 -0
  709. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/discovery.py +0 -0
  710. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/docs_source.py +0 -0
  711. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/examples_source.py +0 -0
  712. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/executor.py +0 -0
  713. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/models.py +0 -0
  714. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/report_viewer.py +0 -0
  715. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/reporter.py +0 -0
  716. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/suite_runner/runner.py +0 -0
  717. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/__init__.py +0 -0
  718. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/cache.py +0 -0
  719. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/dependency_checker.py +0 -0
  720. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/discovery.py +0 -0
  721. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/loader.py +0 -0
  722. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/registry.py +0 -0
  723. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/resolver.py +0 -0
  724. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/security.py +0 -0
  725. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/templates/tools_doctor.py +0 -0
  726. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/test.py +0 -0
  727. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tool_registry.py +0 -0
  728. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tools/__init__.py +0 -0
  729. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tools/audio.py +0 -0
  730. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tools/glob_tool.py +0 -0
  731. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tools/grep_tool.py +0 -0
  732. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tools/multiedit.py +0 -0
  733. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/tools/skill_manage.py +0 -0
  734. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/__init__.py +0 -0
  735. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/agents/__init__.py +0 -0
  736. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/agents/grader.py +0 -0
  737. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/agents/hook.py +0 -0
  738. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/agents/models.py +0 -0
  739. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/agents/orchestrator.py +0 -0
  740. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/agents/storage.py +0 -0
  741. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/llm/__init__.py +0 -0
  742. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train/llm/trainer.py +0 -0
  743. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train.py +0 -0
  744. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/train_vision.py +0 -0
  745. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui/_external_agents.py +0 -0
  746. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui/callbacks.py +0 -0
  747. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui/components/aicoder.py +0 -0
  748. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui/context.py +0 -0
  749. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui/database_config.py +0 -0
  750. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_agents/__init__.py +0 -0
  751. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_agents/default_app.py +0 -0
  752. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_bot/__init__.py +0 -0
  753. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_bot/default_app.py +0 -0
  754. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_chat/__init__.py +0 -0
  755. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_chat/default_app.py +0 -0
  756. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_realtime/__init__.py +0 -0
  757. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/ui_realtime/default_app.py +0 -0
  758. {praisonai-4.6.30 → praisonai-4.6.32}/praisonai/upload_vision.py +0 -0
  759. {praisonai-4.6.30 → praisonai-4.6.32}/setup.cfg +0 -0
  760. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test.py +0 -0
  761. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_agents_playbook.py +0 -0
  762. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_approval_system.py +0 -0
  763. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_basic.py +0 -0
  764. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_cli_features.py +0 -0
  765. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_custom_tools_fix.py +0 -0
  766. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_double_api_fix.py +0 -0
  767. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_n8n_agent_invoke.py +0 -0
  768. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_n8n_cli_feature.py +0 -0
  769. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_n8n_integration.py +0 -0
  770. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_phase2_refactor.py +0 -0
  771. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_recipe.py +0 -0
  772. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_registry.py +0 -0
  773. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_runner.py +0 -0
  774. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_sandboxed_agent_compatibility.py +0 -0
  775. {praisonai-4.6.30 → praisonai-4.6.32}/tests/test_serve_features.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.30
3
+ Version: 4.6.32
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>=1.6.30
14
+ Requires-Dist: praisonaiagents>=1.6.32
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: litellm<=1.82.6,>=1.81.0
17
17
  Requires-Dist: PyYAML>=6.0
@@ -203,7 +203,7 @@ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
203
203
 
204
204
  </div>
205
205
 
206
- PraisonAI 🦞 — **Hire a 24/7 AI Workforce.** Stop writing boilerplate and start shipping autonomous agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
206
+ PraisonAI 🦞 — **Hire a 24/7 AI Workforce.** Stop writing boilerplate and start shipping autonomous, self-improving agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
207
207
 
208
208
  ```bash
209
209
  curl -fsSL https://praison.ai/install.sh | bash
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.30
3
+ Version: 4.6.32
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>=1.6.30
14
+ Requires-Dist: praisonaiagents>=1.6.32
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: litellm<=1.82.6,>=1.81.0
17
17
  Requires-Dist: PyYAML>=6.0
@@ -203,7 +203,7 @@ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
203
203
 
204
204
  </div>
205
205
 
206
- PraisonAI 🦞 — **Hire a 24/7 AI Workforce.** Stop writing boilerplate and start shipping autonomous agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
206
+ PraisonAI 🦞 — **Hire a 24/7 AI Workforce.** Stop writing boilerplate and start shipping autonomous, self-improving agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
207
207
 
208
208
  ```bash
209
209
  curl -fsSL https://praison.ai/install.sh | bash
@@ -490,6 +490,7 @@ praisonai/framework_adapters/autogen_adapter.py
490
490
  praisonai/framework_adapters/base.py
491
491
  praisonai/framework_adapters/crewai_adapter.py
492
492
  praisonai/framework_adapters/praisonai_adapter.py
493
+ praisonai/framework_adapters/registry.py
493
494
  praisonai/gateway/__init__.py
494
495
  praisonai/gateway/auth.py
495
496
  praisonai/gateway/cookie_auth.py
@@ -520,6 +521,8 @@ praisonai/integrations/codex_cli.py
520
521
  praisonai/integrations/cursor_cli.py
521
522
  praisonai/integrations/db_session_adapter.py
522
523
  praisonai/integrations/gemini_cli.py
524
+ praisonai/integrations/hosted_agent.py
525
+ praisonai/integrations/local_agent.py
523
526
  praisonai/integrations/managed_agents.py
524
527
  praisonai/integrations/managed_local.py
525
528
  praisonai/integrations/registry.py
@@ -1,7 +1,7 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.30
4
+ praisonaiagents>=1.6.32
5
5
  python-dotenv>=0.19.0
6
6
  litellm<=1.82.6,>=1.81.0
7
7
  PyYAML>=6.0
@@ -23,7 +23,7 @@
23
23
 
24
24
  </div>
25
25
 
26
- PraisonAI 🦞 — **Hire a 24/7 AI Workforce.** Stop writing boilerplate and start shipping autonomous agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
26
+ PraisonAI 🦞 — **Hire a 24/7 AI Workforce.** Stop writing boilerplate and start shipping autonomous, self-improving agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
27
27
 
28
28
  ```bash
29
29
  curl -fsSL https://praison.ai/install.sh | bash
@@ -1,5 +1,6 @@
1
1
  # Suppress crewai.cli.config logger BEFORE any imports to prevent INFO log
2
2
  import logging
3
+ import threading
3
4
  logging.getLogger('crewai.cli.config').setLevel(logging.ERROR)
4
5
 
5
6
  # Version is lightweight, import directly
@@ -27,35 +28,45 @@ __all__ = [
27
28
  'LocalManagedConfig', # backward compat alias
28
29
  'SandboxedAgent', # new honest name
29
30
  'SandboxedAgentConfig', # new honest name
31
+ # New canonical agent backends
32
+ 'HostedAgent',
33
+ 'HostedAgentConfig',
34
+ 'LocalAgent',
35
+ 'LocalAgentConfig',
30
36
  ]
31
37
 
32
- # Telemetry initialization state
38
+ # Telemetry initialization state - thread-safe (threading imported above)
39
+ _telemetry_lock = threading.Lock()
33
40
  _telemetry_initialized = False
34
41
 
35
42
  def _ensure_telemetry_defaults() -> None:
36
- """Apply telemetry env defaults exactly once, on first observability use."""
43
+ """Apply telemetry env defaults exactly once, on first observability use.
44
+
45
+ Thread-safe implementation using double-checked locking pattern.
46
+ """
37
47
  global _telemetry_initialized
38
- if _telemetry_initialized:
48
+ if _telemetry_initialized: # fast path, OK without lock
39
49
  return
40
- import os
41
- langfuse_configured = bool(
42
- os.getenv("LANGFUSE_PUBLIC_KEY")
43
- or os.path.exists(os.path.expanduser("~/.praisonai/langfuse.env"))
44
- )
45
- if langfuse_configured:
46
- # Explicitly enable OTEL for Langfuse integration
47
- os.environ["OTEL_SDK_DISABLED"] = "false"
48
- else:
49
- os.environ.setdefault("OTEL_SDK_DISABLED", "true")
50
- os.environ.setdefault("EC_TELEMETRY", "false") # respect user overrides
51
- _telemetry_initialized = True
50
+ with _telemetry_lock:
51
+ if _telemetry_initialized:
52
+ return
53
+ import os
54
+ # Respect any value the user already set
55
+ if "OTEL_SDK_DISABLED" not in os.environ:
56
+ langfuse_configured = bool(
57
+ os.getenv("LANGFUSE_PUBLIC_KEY")
58
+ or os.path.exists(os.path.expanduser("~/.praisonai/langfuse.env"))
59
+ )
60
+ os.environ["OTEL_SDK_DISABLED"] = "false" if langfuse_configured else "true"
61
+ os.environ.setdefault("EC_TELEMETRY", "false") # respect user overrides
62
+ _telemetry_initialized = True
52
63
 
53
64
 
54
65
  # Lazy loading for heavy imports
55
66
  def __getattr__(name):
56
67
  """Lazy load heavy modules to improve import time."""
57
- # Ensure telemetry defaults before any lazy import that may touch OTEL.
58
- _ensure_telemetry_defaults()
68
+ # Note: Telemetry initialization moved out of lazy hook to avoid side effects
69
+ # It should be called explicitly from cli.PraisonAI.__init__ instead
59
70
 
60
71
  if name == 'PraisonAI':
61
72
  from .cli import PraisonAI
@@ -123,6 +134,19 @@ def __getattr__(name):
123
134
  elif name in ('ManagedConfig', 'ManagedBackendConfig'):
124
135
  from .integrations.managed_agents import ManagedConfig
125
136
  return ManagedConfig
137
+ # New canonical agent backends
138
+ elif name == 'HostedAgent':
139
+ from .integrations.hosted_agent import HostedAgent
140
+ return HostedAgent
141
+ elif name == 'HostedAgentConfig':
142
+ from .integrations.hosted_agent import HostedAgentConfig
143
+ return HostedAgentConfig
144
+ elif name == 'LocalAgent':
145
+ from .integrations.local_agent import LocalAgent
146
+ return LocalAgent
147
+ elif name == 'LocalAgentConfig':
148
+ from .integrations.local_agent import LocalAgentConfig
149
+ return LocalAgentConfig
126
150
  elif name in ('DB', 'PraisonAIDB', 'PraisonDB'):
127
151
  from .db.adapter import DB
128
152
  return DB
@@ -13,6 +13,7 @@ Design:
13
13
  """
14
14
 
15
15
  import sys
16
+ import threading
16
17
 
17
18
 
18
19
  # ---------------------------------------------------------------------------
@@ -20,32 +21,41 @@ import sys
20
21
  # ---------------------------------------------------------------------------
21
22
 
22
23
  _typer_commands_cache = None
24
+ _typer_commands_lock = threading.Lock()
23
25
 
24
26
 
25
27
  def _get_typer_commands():
26
- """Auto-discover registered Typer commands via Click introspection.
27
-
28
- Returns a set of command names that the Typer app knows about.
29
- This is populated from app.py's register_commands() — no manual
30
- lists to maintain.
31
- """
28
+ """Auto-discover registered Typer commands via Click introspection."""
32
29
  global _typer_commands_cache
30
+
31
+ # Fast path
33
32
  if _typer_commands_cache is not None:
34
33
  return _typer_commands_cache
35
34
 
36
- try:
37
- from praisonai.cli.app import app, register_commands
38
- register_commands()
39
-
40
- import typer.main
41
- import click
42
- click_app = typer.main.get_command(app)
43
- ctx = click.Context(click_app, info_name="praisonai")
44
- _typer_commands_cache = set(click_app.list_commands(ctx))
45
- except Exception:
46
- _typer_commands_cache = set()
47
-
48
- return _typer_commands_cache
35
+ with _typer_commands_lock:
36
+ if _typer_commands_cache is not None: # Double-check
37
+ return _typer_commands_cache
38
+
39
+ try:
40
+ from praisonai.cli.app import app, register_commands
41
+ register_commands()
42
+
43
+ import typer.main
44
+ import click
45
+ click_app = typer.main.get_command(app)
46
+ ctx = click.Context(click_app, info_name="praisonai")
47
+ commands = set(click_app.list_commands(ctx))
48
+ except Exception:
49
+ # Do NOT poison the cache on failure — let the next caller retry.
50
+ import logging
51
+ logging.getLogger("praisonai.__main__").warning(
52
+ "Typer command discovery failed; falling back to legacy dispatch.",
53
+ exc_info=True,
54
+ )
55
+ return set()
56
+
57
+ _typer_commands_cache = commands
58
+ return _typer_commands_cache
49
59
 
50
60
 
51
61
  def _find_first_command(argv):
@@ -72,13 +82,39 @@ def _find_first_command(argv):
72
82
 
73
83
  def _run_typer(argv):
74
84
  """Dispatch to the Typer CLI app."""
85
+ import os
86
+
87
+ # Set up safer encoding for Windows legacy terminals
88
+ if sys.platform == "win32" and hasattr(sys.stdout, 'encoding'):
89
+ encoding = getattr(sys.stdout, 'encoding', '').lower()
90
+ if encoding in ('cp1252', 'cp1251', 'cp850', 'ascii') or ('cp' in encoding and encoding != 'cp65001'):
91
+ # Force UTF-8 mode for subprocess safety
92
+ if 'PYTHONIOENCODING' not in os.environ:
93
+ os.environ['PYTHONIOENCODING'] = 'utf-8'
94
+
95
+ # Serialize Typer registration through the discovery lock so this path
96
+ # cannot race with ``_get_typer_commands`` mid-registration on another
97
+ # thread. ``register_commands()`` is idempotent on success; we hold the
98
+ # lock around it (and not just call it) so that a concurrent
99
+ # discoverer cannot observe a partially-registered command tree.
100
+ # Crucially we do NOT wrap this in try/except: registration errors
101
+ # (e.g. ``ImportError`` from a missing optional dep) must propagate
102
+ # from ``main()`` rather than be silently downgraded to an empty
103
+ # command set, otherwise the user just sees Typer's "no command" path
104
+ # instead of a real diagnostic.
75
105
  from praisonai.cli.app import app, register_commands
76
- register_commands() # idempotent
106
+ with _typer_commands_lock:
107
+ register_commands()
77
108
 
78
109
  original = sys.argv
79
110
  sys.argv = ["praisonai"] + list(argv)
80
111
  try:
81
112
  app()
113
+ except UnicodeEncodeError as e:
114
+ # Handle Unicode encoding errors gracefully
115
+ print("Error: Unable to display help due to terminal encoding limitations.", file=sys.stderr)
116
+ print("Try setting: $env:PYTHONIOENCODING='utf-8' (PowerShell) or set PYTHONIOENCODING=utf-8 (cmd)", file=sys.stderr)
117
+ sys.exit(0)
82
118
  except SystemExit as e:
83
119
  sys.exit(e.code if isinstance(e.code, int) else 0)
84
120
  finally:
@@ -6,7 +6,6 @@ handling nested event loop scenarios without creating a new event loop
6
6
  on every call (which is expensive and breaks multi-agent workflows).
7
7
  """
8
8
  import asyncio
9
- import atexit
10
9
  import os
11
10
  import threading
12
11
  from concurrent.futures import Future
@@ -22,18 +21,38 @@ class _BackgroundLoop:
22
21
  self._thread: threading.Thread | None = None
23
22
  self._lock = threading.Lock()
24
23
 
24
+ def _spawn_locked(self) -> asyncio.AbstractEventLoop:
25
+ """Create the loop+thread; caller must hold ``self._lock``.
26
+
27
+ The thread is marked ``daemon=True`` so that short-lived scripts
28
+ (e.g. CLI commands, smoke tests) exit cleanly without waiting on
29
+ the background loop to be shut down explicitly. Long-running
30
+ server processes should call :func:`shutdown` explicitly to cancel
31
+ in-flight tasks before process exit.
32
+ """
33
+ # Enforce the documented invariant. ``threading.Lock.locked()``
34
+ # is process-wide, not thread-local, but combined with the fact
35
+ # that the only callers are :py:meth:`get` and :py:meth:`get_unlocked`
36
+ # (the latter only invoked from inside ``run_sync`` while holding
37
+ # the lock), this catches the "forgot to hold the lock" mistake.
38
+ assert self._lock.locked(), "_spawn_locked() requires self._lock to be held"
39
+ if self._loop is None or self._loop.is_closed():
40
+ self._loop = asyncio.new_event_loop()
41
+ self._thread = threading.Thread(
42
+ target=self._loop.run_forever,
43
+ name="praisonai-async",
44
+ daemon=True,
45
+ )
46
+ self._thread.start()
47
+ return self._loop
48
+
25
49
  def get(self) -> asyncio.AbstractEventLoop:
26
50
  with self._lock:
27
- if self._loop is None or self._loop.is_closed():
28
- self._loop = asyncio.new_event_loop()
29
- # non-daemon so shutdown must be explicit and clean
30
- self._thread = threading.Thread(
31
- target=self._loop.run_forever,
32
- name="praisonai-async",
33
- daemon=False,
34
- )
35
- self._thread.start()
36
- return self._loop
51
+ return self._spawn_locked()
52
+
53
+ def get_unlocked(self) -> asyncio.AbstractEventLoop:
54
+ """Get loop assuming caller holds _lock. For run_sync() use only."""
55
+ return self._spawn_locked()
37
56
 
38
57
  def shutdown(self, timeout: float = 5.0) -> None:
39
58
  with self._lock:
@@ -58,17 +77,14 @@ class _BackgroundLoop:
58
77
  self._thread = None
59
78
 
60
79
  _BG = _BackgroundLoop()
61
- atexit.register(_BG.shutdown)
62
80
 
63
81
 
64
82
  def run_sync(coro: Awaitable[T], *, timeout: float | None = _DEFAULT_TIMEOUT) -> T:
65
83
  """
66
- Run a coroutine synchronously, safe inside a running loop.
84
+ Run a coroutine synchronously using the background loop.
67
85
 
68
- This function automatically detects if there's already a running event loop
69
- and handles the execution appropriately:
70
- - If no loop is running: uses background loop (consistent behavior)
71
- - If a loop is running: schedules on background loop (safe path)
86
+ IMPORTANT: This function cannot be called from within a running event loop
87
+ as it would cause deadlock. Use 'await coro' directly from async contexts.
72
88
 
73
89
  Args:
74
90
  coro: The coroutine to run
@@ -78,24 +94,27 @@ def run_sync(coro: Awaitable[T], *, timeout: float | None = _DEFAULT_TIMEOUT) ->
78
94
  The result of the coroutine
79
95
 
80
96
  Raises:
97
+ RuntimeError: If called from within a running event loop
81
98
  TimeoutError: If timeout is exceeded
82
99
  Any exception raised by the coroutine
83
100
  """
84
101
  try:
85
102
  asyncio.get_running_loop()
86
- running = True
87
103
  except RuntimeError:
88
- running = False
89
-
90
- if not running:
91
- # Reuse the background loop instead of creating a new one per call.
92
- fut: Future = asyncio.run_coroutine_threadsafe(coro, _BG.get())
93
- return fut.result(timeout=timeout)
104
+ pass
105
+ else:
106
+ raise RuntimeError(
107
+ "run_sync() cannot be called from a running event loop; "
108
+ "await the coroutine directly instead."
109
+ )
94
110
 
95
- fut = asyncio.run_coroutine_threadsafe(coro, _BG.get())
111
+ # Submit the coroutine inside the lock to prevent shutdown races
112
+ with _BG._lock:
113
+ loop = _BG.get_unlocked()
114
+ fut: Future = asyncio.run_coroutine_threadsafe(coro, loop)
96
115
  return fut.result(timeout=timeout)
97
116
 
98
117
 
99
118
  def shutdown() -> None:
100
- """Public hook for servers (gateway, a2u, mcp_server) to stop the bridge cleanly."""
119
+ """Public hook for long-running server processes to stop the bridge cleanly."""
101
120
  _BG.shutdown()
@@ -0,0 +1,19 @@
1
+ """Backward-compatible re-export. Prefer `praisonai.scheduler`.
2
+
3
+ This module is deprecated. Use the canonical implementation in the
4
+ scheduler package for full functionality including YAML and recipe support.
5
+ """
6
+
7
+ import warnings
8
+
9
+ warnings.warn(
10
+ "praisonai.agent_scheduler is deprecated; "
11
+ "use 'from praisonai.scheduler import AgentScheduler' instead.",
12
+ DeprecationWarning, stacklevel=2,
13
+ )
14
+
15
+ from praisonai.scheduler.agent_scheduler import ( # noqa: F401
16
+ AgentScheduler, PraisonAgentExecutor, create_agent_scheduler
17
+ )
18
+ # Preserve the legacy public name as an alias of the canonical interface
19
+ from praisonai.scheduler.base import ExecutorInterface as AgentExecutorInterface # noqa: F401
@@ -17,10 +17,8 @@ import re
17
17
  import keyword
18
18
 
19
19
  # Import new architecture components
20
- from .framework_adapters import (
21
- FrameworkAdapter, CrewAIAdapter, AutoGenAdapter,
22
- AutoGenV4Adapter, AG2Adapter, PraisonAIAdapter
23
- )
20
+ from .framework_adapters.base import FrameworkAdapter
21
+ from .framework_adapters.registry import FrameworkAdapterRegistry
24
22
  from .tool_registry import ToolRegistry
25
23
 
26
24
  # Import availability flags
@@ -51,14 +49,8 @@ try:
51
49
  except ImportError:
52
50
  pass
53
51
 
54
- # Registry of available adapters (lazy-loaded)
55
- FRAMEWORK_ADAPTERS = {
56
- "crewai": CrewAIAdapter,
57
- "autogen": AutoGenAdapter,
58
- "autogen_v4": AutoGenV4Adapter,
59
- "ag2": AG2Adapter,
60
- "praisonai": PraisonAIAdapter
61
- }
52
+ # Framework adapter registry - now uses proper registry pattern
53
+ # This replaces the hardcoded FRAMEWORK_ADAPTERS dict
62
54
 
63
55
  # Note: OTEL_SDK_DISABLED moved to CLI entry point per issue requirements
64
56
 
@@ -258,12 +250,8 @@ class AgentsGenerator:
258
250
  Raises:
259
251
  ValueError: If framework is not supported
260
252
  """
261
- if framework not in FRAMEWORK_ADAPTERS:
262
- raise ValueError(f"Unsupported framework: {framework}. "
263
- f"Supported frameworks: {list(FRAMEWORK_ADAPTERS.keys())}")
264
-
265
- adapter_class = FRAMEWORK_ADAPTERS[framework]
266
- return adapter_class()
253
+ adapter_registry = FrameworkAdapterRegistry.get_instance()
254
+ return adapter_registry.create(framework)
267
255
 
268
256
  def _merge_cli_config(self, config, cli_config):
269
257
  """