PraisonAI 4.6.144__tar.gz → 4.6.146__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 (644) hide show
  1. {praisonai-4.6.144 → praisonai-4.6.146}/PKG-INFO +4 -4
  2. {praisonai-4.6.144 → praisonai-4.6.146}/PraisonAI.egg-info/PKG-INFO +4 -4
  3. {praisonai-4.6.144 → praisonai-4.6.146}/PraisonAI.egg-info/SOURCES.txt +1 -0
  4. {praisonai-4.6.144 → praisonai-4.6.146}/PraisonAI.egg-info/requires.txt +3 -3
  5. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_entrypoint.py +30 -19
  6. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/agents_generator.py +93 -41
  7. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/agent_scheduler.py +25 -4
  8. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/interactive/core.py +43 -0
  9. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/direct_prompt.py +124 -72
  10. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/subcommand_handlers.py +10 -11
  11. praisonai-4.6.146/praisonai/framework_adapters/base.py +138 -0
  12. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/crewai_adapter.py +11 -2
  13. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/managed_local.py +41 -3
  14. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/cli.py +48 -2
  15. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/server.py +73 -1
  16. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/transports/http_stream.py +120 -27
  17. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/observability/hooks.py +169 -31
  18. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/_base_scheduler.py +7 -0
  19. praisonai-4.6.146/praisonai/scheduler/_delivery.py +204 -0
  20. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/agent_scheduler.py +44 -3
  21. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/async_agent_scheduler.py +39 -1
  22. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/daemon_manager.py +8 -1
  23. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/yaml_loader.py +8 -2
  24. praisonai-4.6.146/praisonai/version.py +1 -0
  25. {praisonai-4.6.144 → praisonai-4.6.146}/pyproject.toml +3 -3
  26. praisonai-4.6.144/praisonai/framework_adapters/base.py +0 -66
  27. praisonai-4.6.144/praisonai/version.py +0 -1
  28. {praisonai-4.6.144 → praisonai-4.6.146}/PraisonAI.egg-info/dependency_links.txt +0 -0
  29. {praisonai-4.6.144 → praisonai-4.6.146}/PraisonAI.egg-info/entry_points.txt +0 -0
  30. {praisonai-4.6.144 → praisonai-4.6.146}/PraisonAI.egg-info/top_level.txt +0 -0
  31. {praisonai-4.6.144 → praisonai-4.6.146}/README.md +0 -0
  32. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/__init__.py +0 -0
  33. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/__main__.py +0 -0
  34. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_approval_spec.py +0 -0
  35. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_async_bridge.py +0 -0
  36. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_bootstrap.py +0 -0
  37. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/__init__.py +0 -0
  38. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/api_md.py +0 -0
  39. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/__init__.py +0 -0
  40. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/docs_extractor.py +0 -0
  41. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/docs_generator.py +0 -0
  42. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/generator.py +0 -0
  43. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  44. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/python_extractor.py +0 -0
  45. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  46. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/rust_extractor.py +0 -0
  47. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  48. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  49. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  50. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_framework_availability.py +0 -0
  51. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_lazy_cache.py +0 -0
  52. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_logging.py +0 -0
  53. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_registry.py +0 -0
  54. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/_safe_loader.py +0 -0
  55. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/acp/__init__.py +0 -0
  56. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/acp/config.py +0 -0
  57. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/acp/safe_edit.py +0 -0
  58. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/acp/server.py +0 -0
  59. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/acp/session.py +0 -0
  60. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/adapters/__init__.py +0 -0
  61. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/adapters/readers.py +0 -0
  62. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/adapters/rerankers.py +0 -0
  63. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/adapters/retrievers.py +0 -0
  64. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/adapters/vector_stores.py +0 -0
  65. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/agent.py +0 -0
  66. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/agent_scheduler.py +0 -0
  67. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/api/agent_invoke.py +0 -0
  68. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/api/call.py +0 -0
  69. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/app/__init__.py +0 -0
  70. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/app/agentos.py +0 -0
  71. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/async_agent_scheduler.py +0 -0
  72. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/audit/__init__.py +0 -0
  73. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/audit/agent_centric.py +0 -0
  74. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/auto.py +0 -0
  75. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/bots/__init__.py +0 -0
  76. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/__init__.py +0 -0
  77. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/agent.py +0 -0
  78. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/benchmark.py +0 -0
  79. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/cdp_agent.py +0 -0
  80. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/cdp_utils.py +0 -0
  81. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/cli.py +0 -0
  82. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/diagnostics.py +0 -0
  83. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/launcher.py +0 -0
  84. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/playwright_agent.py +0 -0
  85. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/profiling.py +0 -0
  86. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/protocol.py +0 -0
  87. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/report.py +0 -0
  88. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/server.py +0 -0
  89. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/sessions.py +0 -0
  90. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/browser/video.py +0 -0
  91. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/__init__.py +0 -0
  92. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/a2a.py +0 -0
  93. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/assistants.py +0 -0
  94. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/audio.py +0 -0
  95. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/batches.py +0 -0
  96. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/completions.py +0 -0
  97. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/container_files.py +0 -0
  98. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/containers.py +0 -0
  99. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/embeddings.py +0 -0
  100. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/files.py +0 -0
  101. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/fine_tuning.py +0 -0
  102. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/guardrails.py +0 -0
  103. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/images.py +0 -0
  104. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/mcp.py +0 -0
  105. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/messages.py +0 -0
  106. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/moderations.py +0 -0
  107. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/ocr.py +0 -0
  108. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/passthrough.py +0 -0
  109. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/rag.py +0 -0
  110. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/realtime.py +0 -0
  111. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/rerank.py +0 -0
  112. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/responses.py +0 -0
  113. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/search.py +0 -0
  114. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/skills.py +0 -0
  115. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/vector_store_files.py +0 -0
  116. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/vector_stores.py +0 -0
  117. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/capabilities/videos.py +0 -0
  118. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/claw/__init__.py +0 -0
  119. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/__init__.py +0 -0
  120. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/_paths.py +0 -0
  121. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/_shim.py +0 -0
  122. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/_warnings.py +0 -0
  123. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/app.py +0 -0
  124. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/approval_backend.py +0 -0
  125. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/branding.py +0 -0
  126. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/__init__.py +0 -0
  127. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/acp.py +0 -0
  128. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/agent.py +0 -0
  129. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/agents.py +0 -0
  130. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/app.py +0 -0
  131. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/attach.py +0 -0
  132. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/audit.py +0 -0
  133. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/auth.py +0 -0
  134. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/batch.py +0 -0
  135. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/benchmark.py +0 -0
  136. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/bot.py +0 -0
  137. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/browser.py +0 -0
  138. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/call.py +0 -0
  139. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/chat.py +0 -0
  140. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/checkpoint.py +0 -0
  141. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/claw.py +0 -0
  142. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/code.py +0 -0
  143. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/command.py +0 -0
  144. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/commit.py +0 -0
  145. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/completion.py +0 -0
  146. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/config.py +0 -0
  147. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/context.py +0 -0
  148. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/daemon.py +0 -0
  149. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/dashboard.py +0 -0
  150. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/debug.py +0 -0
  151. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/deploy.py +0 -0
  152. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/diag.py +0 -0
  153. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/docs.py +0 -0
  154. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/doctor.py +0 -0
  155. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/endpoints.py +0 -0
  156. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/environment.py +0 -0
  157. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/eval.py +0 -0
  158. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/examples.py +0 -0
  159. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/flow.py +0 -0
  160. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/gateway.py +0 -0
  161. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/github.py +0 -0
  162. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/hooks.py +0 -0
  163. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/identity.py +0 -0
  164. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/init.py +0 -0
  165. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/kanban.py +0 -0
  166. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/knowledge.py +0 -0
  167. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/langextract.py +0 -0
  168. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/langfuse.py +0 -0
  169. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/loop.py +0 -0
  170. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/lsp.py +0 -0
  171. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/managed.py +0 -0
  172. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/mcp.py +0 -0
  173. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/memory.py +0 -0
  174. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/mint_link.py +0 -0
  175. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/models.py +0 -0
  176. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/n8n.py +0 -0
  177. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/obs.py +0 -0
  178. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/onboard.py +0 -0
  179. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/package.py +0 -0
  180. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/pairing.py +0 -0
  181. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/paths.py +0 -0
  182. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/permissions.py +0 -0
  183. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/plugins.py +0 -0
  184. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/port.py +0 -0
  185. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/profile.py +0 -0
  186. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/publish.py +0 -0
  187. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/rag.py +0 -0
  188. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/realtime.py +0 -0
  189. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/recipe.py +0 -0
  190. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/registry.py +0 -0
  191. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/replay.py +0 -0
  192. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/research.py +0 -0
  193. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/retrieval.py +0 -0
  194. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/rules.py +0 -0
  195. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/run.py +0 -0
  196. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/sandbox.py +0 -0
  197. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/schedule.py +0 -0
  198. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/serve.py +0 -0
  199. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/session.py +0 -0
  200. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/setup.py +0 -0
  201. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/skills.py +0 -0
  202. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/standardise.py +0 -0
  203. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/templates.py +0 -0
  204. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/test.py +0 -0
  205. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/todo.py +0 -0
  206. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/tools.py +0 -0
  207. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/traces.py +0 -0
  208. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/tracker.py +0 -0
  209. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/train.py +0 -0
  210. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/ui.py +0 -0
  211. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/up.py +0 -0
  212. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/validate.py +0 -0
  213. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/version.py +0 -0
  214. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/commands/workflow.py +0 -0
  215. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/config_loader.py +0 -0
  216. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/configuration/__init__.py +0 -0
  217. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/configuration/config.schema.json +0 -0
  218. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/execution/__init__.py +0 -0
  219. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/fallback_schema.py +0 -0
  220. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/__init__.py +0 -0
  221. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/acp.py +0 -0
  222. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/agent_tools.py +0 -0
  223. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/approval.py +0 -0
  224. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/background.py +0 -0
  225. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/bots_cli.py +0 -0
  226. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/deploy.py +0 -0
  227. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/endpoints.py +0 -0
  228. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/eval.py +0 -0
  229. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/gateway.py +0 -0
  230. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/ollama.py +0 -0
  231. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/onboard.py +0 -0
  232. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/persistence.py +0 -0
  233. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/recipe.py +0 -0
  234. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/recipe_optimizer.py +0 -0
  235. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/registry.py +0 -0
  236. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/sandbox_cli.py +0 -0
  237. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/serve.py +0 -0
  238. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/templates.py +0 -0
  239. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/tools.py +0 -0
  240. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/tui/__init__.py +0 -0
  241. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/tui/app.py +0 -0
  242. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/features/workflow.py +0 -0
  243. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/interactive/__init__.py +0 -0
  244. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/interactive/async_tui.py +0 -0
  245. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/langfuse_client.py +0 -0
  246. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/__init__.py +0 -0
  247. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
  248. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
  249. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
  250. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/framework_run.py +0 -0
  251. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
  252. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/interactive_legacy.py +0 -0
  253. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/legacy/workflow_commands.py +0 -0
  254. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/main.py +0 -0
  255. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/output/__init__.py +0 -0
  256. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/schedule_cli.py +0 -0
  257. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/schema_provider.py +0 -0
  258. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/session/__init__.py +0 -0
  259. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/state/__init__.py +0 -0
  260. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/ui/__init__.py +0 -0
  261. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/unified_schema.py +0 -0
  262. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli/utils/__init__.py +0 -0
  263. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/cli_backends/__init__.py +0 -0
  264. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/__init__.py +0 -0
  265. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/agent_tools.py +0 -0
  266. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/diff/__init__.py +0 -0
  267. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/diff/diff_strategy.py +0 -0
  268. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/tools/__init__.py +0 -0
  269. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/tools/apply_diff.py +0 -0
  270. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/tools/execute_command.py +0 -0
  271. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/tools/list_files.py +0 -0
  272. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/tools/read_file.py +0 -0
  273. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/tools/search_replace.py +0 -0
  274. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/tools/write_file.py +0 -0
  275. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/utils/__init__.py +0 -0
  276. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/utils/file_utils.py +0 -0
  277. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/utils/ignore_utils.py +0 -0
  278. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/code/utils/text_utils.py +0 -0
  279. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/config/__init__.py +0 -0
  280. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/config/schema.py +0 -0
  281. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/config/validator.py +0 -0
  282. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/__init__.py +0 -0
  283. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/_storage_path.py +0 -0
  284. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/artifact_store.py +0 -0
  285. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/config.py +0 -0
  286. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/history_store.py +0 -0
  287. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/queue.py +0 -0
  288. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/setup.py +0 -0
  289. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/context/terminal_logger.py +0 -0
  290. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/daemon/__init__.py +0 -0
  291. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/db/__init__.py +0 -0
  292. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/db/adapter.py +0 -0
  293. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/__init__.py +0 -0
  294. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/api.py +0 -0
  295. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/docker.py +0 -0
  296. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/doctor.py +0 -0
  297. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/main.py +0 -0
  298. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/models.py +0 -0
  299. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/providers/__init__.py +0 -0
  300. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/providers/_registry.py +0 -0
  301. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/providers/aws.py +0 -0
  302. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/providers/azure.py +0 -0
  303. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/providers/base.py +0 -0
  304. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/providers/gcp.py +0 -0
  305. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/deploy/schema.py +0 -0
  306. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/__init__.py +0 -0
  307. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/a2u_server.py +0 -0
  308. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/discovery.py +0 -0
  309. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/__init__.py +0 -0
  310. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/a2a.py +0 -0
  311. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/a2u.py +0 -0
  312. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/agents_api.py +0 -0
  313. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/base.py +0 -0
  314. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/mcp.py +0 -0
  315. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/openai_compat.py +0 -0
  316. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/recipe.py +0 -0
  317. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  318. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/registry.py +0 -0
  319. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/endpoints/server.py +0 -0
  320. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/flow/__init__.py +0 -0
  321. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/flow/client.py +0 -0
  322. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  323. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  324. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/flow/components/__init__.py +0 -0
  325. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/flow/converter.py +0 -0
  326. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/flow/helpers.py +0 -0
  327. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/__init__.py +0 -0
  328. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/_config_builder.py +0 -0
  329. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  330. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  331. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/registry.py +0 -0
  332. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/validators.py +0 -0
  333. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/framework_adapters/workflow_framework.py +0 -0
  334. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/gateway/__init__.py +0 -0
  335. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/inbuilt_tools/__init__.py +0 -0
  336. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  337. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/inc/__init__.py +0 -0
  338. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/inc/config.py +0 -0
  339. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/inc/models.py +0 -0
  340. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/__init__.py +0 -0
  341. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/bridges/__init__.py +0 -0
  342. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  343. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/bridges/hooks_query.py +0 -0
  344. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  345. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/bridges/schedules_runner.py +0 -0
  346. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/bridges/usage_bridge.py +0 -0
  347. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/bridges/workflows_service.py +0 -0
  348. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/context_files.py +0 -0
  349. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/gateway_host.py +0 -0
  350. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/host_app.py +0 -0
  351. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/pages/__init__.py +0 -0
  352. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/pages/bot_health.py +0 -0
  353. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integration/pages/workflow_runs.py +0 -0
  354. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/__init__.py +0 -0
  355. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/_cli_loaders.py +0 -0
  356. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/_session_info.py +0 -0
  357. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/_tool_aliases.py +0 -0
  358. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/_unified_registry.py +0 -0
  359. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/backend_registry.py +0 -0
  360. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/base.py +0 -0
  361. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/claude_code.py +0 -0
  362. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/codex_cli.py +0 -0
  363. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/compute/__init__.py +0 -0
  364. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/compute/daytona.py +0 -0
  365. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/compute/docker.py +0 -0
  366. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/compute/e2b.py +0 -0
  367. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/compute/flyio.py +0 -0
  368. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/compute/local.py +0 -0
  369. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/compute/modal_compute.py +0 -0
  370. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/cursor_cli.py +0 -0
  371. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/db_session_adapter.py +0 -0
  372. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/gemini_cli.py +0 -0
  373. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/hosted_agent.py +0 -0
  374. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/local_agent.py +0 -0
  375. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/managed_agents.py +0 -0
  376. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/registry.py +0 -0
  377. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/integrations/sandboxed_agent.py +0 -0
  378. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/jobs/__init__.py +0 -0
  379. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/jobs/executor.py +0 -0
  380. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/jobs/models.py +0 -0
  381. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/jobs/path_validation.py +0 -0
  382. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/jobs/router.py +0 -0
  383. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/jobs/server.py +0 -0
  384. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/jobs/store.py +0 -0
  385. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/kanban/__init__.py +0 -0
  386. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/llm/__init__.py +0 -0
  387. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/llm/catalogue.py +0 -0
  388. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/llm/config.py +0 -0
  389. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/llm/credentials.py +0 -0
  390. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/llm/env.py +0 -0
  391. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/llm/gateways.py +0 -0
  392. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/llm/registry.py +0 -0
  393. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/__init__.py +0 -0
  394. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/__init__.py +0 -0
  395. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/agents.py +0 -0
  396. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/capabilities.py +0 -0
  397. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
  398. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
  399. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/knowledge.py +0 -0
  400. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/memory.py +0 -0
  401. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/prompts.py +0 -0
  402. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/resources.py +0 -0
  403. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
  404. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/auth/__init__.py +0 -0
  405. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/auth/api_key.py +0 -0
  406. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/auth/oauth.py +0 -0
  407. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/auth/oidc.py +0 -0
  408. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/auth/scopes.py +0 -0
  409. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/elicitation.py +0 -0
  410. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/icons.py +0 -0
  411. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/recipe_adapter.py +0 -0
  412. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/recipe_cli.py +0 -0
  413. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/registry.py +0 -0
  414. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/sampling.py +0 -0
  415. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/tasks.py +0 -0
  416. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/tool_index.py +0 -0
  417. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/transports/__init__.py +0 -0
  418. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/mcp_server/transports/stdio.py +0 -0
  419. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/n8n/__init__.py +0 -0
  420. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/n8n/client.py +0 -0
  421. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/n8n/converter.py +0 -0
  422. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/n8n/preview.py +0 -0
  423. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/n8n/reverse_converter.py +0 -0
  424. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/observability/__init__.py +0 -0
  425. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/observability/langextract.py +0 -0
  426. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/observability/langfuse.py +0 -0
  427. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/__init__.py +0 -0
  428. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/_valkey_client.py +0 -0
  429. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/config.py +0 -0
  430. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/__init__.py +0 -0
  431. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/_sql_base.py +0 -0
  432. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
  433. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/async_mysql.py +0 -0
  434. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/async_postgres.py +0 -0
  435. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  436. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/base.py +0 -0
  437. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/json_store.py +0 -0
  438. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/mysql.py +0 -0
  439. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/postgres.py +0 -0
  440. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/singlestore.py +0 -0
  441. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/sqlite.py +0 -0
  442. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/supabase.py +0 -0
  443. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/surrealdb.py +0 -0
  444. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
  445. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/conversation/turso.py +0 -0
  446. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/factory.py +0 -0
  447. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/hooks/__init__.py +0 -0
  448. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  449. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/__init__.py +0 -0
  450. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/base.py +0 -0
  451. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/cassandra.py +0 -0
  452. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/chroma.py +0 -0
  453. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  454. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  455. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/couchbase.py +0 -0
  456. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/lancedb.py +0 -0
  457. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  458. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  459. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  460. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/milvus.py +0 -0
  461. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  462. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/pgvector.py +0 -0
  463. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/pinecone.py +0 -0
  464. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/qdrant.py +0 -0
  465. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  466. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  467. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  468. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  469. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  470. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/knowledge/weaviate.py +0 -0
  471. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/migrations/__init__.py +0 -0
  472. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/migrations/manager.py +0 -0
  473. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/orchestrator.py +0 -0
  474. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/registry.py +0 -0
  475. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/__init__.py +0 -0
  476. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/async_mongodb.py +0 -0
  477. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/base.py +0 -0
  478. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/dynamodb.py +0 -0
  479. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/firestore.py +0 -0
  480. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/gcs.py +0 -0
  481. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/memory.py +0 -0
  482. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/mongodb.py +0 -0
  483. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/redis.py +0 -0
  484. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/upstash.py +0 -0
  485. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/state/valkey.py +0 -0
  486. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/tests/__init__.py +0 -0
  487. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/tests/test_all_backends.py +0 -0
  488. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
  489. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
  490. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/profiler.py +0 -0
  491. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/push/__init__.py +0 -0
  492. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/push/client.py +0 -0
  493. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/push/transports.py +0 -0
  494. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/__init__.py +0 -0
  495. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/bridge.py +0 -0
  496. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/core.py +0 -0
  497. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/exceptions.py +0 -0
  498. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/history.py +0 -0
  499. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/models.py +0 -0
  500. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/operations.py +0 -0
  501. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/policy.py +0 -0
  502. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/registry.py +0 -0
  503. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/runtime.py +0 -0
  504. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/security.py +0 -0
  505. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/serve.py +0 -0
  506. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/recipe/server.py +0 -0
  507. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/__init__.py +0 -0
  508. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/analyzer.py +0 -0
  509. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/applier.py +0 -0
  510. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/judge.py +0 -0
  511. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/plan.py +0 -0
  512. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/player.py +0 -0
  513. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/reader.py +0 -0
  514. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/storage.py +0 -0
  515. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/replay/writer.py +0 -0
  516. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/runtime/__init__.py +0 -0
  517. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/runtime/__main__.py +0 -0
  518. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/__init__.py +0 -0
  519. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/_compat.py +0 -0
  520. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/_registry.py +0 -0
  521. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/_shell.py +0 -0
  522. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/daytona.py +0 -0
  523. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/docker.py +0 -0
  524. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/e2b.py +0 -0
  525. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/modal.py +0 -0
  526. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/sandlock.py +0 -0
  527. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/ssh.py +0 -0
  528. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/sandbox/subprocess.py +0 -0
  529. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/__init__.py +0 -0
  530. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/_dispatch.py +0 -0
  531. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/base.py +0 -0
  532. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  533. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/condition_gate.py +0 -0
  534. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/deployment.py +0 -0
  535. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/executor.py +0 -0
  536. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/run_policy.py +0 -0
  537. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/shared.py +0 -0
  538. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/state_manager.py +0 -0
  539. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/scheduler/suggestion_engine.py +0 -0
  540. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/security/__init__.py +0 -0
  541. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/security/audit.py +0 -0
  542. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/security/injection.py +0 -0
  543. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/security/protected.py +0 -0
  544. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/setup/__init__.py +0 -0
  545. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/setup/build.py +0 -0
  546. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/setup/post_install.py +0 -0
  547. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/setup/setup_conda_env.py +0 -0
  548. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/setup.py +0 -0
  549. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/__init__.py +0 -0
  550. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/ai_generator.py +0 -0
  551. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/config.py +0 -0
  552. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/dedupe.py +0 -0
  553. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/discovery.py +0 -0
  554. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/drift.py +0 -0
  555. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/engine.py +0 -0
  556. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/enhanced_templates.py +0 -0
  557. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/example_verifier.py +0 -0
  558. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/manifest.py +0 -0
  559. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/models.py +0 -0
  560. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/reports.py +0 -0
  561. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/templates.py +0 -0
  562. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/undo_redo.py +0 -0
  563. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/standardise/validator.py +0 -0
  564. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/storage/__init__.py +0 -0
  565. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/storage/dynamodb_adapter.py +0 -0
  566. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/storage/mongodb_adapter.py +0 -0
  567. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/storage/postgresql_adapter.py +0 -0
  568. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/storage/redis_adapter.py +0 -0
  569. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/storage/valkey_adapter.py +0 -0
  570. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/__init__.py +0 -0
  571. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/batch_source.py +0 -0
  572. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/cli_docs_source.py +0 -0
  573. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/discovery.py +0 -0
  574. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/docs_source.py +0 -0
  575. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/examples_source.py +0 -0
  576. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/executor.py +0 -0
  577. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/models.py +0 -0
  578. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/report_viewer.py +0 -0
  579. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/reporter.py +0 -0
  580. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/suite_runner/runner.py +0 -0
  581. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/__init__.py +0 -0
  582. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/cache.py +0 -0
  583. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/dependency_checker.py +0 -0
  584. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/discovery.py +0 -0
  585. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/loader.py +0 -0
  586. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/registry.py +0 -0
  587. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/resolver.py +0 -0
  588. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/security.py +0 -0
  589. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/tool_override.py +0 -0
  590. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/templates/tools_doctor.py +0 -0
  591. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tool_registry.py +0 -0
  592. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tool_resolver.py +0 -0
  593. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tools/__init__.py +0 -0
  594. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tools/audio.py +0 -0
  595. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tools/glob_tool.py +0 -0
  596. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tools/grep_tool.py +0 -0
  597. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tools/kanban_tools.py +0 -0
  598. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tools/multiedit.py +0 -0
  599. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/tools/skill_manage.py +0 -0
  600. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/__init__.py +0 -0
  601. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/_ollama.py +0 -0
  602. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/agents/__init__.py +0 -0
  603. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/agents/grader.py +0 -0
  604. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/agents/hook.py +0 -0
  605. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/agents/models.py +0 -0
  606. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/agents/orchestrator.py +0 -0
  607. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/agents/storage.py +0 -0
  608. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/llm/__init__.py +0 -0
  609. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train/llm/trainer.py +0 -0
  610. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train.py +0 -0
  611. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/train_vision.py +0 -0
  612. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui/_aiui_datastore.py +0 -0
  613. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui/_external_agents.py +0 -0
  614. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui/callbacks.py +0 -0
  615. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui/components/aicoder.py +0 -0
  616. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui/context.py +0 -0
  617. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui/database_config.py +0 -0
  618. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_agents/__init__.py +0 -0
  619. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_agents/default_app.py +0 -0
  620. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_bot/__init__.py +0 -0
  621. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_bot/default_app.py +0 -0
  622. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_chat/__init__.py +0 -0
  623. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_chat/default_app.py +0 -0
  624. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_dashboard/default_app.py +0 -0
  625. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_realtime/__init__.py +0 -0
  626. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/ui_realtime/default_app.py +0 -0
  627. {praisonai-4.6.144 → praisonai-4.6.146}/praisonai/upload_vision.py +0 -0
  628. {praisonai-4.6.144 → praisonai-4.6.146}/setup.cfg +0 -0
  629. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test.py +0 -0
  630. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_agents_playbook.py +0 -0
  631. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_approval_system.py +0 -0
  632. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_basic.py +0 -0
  633. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_cli_features.py +0 -0
  634. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_custom_tools_fix.py +0 -0
  635. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_double_api_fix.py +0 -0
  636. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_n8n_agent_invoke.py +0 -0
  637. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_n8n_cli_feature.py +0 -0
  638. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_n8n_integration.py +0 -0
  639. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_phase2_refactor.py +0 -0
  640. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_recipe.py +0 -0
  641. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_registry.py +0 -0
  642. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_runner.py +0 -0
  643. {praisonai-4.6.144 → praisonai-4.6.146}/tests/test_sandboxed_agent_compatibility.py +0 -0
  644. {praisonai-4.6.144 → praisonai-4.6.146}/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.144
