PraisonAI 4.6.148__tar.gz → 4.6.150__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 (639) hide show
  1. {praisonai-4.6.148 → praisonai-4.6.150}/PKG-INFO +11 -5
  2. {praisonai-4.6.148 → praisonai-4.6.150}/PraisonAI.egg-info/PKG-INFO +11 -5
  3. {praisonai-4.6.148 → praisonai-4.6.150}/PraisonAI.egg-info/SOURCES.txt +0 -42
  4. praisonai-4.6.150/PraisonAI.egg-info/entry_points.txt +9 -0
  5. {praisonai-4.6.148 → praisonai-4.6.150}/PraisonAI.egg-info/requires.txt +12 -4
  6. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_bootstrap.py +32 -0
  7. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/agents_generator.py +54 -4
  8. praisonai-4.6.150/praisonai/browser/__init__.py +14 -0
  9. praisonai-4.6.150/praisonai/cli/commands/browser.py +11 -0
  10. praisonai-4.6.150/praisonai/cli/commands/mcp.py +11 -0
  11. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/tools/apply_diff.py +12 -12
  12. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/tools/search_replace.py +13 -13
  13. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/tools/write_file.py +11 -11
  14. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/registry.py +3 -6
  15. praisonai-4.6.150/praisonai/mcp_server/__init__.py +9 -0
  16. praisonai-4.6.150/praisonai/version.py +1 -0
  17. {praisonai-4.6.148 → praisonai-4.6.150}/pyproject.toml +17 -4
  18. praisonai-4.6.148/PraisonAI.egg-info/entry_points.txt +0 -4
  19. praisonai-4.6.148/praisonai/browser/__init__.py +0 -50
  20. praisonai-4.6.148/praisonai/browser/agent.py +0 -827
  21. praisonai-4.6.148/praisonai/browser/benchmark.py +0 -952
  22. praisonai-4.6.148/praisonai/browser/cdp_agent.py +0 -1617
  23. praisonai-4.6.148/praisonai/browser/cdp_utils.py +0 -367
  24. praisonai-4.6.148/praisonai/browser/cli.py +0 -3162
  25. praisonai-4.6.148/praisonai/browser/diagnostics.py +0 -609
  26. praisonai-4.6.148/praisonai/browser/launcher.py +0 -363
  27. praisonai-4.6.148/praisonai/browser/playwright_agent.py +0 -271
  28. praisonai-4.6.148/praisonai/browser/profiling.py +0 -305
  29. praisonai-4.6.148/praisonai/browser/protocol.py +0 -108
  30. praisonai-4.6.148/praisonai/browser/report.py +0 -137
  31. praisonai-4.6.148/praisonai/browser/server.py +0 -1113
  32. praisonai-4.6.148/praisonai/browser/sessions.py +0 -386
  33. praisonai-4.6.148/praisonai/browser/video.py +0 -333
  34. praisonai-4.6.148/praisonai/cli/commands/browser.py +0 -20
  35. praisonai-4.6.148/praisonai/cli/commands/mcp.py +0 -763
  36. praisonai-4.6.148/praisonai/mcp_server/__init__.py +0 -152
  37. praisonai-4.6.148/praisonai/mcp_server/adapters/__init__.py +0 -74
  38. praisonai-4.6.148/praisonai/mcp_server/adapters/agents.py +0 -128
  39. praisonai-4.6.148/praisonai/mcp_server/adapters/capabilities.py +0 -168
  40. praisonai-4.6.148/praisonai/mcp_server/adapters/cli_tools.py +0 -624
  41. praisonai-4.6.148/praisonai/mcp_server/adapters/extended_capabilities.py +0 -462
  42. praisonai-4.6.148/praisonai/mcp_server/adapters/knowledge.py +0 -93
  43. praisonai-4.6.148/praisonai/mcp_server/adapters/memory.py +0 -104
  44. praisonai-4.6.148/praisonai/mcp_server/adapters/prompts.py +0 -306
  45. praisonai-4.6.148/praisonai/mcp_server/adapters/resources.py +0 -124
  46. praisonai-4.6.148/praisonai/mcp_server/adapters/tools_bridge.py +0 -280
  47. praisonai-4.6.148/praisonai/mcp_server/auth/__init__.py +0 -48
  48. praisonai-4.6.148/praisonai/mcp_server/auth/api_key.py +0 -291
  49. praisonai-4.6.148/praisonai/mcp_server/auth/oauth.py +0 -461
  50. praisonai-4.6.148/praisonai/mcp_server/auth/oidc.py +0 -289
  51. praisonai-4.6.148/praisonai/mcp_server/auth/scopes.py +0 -260
  52. praisonai-4.6.148/praisonai/mcp_server/cli.py +0 -898
  53. praisonai-4.6.148/praisonai/mcp_server/elicitation.py +0 -445
  54. praisonai-4.6.148/praisonai/mcp_server/icons.py +0 -302
  55. praisonai-4.6.148/praisonai/mcp_server/recipe_adapter.py +0 -573
  56. praisonai-4.6.148/praisonai/mcp_server/recipe_cli.py +0 -824
  57. praisonai-4.6.148/praisonai/mcp_server/registry.py +0 -718
  58. praisonai-4.6.148/praisonai/mcp_server/sampling.py +0 -422
  59. praisonai-4.6.148/praisonai/mcp_server/server.py +0 -567
  60. praisonai-4.6.148/praisonai/mcp_server/tasks.py +0 -443
  61. praisonai-4.6.148/praisonai/mcp_server/tool_index.py +0 -481
  62. praisonai-4.6.148/praisonai/mcp_server/transports/__init__.py +0 -18
  63. praisonai-4.6.148/praisonai/mcp_server/transports/http_stream.py +0 -525
  64. praisonai-4.6.148/praisonai/mcp_server/transports/stdio.py +0 -132
  65. praisonai-4.6.148/praisonai/version.py +0 -1
  66. {praisonai-4.6.148 → praisonai-4.6.150}/PraisonAI.egg-info/dependency_links.txt +0 -0
  67. {praisonai-4.6.148 → praisonai-4.6.150}/PraisonAI.egg-info/top_level.txt +0 -0
  68. {praisonai-4.6.148 → praisonai-4.6.150}/README.md +0 -0
  69. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/__init__.py +0 -0
  70. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/__main__.py +0 -0
  71. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_approval_spec.py +0 -0
  72. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_async_bridge.py +0 -0
  73. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/__init__.py +0 -0
  74. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/api_md.py +0 -0
  75. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/__init__.py +0 -0
  76. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/docs_extractor.py +0 -0
  77. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/docs_generator.py +0 -0
  78. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/generator.py +0 -0
  79. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  80. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/python_extractor.py +0 -0
  81. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  82. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/rust_extractor.py +0 -0
  83. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  84. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  85. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  86. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_entrypoint.py +0 -0
  87. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_framework_availability.py +0 -0
  88. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_lazy_cache.py +0 -0
  89. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_logging.py +0 -0
  90. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_registry.py +0 -0
  91. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/_safe_loader.py +0 -0
  92. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/acp/__init__.py +0 -0
  93. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/acp/config.py +0 -0
  94. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/acp/safe_edit.py +0 -0
  95. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/acp/server.py +0 -0
  96. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/acp/session.py +0 -0
  97. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/adapters/__init__.py +0 -0
  98. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/adapters/readers.py +0 -0
  99. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/adapters/rerankers.py +0 -0
  100. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/adapters/retrievers.py +0 -0
  101. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/adapters/vector_stores.py +0 -0
  102. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/agent.py +0 -0
  103. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/agent_scheduler.py +0 -0
  104. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/api/agent_invoke.py +0 -0
  105. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/api/call.py +0 -0
  106. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/app/__init__.py +0 -0
  107. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/app/agentos.py +0 -0
  108. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/async_agent_scheduler.py +0 -0
  109. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/audit/__init__.py +0 -0
  110. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/audit/agent_centric.py +0 -0
  111. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/auto.py +0 -0
  112. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/bots/__init__.py +0 -0
  113. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/__init__.py +0 -0
  114. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/a2a.py +0 -0
  115. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/assistants.py +0 -0
  116. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/audio.py +0 -0
  117. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/batches.py +0 -0
  118. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/completions.py +0 -0
  119. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/container_files.py +0 -0
  120. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/containers.py +0 -0
  121. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/embeddings.py +0 -0
  122. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/files.py +0 -0
  123. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/fine_tuning.py +0 -0
  124. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/guardrails.py +0 -0
  125. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/images.py +0 -0
  126. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/mcp.py +0 -0
  127. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/messages.py +0 -0
  128. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/moderations.py +0 -0
  129. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/ocr.py +0 -0
  130. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/passthrough.py +0 -0
  131. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/rag.py +0 -0
  132. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/realtime.py +0 -0
  133. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/rerank.py +0 -0
  134. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/responses.py +0 -0
  135. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/search.py +0 -0
  136. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/skills.py +0 -0
  137. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/vector_store_files.py +0 -0
  138. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/vector_stores.py +0 -0
  139. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/capabilities/videos.py +0 -0
  140. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/claw/__init__.py +0 -0
  141. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/__init__.py +0 -0
  142. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/_paths.py +0 -0
  143. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/_shim.py +0 -0
  144. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/_warnings.py +0 -0
  145. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/app.py +0 -0
  146. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/approval_backend.py +0 -0
  147. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/branding.py +0 -0
  148. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/__init__.py +0 -0
  149. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/acp.py +0 -0
  150. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/agent.py +0 -0
  151. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/agents.py +0 -0
  152. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/app.py +0 -0
  153. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/attach.py +0 -0
  154. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/audit.py +0 -0
  155. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/auth.py +0 -0
  156. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/batch.py +0 -0
  157. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/benchmark.py +0 -0
  158. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/bot.py +0 -0
  159. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/call.py +0 -0
  160. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/chat.py +0 -0
  161. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/checkpoint.py +0 -0
  162. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/claw.py +0 -0
  163. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/code.py +0 -0
  164. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/command.py +0 -0
  165. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/commit.py +0 -0
  166. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/completion.py +0 -0
  167. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/config.py +0 -0
  168. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/context.py +0 -0
  169. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/daemon.py +0 -0
  170. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/dashboard.py +0 -0
  171. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/debug.py +0 -0
  172. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/deploy.py +0 -0
  173. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/diag.py +0 -0
  174. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/docs.py +0 -0
  175. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/doctor.py +0 -0
  176. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/endpoints.py +0 -0
  177. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/environment.py +0 -0
  178. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/eval.py +0 -0
  179. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/examples.py +0 -0
  180. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/flow.py +0 -0
  181. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/gateway.py +0 -0
  182. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/github.py +0 -0
  183. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/hooks.py +0 -0
  184. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/identity.py +0 -0
  185. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/init.py +0 -0
  186. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/kanban.py +0 -0
  187. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/knowledge.py +0 -0
  188. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/langextract.py +0 -0
  189. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/langfuse.py +0 -0
  190. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/loop.py +0 -0
  191. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/lsp.py +0 -0
  192. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/managed.py +0 -0
  193. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/memory.py +0 -0
  194. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/mint_link.py +0 -0
  195. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/models.py +0 -0
  196. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/n8n.py +0 -0
  197. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/obs.py +0 -0
  198. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/onboard.py +0 -0
  199. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/package.py +0 -0
  200. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/pairing.py +0 -0
  201. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/paths.py +0 -0
  202. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/permissions.py +0 -0
  203. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/plugins.py +0 -0
  204. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/port.py +0 -0
  205. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/profile.py +0 -0
  206. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/publish.py +0 -0
  207. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/rag.py +0 -0
  208. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/realtime.py +0 -0
  209. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/recipe.py +0 -0
  210. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/registry.py +0 -0
  211. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/replay.py +0 -0
  212. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/research.py +0 -0
  213. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/retrieval.py +0 -0
  214. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/rules.py +0 -0
  215. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/run.py +0 -0
  216. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/sandbox.py +0 -0
  217. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/schedule.py +0 -0
  218. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/serve.py +0 -0
  219. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/session.py +0 -0
  220. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/setup.py +0 -0
  221. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/skills.py +0 -0
  222. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/standardise.py +0 -0
  223. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/templates.py +0 -0
  224. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/test.py +0 -0
  225. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/todo.py +0 -0
  226. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/tools.py +0 -0
  227. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/traces.py +0 -0
  228. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/tracker.py +0 -0
  229. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/train.py +0 -0
  230. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/ui.py +0 -0
  231. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/up.py +0 -0
  232. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/validate.py +0 -0
  233. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/version.py +0 -0
  234. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/commands/workflow.py +0 -0
  235. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/config_loader.py +0 -0
  236. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/configuration/__init__.py +0 -0
  237. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/configuration/config.schema.json +0 -0
  238. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/execution/__init__.py +0 -0
  239. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/fallback_schema.py +0 -0
  240. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/__init__.py +0 -0
  241. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/acp.py +0 -0
  242. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/agent_scheduler.py +0 -0
  243. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/agent_tools.py +0 -0
  244. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/approval.py +0 -0
  245. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/background.py +0 -0
  246. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/bots_cli.py +0 -0
  247. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/deploy.py +0 -0
  248. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/endpoints.py +0 -0
  249. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/eval.py +0 -0
  250. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/gateway.py +0 -0
  251. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/ollama.py +0 -0
  252. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/onboard.py +0 -0
  253. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/persistence.py +0 -0
  254. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/recipe.py +0 -0
  255. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/recipe_optimizer.py +0 -0
  256. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/registry.py +0 -0
  257. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/sandbox_cli.py +0 -0
  258. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/serve.py +0 -0
  259. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/templates.py +0 -0
  260. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/tools.py +0 -0
  261. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/tui/__init__.py +0 -0
  262. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/tui/app.py +0 -0
  263. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/features/workflow.py +0 -0
  264. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/interactive/__init__.py +0 -0
  265. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/interactive/async_tui.py +0 -0
  266. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/interactive/core.py +0 -0
  267. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/langfuse_client.py +0 -0
  268. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/__init__.py +0 -0
  269. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/direct_prompt.py +0 -0
  270. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
  271. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
  272. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
  273. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/framework_run.py +0 -0
  274. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
  275. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/interactive_legacy.py +0 -0
  276. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
  277. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/legacy/workflow_commands.py +0 -0
  278. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/main.py +0 -0
  279. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/output/__init__.py +0 -0
  280. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/schedule_cli.py +0 -0
  281. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/schema_provider.py +0 -0
  282. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/session/__init__.py +0 -0
  283. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/state/__init__.py +0 -0
  284. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/ui/__init__.py +0 -0
  285. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/unified_schema.py +0 -0
  286. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli/utils/__init__.py +0 -0
  287. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/cli_backends/__init__.py +0 -0
  288. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/__init__.py +0 -0
  289. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/agent_tools.py +0 -0
  290. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/diff/__init__.py +0 -0
  291. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/diff/diff_strategy.py +0 -0
  292. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/tools/__init__.py +0 -0
  293. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/tools/execute_command.py +0 -0
  294. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/tools/list_files.py +0 -0
  295. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/tools/read_file.py +0 -0
  296. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/utils/__init__.py +0 -0
  297. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/utils/file_utils.py +0 -0
  298. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/utils/ignore_utils.py +0 -0
  299. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/code/utils/text_utils.py +0 -0
  300. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/config/__init__.py +0 -0
  301. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/config/schema.py +0 -0
  302. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/config/validator.py +0 -0
  303. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/__init__.py +0 -0
  304. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/_storage_path.py +0 -0
  305. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/artifact_store.py +0 -0
  306. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/config.py +0 -0
  307. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/history_store.py +0 -0
  308. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/queue.py +0 -0
  309. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/setup.py +0 -0
  310. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/context/terminal_logger.py +0 -0
  311. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/daemon/__init__.py +0 -0
  312. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/db/__init__.py +0 -0
  313. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/db/adapter.py +0 -0
  314. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/__init__.py +0 -0
  315. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/api.py +0 -0
  316. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/docker.py +0 -0
  317. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/doctor.py +0 -0
  318. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/main.py +0 -0
  319. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/models.py +0 -0
  320. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/providers/__init__.py +0 -0
  321. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/providers/_registry.py +0 -0
  322. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/providers/aws.py +0 -0
  323. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/providers/azure.py +0 -0
  324. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/providers/base.py +0 -0
  325. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/providers/gcp.py +0 -0
  326. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/deploy/schema.py +0 -0
  327. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/__init__.py +0 -0
  328. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/a2u_server.py +0 -0
  329. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/discovery.py +0 -0
  330. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/__init__.py +0 -0
  331. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/a2a.py +0 -0
  332. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/a2u.py +0 -0
  333. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/agents_api.py +0 -0
  334. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/base.py +0 -0
  335. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/mcp.py +0 -0
  336. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/openai_compat.py +0 -0
  337. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/recipe.py +0 -0
  338. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  339. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/registry.py +0 -0
  340. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/endpoints/server.py +0 -0
  341. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/flow/__init__.py +0 -0
  342. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/flow/client.py +0 -0
  343. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  344. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  345. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/flow/components/__init__.py +0 -0
  346. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/flow/converter.py +0 -0
  347. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/flow/helpers.py +0 -0
  348. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/__init__.py +0 -0
  349. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/_config_builder.py +0 -0
  350. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  351. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/base.py +0 -0
  352. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  353. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  354. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/validators.py +0 -0
  355. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/framework_adapters/workflow_framework.py +0 -0
  356. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/gateway/__init__.py +0 -0
  357. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/inbuilt_tools/__init__.py +0 -0
  358. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  359. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/inc/__init__.py +0 -0
  360. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/inc/config.py +0 -0
  361. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/inc/models.py +0 -0
  362. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/__init__.py +0 -0
  363. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/bridges/__init__.py +0 -0
  364. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  365. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/bridges/hooks_query.py +0 -0
  366. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  367. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/bridges/schedules_runner.py +0 -0
  368. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/bridges/usage_bridge.py +0 -0
  369. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/bridges/workflows_service.py +0 -0
  370. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/context_files.py +0 -0
  371. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/gateway_host.py +0 -0
  372. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/host_app.py +0 -0
  373. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/pages/__init__.py +0 -0
  374. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/pages/bot_health.py +0 -0
  375. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integration/pages/workflow_runs.py +0 -0
  376. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/__init__.py +0 -0
  377. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/_cli_loaders.py +0 -0
  378. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/_session_info.py +0 -0
  379. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/_tool_aliases.py +0 -0
  380. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/_unified_registry.py +0 -0
  381. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/backend_registry.py +0 -0
  382. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/base.py +0 -0
  383. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/claude_code.py +0 -0
  384. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/codex_cli.py +0 -0
  385. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/compute/__init__.py +0 -0
  386. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/compute/daytona.py +0 -0
  387. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/compute/docker.py +0 -0
  388. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/compute/e2b.py +0 -0
  389. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/compute/flyio.py +0 -0
  390. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/compute/local.py +0 -0
  391. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/compute/modal_compute.py +0 -0
  392. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/cursor_cli.py +0 -0
  393. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/db_session_adapter.py +0 -0
  394. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/gemini_cli.py +0 -0
  395. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/hosted_agent.py +0 -0
  396. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/local_agent.py +0 -0
  397. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/managed_agents.py +0 -0
  398. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/managed_local.py +0 -0
  399. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/registry.py +0 -0
  400. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/integrations/sandboxed_agent.py +0 -0
  401. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/jobs/__init__.py +0 -0
  402. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/jobs/executor.py +0 -0
  403. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/jobs/models.py +0 -0
  404. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/jobs/path_validation.py +0 -0
  405. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/jobs/router.py +0 -0
  406. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/jobs/server.py +0 -0
  407. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/jobs/store.py +0 -0
  408. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/kanban/__init__.py +0 -0
  409. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/llm/__init__.py +0 -0
  410. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/llm/catalogue.py +0 -0
  411. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/llm/config.py +0 -0
  412. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/llm/credentials.py +0 -0
  413. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/llm/env.py +0 -0
  414. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/llm/gateways.py +0 -0
  415. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/llm/registry.py +0 -0
  416. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/n8n/__init__.py +0 -0
  417. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/n8n/client.py +0 -0
  418. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/n8n/converter.py +0 -0
  419. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/n8n/preview.py +0 -0
  420. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/n8n/reverse_converter.py +0 -0
  421. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/observability/__init__.py +0 -0
  422. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/observability/hooks.py +0 -0
  423. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/observability/langextract.py +0 -0
  424. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/observability/langfuse.py +0 -0
  425. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/__init__.py +0 -0
  426. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/_valkey_client.py +0 -0
  427. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/config.py +0 -0
  428. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/__init__.py +0 -0
  429. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/_sql_base.py +0 -0
  430. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
  431. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/async_mysql.py +0 -0
  432. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/async_postgres.py +0 -0
  433. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  434. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/base.py +0 -0
  435. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/json_store.py +0 -0
  436. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/mysql.py +0 -0
  437. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/postgres.py +0 -0
  438. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/singlestore.py +0 -0
  439. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/sqlite.py +0 -0
  440. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/supabase.py +0 -0
  441. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/surrealdb.py +0 -0
  442. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
  443. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/conversation/turso.py +0 -0
  444. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/factory.py +0 -0
  445. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/hooks/__init__.py +0 -0
  446. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  447. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/__init__.py +0 -0
  448. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/base.py +0 -0
  449. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/cassandra.py +0 -0
  450. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/chroma.py +0 -0
  451. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  452. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  453. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/couchbase.py +0 -0
  454. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/lancedb.py +0 -0
  455. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  456. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  457. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  458. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/milvus.py +0 -0
  459. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  460. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/pgvector.py +0 -0
  461. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/pinecone.py +0 -0
  462. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/qdrant.py +0 -0
  463. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  464. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  465. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  466. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  467. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  468. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/knowledge/weaviate.py +0 -0
  469. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/migrations/__init__.py +0 -0
  470. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/migrations/manager.py +0 -0
  471. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/orchestrator.py +0 -0
  472. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/registry.py +0 -0
  473. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/__init__.py +0 -0
  474. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/async_mongodb.py +0 -0
  475. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/base.py +0 -0
  476. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/dynamodb.py +0 -0
  477. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/firestore.py +0 -0
  478. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/gcs.py +0 -0
  479. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/memory.py +0 -0
  480. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/mongodb.py +0 -0
  481. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/redis.py +0 -0
  482. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/upstash.py +0 -0
  483. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/state/valkey.py +0 -0
  484. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/tests/__init__.py +0 -0
  485. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/tests/test_all_backends.py +0 -0
  486. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
  487. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
  488. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/profiler.py +0 -0
  489. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/push/__init__.py +0 -0
  490. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/push/client.py +0 -0
  491. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/push/transports.py +0 -0
  492. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/__init__.py +0 -0
  493. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/bridge.py +0 -0
  494. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/core.py +0 -0
  495. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/exceptions.py +0 -0
  496. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/history.py +0 -0
  497. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/models.py +0 -0
  498. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/operations.py +0 -0
  499. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/policy.py +0 -0
  500. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/registry.py +0 -0
  501. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/runtime.py +0 -0
  502. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/security.py +0 -0
  503. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/serve.py +0 -0
  504. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/recipe/server.py +0 -0
  505. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/__init__.py +0 -0
  506. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/analyzer.py +0 -0
  507. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/applier.py +0 -0
  508. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/judge.py +0 -0
  509. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/plan.py +0 -0
  510. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/player.py +0 -0
  511. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/reader.py +0 -0
  512. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/storage.py +0 -0
  513. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/replay/writer.py +0 -0
  514. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/runtime/__init__.py +0 -0
  515. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/runtime/__main__.py +0 -0
  516. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/__init__.py +0 -0
  517. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/_compat.py +0 -0
  518. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/_registry.py +0 -0
  519. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/_shell.py +0 -0
  520. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/daytona.py +0 -0
  521. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/docker.py +0 -0
  522. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/e2b.py +0 -0
  523. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/modal.py +0 -0
  524. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/sandlock.py +0 -0
  525. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/ssh.py +0 -0
  526. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/sandbox/subprocess.py +0 -0
  527. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/__init__.py +0 -0
  528. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/_base_scheduler.py +0 -0
  529. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/_delivery.py +0 -0
  530. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/_dispatch.py +0 -0
  531. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/agent_scheduler.py +0 -0
  532. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/async_agent_scheduler.py +0 -0
  533. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/base.py +0 -0
  534. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  535. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/condition_gate.py +0 -0
  536. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/daemon_manager.py +0 -0
  537. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/deployment.py +0 -0
  538. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/executor.py +0 -0
  539. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/run_policy.py +0 -0
  540. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/shared.py +0 -0
  541. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/state_manager.py +0 -0
  542. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/suggestion_engine.py +0 -0
  543. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/scheduler/yaml_loader.py +0 -0
  544. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/security/__init__.py +0 -0
  545. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/security/audit.py +0 -0
  546. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/security/injection.py +0 -0
  547. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/security/protected.py +0 -0
  548. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/setup/__init__.py +0 -0
  549. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/setup/build.py +0 -0
  550. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/setup/post_install.py +0 -0
  551. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/setup/setup_conda_env.py +0 -0
  552. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/setup.py +0 -0
  553. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/__init__.py +0 -0
  554. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/ai_generator.py +0 -0
  555. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/config.py +0 -0
  556. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/dedupe.py +0 -0
  557. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/discovery.py +0 -0
  558. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/drift.py +0 -0
  559. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/engine.py +0 -0
  560. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/enhanced_templates.py +0 -0
  561. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/example_verifier.py +0 -0
  562. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/manifest.py +0 -0
  563. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/models.py +0 -0
  564. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/reports.py +0 -0
  565. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/templates.py +0 -0
  566. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/undo_redo.py +0 -0
  567. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/standardise/validator.py +0 -0
  568. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/storage/__init__.py +0 -0
  569. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/storage/dynamodb_adapter.py +0 -0
  570. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/storage/mongodb_adapter.py +0 -0
  571. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/storage/postgresql_adapter.py +0 -0
  572. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/storage/redis_adapter.py +0 -0
  573. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/storage/valkey_adapter.py +0 -0
  574. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/__init__.py +0 -0
  575. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/batch_source.py +0 -0
  576. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/cli_docs_source.py +0 -0
  577. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/discovery.py +0 -0
  578. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/docs_source.py +0 -0
  579. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/examples_source.py +0 -0
  580. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/executor.py +0 -0
  581. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/models.py +0 -0
  582. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/report_viewer.py +0 -0
  583. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/reporter.py +0 -0
  584. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/suite_runner/runner.py +0 -0
  585. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/__init__.py +0 -0
  586. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/cache.py +0 -0
  587. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/dependency_checker.py +0 -0
  588. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/discovery.py +0 -0
  589. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/loader.py +0 -0
  590. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/registry.py +0 -0
  591. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/resolver.py +0 -0
  592. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/security.py +0 -0
  593. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/tool_override.py +0 -0
  594. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/templates/tools_doctor.py +0 -0
  595. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tool_registry.py +0 -0
  596. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tool_resolver.py +0 -0
  597. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tools/__init__.py +0 -0
  598. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tools/audio.py +0 -0
  599. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tools/glob_tool.py +0 -0
  600. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tools/grep_tool.py +0 -0
  601. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tools/kanban_tools.py +0 -0
  602. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tools/multiedit.py +0 -0
  603. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/tools/skill_manage.py +0 -0
  604. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/train/__init__.py +0 -0
  605. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/train.py +0 -0
  606. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/train_vision.py +0 -0
  607. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui/_aiui_datastore.py +0 -0
  608. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui/_external_agents.py +0 -0
  609. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui/callbacks.py +0 -0
  610. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui/components/aicoder.py +0 -0
  611. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui/context.py +0 -0
  612. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui/database_config.py +0 -0
  613. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_agents/__init__.py +0 -0
  614. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_agents/default_app.py +0 -0
  615. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_bot/__init__.py +0 -0
  616. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_bot/default_app.py +0 -0
  617. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_chat/__init__.py +0 -0
  618. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_chat/default_app.py +0 -0
  619. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_dashboard/default_app.py +0 -0
  620. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_realtime/__init__.py +0 -0
  621. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/ui_realtime/default_app.py +0 -0
  622. {praisonai-4.6.148 → praisonai-4.6.150}/praisonai/upload_vision.py +0 -0
  623. {praisonai-4.6.148 → praisonai-4.6.150}/setup.cfg +0 -0
  624. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test.py +0 -0
  625. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_agents_playbook.py +0 -0
  626. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_approval_system.py +0 -0
  627. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_basic.py +0 -0
  628. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_cli_features.py +0 -0
  629. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_custom_tools_fix.py +0 -0
  630. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_double_api_fix.py +0 -0
  631. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_n8n_agent_invoke.py +0 -0
  632. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_n8n_cli_feature.py +0 -0
  633. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_n8n_integration.py +0 -0
  634. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_phase2_refactor.py +0 -0
  635. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_recipe.py +0 -0
  636. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_registry.py +0 -0
  637. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_runner.py +0 -0
  638. {praisonai-4.6.148 → praisonai-4.6.150}/tests/test_sandboxed_agent_compatibility.py +0 -0
  639. {praisonai-4.6.148 → praisonai-4.6.150}/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.148
