PraisonAI 4.6.151__tar.gz → 4.6.152__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 (593) hide show
  1. {praisonai-4.6.151 → praisonai-4.6.152}/PKG-INFO +11 -10
  2. {praisonai-4.6.151 → praisonai-4.6.152}/PraisonAI.egg-info/PKG-INFO +11 -10
  3. {praisonai-4.6.151 → praisonai-4.6.152}/PraisonAI.egg-info/SOURCES.txt +0 -9
  4. {praisonai-4.6.151 → praisonai-4.6.152}/PraisonAI.egg-info/requires.txt +10 -9
  5. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_bootstrap.py +16 -0
  6. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/agents_generator.py +57 -30
  7. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/sandbox_cli.py +31 -19
  8. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/crewai_adapter.py +17 -28
  9. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/praisonai_adapter.py +4 -15
  10. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/registry.py +7 -2
  11. praisonai-4.6.152/praisonai/framework_adapters/validators.py +45 -0
  12. praisonai-4.6.152/praisonai/sandbox/__init__.py +13 -0
  13. praisonai-4.6.152/praisonai/sandbox/_registry.py +13 -0
  14. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/_delivery.py +108 -16
  15. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/agent_scheduler.py +7 -1
  16. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/async_agent_scheduler.py +7 -1
  17. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/tool_override.py +129 -69
  18. praisonai-4.6.152/praisonai/version.py +1 -0
  19. {praisonai-4.6.151 → praisonai-4.6.152}/pyproject.toml +11 -9
  20. praisonai-4.6.151/praisonai/framework_adapters/validators.py +0 -28
  21. praisonai-4.6.151/praisonai/sandbox/__init__.py +0 -51
  22. praisonai-4.6.151/praisonai/sandbox/_compat.py +0 -29
  23. praisonai-4.6.151/praisonai/sandbox/_registry.py +0 -67
  24. praisonai-4.6.151/praisonai/sandbox/_shell.py +0 -38
  25. praisonai-4.6.151/praisonai/sandbox/daytona.py +0 -440
  26. praisonai-4.6.151/praisonai/sandbox/docker.py +0 -466
  27. praisonai-4.6.151/praisonai/sandbox/e2b.py +0 -376
  28. praisonai-4.6.151/praisonai/sandbox/modal.py +0 -380
  29. praisonai-4.6.151/praisonai/sandbox/sandlock.py +0 -542
  30. praisonai-4.6.151/praisonai/sandbox/ssh.py +0 -554
  31. praisonai-4.6.151/praisonai/sandbox/subprocess.py +0 -496
  32. praisonai-4.6.151/praisonai/version.py +0 -1
  33. {praisonai-4.6.151 → praisonai-4.6.152}/PraisonAI.egg-info/dependency_links.txt +0 -0
  34. {praisonai-4.6.151 → praisonai-4.6.152}/PraisonAI.egg-info/entry_points.txt +0 -0
  35. {praisonai-4.6.151 → praisonai-4.6.152}/PraisonAI.egg-info/top_level.txt +0 -0
  36. {praisonai-4.6.151 → praisonai-4.6.152}/README.md +0 -0
  37. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/__init__.py +0 -0
  38. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/__main__.py +0 -0
  39. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_approval_spec.py +0 -0
  40. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_async_bridge.py +0 -0
  41. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/__init__.py +0 -0
  42. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/api_md.py +0 -0
  43. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/__init__.py +0 -0
  44. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/docs_extractor.py +0 -0
  45. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/docs_generator.py +0 -0
  46. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/generator.py +0 -0
  47. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  48. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/python_extractor.py +0 -0
  49. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  50. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/rust_extractor.py +0 -0
  51. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  52. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  53. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  54. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_entrypoint.py +0 -0
  55. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_framework_availability.py +0 -0
  56. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_lazy_cache.py +0 -0
  57. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_logging.py +0 -0
  58. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_registry.py +0 -0
  59. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/_safe_loader.py +0 -0
  60. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/acp/__init__.py +0 -0
  61. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/acp/config.py +0 -0
  62. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/acp/safe_edit.py +0 -0
  63. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/acp/server.py +0 -0
  64. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/acp/session.py +0 -0
  65. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/adapters/__init__.py +0 -0
  66. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/adapters/readers.py +0 -0
  67. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/adapters/rerankers.py +0 -0
  68. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/adapters/retrievers.py +0 -0
  69. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/adapters/vector_stores.py +0 -0
  70. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/agent.py +0 -0
  71. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/agent_scheduler.py +0 -0
  72. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/api/agent_invoke.py +0 -0
  73. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/api/call.py +0 -0
  74. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/app/__init__.py +0 -0
  75. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/app/agentos.py +0 -0
  76. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/async_agent_scheduler.py +0 -0
  77. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/audit/__init__.py +0 -0
  78. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/audit/agent_centric.py +0 -0
  79. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/auto.py +0 -0
  80. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/bots/__init__.py +0 -0
  81. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/browser/__init__.py +0 -0
  82. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/__init__.py +0 -0
  83. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/a2a.py +0 -0
  84. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/assistants.py +0 -0
  85. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/audio.py +0 -0
  86. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/batches.py +0 -0
  87. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/completions.py +0 -0
  88. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/container_files.py +0 -0
  89. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/containers.py +0 -0
  90. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/embeddings.py +0 -0
  91. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/files.py +0 -0
  92. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/fine_tuning.py +0 -0
  93. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/guardrails.py +0 -0
  94. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/images.py +0 -0
  95. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/mcp.py +0 -0
  96. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/messages.py +0 -0
  97. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/moderations.py +0 -0
  98. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/ocr.py +0 -0
  99. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/passthrough.py +0 -0
  100. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/rag.py +0 -0
  101. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/realtime.py +0 -0
  102. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/rerank.py +0 -0
  103. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/responses.py +0 -0
  104. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/search.py +0 -0
  105. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/skills.py +0 -0
  106. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/vector_store_files.py +0 -0
  107. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/vector_stores.py +0 -0
  108. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/capabilities/videos.py +0 -0
  109. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/claw/__init__.py +0 -0
  110. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/__init__.py +0 -0
  111. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/_paths.py +0 -0
  112. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/_shim.py +0 -0
  113. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/_warnings.py +0 -0
  114. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/app.py +0 -0
  115. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/approval_backend.py +0 -0
  116. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/branding.py +0 -0
  117. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/__init__.py +0 -0
  118. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/acp.py +0 -0
  119. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/agent.py +0 -0
  120. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/agents.py +0 -0
  121. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/app.py +0 -0
  122. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/attach.py +0 -0
  123. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/audit.py +0 -0
  124. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/auth.py +0 -0
  125. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/batch.py +0 -0
  126. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/benchmark.py +0 -0
  127. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/bot.py +0 -0
  128. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/browser.py +0 -0
  129. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/call.py +0 -0
  130. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/chat.py +0 -0
  131. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/checkpoint.py +0 -0
  132. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/claw.py +0 -0
  133. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/code.py +0 -0
  134. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/command.py +0 -0
  135. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/commit.py +0 -0
  136. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/completion.py +0 -0
  137. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/config.py +0 -0
  138. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/context.py +0 -0
  139. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/daemon.py +0 -0
  140. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/dashboard.py +0 -0
  141. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/debug.py +0 -0
  142. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/deploy.py +0 -0
  143. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/diag.py +0 -0
  144. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/docs.py +0 -0
  145. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/doctor.py +0 -0
  146. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/endpoints.py +0 -0
  147. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/environment.py +0 -0
  148. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/eval.py +0 -0
  149. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/examples.py +0 -0
  150. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/flow.py +0 -0
  151. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/gateway.py +0 -0
  152. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/github.py +0 -0
  153. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/hooks.py +0 -0
  154. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/identity.py +0 -0
  155. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/init.py +0 -0
  156. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/kanban.py +0 -0
  157. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/knowledge.py +0 -0
  158. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/langextract.py +0 -0
  159. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/langfuse.py +0 -0
  160. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/loop.py +0 -0
  161. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/lsp.py +0 -0
  162. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/managed.py +0 -0
  163. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/mcp.py +0 -0
  164. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/memory.py +0 -0
  165. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/mint_link.py +0 -0
  166. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/models.py +0 -0
  167. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/n8n.py +0 -0
  168. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/obs.py +0 -0
  169. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/onboard.py +0 -0
  170. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/package.py +0 -0
  171. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/pairing.py +0 -0
  172. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/paths.py +0 -0
  173. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/permissions.py +0 -0
  174. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/plugins.py +0 -0
  175. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/port.py +0 -0
  176. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/profile.py +0 -0
  177. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/publish.py +0 -0
  178. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/rag.py +0 -0
  179. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/realtime.py +0 -0
  180. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/recipe.py +0 -0
  181. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/registry.py +0 -0
  182. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/replay.py +0 -0
  183. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/research.py +0 -0
  184. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/retrieval.py +0 -0
  185. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/rules.py +0 -0
  186. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/run.py +0 -0
  187. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/sandbox.py +0 -0
  188. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/schedule.py +0 -0
  189. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/serve.py +0 -0
  190. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/session.py +0 -0
  191. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/setup.py +0 -0
  192. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/skills.py +0 -0
  193. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/standardise.py +0 -0
  194. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/templates.py +0 -0
  195. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/test.py +0 -0
  196. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/todo.py +0 -0
  197. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/tools.py +0 -0
  198. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/traces.py +0 -0
  199. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/tracker.py +0 -0
  200. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/train.py +0 -0
  201. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/ui.py +0 -0
  202. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/up.py +0 -0
  203. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/validate.py +0 -0
  204. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/version.py +0 -0
  205. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/commands/workflow.py +0 -0
  206. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/config_loader.py +0 -0
  207. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/configuration/__init__.py +0 -0
  208. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/configuration/config.schema.json +0 -0
  209. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/execution/__init__.py +0 -0
  210. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/fallback_schema.py +0 -0
  211. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/__init__.py +0 -0
  212. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/acp.py +0 -0
  213. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/agent_scheduler.py +0 -0
  214. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/agent_tools.py +0 -0
  215. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/approval.py +0 -0
  216. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/background.py +0 -0
  217. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/bots_cli.py +0 -0
  218. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/deploy.py +0 -0
  219. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/endpoints.py +0 -0
  220. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/eval.py +0 -0
  221. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/gateway.py +0 -0
  222. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/ollama.py +0 -0
  223. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/onboard.py +0 -0
  224. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/persistence.py +0 -0
  225. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/recipe.py +0 -0
  226. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/recipe_optimizer.py +0 -0
  227. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/registry.py +0 -0
  228. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/serve.py +0 -0
  229. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/templates.py +0 -0
  230. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/tools.py +0 -0
  231. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/tui/__init__.py +0 -0
  232. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/tui/app.py +0 -0
  233. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/features/workflow.py +0 -0
  234. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/interactive/__init__.py +0 -0
  235. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/interactive/async_tui.py +0 -0
  236. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/interactive/core.py +0 -0
  237. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/langfuse_client.py +0 -0
  238. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/__init__.py +0 -0
  239. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/direct_prompt.py +0 -0
  240. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
  241. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
  242. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
  243. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/framework_run.py +0 -0
  244. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
  245. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/interactive_legacy.py +0 -0
  246. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
  247. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/legacy/workflow_commands.py +0 -0
  248. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/main.py +0 -0
  249. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/output/__init__.py +0 -0
  250. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/schedule_cli.py +0 -0
  251. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/schema_provider.py +0 -0
  252. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/session/__init__.py +0 -0
  253. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/state/__init__.py +0 -0
  254. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/ui/__init__.py +0 -0
  255. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/unified_schema.py +0 -0
  256. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli/utils/__init__.py +0 -0
  257. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/cli_backends/__init__.py +0 -0
  258. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/__init__.py +0 -0
  259. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/agent_tools.py +0 -0
  260. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/diff/__init__.py +0 -0
  261. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/diff/diff_strategy.py +0 -0
  262. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/tools/__init__.py +0 -0
  263. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/tools/apply_diff.py +0 -0
  264. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/tools/execute_command.py +0 -0
  265. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/tools/list_files.py +0 -0
  266. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/tools/read_file.py +0 -0
  267. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/tools/search_replace.py +0 -0
  268. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/tools/write_file.py +0 -0
  269. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/utils/__init__.py +0 -0
  270. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/utils/file_utils.py +0 -0
  271. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/utils/ignore_utils.py +0 -0
  272. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/code/utils/text_utils.py +0 -0
  273. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/config/__init__.py +0 -0
  274. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/config/schema.py +0 -0
  275. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/config/validator.py +0 -0
  276. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/__init__.py +0 -0
  277. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/_storage_path.py +0 -0
  278. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/artifact_store.py +0 -0
  279. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/config.py +0 -0
  280. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/history_store.py +0 -0
  281. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/queue.py +0 -0
  282. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/setup.py +0 -0
  283. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/context/terminal_logger.py +0 -0
  284. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/daemon/__init__.py +0 -0
  285. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/db/__init__.py +0 -0
  286. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/db/adapter.py +0 -0
  287. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/__init__.py +0 -0
  288. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/api.py +0 -0
  289. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/docker.py +0 -0
  290. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/doctor.py +0 -0
  291. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/main.py +0 -0
  292. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/models.py +0 -0
  293. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/providers/__init__.py +0 -0
  294. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/providers/_registry.py +0 -0
  295. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/providers/aws.py +0 -0
  296. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/providers/azure.py +0 -0
  297. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/providers/base.py +0 -0
  298. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/providers/gcp.py +0 -0
  299. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/deploy/schema.py +0 -0
  300. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/__init__.py +0 -0
  301. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/a2u_server.py +0 -0
  302. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/discovery.py +0 -0
  303. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/__init__.py +0 -0
  304. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/a2a.py +0 -0
  305. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/a2u.py +0 -0
  306. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/agents_api.py +0 -0
  307. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/base.py +0 -0
  308. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/mcp.py +0 -0
  309. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/openai_compat.py +0 -0
  310. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/recipe.py +0 -0
  311. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  312. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/registry.py +0 -0
  313. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/endpoints/server.py +0 -0
  314. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/flow/__init__.py +0 -0
  315. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/flow/client.py +0 -0
  316. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  317. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  318. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/flow/components/__init__.py +0 -0
  319. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/flow/converter.py +0 -0
  320. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/flow/helpers.py +0 -0
  321. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/__init__.py +0 -0
  322. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/_config_builder.py +0 -0
  323. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  324. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/base.py +0 -0
  325. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/framework_adapters/workflow_framework.py +0 -0
  326. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/gateway/__init__.py +0 -0
  327. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/inbuilt_tools/__init__.py +0 -0
  328. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  329. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/inc/__init__.py +0 -0
  330. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/inc/config.py +0 -0
  331. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/inc/models.py +0 -0
  332. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/__init__.py +0 -0
  333. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/bridges/__init__.py +0 -0
  334. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  335. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/bridges/hooks_query.py +0 -0
  336. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  337. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/bridges/schedules_runner.py +0 -0
  338. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/bridges/usage_bridge.py +0 -0
  339. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/bridges/workflows_service.py +0 -0
  340. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/context_files.py +0 -0
  341. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/gateway_host.py +0 -0
  342. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/host_app.py +0 -0
  343. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/pages/__init__.py +0 -0
  344. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/pages/bot_health.py +0 -0
  345. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integration/pages/workflow_runs.py +0 -0
  346. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/__init__.py +0 -0
  347. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/_cli_loaders.py +0 -0
  348. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/_session_info.py +0 -0
  349. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/_tool_aliases.py +0 -0
  350. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/_unified_registry.py +0 -0
  351. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/backend_registry.py +0 -0
  352. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/base.py +0 -0
  353. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/claude_code.py +0 -0
  354. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/codex_cli.py +0 -0
  355. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/compute/__init__.py +0 -0
  356. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/compute/daytona.py +0 -0
  357. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/compute/docker.py +0 -0
  358. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/compute/e2b.py +0 -0
  359. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/compute/flyio.py +0 -0
  360. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/compute/local.py +0 -0
  361. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/compute/modal_compute.py +0 -0
  362. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/cursor_cli.py +0 -0
  363. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/db_session_adapter.py +0 -0
  364. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/gemini_cli.py +0 -0
  365. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/hosted_agent.py +0 -0
  366. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/local_agent.py +0 -0
  367. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/managed_agents.py +0 -0
  368. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/managed_local.py +0 -0
  369. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/registry.py +0 -0
  370. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/integrations/sandboxed_agent.py +0 -0
  371. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/jobs/__init__.py +0 -0
  372. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/jobs/executor.py +0 -0
  373. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/jobs/models.py +0 -0
  374. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/jobs/path_validation.py +0 -0
  375. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/jobs/router.py +0 -0
  376. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/jobs/server.py +0 -0
  377. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/jobs/store.py +0 -0
  378. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/kanban/__init__.py +0 -0
  379. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/llm/__init__.py +0 -0
  380. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/llm/catalogue.py +0 -0
  381. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/llm/config.py +0 -0
  382. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/llm/credentials.py +0 -0
  383. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/llm/env.py +0 -0
  384. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/llm/gateways.py +0 -0
  385. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/llm/registry.py +0 -0
  386. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/mcp_server/__init__.py +0 -0
  387. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/n8n/__init__.py +0 -0
  388. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/n8n/client.py +0 -0
  389. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/n8n/converter.py +0 -0
  390. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/n8n/preview.py +0 -0
  391. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/n8n/reverse_converter.py +0 -0
  392. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/observability/__init__.py +0 -0
  393. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/observability/hooks.py +0 -0
  394. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/observability/langextract.py +0 -0
  395. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/observability/langfuse.py +0 -0
  396. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/__init__.py +0 -0
  397. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/_valkey_client.py +0 -0
  398. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/config.py +0 -0
  399. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/__init__.py +0 -0
  400. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/_sql_base.py +0 -0
  401. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
  402. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/async_mysql.py +0 -0
  403. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/async_postgres.py +0 -0
  404. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  405. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/base.py +0 -0
  406. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/json_store.py +0 -0
  407. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/mysql.py +0 -0
  408. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/postgres.py +0 -0
  409. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/singlestore.py +0 -0
  410. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/sqlite.py +0 -0
  411. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/supabase.py +0 -0
  412. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/surrealdb.py +0 -0
  413. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
  414. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/conversation/turso.py +0 -0
  415. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/factory.py +0 -0
  416. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/hooks/__init__.py +0 -0
  417. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  418. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/__init__.py +0 -0
  419. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/base.py +0 -0
  420. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/cassandra.py +0 -0
  421. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/chroma.py +0 -0
  422. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  423. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  424. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/couchbase.py +0 -0
  425. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/lancedb.py +0 -0
  426. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  427. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  428. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  429. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/milvus.py +0 -0
  430. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  431. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/pgvector.py +0 -0
  432. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/pinecone.py +0 -0
  433. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/qdrant.py +0 -0
  434. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  435. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  436. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  437. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  438. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  439. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/knowledge/weaviate.py +0 -0
  440. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/migrations/__init__.py +0 -0
  441. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/migrations/manager.py +0 -0
  442. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/orchestrator.py +0 -0
  443. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/registry.py +0 -0
  444. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/__init__.py +0 -0
  445. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/async_mongodb.py +0 -0
  446. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/base.py +0 -0
  447. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/dynamodb.py +0 -0
  448. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/firestore.py +0 -0
  449. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/gcs.py +0 -0
  450. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/memory.py +0 -0
  451. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/mongodb.py +0 -0
  452. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/redis.py +0 -0
  453. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/upstash.py +0 -0
  454. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/state/valkey.py +0 -0
  455. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/tests/__init__.py +0 -0
  456. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/tests/test_all_backends.py +0 -0
  457. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
  458. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
  459. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/profiler.py +0 -0
  460. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/push/__init__.py +0 -0
  461. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/push/client.py +0 -0
  462. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/push/transports.py +0 -0
  463. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/__init__.py +0 -0
  464. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/bridge.py +0 -0
  465. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/core.py +0 -0
  466. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/exceptions.py +0 -0
  467. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/history.py +0 -0
  468. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/models.py +0 -0
  469. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/operations.py +0 -0
  470. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/policy.py +0 -0
  471. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/registry.py +0 -0
  472. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/runtime.py +0 -0
  473. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/security.py +0 -0
  474. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/serve.py +0 -0
  475. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/recipe/server.py +0 -0
  476. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/__init__.py +0 -0
  477. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/analyzer.py +0 -0
  478. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/applier.py +0 -0
  479. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/judge.py +0 -0
  480. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/plan.py +0 -0
  481. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/player.py +0 -0
  482. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/reader.py +0 -0
  483. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/storage.py +0 -0
  484. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/replay/writer.py +0 -0
  485. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/runtime/__init__.py +0 -0
  486. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/runtime/__main__.py +0 -0
  487. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/__init__.py +0 -0
  488. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/_base_scheduler.py +0 -0
  489. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/_dispatch.py +0 -0
  490. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/base.py +0 -0
  491. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  492. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/condition_gate.py +0 -0
  493. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/daemon_manager.py +0 -0
  494. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/deployment.py +0 -0
  495. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/executor.py +0 -0
  496. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/run_policy.py +0 -0
  497. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/shared.py +0 -0
  498. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/state_manager.py +0 -0
  499. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/suggestion_engine.py +0 -0
  500. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/scheduler/yaml_loader.py +0 -0
  501. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/security/__init__.py +0 -0
  502. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/security/audit.py +0 -0
  503. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/security/injection.py +0 -0
  504. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/security/protected.py +0 -0
  505. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/setup/__init__.py +0 -0
  506. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/setup/build.py +0 -0
  507. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/setup/post_install.py +0 -0
  508. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/setup/setup_conda_env.py +0 -0
  509. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/setup.py +0 -0
  510. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/__init__.py +0 -0
  511. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/ai_generator.py +0 -0
  512. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/config.py +0 -0
  513. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/dedupe.py +0 -0
  514. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/discovery.py +0 -0
  515. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/drift.py +0 -0
  516. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/engine.py +0 -0
  517. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/enhanced_templates.py +0 -0
  518. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/example_verifier.py +0 -0
  519. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/manifest.py +0 -0
  520. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/models.py +0 -0
  521. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/reports.py +0 -0
  522. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/templates.py +0 -0
  523. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/undo_redo.py +0 -0
  524. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/standardise/validator.py +0 -0
  525. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/storage/__init__.py +0 -0
  526. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/storage/dynamodb_adapter.py +0 -0
  527. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/storage/mongodb_adapter.py +0 -0
  528. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/storage/postgresql_adapter.py +0 -0
  529. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/storage/redis_adapter.py +0 -0
  530. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/storage/valkey_adapter.py +0 -0
  531. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/__init__.py +0 -0
  532. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/batch_source.py +0 -0
  533. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/cli_docs_source.py +0 -0
  534. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/discovery.py +0 -0
  535. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/docs_source.py +0 -0
  536. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/examples_source.py +0 -0
  537. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/executor.py +0 -0
  538. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/models.py +0 -0
  539. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/report_viewer.py +0 -0
  540. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/reporter.py +0 -0
  541. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/suite_runner/runner.py +0 -0
  542. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/__init__.py +0 -0
  543. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/cache.py +0 -0
  544. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/dependency_checker.py +0 -0
  545. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/discovery.py +0 -0
  546. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/loader.py +0 -0
  547. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/registry.py +0 -0
  548. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/resolver.py +0 -0
  549. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/security.py +0 -0
  550. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/templates/tools_doctor.py +0 -0
  551. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tool_registry.py +0 -0
  552. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tool_resolver.py +0 -0
  553. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tools/__init__.py +0 -0
  554. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tools/audio.py +0 -0
  555. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tools/glob_tool.py +0 -0
  556. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tools/grep_tool.py +0 -0
  557. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tools/kanban_tools.py +0 -0
  558. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tools/multiedit.py +0 -0
  559. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/tools/skill_manage.py +0 -0
  560. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/train/__init__.py +0 -0
  561. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/train.py +0 -0
  562. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/train_vision.py +0 -0
  563. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui/_aiui_datastore.py +0 -0
  564. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui/_external_agents.py +0 -0
  565. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui/context.py +0 -0
  566. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui/database_config.py +0 -0
  567. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_agents/__init__.py +0 -0
  568. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_agents/default_app.py +0 -0
  569. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_bot/__init__.py +0 -0
  570. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_bot/default_app.py +0 -0
  571. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_chat/__init__.py +0 -0
  572. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_chat/default_app.py +0 -0
  573. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_dashboard/default_app.py +0 -0
  574. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_realtime/__init__.py +0 -0
  575. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/ui_realtime/default_app.py +0 -0
  576. {praisonai-4.6.151 → praisonai-4.6.152}/praisonai/upload_vision.py +0 -0
  577. {praisonai-4.6.151 → praisonai-4.6.152}/setup.cfg +0 -0
  578. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test.py +0 -0
  579. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_agents_playbook.py +0 -0
  580. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_approval_system.py +0 -0
  581. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_basic.py +0 -0
  582. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_cli_features.py +0 -0
  583. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_custom_tools_fix.py +0 -0
  584. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_double_api_fix.py +0 -0
  585. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_n8n_agent_invoke.py +0 -0
  586. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_n8n_cli_feature.py +0 -0
  587. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_n8n_integration.py +0 -0
  588. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_phase2_refactor.py +0 -0
  589. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_recipe.py +0 -0
  590. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_registry.py +0 -0
  591. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_runner.py +0 -0
  592. {praisonai-4.6.151 → praisonai-4.6.152}/tests/test_sandboxed_agent_compatibility.py +0 -0
  593. {praisonai-4.6.151 → praisonai-4.6.152}/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.151