3
+ Version: 4.6.146
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,9 +11,9 @@ 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.147
15
- Requires-Dist: praisonai-code>=0.0.43
16
- Requires-Dist: praisonai-bot>=0.0.28
14
+ Requires-Dist: praisonaiagents>=1.6.149
15
+ Requires-Dist: praisonai-code>=0.0.45
16
+ Requires-Dist: praisonai-bot>=0.0.30
17
17
  Requires-Dist: python-dotenv>=0.19.0
18
18
  Requires-Dist: litellm<2,>=1.83.14
19
19
  Requires-Dist: PyYAML>=6.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.144
3
+ Version: 4.6.146
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,9 +11,9 @@ 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.147
15
- Requires-Dist: praisonai-code>=0.0.43
16
- Requires-Dist: praisonai-bot>=0.0.28
14
+ Requires-Dist: praisonaiagents>=1.6.149
15
+ Requires-Dist: praisonai-code>=0.0.45
16
+ Requires-Dist: praisonai-bot>=0.0.30
17
17
  Requires-Dist: python-dotenv>=0.19.0
18
18
  Requires-Dist: litellm<2,>=1.83.14
19
19
  Requires-Dist: PyYAML>=6.0
@@ -525,6 +525,7 @@ praisonai/sandbox/ssh.py
525
525
  praisonai/sandbox/subprocess.py
