PraisonAI 4.7.8__tar.gz → 4.7.10__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 (564) hide show
  1. {praisonai-4.7.8 → praisonai-4.7.10}/PKG-INFO +11 -9
  2. {praisonai-4.7.8 → praisonai-4.7.10}/PraisonAI.egg-info/PKG-INFO +11 -9
  3. {praisonai-4.7.8 → praisonai-4.7.10}/PraisonAI.egg-info/SOURCES.txt +1 -0
  4. {praisonai-4.7.8 → praisonai-4.7.10}/PraisonAI.egg-info/requires.txt +10 -8
  5. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_entrypoint.py +16 -0
  6. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/adapters/readers.py +23 -13
  7. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/adapters/rerankers.py +14 -7
  8. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/adapters/retrievers.py +16 -7
  9. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/agents_generator.py +33 -11
  10. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/api/agent_invoke.py +93 -44
  11. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/passthrough.py +101 -21
  12. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/langfuse_client.py +18 -1
  13. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/registry.py +23 -1
  14. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/workflow_framework.py +10 -3
  15. praisonai-4.7.10/praisonai/integrations/_managed_base.py +87 -0
  16. praisonai-4.7.10/praisonai/integrations/backend_registry.py +129 -0
  17. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/managed_agents.py +27 -41
  18. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/managed_local.py +34 -45
  19. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/jobs/executor.py +55 -15
  20. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/jobs/models.py +1 -1
  21. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/jobs/router.py +7 -1
  22. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/history.py +132 -37
  23. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/operations.py +39 -15
  24. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/run_policy.py +10 -0
  25. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/yaml_loader.py +5 -2
  26. praisonai-4.7.10/praisonai/version.py +1 -0
  27. {praisonai-4.7.8 → praisonai-4.7.10}/pyproject.toml +19 -8
  28. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_n8n_agent_invoke.py +278 -0
  29. praisonai-4.7.8/praisonai/integrations/backend_registry.py +0 -87
  30. praisonai-4.7.8/praisonai/version.py +0 -1
  31. {praisonai-4.7.8 → praisonai-4.7.10}/PraisonAI.egg-info/dependency_links.txt +0 -0
  32. {praisonai-4.7.8 → praisonai-4.7.10}/PraisonAI.egg-info/entry_points.txt +0 -0
  33. {praisonai-4.7.8 → praisonai-4.7.10}/PraisonAI.egg-info/top_level.txt +0 -0
  34. {praisonai-4.7.8 → praisonai-4.7.10}/README.md +0 -0
  35. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/__init__.py +0 -0
  36. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/__main__.py +0 -0
  37. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_api_auth.py +0 -0
  38. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_approval_spec.py +0 -0
  39. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_async_bridge.py +0 -0
  40. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_bootstrap.py +0 -0
  41. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_dev/__init__.py +0 -0
  42. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_dev/api_md.py +0 -0
  43. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_framework_availability.py +0 -0
  44. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_lazy_cache.py +0 -0
  45. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_logging.py +0 -0
  46. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_registry.py +0 -0
  47. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/_safe_loader.py +0 -0
  48. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/acp/__init__.py +0 -0
  49. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/acp/config.py +0 -0
  50. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/acp/safe_edit.py +0 -0
  51. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/acp/server.py +0 -0
  52. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/acp/session.py +0 -0
  53. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/adapters/__init__.py +0 -0
  54. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/adapters/vector_stores.py +0 -0
  55. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/agent.py +0 -0
  56. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/agent_scheduler.py +0 -0
  57. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/api/call.py +0 -0
  58. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/app/__init__.py +0 -0
  59. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/app/agentos.py +0 -0
  60. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/async_agent_scheduler.py +0 -0
  61. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/audit/__init__.py +0 -0
  62. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/audit/agent_centric.py +0 -0
  63. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/auto.py +0 -0
  64. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/bots/__init__.py +0 -0
  65. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/browser/__init__.py +0 -0
  66. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/__init__.py +0 -0
  67. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/a2a.py +0 -0
  68. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/assistants.py +0 -0
  69. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/audio.py +0 -0
  70. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/batches.py +0 -0
  71. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/completions.py +0 -0
  72. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/container_files.py +0 -0
  73. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/containers.py +0 -0
  74. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/embeddings.py +0 -0
  75. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/files.py +0 -0
  76. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/fine_tuning.py +0 -0
  77. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/guardrails.py +0 -0
  78. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/images.py +0 -0
  79. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/mcp.py +0 -0
  80. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/messages.py +0 -0
  81. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/moderations.py +0 -0
  82. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/ocr.py +0 -0
  83. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/rag.py +0 -0
  84. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/realtime.py +0 -0
  85. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/rerank.py +0 -0
  86. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/responses.py +0 -0
  87. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/search.py +0 -0
  88. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/skills.py +0 -0
  89. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/vector_store_files.py +0 -0
  90. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/vector_stores.py +0 -0
  91. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/capabilities/videos.py +0 -0
  92. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/claw/__init__.py +0 -0
  93. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/__init__.py +0 -0
  94. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/_paths.py +0 -0
  95. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/_shim.py +0 -0
  96. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/_warnings.py +0 -0
  97. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/app.py +0 -0
  98. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/approval_backend.py +0 -0
  99. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/branding.py +0 -0
  100. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/__init__.py +0 -0
  101. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/_profiling.py +0 -0
  102. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/acp.py +0 -0
  103. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/agent.py +0 -0
  104. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/agents.py +0 -0
  105. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/app.py +0 -0
  106. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/attach.py +0 -0
  107. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/audit.py +0 -0
  108. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/auth.py +0 -0
  109. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/batch.py +0 -0
  110. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/benchmark.py +0 -0
  111. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/bot.py +0 -0
  112. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/browser.py +0 -0
  113. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/call.py +0 -0
  114. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/chat.py +0 -0
  115. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/checkpoint.py +0 -0
  116. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/claw.py +0 -0
  117. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/code.py +0 -0
  118. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/command.py +0 -0
  119. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/commit.py +0 -0
  120. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/completion.py +0 -0
  121. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/config.py +0 -0
  122. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/context.py +0 -0
  123. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/daemon.py +0 -0
  124. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/dashboard.py +0 -0
  125. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/debug.py +0 -0
  126. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/deploy.py +0 -0
  127. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/diag.py +0 -0
  128. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/docs.py +0 -0
  129. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/doctor.py +0 -0
  130. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/endpoints.py +0 -0
  131. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/environment.py +0 -0
  132. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/eval.py +0 -0
  133. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/examples.py +0 -0
  134. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/flow.py +0 -0
  135. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/gateway.py +0 -0
  136. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/github.py +0 -0
  137. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/hooks.py +0 -0
  138. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/identity.py +0 -0
  139. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/init.py +0 -0
  140. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/kanban.py +0 -0
  141. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/knowledge.py +0 -0
  142. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/langextract.py +0 -0
  143. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/langfuse.py +0 -0
  144. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/loop.py +0 -0
  145. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/lsp.py +0 -0
  146. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/managed.py +0 -0
  147. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/mcp.py +0 -0
  148. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/memory.py +0 -0
  149. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/mint_link.py +0 -0
  150. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/models.py +0 -0
  151. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/n8n.py +0 -0
  152. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/obs.py +0 -0
  153. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/onboard.py +0 -0
  154. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/package.py +0 -0
  155. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/pairing.py +0 -0
  156. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/paths.py +0 -0
  157. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/permissions.py +0 -0
  158. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/plugins.py +0 -0
  159. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/port.py +0 -0
  160. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/profile.py +0 -0
  161. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/publish.py +0 -0
  162. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/rag.py +0 -0
  163. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/realtime.py +0 -0
  164. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/recipe.py +0 -0
  165. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/registry.py +0 -0
  166. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/replay.py +0 -0
  167. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/research.py +0 -0
  168. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/retrieval.py +0 -0
  169. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/rules.py +0 -0
  170. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/run.py +0 -0
  171. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/sandbox.py +0 -0
  172. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/schedule.py +0 -0
  173. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/serve.py +0 -0
  174. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/session.py +0 -0
  175. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/setup.py +0 -0
  176. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/skills.py +0 -0
  177. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/standardise.py +0 -0
  178. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/templates.py +0 -0
  179. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/test.py +0 -0
  180. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/todo.py +0 -0
  181. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/tools.py +0 -0
  182. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/traces.py +0 -0
  183. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/tracker.py +0 -0
  184. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/train.py +0 -0
  185. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/ui.py +0 -0
  186. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/up.py +0 -0
  187. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/validate.py +0 -0
  188. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/version.py +0 -0
  189. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/commands/workflow.py +0 -0
  190. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/config_loader.py +0 -0
  191. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/configuration/__init__.py +0 -0
  192. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/configuration/config.schema.json +0 -0
  193. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/execution/__init__.py +0 -0
  194. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/fallback_schema.py +0 -0
  195. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/__init__.py +0 -0
  196. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/acp.py +0 -0
  197. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/agent_scheduler.py +0 -0
  198. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/agent_tools.py +0 -0
  199. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/approval.py +0 -0
  200. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/background.py +0 -0
  201. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/bots_cli.py +0 -0
  202. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/deploy.py +0 -0
  203. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/endpoints.py +0 -0
  204. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/eval.py +0 -0
  205. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/gateway.py +0 -0
  206. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/ollama.py +0 -0
  207. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/onboard.py +0 -0
  208. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/persistence.py +0 -0
  209. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/recipe.py +0 -0
  210. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/recipe_optimizer.py +0 -0
  211. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/registry.py +0 -0
  212. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/sandbox_cli.py +0 -0
  213. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/serve.py +0 -0
  214. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/templates.py +0 -0
  215. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/tools.py +0 -0
  216. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/tui/__init__.py +0 -0
  217. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/tui/app.py +0 -0
  218. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/features/workflow.py +0 -0
  219. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/interactive/__init__.py +0 -0
  220. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/interactive/async_tui.py +0 -0
  221. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/interactive/config.py +0 -0
  222. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/interactive/core.py +0 -0
  223. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/interactive/events.py +0 -0
  224. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/__init__.py +0 -0
  225. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/direct_prompt.py +0 -0
  226. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
  227. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
  228. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
  229. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/framework_run.py +0 -0
  230. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
  231. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/interactive_legacy.py +0 -0
  232. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
  233. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/legacy/workflow_commands.py +0 -0
  234. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/main.py +0 -0
  235. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/output/__init__.py +0 -0
  236. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/schedule_cli.py +0 -0
  237. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/schema_provider.py +0 -0
  238. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/session/__init__.py +0 -0
  239. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/state/__init__.py +0 -0
  240. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/ui/__init__.py +0 -0
  241. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/unified_schema.py +0 -0
  242. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli/utils/__init__.py +0 -0
  243. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/cli_backends/__init__.py +0 -0
  244. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/__init__.py +0 -0
  245. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/agent_tools.py +0 -0
  246. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/diff/__init__.py +0 -0
  247. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/diff/diff_strategy.py +0 -0
  248. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/tools/__init__.py +0 -0
  249. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/tools/apply_diff.py +0 -0
  250. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/tools/execute_command.py +0 -0
  251. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/tools/list_files.py +0 -0
  252. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/tools/read_file.py +0 -0
  253. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/tools/search_replace.py +0 -0
  254. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/tools/write_file.py +0 -0
  255. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/utils/__init__.py +0 -0
  256. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/utils/file_utils.py +0 -0
  257. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/utils/ignore_utils.py +0 -0
  258. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/code/utils/text_utils.py +0 -0
  259. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/config/__init__.py +0 -0
  260. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/config/agents.schema.json +0 -0
  261. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/config/schema.py +0 -0
  262. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/config/validator.py +0 -0
  263. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/__init__.py +0 -0
  264. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/_storage_path.py +0 -0
  265. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/artifact_store.py +0 -0
  266. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/config.py +0 -0
  267. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/history_store.py +0 -0
  268. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/queue.py +0 -0
  269. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/setup.py +0 -0
  270. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/context/terminal_logger.py +0 -0
  271. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/daemon/__init__.py +0 -0
  272. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/db/__init__.py +0 -0
  273. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/db/adapter.py +0 -0
  274. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/deploy/__init__.py +0 -0
  275. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/__init__.py +0 -0
  276. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/a2u_server.py +0 -0
  277. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/discovery.py +0 -0
  278. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/__init__.py +0 -0
  279. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/a2a.py +0 -0
  280. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/a2u.py +0 -0
  281. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/agents_api.py +0 -0
  282. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/base.py +0 -0
  283. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/mcp.py +0 -0
  284. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/openai_compat.py +0 -0
  285. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/recipe.py +0 -0
  286. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  287. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/registry.py +0 -0
  288. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/endpoints/server.py +0 -0
  289. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/flow/__init__.py +0 -0
  290. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/flow/client.py +0 -0
  291. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  292. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  293. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/flow/components/__init__.py +0 -0
  294. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/flow/converter.py +0 -0
  295. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/flow/helpers.py +0 -0
  296. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/__init__.py +0 -0
  297. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/_config_builder.py +0 -0
  298. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  299. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/base.py +0 -0
  300. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  301. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  302. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/framework_adapters/validators.py +0 -0
  303. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/gateway/__init__.py +0 -0
  304. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/inbuilt_tools/__init__.py +0 -0
  305. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  306. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/inc/__init__.py +0 -0
  307. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/inc/config.py +0 -0
  308. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/inc/models.py +0 -0
  309. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/__init__.py +0 -0
  310. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/bridges/__init__.py +0 -0
  311. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  312. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/bridges/hooks_query.py +0 -0
  313. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  314. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/bridges/schedules_runner.py +0 -0
  315. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/bridges/usage_bridge.py +0 -0
  316. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/bridges/workflows_service.py +0 -0
  317. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/context_files.py +0 -0
  318. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/gateway_host.py +0 -0
  319. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/host_app.py +0 -0
  320. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/pages/__init__.py +0 -0
  321. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/pages/bot_health.py +0 -0
  322. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integration/pages/workflow_runs.py +0 -0
  323. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/__init__.py +0 -0
  324. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/_cli_loaders.py +0 -0
  325. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/_session_info.py +0 -0
  326. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/_tool_aliases.py +0 -0
  327. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/base.py +0 -0
  328. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/claude_code.py +0 -0
  329. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/codex_cli.py +0 -0
  330. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/__init__.py +0 -0
  331. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/_sync_base.py +0 -0
  332. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/daytona.py +0 -0
  333. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/docker.py +0 -0
  334. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/e2b.py +0 -0
  335. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/flyio.py +0 -0
  336. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/local.py +0 -0
  337. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/modal_compute.py +0 -0
  338. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute/tenki.py +0 -0
  339. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/compute_managed_agent.py +0 -0
  340. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/cursor_cli.py +0 -0
  341. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/db_session_adapter.py +0 -0
  342. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/gemini_cli.py +0 -0
  343. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/hosted_agent.py +0 -0
  344. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/local_agent.py +0 -0
  345. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/registry.py +0 -0
  346. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/integrations/sandboxed_agent.py +0 -0
  347. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/jobs/__init__.py +0 -0
  348. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/jobs/path_validation.py +0 -0
  349. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/jobs/server.py +0 -0
  350. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/jobs/store.py +0 -0
  351. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/kanban/__init__.py +0 -0
  352. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/llm/__init__.py +0 -0
  353. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/llm/catalogue.py +0 -0
  354. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/llm/config.py +0 -0
  355. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/llm/credentials.py +0 -0
  356. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/llm/env.py +0 -0
  357. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/llm/gateways.py +0 -0
  358. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/llm/registry.py +0 -0
  359. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/mcp_server/__init__.py +0 -0
  360. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/n8n/__init__.py +0 -0
  361. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/n8n/client.py +0 -0
  362. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/n8n/converter.py +0 -0
  363. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/n8n/preview.py +0 -0
  364. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/n8n/reverse_converter.py +0 -0
  365. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/observability/__init__.py +0 -0
  366. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/observability/hooks.py +0 -0
  367. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/observability/langextract.py +0 -0
  368. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/observability/langfuse.py +0 -0
  369. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/__init__.py +0 -0
  370. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/_valkey_client.py +0 -0
  371. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/config.py +0 -0
  372. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/__init__.py +0 -0
  373. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/_ops.py +0 -0
  374. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/_sql_base.py +0 -0
  375. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
  376. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/async_mysql.py +0 -0
  377. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/async_postgres.py +0 -0
  378. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  379. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/base.py +0 -0
  380. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/json_store.py +0 -0
  381. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/mysql.py +0 -0
  382. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/postgres.py +0 -0
  383. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/singlestore.py +0 -0
  384. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/sqlite.py +0 -0
  385. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/supabase.py +0 -0
  386. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/surrealdb.py +0 -0
  387. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
  388. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/conversation/turso.py +0 -0
  389. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/factory.py +0 -0
  390. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/hooks/__init__.py +0 -0
  391. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  392. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/__init__.py +0 -0
  393. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/base.py +0 -0
  394. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/cassandra.py +0 -0
  395. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/chroma.py +0 -0
  396. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  397. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  398. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/couchbase.py +0 -0
  399. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/lancedb.py +0 -0
  400. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  401. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  402. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  403. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/milvus.py +0 -0
  404. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  405. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/pgvector.py +0 -0
  406. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/pinecone.py +0 -0
  407. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/qdrant.py +0 -0
  408. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  409. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  410. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  411. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  412. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  413. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/knowledge/weaviate.py +0 -0
  414. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/migrations/__init__.py +0 -0
  415. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/migrations/manager.py +0 -0
  416. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/orchestrator.py +0 -0
  417. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/registry.py +0 -0
  418. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/__init__.py +0 -0
  419. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/async_mongodb.py +0 -0
  420. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/base.py +0 -0
  421. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/dynamodb.py +0 -0
  422. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/firestore.py +0 -0
  423. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/gcs.py +0 -0
  424. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/memory.py +0 -0
  425. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/mongodb.py +0 -0
  426. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/redis.py +0 -0
  427. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/upstash.py +0 -0
  428. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/persistence/state/valkey.py +0 -0
  429. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/profiler.py +0 -0
  430. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/push/__init__.py +0 -0
  431. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/push/client.py +0 -0
  432. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/push/transports.py +0 -0
  433. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/__init__.py +0 -0
  434. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/bridge.py +0 -0
  435. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/core.py +0 -0
  436. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/exceptions.py +0 -0
  437. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/models.py +0 -0
  438. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/policy.py +0 -0
  439. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/registry.py +0 -0
  440. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/runtime.py +0 -0
  441. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/security.py +0 -0
  442. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/serve.py +0 -0
  443. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/recipe/server.py +0 -0
  444. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/__init__.py +0 -0
  445. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/analyzer.py +0 -0
  446. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/applier.py +0 -0
  447. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/judge.py +0 -0
  448. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/plan.py +0 -0
  449. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/player.py +0 -0
  450. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/reader.py +0 -0
  451. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/storage.py +0 -0
  452. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/replay/writer.py +0 -0
  453. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/runtime/__init__.py +0 -0
  454. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/runtime/__main__.py +0 -0
  455. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/sandbox/__init__.py +0 -0
  456. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/sandbox/_registry.py +0 -0
  457. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/__init__.py +0 -0
  458. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/_base_scheduler.py +0 -0
  459. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/_delivery.py +0 -0
  460. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/_dispatch.py +0 -0
  461. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/agent_scheduler.py +0 -0
  462. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/async_agent_scheduler.py +0 -0
  463. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/base.py +0 -0
  464. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  465. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/condition_gate.py +0 -0
  466. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/daemon_manager.py +0 -0
  467. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/deployment.py +0 -0
  468. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/executor.py +0 -0
  469. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/shared.py +0 -0
  470. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/state_manager.py +0 -0
  471. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/scheduler/suggestion_engine.py +0 -0
  472. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/security/__init__.py +0 -0
  473. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/security/audit.py +0 -0
  474. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/security/injection.py +0 -0
  475. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/security/protected.py +0 -0
  476. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/setup/__init__.py +0 -0
  477. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/setup/build.py +0 -0
  478. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/setup/post_install.py +0 -0
  479. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/setup/setup_conda_env.py +0 -0
  480. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/setup.py +0 -0
  481. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/__init__.py +0 -0
  482. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/ai_generator.py +0 -0
  483. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/config.py +0 -0
  484. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/dedupe.py +0 -0
  485. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/discovery.py +0 -0
  486. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/drift.py +0 -0
  487. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/engine.py +0 -0
  488. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/example_verifier.py +0 -0
  489. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/models.py +0 -0
  490. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/reports.py +0 -0
  491. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/templates.py +0 -0
  492. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/undo_redo.py +0 -0
  493. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/standardise/validator.py +0 -0
  494. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/storage/__init__.py +0 -0
  495. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/storage/dynamodb_adapter.py +0 -0
  496. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/storage/mongodb_adapter.py +0 -0
  497. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/storage/postgresql_adapter.py +0 -0
  498. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/storage/redis_adapter.py +0 -0
  499. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/storage/valkey_adapter.py +0 -0
  500. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/__init__.py +0 -0
  501. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/batch_source.py +0 -0
  502. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/cli_docs_source.py +0 -0
  503. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/discovery.py +0 -0
  504. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/docs_source.py +0 -0
  505. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/examples_source.py +0 -0
  506. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/executor.py +0 -0
  507. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/models.py +0 -0
  508. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/report_viewer.py +0 -0
  509. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/reporter.py +0 -0
  510. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/suite_runner/runner.py +0 -0
  511. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/__init__.py +0 -0
  512. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/_tool_sources.py +0 -0
  513. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/cache.py +0 -0
  514. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/dependency_checker.py +0 -0
  515. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/discovery.py +0 -0
  516. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/loader.py +0 -0
  517. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/registry.py +0 -0
  518. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/resolver.py +0 -0
  519. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/security.py +0 -0
  520. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/tool_override.py +0 -0
  521. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/templates/tools_doctor.py +0 -0
  522. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tool_registry.py +0 -0
  523. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tool_resolver.py +0 -0
  524. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tools/__init__.py +0 -0
  525. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tools/audio.py +0 -0
  526. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tools/glob_tool.py +0 -0
  527. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tools/grep_tool.py +0 -0
  528. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tools/kanban_tools.py +0 -0
  529. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tools/multiedit.py +0 -0
  530. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/tools/skill_manage.py +0 -0
  531. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/train/__init__.py +0 -0
  532. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/train.py +0 -0
  533. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/train_vision.py +0 -0
  534. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui/_aiui_datastore.py +0 -0
  535. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui/_external_agents.py +0 -0
  536. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui/context.py +0 -0
  537. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui/database_config.py +0 -0
  538. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_agents/__init__.py +0 -0
  539. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_agents/default_app.py +0 -0
  540. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_bot/__init__.py +0 -0
  541. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_bot/default_app.py +0 -0
  542. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_chat/__init__.py +0 -0
  543. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_chat/default_app.py +0 -0
  544. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_dashboard/__init__.py +0 -0
  545. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_dashboard/default_app.py +0 -0
  546. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_realtime/__init__.py +0 -0
  547. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/ui_realtime/default_app.py +0 -0
  548. {praisonai-4.7.8 → praisonai-4.7.10}/praisonai/upload_vision.py +0 -0
  549. {praisonai-4.7.8 → praisonai-4.7.10}/setup.cfg +0 -0
  550. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test.py +0 -0
  551. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_agents_playbook.py +0 -0
  552. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_approval_system.py +0 -0
  553. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_basic.py +0 -0
  554. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_cli_features.py +0 -0
  555. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_custom_tools_fix.py +0 -0
  556. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_double_api_fix.py +0 -0
  557. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_n8n_cli_feature.py +0 -0
  558. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_n8n_integration.py +0 -0
  559. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_phase2_refactor.py +0 -0
  560. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_recipe.py +0 -0
  561. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_registry.py +0 -0
  562. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_runner.py +0 -0
  563. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_sandboxed_agent_compatibility.py +0 -0
  564. {praisonai-4.7.8 → praisonai-4.7.10}/tests/test_serve_features.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.7.8