3
+ Version: 4.6.152
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,12 +11,13 @@ 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.154
15
- Requires-Dist: praisonai-code>=0.0.50
16
- Requires-Dist: praisonai-bot>=0.0.35
17
- Requires-Dist: praisonai-train>=0.0.6
18
- Requires-Dist: praisonai-browser>=0.0.3
19
- Requires-Dist: praisonai-mcp>=0.0.3
14
+ Requires-Dist: praisonaiagents>=1.6.155
15
+ Requires-Dist: praisonai-code>=0.0.51
16
+ Requires-Dist: praisonai-bot>=0.0.36
17
+ Requires-Dist: praisonai-train>=0.0.7
18
+ Requires-Dist: praisonai-browser>=0.0.4
19
+ Requires-Dist: praisonai-mcp>=0.0.4
20
+ Requires-Dist: praisonai-sandbox>=0.0.2
20
21
  Requires-Dist: python-dotenv>=0.19.0
21
22
  Requires-Dist: litellm<2,>=1.83.14
22
23
  Requires-Dist: PyYAML>=6.0
@@ -60,11 +61,11 @@ Requires-Dist: tavily-python==0.5.0; extra == "code"
60
61
  Requires-Dist: crawl4ai>=0.7.0; extra == "code"
61
62
  Requires-Dist: playwright>=1.47.0; extra == "code"