526
526
  praisonai/scheduler/__init__.py
527
527
  praisonai/scheduler/_base_scheduler.py
528
+ praisonai/scheduler/_delivery.py
528
529
  praisonai/scheduler/_dispatch.py
529
530
  praisonai/scheduler/agent_scheduler.py
530
531
  praisonai/scheduler/async_agent_scheduler.py
@@ -1,9 +1,9 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.147
5
- praisonai-code>=0.0.43
6
- praisonai-bot>=0.0.28
4
+ praisonaiagents>=1.6.149
5
+ praisonai-code>=0.0.45
6
+ praisonai-bot>=0.0.30
7
7
  python-dotenv>=0.19.0
8
8
  litellm<2,>=1.83.14
9
9
  PyYAML>=6.0
@@ -14,14 +14,14 @@ def _build_config_list() -> list[dict[str, Any]]:
14
14
  return build_config_list()
15
15
 
16
16
 
17
- def run(agent_file: str,
18
- framework: str | None = None,
19
- *,
20
- tools: list | None = None,
21
- agent_yaml: str | None = None,
22
- cli_config: dict | None = None) -> str:
23
- """One-line Python entry point. Equivalent to `praisonai <agent_file>`."""
24
- from .agents_generator import AgentsGenerator
17
+ def _resolve_run_inputs(framework: str | None) -> tuple[str, list[dict[str, Any]]]:
18
+ """Single source of truth for wrapper entry-point resolution.
19
+
20
+ Resolves the framework (default selection or explicit validation) and builds
21
+ the LLM config list. This performs synchronous work — including credential /
22
+ config file I/O via ``_build_config_list`` so async callers must invoke it
23
+ off the event loop (see ``arun``).
24
+ """
25
25
  from .framework_adapters.registry import get_default_registry