3
+ Version: 4.7.10
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,14 +11,14 @@ 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.7.6
15
- Requires-Dist: praisonai-code>=0.1.5
16
- Requires-Dist: praisonai-bot>=0.1.5
17
- Requires-Dist: praisonai-train>=0.1.5
18
- Requires-Dist: praisonai-browser>=0.1.5
19
- Requires-Dist: praisonai-mcp>=0.1.7
20
- Requires-Dist: praisonai-sandbox>=0.1.5
21
- Requires-Dist: praisonai-deploy>=0.1.5
14
+ Requires-Dist: praisonaiagents>=1.7.8
15
+ Requires-Dist: praisonai-code>=0.1.7
16
+ Requires-Dist: praisonai-bot>=0.1.7
17
+ Requires-Dist: praisonai-train>=0.1.7
18
+ Requires-Dist: praisonai-browser>=0.1.7
19
+ Requires-Dist: praisonai-mcp>=0.1.9
20
+ Requires-Dist: praisonai-sandbox>=0.1.7
21
+ Requires-Dist: praisonai-deploy>=0.1.7
22
22
  Requires-Dist: python-dotenv>=0.19.0
23
23
  Requires-Dist: litellm<2,>=1.83.14
24
24
  Requires-Dist: PyYAML>=6.0
@@ -140,6 +140,8 @@ Requires-Dist: agent-client-protocol>=0.7.0; extra == "acp"
140
140
  Provides-Extra: flow
141
141
  Requires-Dist: langflow>=1.0.0; extra == "flow"
142
142
  Requires-Dist: requests>=2.31.0; extra == "flow"
143
+ Requires-Dist: a2a-sdk[http-server]>=1.0.0; extra == "flow"
144
+ Requires-Dist: fastapi-pagination>=0.12.34; extra == "flow"
143
145
  Provides-Extra: lite
144
146
  Provides-Extra: all
145
147
  Requires-Dist: fastapi>=0.115.0; extra == "all"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.7.8
3
+ Version: 4.7.10
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,14 +11,14 @@ 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.7.6
15
- Requires-Dist: praisonai-code>=0.1.5
16
- Requires-Dist: praisonai-bot>=0.1.5
17
- Requires-Dist: praisonai-train>=0.1.5
18
- Requires-Dist: praisonai-browser>=0.1.5
19
- Requires-Dist: praisonai-mcp>=0.1.7
20
- Requires-Dist: praisonai-sandbox>=0.1.5
21
- Requires-Dist: praisonai-deploy>=0.1.5
14
+ Requires-Dist: praisonaiagents>=1.7.8
15
+ Requires-Dist: praisonai-code>=0.1.7
16
+ Requires-Dist: praisonai-bot>=0.1.7
17
+ Requires-Dist: praisonai-train>=0.1.7
18
+ Requires-Dist: praisonai-browser>=0.1.7
19
+ Requires-Dist: praisonai-mcp>=0.1.9
20
+ Requires-Dist: praisonai-sandbox>=0.1.7
21
+ Requires-Dist: praisonai-deploy>=0.1.7
22
22
  Requires-Dist: python-dotenv>=0.19.0
23
23
  Requires-Dist: litellm<2,>=1.83.14
24
24
  Requires-Dist: PyYAML>=6.0
@@ -140,6 +140,8 @@ Requires-Dist: agent-client-protocol>=0.7.0; extra == "acp"
140
140
  Provides-Extra: flow
141
141
  Requires-Dist: langflow>=1.0.0; extra == "flow"
142
142
  Requires-Dist: requests>=2.31.0; extra == "flow"
143
+ Requires-Dist: a2a-sdk[http-server]>=1.0.0; extra == "flow"
144
+ Requires-Dist: fastapi-pagination>=0.12.34; extra == "flow"
143
145
  Provides-Extra: lite
144
146
  Provides-Extra: all
145
147
  Requires-Dist: fastapi>=0.115.0; extra == "all"
@@ -314,6 +314,7 @@ praisonai/integration/pages/bot_health.py
314
314
  praisonai/integration/pages/workflow_runs.py
315
315
  praisonai/integrations/__init__.py
316
316
  praisonai/integrations/_cli_loaders.py
317
+ praisonai/integrations/_managed_base.py
317
318
  praisonai/integrations/_session_info.py
318
319
  praisonai/integrations/_tool_aliases.py
319
320
  praisonai/integrations/backend_registry.py
@@ -1,14 +1,14 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.7.6
5
- praisonai-code>=0.1.5
6
- praisonai-bot>=0.1.5
7
- praisonai-train>=0.1.5
8
- praisonai-browser>=0.1.5
9
- praisonai-mcp>=0.1.7
10
- praisonai-sandbox>=0.1.5
11
- praisonai-deploy>=0.1.5
4
+ praisonaiagents>=1.7.8
5
+ praisonai-code>=0.1.7
6
+ praisonai-bot>=0.1.7
7
+ praisonai-train>=0.1.7
8
+ praisonai-browser>=0.1.7
9
+ praisonai-mcp>=0.1.9
10
+ praisonai-sandbox>=0.1.7
11
+ praisonai-deploy>=0.1.7
12
12
  python-dotenv>=0.19.0
13
13
  litellm<2,>=1.83.14
14
14
  PyYAML>=6.0
@@ -153,6 +153,8 @@ praisonai-sandbox[e2b]
153
153
  [flow]
154
154
  langflow>=1.0.0
155
155
  requests>=2.31.0
156
+ a2a-sdk[http-server]>=1.0.0
157
+ fastapi-pagination>=0.12.34
156
158
 
157
159
  [gateway]
158
160
  praisonai-bot[gateway]
@@ -100,6 +100,14 @@ def run(agent_file: str,
100
100
  """
101
101
  from .agents_generator import AgentsGenerator
102
102
 
103
+ # Wire the built-in readers/retrievers/rerankers into the core-SDK
104
+ # registries so YAML/CLI declarations (e.g. `retriever: fusion`,
105
+ # `reranker: llm`) resolve. Idempotent + thread-safe, and register-only-if-
106
+ # absent: a custom adapter already registered under a built-in name (e.g. a
107
+ # multi-tenant host's own `fusion`) is preserved, never overwritten.
108
+ from .adapters import register_default_adapters
109
+ register_default_adapters()
110
+
103
111
  adapter, config_list = _resolve_run_inputs(framework)
104
112
  _apply_model_override(config_list, kwargs)
105
113
  cli_config = _merge_cli_config(cli_config, kwargs)
@@ -134,6 +142,14 @@ async def arun(agent_file: str,
134
142
 
135
143
  from .agents_generator import AgentsGenerator
136
144
 
145
+ # Wire the built-in readers/retrievers/rerankers into the core-SDK
146
+ # registries so YAML/CLI declarations resolve. Run off the event loop since
147
+ # registration performs lazy imports. Idempotent + thread-safe, and
148
+ # register-only-if-absent: a custom adapter already registered under a
149
+ # built-in name is preserved, never overwritten.
150
+ from .adapters import register_default_adapters
151
+ await asyncio.to_thread(register_default_adapters)
152
+
137
153
  # Resolve framework + build config_list off the caller's event loop so the
138
154
  # synchronous credential/config-file I/O does not block it. This is the
139
155
  # reason arun exists: a FastAPI handler awaiting arun must not stall the loop.
@@ -389,25 +389,35 @@ def register_default_readers():
389
389
  from praisonaiagents.knowledge.readers import get_reader_registry
390
390
 
391
391
  registry = get_reader_registry()
392
-
392
+
393
+ # Preserve any existing entry: an application (or a multi-tenant host) may
394
+ # have already registered a custom reader under a built-in name. Wiring the
395
+ # wrapper defaults must never silently replace it, so register only names
396
+ # that are not already present.
397
+ existing = set(registry.list_readers())
398
+
399
+ def _register(name, factory, extensions=None):
400
+ if name not in existing:
401
+ registry.register(name, factory, extensions)
402
+
393
403
  # Register text reader
394
- registry.register("text", TextReader, ["txt", "text", "log"])
395
-
404
+ _register("text", TextReader, ["txt", "text", "log"])
405
+
396
406
  # Register markitdown reader
397
- registry.register("markitdown", MarkItDownReader, MarkItDownReader.supported_extensions)
398
-
407
+ _register("markitdown", MarkItDownReader, MarkItDownReader.supported_extensions)
408
+
399
409
  # Register directory reader
400
- registry.register("directory", DirectoryReader)
401
-
410
+ _register("directory", DirectoryReader)
411
+
402
412
  # Register glob reader
403
- registry.register("glob", GlobReader)
404
-
413
+ _register("glob", GlobReader)
414
+
405
415
  # Register URL reader
406
- registry.register("url", URLReader)
407
-
416
+ _register("url", URLReader)
417
+
408
418
  # Register auto reader
409
- registry.register("auto", AutoReader)
410
-
419
+ _register("auto", AutoReader)
420
+
411
421
  logger.debug("Registered default readers")
412
422
 
413
423
 
@@ -324,18 +324,25 @@ def register_default_rerankers():
324
324
  from praisonaiagents.knowledge.rerankers import get_reranker_registry
325
325
 
326
326
  registry = get_reranker_registry()
327
-
327
+
328
+ # Preserve any existing entry: an application (or a multi-tenant host) may
329
+ # have already registered a custom reranker under a built-in name. Wiring
330
+ # the wrapper defaults must never silently replace it, so register only
331
+ # names that are not already present.
332
+ existing = set(registry.list_rerankers())
333
+
328
334
  # LLM reranker is always available
329
- registry.register("llm", LLMReranker)
330
-
335
+ if "llm" not in existing:
336
+ registry.register("llm", LLMReranker)
337
+
331
338
  # Cross-encoder if available
332
- if _check_sentence_transformers():
339
+ if "cross_encoder" not in existing and _check_sentence_transformers():
333
340
  registry.register("cross_encoder", CrossEncoderReranker)
334
-
341
+
335
342
  # Cohere if available
336
- if _check_cohere():
343
+ if "cohere" not in existing and _check_cohere():
337
344
  registry.register("cohere", CohereReranker)
338
-
345
+
339
346
  logger.debug("Registered default rerankers")
340
347
 
341
348
 
@@ -595,13 +595,22 @@ def register_default_retrievers():
595
595
  from praisonaiagents.knowledge.retrieval import get_retriever_registry
596
596
 
597
597
  registry = get_retriever_registry()
598
-
599
- registry.register("basic", BasicRetriever)
600
- registry.register("fusion", FusionRetriever)
601
- registry.register("recursive", RecursiveRetriever)
602
- registry.register("auto_merge", AutoMergeRetriever)
603
- registry.register("hybrid", HybridRetriever)
604
-
598
+
599
+ # Preserve any existing entry: an application (or a multi-tenant host) may
600
+ # have already registered a custom retriever under a built-in name. Wiring
601
+ # the wrapper defaults must never silently replace it, so register only
602
+ # names that are not already present.
603
+ existing = set(registry.list_retrievers())
604
+ for name, factory in (
605
+ ("basic", BasicRetriever),
606
+ ("fusion", FusionRetriever),
607
+ ("recursive", RecursiveRetriever),
608
+ ("auto_merge", AutoMergeRetriever),
609
+ ("hybrid", HybridRetriever),
610
+ ):
611
+ if name not in existing:
612
+ registry.register(name, factory)
613
+
605
614
  logger.debug("Registered default retrievers")
606
615
 
607
616
 
@@ -844,8 +844,11 @@ class AgentsGenerator:
844
844
  # Build tools dictionary using shared logic
845
845
  tools_dict = self._build_tools_dict(config)
846
846
 
847
- # Select framework and resolve adapter variant
848
- framework_name = self.framework or config.get('framework', 'praisonai')
847
+ # Select framework and resolve adapter variant. Registry is the single
848
+ # source of truth for the default, so no literal framework name here.
849
+ framework_name = self._adapter_registry.resolve_or_default(
850
+ self.framework or config.get('framework')
851
+ )
849
852
  adapter = self._select_framework(framework_name, config)
850
853
 
851
854
  # Validate framework availability through the injected registry so a
@@ -1376,10 +1379,13 @@ class AgentsGenerator:
1376
1379
  if self._is_workflow_yaml(config):
1377
1380
  # Bracket the workflow run in the same observability session the
1378
1381
  # sequential/hierarchical path uses so AgentOps init/finalize fires
1379
- # for workflow YAMLs too. Workflow YAMLs are native-only, so tag
1380
- # them 'praisonai'.
1382
+ # for workflow YAMLs too. Tag with the config-resolved framework
1383
+ # (registry default when omitted) rather than a hardcoded name.
1381
1384
  self._validate_workflow_cli_capabilities()
1382
- with observability_session("praisonai"):
1385
+ workflow_label = self._adapter_registry.resolve_or_default(
1386
+ self.framework or config.get('framework')
1387
+ ).lower()
1388
+ with observability_session(workflow_label):
1383
1389
  return self._run_yaml_workflow(config)
1384
1390
 
1385
1391
  # Use shared preparation logic
@@ -1432,10 +1438,14 @@ class AgentsGenerator:
1432
1438
  if self._is_workflow_yaml(config):
1433
1439
  # Bracket the async workflow run in the same observability session
1434
1440
  # the sequential/hierarchical path uses so AgentOps init/finalize
1435
- # fires for workflow YAMLs too. Workflow YAMLs are native-only, so
1436
- # tag them 'praisonai'.
1441
+ # fires for workflow YAMLs too. Tag with the config-resolved
1442
+ # framework (registry default when omitted) rather than a hardcoded
1443
+ # name.
1437
1444
  self._validate_workflow_cli_capabilities()
1438
- with observability_session("praisonai"):
1445
+ workflow_label = self._adapter_registry.resolve_or_default(
1446
+ self.framework or config.get('framework')
1447
+ ).lower()
1448
+ with observability_session(workflow_label):
1439
1449
  return await self._arun_yaml_workflow(config)
1440
1450
 
1441
1451
  # Use shared preparation logic (off the event loop to avoid blocking imports)
@@ -1493,23 +1503,35 @@ class AgentsGenerator:
1493
1503
  )
1494
1504
  # Validate the YAML-declared framework first so a non-native workflow
1495
1505
  # YAML (e.g. framework: crewai) can't slip through just because the
1496
- # generator instance still holds the default 'praisonai'.
1497
- workflow_framework = framework_from_config(config)
1506
+ # generator instance still holds the default 'praisonai'. Resolve
1507
+ # through the injected registry (not the process default) so the
1508
+ # build-time framework agrees with the observability label and a
1509
+ # tenant-scoped adapter is honoured. Fall back to the process default
1510
+ # when the instance was built without an injected registry.
1511
+ registry = getattr(self, "_adapter_registry", None) or _get_default_adapter_registry()
1512
+ workflow_framework = framework_from_config(
1513
+ config, registry=registry
1514
+ )
1498
1515
  validate_workflow_framework(
1499
1516
  workflow_framework,
1500
1517
  source="agents.yaml workflow section",
1518
+ registry=registry,
1501
1519
  )
1502
1520
  if self.framework:
1503
1521
  validate_workflow_framework(
1504
1522
  self.framework,
1505
1523
  source="AgentsGenerator framework",
1524
+ registry=registry,
1506
1525
  )
1507
1526
 
1508
1527
  # Parity with the sequential/hierarchical path: reject an incompatible
1509
1528
  # cli_backend in a workflow YAML at build time instead of accepting it
1510
1529
  # silently. Workflow YAMLs are native-only, so validate against
1511
1530
  # 'praisonai'.
1512
- self._validate_cli_backend_compatibility(config, workflow_framework or 'praisonai')
1531
+ self._validate_cli_backend_compatibility(
1532
+ config,
1533
+ registry.resolve_or_default(workflow_framework),
1534
+ )
1513
1535
 
1514
1536
  # The framework-level check above passes for 'praisonai' because the
1515
1537
  # sequential/hierarchical adapter does support cli_backend — but
@@ -443,6 +443,42 @@ def _apply_agent_config(agent: Any, agent_config: Optional[Dict[str, Any]]) -> N
443
443
  )
444
444
 
445
445
 
446
+ async def _safe_close_agent(agent: Any) -> None:
447
+ """Best-effort teardown of a per-request agent clone.
448
+
449
+ ``resolve_session_agent`` returns a fresh clone for every invoke of a
450
+ session-isolatable ``Agent`` (so concurrent callers never share
451
+ ``chat_history``). Those clones lazily spin up LLM client pools,
452
+ tool-executor threads and MCP subprocesses that
453
+ ``Agent.close()``/``aclose()`` release — without this teardown each request
454
+ leaks them into the long-lived server process.
455
+
456
+ Only a *clone* is closed. Ownership is derived from the agent itself via
457
+ :func:`_supports_session_isolation`: an isolatable agent was cloned for this
458
+ request and is safe to close, whereas a non-isolatable one (plain mock /
459
+ lightweight callable) is the shared registry instance and must NOT be closed
460
+ or the next request would run against a torn-down agent. Deriving ownership
461
+ from the resolved object — rather than comparing it against a second,
462
+ independently-timed registry lookup — is race-free even when the registry
463
+ entry is concurrently replaced.
464
+
465
+ Errors are swallowed (logged) so cleanup never masks a successful response.
466
+ """
467
+ if agent is None or not _supports_session_isolation(agent):
468
+ return
469
+ try:
470
+ aclose = getattr(agent, "aclose", None)
471
+ if inspect.iscoroutinefunction(aclose):
472
+ await aclose()
473
+ else:
474
+ close = getattr(agent, "close", None)
475
+ if callable(close):
476
+ import asyncio
477
+ await asyncio.to_thread(close)
478
+ except Exception:
479
+ logger.exception("Agent cleanup failed")
480
+
481
+
446
482
  def _supports_async_start(agent: Any) -> bool:
447
483
  """Return True if agent.astart is a coroutine function."""
448
484
  astart = getattr(agent, "astart", None)
@@ -511,52 +547,60 @@ if FASTAPI_AVAILABLE and APIRouter is not None:
511
547
  status_code=404,
512
548
  detail=f"Agent '{agent_id}' not found"
513
549
  )
514
-
515
- # Apply per-request agent_config overrides to the isolated clone, or
516
- # reject unsupported keys with a 400 so the caller isn't silently
517
- # running a different config than they asked for.
518
- try:
519
- _apply_agent_config(agent, request.agent_config)
520
- except AgentConfigError as e:
521
- raise HTTPException(status_code=400, detail=str(e))
522
550
 
523
551
  try:
524
- # Session ID echoed back to the caller
525
- session_id = request.session_id or "default"
526
-
527
- # Invoke agent (handle both sync and async agents)
528
- if _supports_async_start(agent):
529
- # Async agent
530
- result = await agent.astart(request.message)
531
- elif _supports_sync_start(agent):
532
- # Sync agent - run in a worker thread to avoid blocking the event
533
- # loop. ``asyncio.to_thread`` is the correct primitive inside a
534
- # running request coroutine (``get_event_loop()`` is deprecated
535
- # there since Python 3.10).
536
- import asyncio
537
- result = await asyncio.to_thread(agent.start, request.message)
538
- else:
539
- raise AttributeError(f"Agent {agent_id} must provide start() or async astart()")
540
-
541
- logger.info(f"Agent {agent_id} invoked successfully")
542
-
543
- return AgentInvokeResponse(
544
- result=str(result),
545
- session_id=session_id,
546
- status="success",
547
- metadata={
548
- "agent_id": agent_id,
549
- "message_length": len(request.message),
550
- "response_length": len(str(result))
551
- }
552
- )
553
-
554
- except Exception as e:
555
- logger.error(f"Agent {agent_id} invocation failed: {e}")
556
- raise HTTPException(
557
- status_code=500,
558
- detail=f"Agent execution failed: {str(e)}"
559
- )
552
+ # Apply per-request agent_config overrides to the isolated clone, or
553
+ # reject unsupported keys with a 400 so the caller isn't silently
554
+ # running a different config than they asked for.
555
+ try:
556
+ _apply_agent_config(agent, request.agent_config)
557
+ except AgentConfigError as e:
558
+ raise HTTPException(status_code=400, detail=str(e))
559
+
560
+ try:
561
+ # Session ID echoed back to the caller
562
+ session_id = request.session_id or "default"
563
+
564
+ # Invoke agent (handle both sync and async agents)
565
+ if _supports_async_start(agent):
566
+ # Async agent
567
+ result = await agent.astart(request.message)
568
+ elif _supports_sync_start(agent):
569
+ # Sync agent - run in a worker thread to avoid blocking the event
570
+ # loop. ``asyncio.to_thread`` is the correct primitive inside a
571
+ # running request coroutine (``get_event_loop()`` is deprecated
572
+ # there since Python 3.10).
573
+ import asyncio
574
+ result = await asyncio.to_thread(agent.start, request.message)
575
+ else:
576
+ raise AttributeError(f"Agent {agent_id} must provide start() or async astart()")
577
+
578
+ logger.info(f"Agent {agent_id} invoked successfully")
579
+
580
+ return AgentInvokeResponse(
581
+ result=str(result),
582
+ session_id=session_id,
583
+ status="success",
584
+ metadata={
585
+ "agent_id": agent_id,
586
+ "message_length": len(request.message),
587
+ "response_length": len(str(result))
588
+ }
589
+ )
590
+
591
+ except HTTPException:
592
+ raise
593
+ except Exception as e:
594
+ logger.error(f"Agent {agent_id} invocation failed: {e}")
595
+ raise HTTPException(
596
+ status_code=500,
597
+ detail=f"Agent execution failed: {str(e)}"
598
+ )
599
+ finally:
600
+ # Release the per-request clone's resources (LLM pools, tool-executor
601
+ # threads, MCP subprocesses). No-op when the agent fell back to the
602
+ # shared template. Never masks the response.
603
+ await _safe_close_agent(agent)
560
604
 
561
605
  @router.get("/agents")
562
606
  async def list_agents(
@@ -669,6 +713,7 @@ async def invoke_agent_standalone(
669
713
  "available_agents": list_registered_agents()
670
714
  }
671
715
 
716
+ agent = None
672
717
  try:
673
718
  # Per-session isolated agent view (see resolve_session_agent). Done
674
719
  # inside the try so a clone/isolation failure returns a clean error
@@ -715,6 +760,10 @@ async def invoke_agent_standalone(
715
760
  "status": "error",
716
761
  "agent_id": agent_id
717
762
  }
763
+ finally:
764
+ # Release the per-request clone's resources; no-op for the shared
765
+ # template fallback. Never masks the response.
766
+ await _safe_close_agent(agent)
718
767
 
719
768
 
720
769
  # Example usage and helper functions