62
63
  Provides-Extra: sandbox
63
- Requires-Dist: sandlock>=0.1.0; extra == "sandbox"
64
+ Requires-Dist: praisonai-sandbox[all]; extra == "sandbox"
64
65
  Provides-Extra: ssh
65
- Requires-Dist: asyncssh>=2.14.0; extra == "ssh"
66
+ Requires-Dist: praisonai-sandbox[ssh]; extra == "ssh"
66
67
  Provides-Extra: modal
67
- Requires-Dist: modal>=0.64.0; extra == "modal"
68
+ Requires-Dist: praisonai-sandbox[modal]; extra == "modal"
68
69
  Provides-Extra: daytona
69
70
  Provides-Extra: realtime
70
71
  Requires-Dist: aiui<0.4,>=0.3.121; extra == "realtime"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.151
3
+ Version: 4.6.152
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,12 +11,13 @@ 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.154
15
- Requires-Dist: praisonai-code>=0.0.50
16
- Requires-Dist: praisonai-bot>=0.0.35
17
- Requires-Dist: praisonai-train>=0.0.6
18
- Requires-Dist: praisonai-browser>=0.0.3
19
- Requires-Dist: praisonai-mcp>=0.0.3
14
+ Requires-Dist: praisonaiagents>=1.6.155
15
+ Requires-Dist: praisonai-code>=0.0.51
16
+ Requires-Dist: praisonai-bot>=0.0.36
17
+ Requires-Dist: praisonai-train>=0.0.7
18
+ Requires-Dist: praisonai-browser>=0.0.4
19
+ Requires-Dist: praisonai-mcp>=0.0.4
20
+ Requires-Dist: praisonai-sandbox>=0.0.2
20
21
  Requires-Dist: python-dotenv>=0.19.0
21
22
  Requires-Dist: litellm<2,>=1.83.14
22
23
  Requires-Dist: PyYAML>=6.0
@@ -60,11 +61,11 @@ Requires-Dist: tavily-python==0.5.0; extra == "code"
60
61
  Requires-Dist: crawl4ai>=0.7.0; extra == "code"
61
62
  Requires-Dist: playwright>=1.47.0; extra == "code"
62
63
  Provides-Extra: sandbox
63
- Requires-Dist: sandlock>=0.1.0; extra == "sandbox"
64
+ Requires-Dist: praisonai-sandbox[all]; extra == "sandbox"
64
65
  Provides-Extra: ssh
65
- Requires-Dist: asyncssh>=2.14.0; extra == "ssh"
66
+ Requires-Dist: praisonai-sandbox[ssh]; extra == "ssh"
66
67
  Provides-Extra: modal
67
- Requires-Dist: modal>=0.64.0; extra == "modal"
68
+ Requires-Dist: praisonai-sandbox[modal]; extra == "modal"
68
69
  Provides-Extra: daytona
69
70
  Provides-Extra: realtime
70
71
  Requires-Dist: aiui<0.4,>=0.3.121; extra == "realtime"
@@ -471,16 +471,7 @@ praisonai/replay/writer.py
471
471
  praisonai/runtime/__init__.py