26
26
 
27
27
  if framework is None:
@@ -33,10 +33,24 @@ def run(agent_file: str,
33
33
  from .framework_adapters.validators import assert_framework_available
34
34
  assert_framework_available(framework)
35
35
 
36
+ return framework, _build_config_list()
37
+
38
+
39
+ def run(agent_file: str,
40
+ framework: str | None = None,
41
+ *,
42
+ tools: list | None = None,
43
+ agent_yaml: str | None = None,
44
+ cli_config: dict | None = None) -> str:
45
+ """One-line Python entry point. Equivalent to `praisonai <agent_file>`."""
46
+ from .agents_generator import AgentsGenerator
47
+
48
+ framework, config_list = _resolve_run_inputs(framework)
49
+
36
50
  gen = AgentsGenerator(
37
51
  agent_file=agent_file,
38
52
  framework=framework,
39
- config_list=_build_config_list(),
53
+ config_list=config_list,
40
54
  tools=tools,
41
55
  agent_yaml=agent_yaml,
42
56
  cli_config=cli_config,
@@ -51,22 +65,19 @@ async def arun(agent_file: str,
51
65
  agent_yaml: str | None = None,
52
66
  cli_config: dict | None = None) -> str:
53
67
  """Async equivalent of `run()` using native async framework adapters."""
68
+ import asyncio
69
+
54
70
  from .agents_generator import AgentsGenerator
55
- from .framework_adapters.registry import get_default_registry
56
71
 
57
- if framework is None:
58
- # Single source of truth for default selection: the registry, which
59
- # honours entry-point plugins as well as the built-in priority order.
60
- framework = get_default_registry().pick_default()
61
- else:
62
- # Validate explicit framework like CLI does
63
- from .framework_adapters.validators import assert_framework_available
64
- assert_framework_available(framework)
72
+ # Resolve framework + build config_list off the caller's event loop so the
73
+ # synchronous credential/config-file I/O does not block it. This is the
74
+ # reason arun exists: a FastAPI handler awaiting arun must not stall the loop.
75
+ framework, config_list = await asyncio.to_thread(_resolve_run_inputs, framework)
65
76
 
66
77
  gen = AgentsGenerator(
67
78
  agent_file=agent_file,
68
79
  framework=framework,
69
- config_list=_build_config_list(),
80
+ config_list=config_list,
70
81
  tools=tools,
71
82
  agent_yaml=agent_yaml,
72
83
  cli_config=cli_config,
@@ -182,6 +182,26 @@ def _resolve_tool_timeout_workers():
182
182
  return workers
183
183
 
184
184
 
185
+ def _looks_like_framework_tool(tool) -> bool:
186
+ """Whether ``tool`` is a framework tool object carrying a typed schema.
187
+
188
+ CrewAI / LangChain ``BaseTool`` instances and praisonai ``@tool`` objects
189
+ expose ``name``/``description`` plus an ``args_schema`` (or a dedicated
190
+ ``_run``/``run`` execution method). Such metadata is what the downstream
191
+ framework uses to advertise the tool to the LLM, so it must survive
192
+ timeout-wrapping. A bare function or a plain class returns False.
193
+ """
194
+ if isinstance(tool, type):
195
+ return False
196
+ has_schema = any(
197
+ hasattr(tool, attr) for attr in ("args_schema", "name", "description")
198
+ )
199
+ has_exec_method = any(
200
+ callable(getattr(tool, m, None)) for m in ("_run", "run")
201
+ )
202
+ return has_schema and has_exec_method
203
+
204
+
185
205
  def _wrap_with_timeout(tool, timeout_seconds: float, executor_factory, on_leaked=None):
186
206
  """Enforce a per-call timeout on a tool, sync or async.
187
207
 
@@ -197,56 +217,88 @@ def _wrap_with_timeout(tool, timeout_seconds: float, executor_factory, on_leaked
197
217
  a JSON string, so a tool's declared return-type contract is never silently
198
218
  downgraded; the framework adapter decides how to surface the timeout.
199
219
  """
200
- if timeout_seconds is None or timeout_seconds <= 0 or not callable(tool):
220
+ if timeout_seconds is None or timeout_seconds <= 0:
201
221
  return tool
202
-
222
+
203
223
  import asyncio
204
224
  import concurrent.futures
205
225
  import functools
206
226
  import inspect
207
-
208
- if inspect.iscoroutinefunction(tool):
209
- @functools.wraps(tool)
210
- async def _async_wrapped(*args, **kwargs):
227
+
228
+ def _wrap_callable(fn):
229
+ """Return a timeout-enforcing wrapper around a bare callable."""
230
+ if not callable(fn):
231
+ return fn
232
+
233
+ if inspect.iscoroutinefunction(fn):
234
+ @functools.wraps(fn)
235
+ async def _async_wrapped(*args, **kwargs):
236
+ try:
237
+ return await asyncio.wait_for(fn(*args, **kwargs), timeout=timeout_seconds)
238
+ except asyncio.TimeoutError:
239
+ # asyncio.wait_for cancels the underlying task, so no work leaks.
240
+ raise ToolTimeoutError(
241
+ tool_name=getattr(fn, "__name__", repr(fn)),
242
+ timeout_seconds=timeout_seconds,
243
+ background_work_may_continue=False,
244
+ )
245
+ return _async_wrapped
246
+
247
+ @functools.wraps(fn)
248
+ def _sync_wrapped(*args, **kwargs):
249
+ executor = executor_factory()
250
+ future = executor.submit(fn, *args, **kwargs)
211
251
  try:
212
- return await asyncio.wait_for(tool(*args, **kwargs), timeout=timeout_seconds)
213
- except asyncio.TimeoutError:
214
- # asyncio.wait_for cancels the underlying task, so no work leaks.
252
+ return future.result(timeout=timeout_seconds)
253
+ except concurrent.futures.TimeoutError:
254
+ # Best-effort cancel; only effective if the future has not started.
255
+ # A started sync call cannot be interrupted, so warn operators that
256
+ # the worker may keep running (and its side effects may still occur).
257
+ cancelled = future.cancel()
258
+ if not cancelled and on_leaked is not None:
259
+ # The worker is stuck and OS-owned; let the generator recycle
260
+ # the pool so new submissions are not permanently queued behind
261
+ # leaked threads.
262
+ on_leaked()
263
+ logger.warning(
264
+ "Tool %r exceeded %.1fs (cancel=%s); worker may continue "
265
+ "executing in the background.",
266
+ getattr(fn, "__name__", repr(fn)),
267
+ timeout_seconds, cancelled,
268
+ )
215
269
  raise ToolTimeoutError(
216
- tool_name=getattr(tool, "__name__", repr(tool)),
270
+ tool_name=getattr(fn, "__name__", repr(fn)),
217
271
  timeout_seconds=timeout_seconds,
218
- background_work_may_continue=False,
272
+ background_work_may_continue=not cancelled,
219
273
  )
220
- return _async_wrapped
221
-
222
- @functools.wraps(tool)
223
- def _sync_wrapped(*args, **kwargs):
224
- executor = executor_factory()
225
- future = executor.submit(tool, *args, **kwargs)
226
- try:
227
- return future.result(timeout=timeout_seconds)
228
- except concurrent.futures.TimeoutError:
229
- # Best-effort cancel; only effective if the future has not started.
230
- # A started sync call cannot be interrupted, so warn operators that
231
- # the worker may keep running (and its side effects may still occur).
232
- cancelled = future.cancel()
233
- if not cancelled and on_leaked is not None:
234
- # The worker is stuck and OS-owned; let the generator recycle
235
- # the pool so new submissions are not permanently queued behind
236
- # leaked threads.
237
- on_leaked()
238
- logger.warning(
239
- "Tool %r exceeded %.1fs (cancel=%s); worker may continue "
240
- "executing in the background.",
241
- getattr(tool, "__name__", repr(tool)),
242
- timeout_seconds, cancelled,
243
- )
244
- raise ToolTimeoutError(
245
- tool_name=getattr(tool, "__name__", repr(tool)),
246
- timeout_seconds=timeout_seconds,
247
- background_work_may_continue=not cancelled,
248
- )
249
- return _sync_wrapped
274
+ return _sync_wrapped
275
+
276
+ # Framework tool object (CrewAI/LangChain BaseTool, praisonai @tool). These
277
+ # carry name / description / args_schema that the downstream framework needs
278
+ # to advertise the tool to the LLM. Replacing them with a bare function
279
+ # (functools.wraps copies only __name__/__doc__ etc., NOT args_schema) makes
280
+ # the framework infer a (*args, **kwargs) schema and the LLM emits malformed
281
+ # tool_calls. Instead, wrap only the execution method IN PLACE so the object
282
+ # — and its schema — survive.
283
+ if not callable(tool) or _looks_like_framework_tool(tool):
284
+ for method_name in ("_run", "run"):
285
+ method = getattr(tool, method_name, None)
286
+ if callable(method):
287
+ wrapped = _wrap_callable(method)
288
+ if wrapped is method:
289
+ continue
290
+ try:
291
+ object.__setattr__(tool, method_name, wrapped) # bypass pydantic frozen
292
+ return tool
293
+ except (AttributeError, TypeError):
294
+ break # fall through to callable wrapping below
295
+ # No patchable execution method or non-callable object; return as-is so
296
+ # we never silently drop a tool object we couldn't safely wrap.
297
+ if not callable(tool):
298
+ return tool
299
+
300
+ # Plain callable — safe to wrap as a function.
301
+ return _wrap_callable(tool)
250
302
 
251
303
 
252
304
  def noop(*args, **kwargs):
@@ -94,6 +94,7 @@ class AgentSchedulerHandler:
94
94
  max_retries = getattr(args, 'schedule_max_retries', None) or 3
95
95
  timeout = getattr(args, 'timeout', None)
96
96
  max_cost = getattr(args, 'max_cost', None)
97
+ deliver = getattr(args, 'schedule_deliver', None) or ''
97
98
 
98
99
  # Check if name already exists
99
100
  existing = state_manager.load_state(name)
@@ -121,7 +122,8 @@ class AgentSchedulerHandler:
121
122
  interval=interval,
122
123
  max_cost=max_cost,
123
124
  timeout=timeout,
124
- max_retries=max_retries
125
+ max_retries=max_retries,
126
+ deliver=deliver
125
127
  )
126
128
 
127
129
  # Save state
@@ -134,6 +136,7 @@ class AgentSchedulerHandler:
134
136
  "timeout": timeout,
135
137
  "max_cost": max_cost,
136
138
  "max_retries": max_retries,
139
+ "deliver": deliver,
137
140
  "status": "running",
138
141
  "started_at": datetime.now().isoformat(),
139
142
  "executions": 0,
@@ -370,10 +373,12 @@ class AgentSchedulerHandler:
370
373
  new_pid = daemon_manager.start_scheduler_daemon(
371
374
  name=name,
372
375
  task=state['task'],
376
+ recipe_name=state.get('recipe_name'),
373
377
  interval=state['interval'],
374
378
  max_cost=state.get('max_cost'),
375
379
  timeout=state.get('timeout'),
376
- max_retries=state.get('max_retries', 3)
380
+ max_retries=state.get('max_retries', 3),
381
+ deliver=state.get('deliver', '')
377
382
  )
378
383
 
379
384
  state['pid'] = new_pid
@@ -557,6 +562,7 @@ class AgentSchedulerHandler:
557
562
  max_retries_override = getattr(args, 'schedule_max_retries', None) or 3
558
563
  timeout_override = getattr(args, 'timeout', None)
559
564
  max_cost_override = getattr(args, 'max_cost', None)
565
+ deliver_override = getattr(args, 'schedule_deliver', None) or ''
560
566
  verbose = getattr(args, 'verbose', False)
561
567
 
562
568
  # Set up logging - only show logs if verbose
@@ -630,9 +636,14 @@ class AgentSchedulerHandler:
630
636
  agent=agent,
631
637
  task=task,
632
638
  timeout=timeout_override,
633
- max_cost=max_cost_override
639
+ max_cost=max_cost_override,
640
+ deliver=deliver_override
634
641
  )
635
-
642
+
643
+ # A CLI --deliver overrides any target resolved from YAML/recipe.
644
+ if deliver_override:
645
+ scheduler.deliver = deliver_override
646
+
636
647
  # Get configuration
637
648
  interval = interval_override
638
649
  max_retries = max_retries_override
@@ -754,6 +765,16 @@ schedule:
754
765
  help='Override maximum retry attempts (default: from YAML or 3)'
755
766
  )