3
+ Version: 4.6.150
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,10 +11,12 @@ 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.151
15
- Requires-Dist: praisonai-code>=0.0.47
16
- Requires-Dist: praisonai-bot>=0.0.32
17
- Requires-Dist: praisonai-train>=0.0.3
14
+ Requires-Dist: praisonaiagents>=1.6.153
15
+ Requires-Dist: praisonai-code>=0.0.49
16
+ Requires-Dist: praisonai-bot>=0.0.34
17
+ Requires-Dist: praisonai-train>=0.0.5
18
+ Requires-Dist: praisonai-browser>=0.0.2
19
+ Requires-Dist: praisonai-mcp>=0.0.2
18
20
  Requires-Dist: python-dotenv>=0.19.0
19
21
  Requires-Dist: litellm<2,>=1.83.14
20
22
  Requires-Dist: PyYAML>=6.0
@@ -83,6 +85,10 @@ Requires-Dist: pyngrok>=1.4.0; extra == "call"
83
85
  Requires-Dist: rich; extra == "call"
84
86
  Provides-Extra: train
85
87
  Requires-Dist: praisonai-train[llm]; extra == "train"
88
+ Provides-Extra: browser
89
+ Requires-Dist: praisonai-browser[all]; extra == "browser"
90
+ Provides-Extra: mcp
91
+ Requires-Dist: praisonai-mcp[all]; extra == "mcp"
86
92
  Provides-Extra: crewai
87
93
  Requires-Dist: crewai>=0.157.0; extra == "crewai"
88
94
  Requires-Dist: praisonai-tools>=0.1.0; extra == "crewai"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.148
3
+ Version: 4.6.150
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,10 +11,12 @@ 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.151
15
- Requires-Dist: praisonai-code>=0.0.47
16
- Requires-Dist: praisonai-bot>=0.0.32
17
- Requires-Dist: praisonai-train>=0.0.3
14
+ Requires-Dist: praisonaiagents>=1.6.153
15
+ Requires-Dist: praisonai-code>=0.0.49
16
+ Requires-Dist: praisonai-bot>=0.0.34
17
+ Requires-Dist: praisonai-train>=0.0.5
18
+ Requires-Dist: praisonai-browser>=0.0.2
19
+ Requires-Dist: praisonai-mcp>=0.0.2
18
20
  Requires-Dist: python-dotenv>=0.19.0
19
21
  Requires-Dist: litellm<2,>=1.83.14
20
22
  Requires-Dist: PyYAML>=6.0
@@ -83,6 +85,10 @@ Requires-Dist: pyngrok>=1.4.0; extra == "call"
83
85
  Requires-Dist: rich; extra == "call"
84
86
  Provides-Extra: train
85
87
  Requires-Dist: praisonai-train[llm]; extra == "train"
88
+ Provides-Extra: browser
89
+ Requires-Dist: praisonai-browser[all]; extra == "browser"
90
+ Provides-Extra: mcp
91
+ Requires-Dist: praisonai-mcp[all]; extra == "mcp"
86
92
  Provides-Extra: crewai
87
93
  Requires-Dist: crewai>=0.157.0; extra == "crewai"
88
94
  Requires-Dist: praisonai-tools>=0.1.0; extra == "crewai"
@@ -61,20 +61,6 @@ praisonai/audit/__init__.py
61
61
  praisonai/audit/agent_centric.py
62
62
  praisonai/bots/__init__.py
63
63
  praisonai/browser/__init__.py
64
- praisonai/browser/agent.py
65
- praisonai/browser/benchmark.py
66
- praisonai/browser/cdp_agent.py
67
- praisonai/browser/cdp_utils.py
68
- praisonai/browser/cli.py
69
- praisonai/browser/diagnostics.py
70
- praisonai/browser/launcher.py
71
- praisonai/browser/playwright_agent.py
72
- praisonai/browser/profiling.py
73
- praisonai/browser/protocol.py
74
- praisonai/browser/report.py
75
- praisonai/browser/server.py
76
- praisonai/browser/sessions.py
77
- praisonai/browser/video.py
78
64
  praisonai/capabilities/__init__.py
79
65
  praisonai/capabilities/a2a.py
80
66
  praisonai/capabilities/assistants.py
@@ -385,34 +371,6 @@ praisonai/llm/env.py
385
371
  praisonai/llm/gateways.py
386
372
  praisonai/llm/registry.py
387
373
  praisonai/mcp_server/__init__.py
388
- praisonai/mcp_server/cli.py
389
- praisonai/mcp_server/elicitation.py
390
- praisonai/mcp_server/icons.py
391
- praisonai/mcp_server/recipe_adapter.py
392
- praisonai/mcp_server/recipe_cli.py
393
- praisonai/mcp_server/registry.py
394
- praisonai/mcp_server/sampling.py
395
- praisonai/mcp_server/server.py
396
- praisonai/mcp_server/tasks.py
397
- praisonai/mcp_server/tool_index.py
398
- praisonai/mcp_server/adapters/__init__.py
399
- praisonai/mcp_server/adapters/agents.py
400
- praisonai/mcp_server/adapters/capabilities.py
401
- praisonai/mcp_server/adapters/cli_tools.py
402
- praisonai/mcp_server/adapters/extended_capabilities.py
403
- praisonai/mcp_server/adapters/knowledge.py
404
- praisonai/mcp_server/adapters/memory.py
405
- praisonai/mcp_server/adapters/prompts.py
406
- praisonai/mcp_server/adapters/resources.py
407
- praisonai/mcp_server/adapters/tools_bridge.py
408
- praisonai/mcp_server/auth/__init__.py
409
- praisonai/mcp_server/auth/api_key.py
410
- praisonai/mcp_server/auth/oauth.py
411
- praisonai/mcp_server/auth/oidc.py
412
- praisonai/mcp_server/auth/scopes.py
413
- praisonai/mcp_server/transports/__init__.py
414
- praisonai/mcp_server/transports/http_stream.py
415
- praisonai/mcp_server/transports/stdio.py
416
374
  praisonai/n8n/__init__.py
417
375
  praisonai/n8n/client.py
418
376
  praisonai/n8n/converter.py
@@ -0,0 +1,9 @@
1
+ [console_scripts]
2
+ praisonai = praisonai.__main__:main
3
+ praisonai-call = praisonai.api.call:main
4
+ setup-conda-env = praisonai.setup.setup_conda_env:main
5
+
6
+ [praisonai.framework_adapters]
7
+ autogen = praisonai.framework_adapters.autogen_adapter:AutoGenFamilyAdapter
8
+ autogen_v2 = praisonai.framework_adapters.autogen_adapter:AutoGenAdapter
9
+ crewai = praisonai.framework_adapters.crewai_adapter:CrewAIAdapter
@@ -1,10 +1,12 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.151
5
- praisonai-code>=0.0.47
6
- praisonai-bot>=0.0.32
7
- praisonai-train>=0.0.3
4
+ praisonaiagents>=1.6.153
5
+ praisonai-code>=0.0.49
6
+ praisonai-bot>=0.0.34
7
+ praisonai-train>=0.0.5
8
+ praisonai-browser>=0.0.2
9
+ praisonai-mcp>=0.0.2
8
10
  python-dotenv>=0.19.0
9
11
  litellm<2,>=1.83.14
10
12
  PyYAML>=6.0
@@ -78,6 +80,9 @@ aiui<0.4,>=0.3.121
78
80
  [bot-whatsapp-web]
79
81
  praisonai-bot[bot-whatsapp-web]
80
82
 
83
+ [browser]
84
+ praisonai-browser[all]
85
+
81
86
  [call]
82
87
  twilio>=7.0.0
83
88
  fastapi>=0.95.0
@@ -162,6 +167,9 @@ praisonai-tools>=0.1.0
162
167
 
163
168
  [lite]
164
169
 
170
+ [mcp]
171
+ praisonai-mcp[all]
172
+
165
173
  [modal]
166
174
  modal>=0.64.0
167
175
 
@@ -59,3 +59,35 @@ def ensure_praisonai_train() -> None:
59
59
  root = str(train_src)
60
60
  if root not in sys.path:
61
61
  sys.path.insert(0, root)
62
+
63
+
64
+ def ensure_praisonai_browser() -> None:
65
+ """Ensure ``praisonai_browser`` can be imported in monorepo dev layouts."""
66
+ try:
67
+ import praisonai_browser # noqa: F401
68
+ return
69
+ except ImportError:
70
+ pass
71
+
72
+ wrapper_src = Path(__file__).resolve().parents[1] # .../src/praisonai
73
+ browser_src = wrapper_src.parent / "praisonai-browser"
74
+ if (browser_src / "praisonai_browser").is_dir():
75
+ root = str(browser_src)
76
+ if root not in sys.path:
77
+ sys.path.insert(0, root)
78
+
79
+
80
+ def ensure_praisonai_mcp() -> None:
81
+ """Ensure ``praisonai_mcp`` can be imported in monorepo dev layouts."""
82
+ try:
83
+ import praisonai_mcp # noqa: F401
84
+ return
85
+ except ImportError:
86
+ pass
87
+
88
+ wrapper_src = Path(__file__).resolve().parents[1] # .../src/praisonai
89
+ mcp_src = wrapper_src.parent / "praisonai-mcp"
90
+ if (mcp_src / "praisonai_mcp").is_dir():
91
+ root = str(mcp_src)
92
+ if root not in sys.path:
93
+ sys.path.insert(0, root)
@@ -202,6 +202,16 @@ def _looks_like_framework_tool(tool) -> bool:
202
202
  return has_schema and has_exec_method
203
203
 
204
204
 
205
+ # Marker attribute stamped on wrappers produced by ``_wrap_with_timeout``. Its
206
+ # *value* is the owning executor_factory's identity (not just True) so a shared
207
+ # framework-tool object is never re-wrapped by the same generator (idempotency),
208
+ # yet is correctly re-wrapped when a *different* generator takes ownership.
209
+ _TIMEOUT_MARKER = "__praisonai_timeout_wrapped__"
210
+ # Reference to the pre-wrap callable, so a re-wrap for a new owner wraps the
211
+ # original method rather than stacking on a foreign generator's wrapper.
212
+ _TIMEOUT_ORIGINAL = "__praisonai_timeout_original__"
213
+
214
+
205
215
  def _wrap_with_timeout(tool, timeout_seconds: float, executor_factory, on_leaked=None):
206
216
  """Enforce a per-call timeout on a tool, sync or async.
207
217
 
@@ -225,6 +235,15 @@ def _wrap_with_timeout(tool, timeout_seconds: float, executor_factory, on_leaked
225
235
  import functools
226
236
  import inspect
227
237
 
238
+ # Identity of the wrapper's owner so a shared framework-tool object patched
239
+ # in place by one generator is transparently re-wrapped (not skipped) when a
240
+ # *different* generator processes it — otherwise it would keep the first
241
+ # generator's executor/timeout even after that generator's pool is closed.
242
+ # The executor_factory is a bound method unique per generator instance, so
243
+ # its identity is a stable per-owner key. (May be None for callers that pass
244
+ # no factory; those paths never capture a foreign executor.)
245
+ _owner_key = id(executor_factory) if executor_factory is not None else None
246
+
228
247
  def _wrap_callable(fn):
229
248
  """Return a timeout-enforcing wrapper around a bare callable."""
230
249
  if not callable(fn):
@@ -284,9 +303,28 @@ def _wrap_with_timeout(tool, timeout_seconds: float, executor_factory, on_leaked
284
303
  for method_name in ("_run", "run"):
285
304
  method = getattr(tool, method_name, None)
286
305
  if callable(method):
287
- wrapped = _wrap_callable(method)
288
- if wrapped is method:
306
+ # Idempotency guard for shared framework tool objects (cached by
307
+ # ToolResolver / passed via plugin registries). Re-wrapping on
308
+ # every generate_crew_and_kickoff() would stack wrappers (N×
309
+ # timeout, monotonic memory growth). But the marker is keyed by
310
+ # the *owning* executor_factory: if a *different* generator later
311
+ # patches the same shared object, we must re-wrap in place so the
312
+ # method binds to that generator's own executor/timeout instead
313
+ # of retaining the first generator's (whose pool may already be
314
+ # shut down). Same owner → skip; different owner → re-wrap.
315
+ if getattr(method, _TIMEOUT_MARKER, None) is _owner_key:
316
+ return tool
317
+ # Re-wrap the *original* method, never a foreign generator's
318
+ # wrapper, so wrappers never stack across generators.
319
+ base = getattr(method, _TIMEOUT_ORIGINAL, method)
320
+ wrapped = _wrap_callable(base)
321
+ if wrapped is base:
289
322
  continue
323
+ try:
324
+ setattr(wrapped, _TIMEOUT_MARKER, _owner_key)
325
+ setattr(wrapped, _TIMEOUT_ORIGINAL, base)
326
+ except (AttributeError, TypeError):
327
+ pass
290
328
  try:
291
329
  object.__setattr__(tool, method_name, wrapped) # bypass pydantic frozen
292
330
  return tool
@@ -297,8 +335,20 @@ def _wrap_with_timeout(tool, timeout_seconds: float, executor_factory, on_leaked
297
335
  if not callable(tool):
298
336
  return tool
299
337
 
300
- # Plain callable — safe to wrap as a function.
301
- return _wrap_callable(tool)
338
+ # Plain callable — safe to wrap as a function. If it is already wrapped by
339
+ # this same owner, return as-is (idempotent). A callable already owned by a
340
+ # *different* generator is left untouched: it is a fresh per-generator
341
+ # wrapper object here (not shared in place), so we never stack wrappers.
342
+ if getattr(tool, _TIMEOUT_MARKER, None) is not None:
343
+ return tool
344
+ wrapped = _wrap_callable(tool)
345
+ if wrapped is not tool:
346
+ try:
347
+ setattr(wrapped, _TIMEOUT_MARKER, _owner_key)
348
+ setattr(wrapped, _TIMEOUT_ORIGINAL, tool)
349
+ except (AttributeError, TypeError):
350
+ pass
351
+ return wrapped
302
352
 
303
353
 
304
354
  def noop(*args, **kwargs):
@@ -0,0 +1,14 @@
1
+ """C11 shim: browser implementation moved to ``praisonai_browser``.
2
+
3
+ Old import paths (``praisonai.browser``, ``praisonai.browser.server``,
4
+ ``python -m praisonai.browser.server``) keep working and resolve to the
5
+ same module objects as ``praisonai_browser.*``.
6
+ """
7
+
8
+ from praisonai._bootstrap import ensure_praisonai_browser
9
+
10
+ ensure_praisonai_browser()
11
+
12
+ from praisonai.cli._shim import alias_package
13
+
14
+ alias_package("praisonai.browser", "praisonai_browser")
@@ -0,0 +1,11 @@
1
+ """C11 shim: implementation moved to ``praisonai_browser.cli.commands.browser``."""
2
+
3
+ import sys as _sys
4
+
5
+ from praisonai._bootstrap import ensure_praisonai_browser
6
+
7
+ ensure_praisonai_browser()
8
+
9
+ import praisonai_browser.cli.commands.browser as _impl
10
+
11
+ _sys.modules[__name__] = _impl
@@ -0,0 +1,11 @@
1
+ """C12 shim: implementation moved to ``praisonai_mcp.cli.commands.mcp``."""
2
+
3
+ import sys as _sys
4
+
5
+ from praisonai._bootstrap import ensure_praisonai_mcp
6
+
7
+ ensure_praisonai_mcp()
8
+
9
+ import praisonai_mcp.cli.commands.mcp as _impl
10
+
11
+ _sys.modules[__name__] = _impl
@@ -71,9 +71,10 @@ def apply_diff(
71
71
  ... '''
72
72
  >>> result = apply_diff("src/main.py", diff)
73
73
  """
74
- # Resolve path
75
- if workspace and not os.path.isabs(path):
76
- abs_path = os.path.abspath(os.path.join(workspace, path))
74
+ # Resolve path — default workspace is cwd so relative paths cannot escape
75
+ effective_workspace = workspace or os.getcwd()
76
+ if not os.path.isabs(path):
77
+ abs_path = os.path.abspath(os.path.join(effective_workspace, path))
77
78
  else:
78
79
  abs_path = os.path.abspath(path)
79
80
 
@@ -87,15 +88,14 @@ def apply_diff(
87
88
  'applied_count': 0,
88
89
  }
89
90
 
90
- # Security check
91
- if workspace:
92
- if not is_path_within_directory(abs_path, workspace):
93
- return {
94
- 'success': False,
95
- 'error': f"Path '{path}' is outside the workspace",
96
- 'path': path,
97
- 'applied_count': 0,
98
- }
91
+ # Security check — confinement always enforced against the workspace
92
+ if not is_path_within_directory(abs_path, effective_workspace):
93
+ return {
94
+ 'success': False,
95
+ 'error': f"Path '{path}' is outside the workspace",
96
+ 'path': path,
97
+ 'applied_count': 0,
98
+ }
99
99
 
100
100
  # Check if file exists
101
101
  if not file_exists(abs_path):
@@ -56,9 +56,10 @@ def search_replace(
56
56
  ... ]
57
57
  >>> result = search_replace("src/main.py", operations)
58
58
  """
59
- # Resolve path
60
- if workspace and not os.path.isabs(path):
61
- abs_path = os.path.abspath(os.path.join(workspace, path))
59
+ # Resolve path — default workspace is cwd so relative paths cannot escape
60
+ effective_workspace = workspace or os.getcwd()
61
+ if not os.path.isabs(path):
62
+ abs_path = os.path.abspath(os.path.join(effective_workspace, path))
62
63
  else:
63
64
  abs_path = os.path.abspath(path)
64
65
 
@@ -73,16 +74,15 @@ def search_replace(
73
74
  'total_replacements': 0,
74
75
  }
75
76
 
76
- # Security check
77
- if workspace:
78
- if not is_path_within_directory(abs_path, workspace):
79
- return {
80
- 'success': False,
81
- 'error': f"Path '{path}' is outside the workspace",
82
- 'path': path,
83
- 'operations_applied': 0,
84
- 'total_replacements': 0,
85
- }
77
+ # Security check — confinement always enforced against the workspace
78
+ if not is_path_within_directory(abs_path, effective_workspace):
79
+ return {
80
+ 'success': False,
81
+ 'error': f"Path '{path}' is outside the workspace",
82
+ 'path': path,
83
+ 'operations_applied': 0,
84
+ 'total_replacements': 0,
85
+ }
86
86
 
87
87
  # Check if file exists
88
88
  if not file_exists(abs_path):
@@ -177,9 +177,10 @@ def append_to_file(
177
177
  Returns:
178
178
  Dictionary with success status and details
179
179
  """
180
- # Resolve path
181
- if workspace and not os.path.isabs(path):
182
- abs_path = os.path.abspath(os.path.join(workspace, path))
180
+ # Resolve path — default workspace is cwd so relative paths cannot escape
181
+ effective_workspace = workspace or os.getcwd()
182
+ if not os.path.isabs(path):
183
+ abs_path = os.path.abspath(os.path.join(effective_workspace, path))
183
184
  else:
184
185
  abs_path = os.path.abspath(path)
185
186
 
@@ -192,14 +193,13 @@ def append_to_file(
192
193
  'path': path,
193
194
  }
194
195
 
195
- # Security check
196
- if workspace:
197
- if not is_path_within_directory(abs_path, workspace):
198
- return {
199
- 'success': False,
200
- 'error': f"Path '{path}' is outside the workspace",
201
- 'path': path,
202
- }
196
+ # Security check — confinement always enforced against the workspace
197
+ if not is_path_within_directory(abs_path, effective_workspace):
198
+ return {
199
+ 'success': False,
200
+ 'error': f"Path '{path}' is outside the workspace",
201
+ 'path': path,
202
+ }
203
203
 
204
204
  file_existed = file_exists(abs_path)
205
205
 
@@ -42,12 +42,9 @@ def _praisonai_loader():
42
42
  from .praisonai_adapter import PraisonAIAdapter
43
43
  return PraisonAIAdapter
44
44
 
45
- # Built-in framework adapters with lazy loading.
46
- # autogen_v4 / ag2 loaders remain for entry-point packages; not registered until implemented.
45
+ # Built-in: native PraisonAI adapter only. CrewAI/AutoGen register via entry points
46
+ # (wrapper shims below, or external ``praisonai-frameworks`` when installed).
47
47
  _BUILTIN_ADAPTERS = {
48
- "crewai": _crewai_loader,
49
- "autogen": _autogen_loader, # Family adapter for version resolution
50
- "autogen_v2": _autogen_v2_loader, # Direct access to v0.2
51
48
  "praisonai": _praisonai_loader,
52
49
  }
53
50
 
@@ -69,7 +66,7 @@ class FrameworkAdapterRegistry(PluginRegistry[FrameworkAdapter]):
69
66
  # ``ag2`` is intentionally omitted: its adapter is an unimplemented stub and
70
67
  # is not registered in ``_BUILTIN_ADAPTERS``, so advertising it as a default
71
68
  # dispatch target would let ``pick_default`` route to a NotImplementedError.
72
- DEFAULT_PRIORITY: tuple[str, ...] = ("crewai", "praisonai", "autogen")
69
+ DEFAULT_PRIORITY: tuple[str, ...] = ("praisonai", "crewai", "autogen")
73
70
 
74
71
  def __init__(self, *, discover_entry_points: bool = True) -> None:
75
72
  """Initialize the registry with built-in adapters."""
@@ -0,0 +1,9 @@
1
+ """C12 shim: MCP server implementation moved to ``praisonai_mcp.mcp_server``."""
2
+
3
+ from praisonai._bootstrap import ensure_praisonai_mcp
4
+
5
+ ensure_praisonai_mcp()
6
+
7
+ from praisonai.cli._shim import alias_package
8
+
9
+ alias_package("praisonai.mcp_server", "praisonai_mcp.mcp_server")
@@ -0,0 +1 @@
1
+ __version__ = "4.6.150"
@@ -12,10 +12,12 @@ dependencies = [
12
12
  "rich>=13.7",
13
13
  "markdown>=3.5",
14
14
  "pyparsing>=3.0.0",
15
- "praisonaiagents>=1.6.151",
16
- "praisonai-code>=0.0.47",
17
- "praisonai-bot>=0.0.32",
18
- "praisonai-train>=0.0.3",
15
+ "praisonaiagents>=1.6.153",
16
+ "praisonai-code>=0.0.49",
17
+ "praisonai-bot>=0.0.34",
18
+ "praisonai-train>=0.0.5",
19
+ "praisonai-browser>=0.0.2",
20
+ "praisonai-mcp>=0.0.2",
19
21
  "python-dotenv>=0.19.0",
20
22
  "litellm>=1.83.14,<2",
21
23
  "PyYAML>=6.0",
@@ -32,6 +34,11 @@ praisonai = "praisonai.__main__:main"
32
34
  setup-conda-env = "praisonai.setup.setup_conda_env:main"
33
35
  praisonai-call = "praisonai.api.call:main"
34
36
 
37
+ [project.entry-points."praisonai.framework_adapters"]
38
+ crewai = "praisonai.framework_adapters.crewai_adapter:CrewAIAdapter"
39
+ autogen = "praisonai.framework_adapters.autogen_adapter:AutoGenFamilyAdapter"
40
+ autogen_v2 = "praisonai.framework_adapters.autogen_adapter:AutoGenAdapter"
41
+
35
42
  [project.optional-dependencies]
36
43
  ui = [
37
44
  "aiui>=0.3.121,<0.4",
@@ -59,6 +66,7 @@ chat = [
59
66
  "aiui>=0.3.121,<0.4",
60
67
  "tavily-python==0.5.0",
61
68
  "crawl4ai>=0.7.0",
69
+ # Playwright also ships via praisonai-browser[all]; pin here for crawl4ai without [browser]
62
70
  "playwright>=1.47.0",
63
71
  "rich"
64
72
  ]
@@ -66,6 +74,7 @@ code = [
66
74
  "aiui>=0.3.121,<0.4",
67
75
  "tavily-python==0.5.0",
68
76
  "crawl4ai>=0.7.0",
77
+ # Playwright also ships via praisonai-browser[all]; pin here for crawl4ai without [browser]
69
78
  "playwright>=1.47.0"
70
79
  ]
71
80
  sandbox = [
@@ -102,6 +111,8 @@ call = [
102
111
  ]
103
112
  # C10: training lives in praisonai-train; this extra pulls the heavy ML stack.
104
113
  train = ["praisonai-train[llm]"]
114
+ browser = ["praisonai-browser[all]"]
115
+ mcp = ["praisonai-mcp[all]"]
105
116
  crewai = ["crewai>=0.157.0", "praisonai-tools>=0.1.0"] # Task 2: alias to praisonai-frameworks[crewai]
106
117
  autogen = ["pyautogen==0.2.29", "praisonai-tools>=0.1.0", "crewai"] # Task 2: alias to praisonai-frameworks[autogen]
107
118
  ag2 = ["ag2>=0.11.0", "praisonai-tools>=0.1.0"]
@@ -274,6 +285,8 @@ praisonai-bot = { path = "../praisonai-bot", editable = true }
274
285
  # praisonai-train hosts LLM fine-tuning + agent training (C10); old
275
286
  # praisonai.train paths kept via shims.
276
287
  praisonai-train = { path = "../praisonai-train", editable = true }
288
+ praisonai-browser = { path = "../praisonai-browser", editable = true }
289
+ praisonai-mcp = { path = "../praisonai-mcp", editable = true }
277
290
 
278
291
  [tool.uv]
279
292
  # Exclude from lock resolution — these cause cross-extra conflicts that
@@ -1,4 +0,0 @@
1
- [console_scripts]
2
- praisonai = praisonai.__main__:main
3
- praisonai-call = praisonai.api.call:main
4
- setup-conda-env = praisonai.setup.setup_conda_env:main
@@ -1,50 +0,0 @@
1
- """Browser automation package for PraisonAI.
2
-
3
- Provides a bridge server for Chrome Extension ↔ PraisonAI Agent communication.
4
-
5
- Example:
6
- # Start the browser server
7
- praisonai browser start --port 8765
8
-
9
- # Or programmatically
10
- from praisonai.browser import BrowserServer
11
- server = BrowserServer(port=8765)
12
- server.start()
13
-
14
- # Or use CDP agent directly
15
- from praisonai.browser import CDPBrowserAgent, run_hybrid
16
- result = await run_hybrid("Search for AI on Google")
17
- """
18
-
19
- # Lazy imports to avoid heavy dependencies at import time
20
- # Use explicit import in __getattr__ instead of module import
21
-
22
- def __getattr__(name: str):
23
- if name == "BrowserServer":
24
- from .server import BrowserServer
25
- return BrowserServer
26
- elif name == "BrowserAgent":
27
- from .agent import BrowserAgent
28
- return BrowserAgent
29
- elif name == "SessionManager":
30
- from .sessions import SessionManager
31
- return SessionManager
32
- elif name == "CDPBrowserAgent":
33
- from .cdp_agent import CDPBrowserAgent
34
- return CDPBrowserAgent
35
- elif name == "run_cdp_only":
36
- from .cdp_agent import run_cdp_only
37
- return run_cdp_only
38
- elif name == "run_hybrid":
39
- from .cdp_agent import run_hybrid
40
- return run_hybrid
41
- raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
42
-
43
- __all__ = [
44
- "BrowserServer",
45
- "BrowserAgent",
46
- "SessionManager",
47
- "CDPBrowserAgent",
48
- "run_cdp_only",
49
- "run_hybrid",
50
- ]