472
472
  praisonai/runtime/__main__.py
473
473
  praisonai/sandbox/__init__.py
474
- praisonai/sandbox/_compat.py
475
474
  praisonai/sandbox/_registry.py
476
- praisonai/sandbox/_shell.py
477
- praisonai/sandbox/daytona.py
478
- praisonai/sandbox/docker.py
479
- praisonai/sandbox/e2b.py
480
- praisonai/sandbox/modal.py
481
- praisonai/sandbox/sandlock.py
482
- praisonai/sandbox/ssh.py
483
- praisonai/sandbox/subprocess.py
484
475
  praisonai/scheduler/__init__.py
485
476
  praisonai/scheduler/_base_scheduler.py
486
477
  praisonai/scheduler/_delivery.py
@@ -1,12 +1,13 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.154
5
- praisonai-code>=0.0.50
6
- praisonai-bot>=0.0.35
7
- praisonai-train>=0.0.6
8
- praisonai-browser>=0.0.3
9
- praisonai-mcp>=0.0.3
4
+ praisonaiagents>=1.6.155
5
+ praisonai-code>=0.0.51
6
+ praisonai-bot>=0.0.36
7
+ praisonai-train>=0.0.7
8
+ praisonai-browser>=0.0.4
9
+ praisonai-mcp>=0.0.4
10
+ praisonai-sandbox>=0.0.2
10
11
  python-dotenv>=0.19.0
11
12
  litellm<2,>=1.83.14
12
13
  PyYAML>=6.0
@@ -171,7 +172,7 @@ praisonai-tools>=0.1.0
171
172
  praisonai-mcp[all]
172
173
 
173
174
  [modal]
174
- modal>=0.64.0
175
+ praisonai-sandbox[modal]
175
176
 
176
177
  [mongodb]
177
178
  pymongo>=4.6.0
@@ -216,10 +217,10 @@ ddgs>=9.0.0
216
217
  redis>=5.0.0
217
218
 
218
219
  [sandbox]
219
- sandlock>=0.1.0
220
+ praisonai-sandbox[all]
220
221
 
221
222
  [ssh]
222
- asyncssh>=2.14.0
223
+ praisonai-sandbox[ssh]
223
224
 
224
225
  [train]
225
226
  praisonai-train[llm]
@@ -91,3 +91,19 @@ def ensure_praisonai_mcp() -> None:
91
91
  root = str(mcp_src)
92
92
  if root not in sys.path:
93
93
  sys.path.insert(0, root)
94
+
95
+
96
+ def ensure_praisonai_sandbox() -> None:
97
+ """Ensure ``praisonai_sandbox`` can be imported in monorepo dev layouts."""
98
+ try:
99
+ import praisonai_sandbox # noqa: F401
100
+ return
101
+ except ImportError:
102
+ pass
103
+
104
+ wrapper_src = Path(__file__).resolve().parents[1] # .../src/praisonai
105
+ sandbox_src = wrapper_src.parent / "praisonai-sandbox"
106
+ if (sandbox_src / "praisonai_sandbox").is_dir():
107
+ root = str(sandbox_src)
108
+ if root not in sys.path:
109
+ sys.path.insert(0, root)
@@ -705,30 +705,40 @@ class AgentsGenerator:
705
705
  framework_name = self.framework or config.get('framework', 'praisonai')
706
706
  adapter = self._select_framework(framework_name, config)
707
707
 
708
- # Validate framework availability
708
+ # Validate framework availability through the injected registry so a
709
+ # scoped/per-tenant adapter registered on this generator's registry is
710
+ # not rejected just because it is absent from the process default.
709
711
  from .framework_adapters.validators import assert_framework_available
710
- assert_framework_available(adapter.name)
712
+ assert_framework_available(adapter.name, registry=self._adapter_registry)
711
713
 
712
714
  # Validate cli_backend compatibility
713
715
  self._validate_cli_backend_compatibility(config, adapter.name, adapter=adapter)
714
-
715
- # Initialize observability hooks
716
- from .observability.hooks import init_observability
717
- init_observability(adapter.name)
718
-
719
- # Run adapter setup hooks
720
- adapter.setup(framework_tag=adapter.name)
721
-
716
+
722
717
  # Update framework reference if resolution changed it
723
718
  self.framework = adapter.name
724
719
  self.framework_adapter = adapter
725
-
720
+
721
+ # NB: adapter setup is intentionally NOT run here. The caller opens the
722
+ # observability_session (which owns init/finalize for every adapter) and
723
+ # then invokes _run_adapter_setup INSIDE that session, so setup events —
724
+ # and any setup/import failure — are recorded and finalized instead of
725
+ # slipping outside observability. See generate_crew_and_kickoff /
726
+ # agenerate_crew_and_kickoff.
726
727
  return {
727
728
  'adapter': adapter,
728
729
  'config': config,
729
730
  'topic': topic,
730
731
  'tools_dict': tools_dict,
731
732
  }
733
+
734
+ def _run_adapter_setup(self, adapter):
735
+ """Run an adapter's setup hooks.
736
+
737
+ Kept as a tiny seam so both the sync and async run paths execute setup
738
+ *inside* the observability_session, keeping init/setup/run/finalize
739
+ bracketed together for every adapter.
740
+ """
741
+ adapter.setup(framework_tag=adapter.name)
732
742
 
733
743
  def _build_tools_dict(self, config):
734
744
  """Shared tool resolution logic for sync and async paths."""
@@ -997,15 +1007,22 @@ class AgentsGenerator:
997
1007
  prep = self._prepare_for_run(config)
998
1008
 
999
1009
  self.logger.info(f"Using framework: {prep['adapter'].name}")
1000
- return prep['adapter'].run(
1001
- prep['config'],
1002
- self.config_list,
1003
- prep['topic'],
1004
- tools_dict=prep['tools_dict'],
1005
- agent_callback=getattr(self, 'agent_callback', None),
1006
- task_callback=getattr(self, 'task_callback', None),
1007
- cli_config=getattr(self, 'cli_config', None),
1008
- )
1010
+ # Own the observability lifecycle here so init and finalize are always
1011
+ # paired for every adapter (the CM finalizes on success and error alike).
1012
+ from .observability.hooks import observability_session
1013
+ with observability_session(prep['adapter'].name):
1014
+ # Run setup INSIDE the session so setup events and any setup/import
1015
+ # failure are recorded and finalized, not dropped outside observability.
1016
+ self._run_adapter_setup(prep['adapter'])
1017
+ return prep['adapter'].run(
1018
+ prep['config'],
1019
+ self.config_list,
1020
+ prep['topic'],
1021
+ tools_dict=prep['tools_dict'],
1022
+ agent_callback=getattr(self, 'agent_callback', None),
1023
+ task_callback=getattr(self, 'task_callback', None),
1024
+ cli_config=getattr(self, 'cli_config', None),
1025
+ )
1009
1026
 
1010
1027
  async def _aload_config(self):
1011
1028
  """Async-safe config loading (blocking file I/O off the event loop)."""
@@ -1013,7 +1030,8 @@ class AgentsGenerator:
1013
1030
  return await asyncio.to_thread(self._load_config)
1014
1031
 
1015
1032
  async def _aprepare_for_run(self, config):
1016
- """Async-safe run preparation (heavy imports + adapter.setup() off the loop)."""
1033
+ """Async-safe run preparation (heavy imports off the loop). Adapter setup
1034
+ runs later, inside the observability_session (see agenerate_crew_and_kickoff)."""
1017
1035
  import asyncio
1018
1036
  return await asyncio.to_thread(self._prepare_for_run, config)
1019
1037
 
@@ -1032,15 +1050,24 @@ class AgentsGenerator:
1032
1050
  prep = await self._aprepare_for_run(config)
1033
1051
 
1034
1052
  self.logger.info(f"Using framework: {prep['adapter'].name}")
1035
- return await prep['adapter'].arun(
1036
- prep['config'],
1037
- self.config_list,
1038
- prep['topic'],
1039
- tools_dict=prep['tools_dict'],
1040
- agent_callback=getattr(self, 'agent_callback', None),
1041
- task_callback=getattr(self, 'task_callback', None),
1042
- cli_config=getattr(self, 'cli_config', None),
1043
- )
1053
+ # Own the observability lifecycle here so init and finalize are always
1054
+ # paired for every adapter (the CM finalizes on success and error alike).
1055
+ import asyncio
1056
+ from .observability.hooks import observability_session
1057
+ with observability_session(prep['adapter'].name):
1058
+ # Run setup INSIDE the session (off the event loop, as it may block)
1059
+ # so setup events and any setup/import failure are recorded and
1060
+ # finalized, not dropped outside observability.
1061
+ await asyncio.to_thread(self._run_adapter_setup, prep['adapter'])
1062
+ return await prep['adapter'].arun(
1063
+ prep['config'],
1064
+ self.config_list,
1065
+ prep['topic'],
1066
+ tools_dict=prep['tools_dict'],
1067
+ agent_callback=getattr(self, 'agent_callback', None),
1068
+ task_callback=getattr(self, 'task_callback', None),
1069
+ cli_config=getattr(self, 'cli_config', None),
1070
+ )
1044
1071
 
1045
1072
 
1046
1073
  def _build_yaml_workflow(self, config):
@@ -15,6 +15,16 @@ from typing import Optional
15
15
  logger = logging.getLogger(__name__)
16
16
 
17
17
 
18
+ def _ensure_backends():
19
+ """Bootstrap praisonai-sandbox before registry imports (fail loud if missing)."""
20
+ try:
21
+ from praisonai._bootstrap import ensure_praisonai_sandbox
22
+
23
+ ensure_praisonai_sandbox()
24
+ except ImportError:
25
+ pass
26
+
27
+
18
28
  class SandboxHandler:
19
29
  """Handler for sandbox CLI commands."""
20
30
 
@@ -39,6 +49,8 @@ class SandboxHandler:
39
49
  print("Error: Provide code via --code or --file")
40
50
  return
41
51
 
52
+ _ensure_backends()
53
+
42
54
  if file:
43
55
  if not os.path.exists(file):
44
56
  print(f"Error: File not found: {file}")
@@ -49,7 +61,7 @@ class SandboxHandler:
49
61
  try:
50
62
  from praisonaiagents.sandbox import ResourceLimits
51
63
 
52
- from praisonai.sandbox._registry import SandboxRegistry
64
+ from praisonai_sandbox._registry import SandboxRegistry
53
65
 
54
66
  registry = SandboxRegistry.default()
55
67
  try:
@@ -59,7 +71,8 @@ class SandboxHandler:
59
71
  print(
60
72
  f"Error: sandbox '{sandbox_type}' is unavailable: {e}\n"
61
73
  f"Available: {registry.list_names()}\n"
62
- f"To install the optional backend: pip install \"praisonai[{sandbox_type}]\"\n"
74
+ f"To install the optional backend: pip install praisonai-sandbox[{sandbox_type}] "
75
+ f"or pip install \"praisonai[sandbox]\"\n"
63
76
  f"Or explicitly choose another sandbox: --sandbox-type subprocess"
64
77
  )
65
78
  sys.exit(2)
@@ -110,10 +123,11 @@ class SandboxHandler:
110
123
  sandbox_type: Type of sandbox (subprocess, docker)
111
124
  image: Docker image to use
112
125
  """
126
+ _ensure_backends()
113
127
  try:
114
128
  from praisonaiagents.sandbox import ResourceLimits
115
129
 
116
- from praisonai.sandbox._registry import SandboxRegistry
130
+ from praisonai_sandbox._registry import SandboxRegistry
117
131
 
118
132
  registry = SandboxRegistry.default()
119
133
  try:
@@ -123,7 +137,8 @@ class SandboxHandler:
123
137
  print(
124
138
  f"Error: sandbox '{sandbox_type}' is unavailable: {e}\n"
125
139
  f"Available: {registry.list_names()}\n"
126
- f"To install the optional backend: pip install \"praisonai[{sandbox_type}]\"\n"
140
+ f"To install the optional backend: pip install praisonai-sandbox[{sandbox_type}] "
141
+ f"or pip install \"praisonai[sandbox]\"\n"
127
142
  f"Or explicitly choose another sandbox: --sandbox-type subprocess"
128
143
  )
129
144
  sys.exit(2)
@@ -174,21 +189,18 @@ class SandboxHandler:
174
189
  asyncio.run(run_shell())
175
190
 
176
191
  def status(self) -> None:
177
- """Check sandbox availability."""
178
- print("Sandbox Status:")
192
+ """Check sandbox backend availability."""
193
+ print("Sandbox backends:")
179
194
  print()
180
-
181
- print("Subprocess sandbox: Available")
182
-
183
195
  try:
184
- from praisonai.sandbox import DockerSandbox
185
- sandbox = DockerSandbox()
186
- if sandbox.is_available:
187
- print("Docker sandbox: Available")
188
- else:
189
- print("Docker sandbox: Not available (Docker not running)")
190
- except ImportError:
191
- print("Docker sandbox: Not available (dependencies not installed)")
196
+ from praisonaiagents.sandbox import SandboxManager, SandboxConfig
197
+
198
+ manager = SandboxManager(SandboxConfig.subprocess())
199
+ for name, info in sorted(manager.get_available_types().items()):
200
+ flag = "Available" if info.get("available") else "Unavailable"
201
+ print(f" {name}: {flag}")
202
+ except ImportError as exc:
203
+ print(f" Error: {exc}")
192
204
 
193
205
 
194
206
  def handle_sandbox_command(args) -> None:
@@ -243,7 +255,7 @@ def add_sandbox_parser(subparsers) -> None:
243
255
  )
244
256
  run_parser.add_argument(
245
257
  "--type", "-t",
246
- choices=["subprocess", "docker"],
258
+ choices=["subprocess", "docker", "daytona"],
247
259
  default="subprocess",
248
260
  help="Sandbox type (default: subprocess)",
249
261
  )
@@ -265,7 +277,7 @@ def add_sandbox_parser(subparsers) -> None:
265
277
  )
266
278
  shell_parser.add_argument(
267
279
  "--type", "-t",
268
- choices=["subprocess", "docker"],
280
+ choices=["subprocess", "docker", "daytona"],
269
281
  default="subprocess",
270
282
  help="Sandbox type (default: subprocess)",
271
283
  )
@@ -51,27 +51,23 @@ class CrewAIAdapter(BaseFrameworkAdapter):
51
51
  Returns:
52
52
  Execution result as string
53
53
  """
54
- # Observability is initialized upstream (agents_generator._prepare_for_run);
55
- # finalize on EVERY exit path with the correct status so sessions are
56
- # never orphaned "in progress" on errors / cancellation. The guard starts
57
- # before the lazy imports so an import failure still finalizes the session.
58
- import sys as _sys
59
- from ..observability.hooks import finalize_observability
60
-
61
- try:
62
- # Import CrewAI only when needed (availability already validated at CLI entry)
63
- import os
64
- from crewai import Agent, Task, Crew
65
- from crewai.telemetry import Telemetry
66
- from .._framework_availability import is_available
67
-
68
- # Suppress crewai.cli.config logger (scoped to when CrewAI is actually used)
69
- logging.getLogger('crewai.cli.config').setLevel(logging.ERROR)
70
-
71
- # Disable CrewAI telemetry while constructing agents/tasks/crew. The
72
- # class-level fallback is locked + reference counted, so concurrent
73
- # runs cannot corrupt the Telemetry class during this window.
74
- with scoped_telemetry_disable(Telemetry):
54
+ # Observability init/finalize is owned by the generator via the
55
+ # observability_session context manager, so the adapter no longer
56
+ # finalizes here this keeps the lifecycle symmetric across every
57
+ # adapter and prevents double-finalize.
58
+ # Import CrewAI only when needed (availability already validated at CLI entry)
59
+ import os
60
+ from crewai import Agent, Task, Crew
61
+ from crewai.telemetry import Telemetry
62
+ from .._framework_availability import is_available
63
+
64
+ # Suppress crewai.cli.config logger (scoped to when CrewAI is actually used)
65
+ logging.getLogger('crewai.cli.config').setLevel(logging.ERROR)
66
+
67
+ # Disable CrewAI telemetry while constructing agents/tasks/crew. The
68
+ # class-level fallback is locked + reference counted, so concurrent
69
+ # runs cannot corrupt the Telemetry class during this window.
70
+ with scoped_telemetry_disable(Telemetry):
75
71
  from ._config_builder import build_agent_specs
76
72
 
77
73
  agents = {}
@@ -179,11 +175,4 @@ class CrewAIAdapter(BaseFrameworkAdapter):
179
175
  result = f"### Task Output ###\n{response}"
180
176
 
181
177
  return result
182
- finally:
183
- # Close observability session with status derived from exc state
184
- status = "Failure" if _sys.exc_info()[0] is not None else "Success"
185
- try:
186
- finalize_observability(self.name, status=status)
187
- except Exception as e: # noqa: BLE001 -- telemetry must not crash the run
188
- logger.error(f"Error finalizing observability: {e}")
189
178
 
@@ -430,14 +430,10 @@ class PraisonAIAdapter(BaseFrameworkAdapter):
430
430
 
431
431
  This uses AgentTeam.astart() instead of thread offloading for true async execution.
432
432
  """
433
- # Observability is initialized upstream (agents_generator._prepare_for_run);
434
- # finalize here on EVERY exit path with the correct status so sessions are
435
- # never orphaned "in progress" on errors / cancellation. The guard starts
436
- # before the lazy imports and runtime startup so any failure or
437
- # cancellation there still finalizes the session.
438
- import sys as _sys
439
- from ..observability.hooks import finalize_observability
440
-
433
+ # Observability init/finalize is owned by the generator via the
434
+ # observability_session context manager, so the adapter no longer
435
+ # finalizes here this keeps the lifecycle symmetric across every
436
+ # adapter and prevents double-finalize.
441
437
  interactive_runtime = None
442
438
  try:
443
439
  # Import PraisonAI components only when needed
@@ -470,13 +466,6 @@ class PraisonAIAdapter(BaseFrameworkAdapter):
470
466
  logger.info("PraisonAI async execution completed")
471
467
  return result
472
468
  finally:
473
- # Close observability session with status derived from exc state
474
- status = "Failure" if _sys.exc_info()[0] is not None else "Success"
475
- try:
476
- finalize_observability(self.name, status=status)
477
- except Exception as e: # noqa: BLE001 -- telemetry must not crash the run
478
- logger.error(f"Error finalizing observability: {e}")
479
-
480
469
  # Cleanup InteractiveRuntime if it was started
481
470
  if interactive_runtime is not None:
482
471
  try:
@@ -213,13 +213,18 @@ def list_available_frameworks() -> list[str]:
213
213
  return get_default_registry().list_available_frameworks()
214
214
 
215
215
 
216
- def get_install_hint(name: str) -> str:
216
+ def get_install_hint(name: str, *, registry: Optional[FrameworkAdapterRegistry] = None) -> str:
217
217
  """Return install hint for a framework, consulting the adapter when registered.
218
218
 
219
219
  Falls back to ``pip install 'praisonai[<extra>]'`` when the adapter cannot
220
220
  be resolved (e.g. its dependencies are missing) or does not declare a hint.
221
+
222
+ Args:
223
+ name: Framework name to build the install hint for.
224
+ registry: Optional adapter registry to consult; defaults to the
225
+ process-default registry when omitted (DI-friendly).
221
226
  """
222
- registry = get_default_registry()
227
+ registry = registry or get_default_registry()
223
228
  try:
224
229
  adapter = registry.create(name)
225
230
  hint = getattr(adapter, "install_hint", None)
@@ -0,0 +1,45 @@
1
+ """
2
+ Framework availability validators.
3
+
4
+ Provides early validation of framework availability to fail fast at CLI entry
5
+ rather than inside run() methods after expensive setup work.
6
+ """
7
+
8
+ from .registry import get_default_registry, get_install_hint
9
+
10
+
11
+ def assert_framework_available(name: str, *, registry=None) -> None:
12
+ """
13
+ Raise ImportError immediately if the chosen framework is missing.
14
+
15
+ Args:
16
+ name: Framework name to validate
17
+ registry: Optional adapter registry to consult. When omitted, the
18
+ process-default registry is used. Passing the caller's injected
19
+ registry keeps DI intact so a scoped/per-tenant adapter is not
20
+ rejected just because it is absent from the process default.
21
+
22
+ Raises:
23
+ ImportError: If framework is not available with actionable install hint
24
+ """
25
+ registry = registry or get_default_registry()
26
+
27
+ if registry.is_available(name):
28
+ return
29
+
30
+ # A router/alias may resolve to a concrete adapter (e.g. ``autogen`` ->
31
+ # ``autogen_v2``) whose name is a built-in key that lives on the process
32
+ # default rather than a scoped/injected registry. Falling back to the
33
+ # default here keeps the DI seam (scoped adapters pass on the injected
34
+ # registry) without rejecting a resolved built-in that selection already
35
+ # accepted. The fallback is skipped when no registry was injected, since
36
+ # ``registry`` is then already the default.
37
+ default_registry = get_default_registry()
38
+ if registry is not default_registry and default_registry.is_available(name):
39
+ return
40
+
41
+ hint = get_install_hint(name, registry=registry)
42
+ raise ImportError(
43
+ f"Framework '{name}' was requested but is not installed.\n"
44
+ f"Install it with:\n {hint}"
45
+ )
@@ -0,0 +1,13 @@
1
+ """C13 shim: sandbox backends moved to ``praisonai_sandbox``.
2
+
3
+ Old import paths (``praisonai.sandbox``, ``praisonai.sandbox.docker``) keep working
4
+ and resolve to the same module objects as ``praisonai_sandbox.*``.
5
+ """
6
+
7
+ from praisonai._bootstrap import ensure_praisonai_sandbox
8
+
9
+ ensure_praisonai_sandbox()
10
+
11
+ from praisonai.cli._shim import alias_package
12
+
13
+ alias_package("praisonai.sandbox", "praisonai_sandbox")
@@ -0,0 +1,13 @@
1
+ """C13 shim: ``praisonai.sandbox._registry`` → ``praisonai_sandbox._registry``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import sys
6
+
7
+ from praisonai._bootstrap import ensure_praisonai_sandbox
8
+
9
+ ensure_praisonai_sandbox()
10
+
11
+ import praisonai_sandbox._registry as _reg
12
+
13
+ sys.modules[__name__] = _reg