756
767
 
768
+ schedule_parser.add_argument(
769
+ '--deliver', '-d',
770
+ dest='schedule_deliver',
771
+ type=str,
772
+ help=(
773
+ "Deliver each result to a chat target "
774
+ "(e.g. 'telegram:123456', 'telegram', 'telegram:123:thread')"
775
+ ),
776
+ )
777
+
757
778
  schedule_parser.add_argument(
758
779
  '--verbose', '-v',
759
780
  action='store_true',
@@ -329,6 +329,10 @@ class InteractiveCore:
329
329
  else:
330
330
  agent_config["autonomy"] = True
331
331
 
332
+ session_registry = self._build_subtree_hook_registry(project_context)
333
+ if session_registry is not None:
334
+ agent_config["hooks"] = session_registry
335
+
332
336
  self._agent = Agent(**agent_config)
333
337
 
334
338
  agent = self._agent
@@ -408,6 +412,45 @@ class InteractiveCore:
408
412
  self._project_context = context
409
413
  return context
410
414
 
415
+ def _build_subtree_hook_registry(self, already_loaded: str):
416
+ """Build a session-scoped ``HookRegistry`` for subtree instruction rules.
417
+
418
+ Complements the up-front (nearest-wins walk-up) project context by
419
+ lazily attaching a subdirectory's instruction file the first time the
420
+ agent reads/edits a file under it. The hook is registered on a *fresh*
421
+ registry (never the global default) so its per-session dedup state stays
422
+ isolated and cannot leak into other agents/sessions.
423
+
424
+ Returns the registry to pass as ``Agent(hooks=...)``, or ``None`` when
425
+ ``--no-context`` is set or the wrapper helper is unavailable (the caller
426
+ then constructs the agent without a custom registry).
427
+ """
428
+ if getattr(self.config, "no_context", False):
429
+ return None
430
+ try:
431
+ from praisonai.integration.context_files import (
432
+ build_subtree_context_hook,
433
+ file_tool_matcher,
434
+ )
435
+ from praisonaiagents.hooks import HookEvent, HookRegistry
436
+ except ImportError:
437
+ return None
438
+
439
+ try:
440
+ budget = getattr(self.config, "context_token_budget", 0) or 0
441
+ hook = build_subtree_context_hook(already_loaded, max_chars=budget)
442
+ registry = HookRegistry()
443
+ registry.register_function(
444
+ event=HookEvent.AFTER_TOOL,
445
+ func=hook,
446
+ matcher=file_tool_matcher(),
447
+ name="subtree_instruction_injection",
448
+ )
449
+ return registry
450
+ except Exception as e: # pragma: no cover - defensive wiring
451
+ logger.warning(f"Could not build subtree context hook: {e}")
452
+ return None
453
+
411
454
  # ========== Tool Management ==========
412
455
 
413
456
  def get_tools(self) -> List: