PraisonAI 4.6.147__tar.gz → 4.6.149__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 (664) hide show
  1. {praisonai-4.6.147 → praisonai-4.6.149}/PKG-INFO +8 -5
  2. {praisonai-4.6.147 → praisonai-4.6.149}/PraisonAI.egg-info/PKG-INFO +8 -5
  3. {praisonai-4.6.147 → praisonai-4.6.149}/PraisonAI.egg-info/SOURCES.txt +0 -14
  4. {praisonai-4.6.147 → praisonai-4.6.149}/PraisonAI.egg-info/requires.txt +8 -4
  5. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_bootstrap.py +16 -0
  6. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/agents_generator.py +54 -4
  7. praisonai-4.6.149/praisonai/browser/__init__.py +14 -0
  8. praisonai-4.6.149/praisonai/cli/commands/browser.py +11 -0
  9. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/auth/scopes.py +1 -0
  10. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/server.py +58 -18
  11. praisonai-4.6.149/praisonai/version.py +1 -0
  12. {praisonai-4.6.147 → praisonai-4.6.149}/pyproject.toml +7 -4
  13. praisonai-4.6.147/praisonai/browser/__init__.py +0 -50
  14. praisonai-4.6.147/praisonai/browser/agent.py +0 -827
  15. praisonai-4.6.147/praisonai/browser/benchmark.py +0 -952
  16. praisonai-4.6.147/praisonai/browser/cdp_agent.py +0 -1617
  17. praisonai-4.6.147/praisonai/browser/cdp_utils.py +0 -367
  18. praisonai-4.6.147/praisonai/browser/cli.py +0 -3162
  19. praisonai-4.6.147/praisonai/browser/diagnostics.py +0 -609
  20. praisonai-4.6.147/praisonai/browser/launcher.py +0 -363
  21. praisonai-4.6.147/praisonai/browser/playwright_agent.py +0 -271
  22. praisonai-4.6.147/praisonai/browser/profiling.py +0 -305
  23. praisonai-4.6.147/praisonai/browser/protocol.py +0 -108
  24. praisonai-4.6.147/praisonai/browser/report.py +0 -137
  25. praisonai-4.6.147/praisonai/browser/server.py +0 -1113
  26. praisonai-4.6.147/praisonai/browser/sessions.py +0 -386
  27. praisonai-4.6.147/praisonai/browser/video.py +0 -333
  28. praisonai-4.6.147/praisonai/cli/commands/browser.py +0 -20
  29. praisonai-4.6.147/praisonai/version.py +0 -1
  30. {praisonai-4.6.147 → praisonai-4.6.149}/PraisonAI.egg-info/dependency_links.txt +0 -0
  31. {praisonai-4.6.147 → praisonai-4.6.149}/PraisonAI.egg-info/entry_points.txt +0 -0
  32. {praisonai-4.6.147 → praisonai-4.6.149}/PraisonAI.egg-info/top_level.txt +0 -0
  33. {praisonai-4.6.147 → praisonai-4.6.149}/README.md +0 -0
  34. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/README.md +0 -0
  35. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/__init__.py +0 -0
  36. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/__main__.py +0 -0
  37. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_approval_spec.py +0 -0
  38. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_async_bridge.py +0 -0
  39. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/__init__.py +0 -0
  40. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/api_md.py +0 -0
  41. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/__init__.py +0 -0
  42. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/docs_extractor.py +0 -0
  43. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/docs_generator.py +0 -0
  44. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/generator.py +0 -0
  45. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  46. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/python_extractor.py +0 -0
  47. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  48. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/rust_extractor.py +0 -0
  49. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  50. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  51. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  52. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_entrypoint.py +0 -0
  53. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_framework_availability.py +0 -0
  54. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_lazy_cache.py +0 -0
  55. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_logging.py +0 -0
  56. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_registry.py +0 -0
  57. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/_safe_loader.py +0 -0
  58. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/acp/__init__.py +0 -0
  59. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/acp/config.py +0 -0
  60. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/acp/safe_edit.py +0 -0
  61. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/acp/server.py +0 -0
  62. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/acp/session.py +0 -0
  63. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/adapters/__init__.py +0 -0
  64. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/adapters/readers.py +0 -0
  65. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/adapters/rerankers.py +0 -0
  66. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/adapters/retrievers.py +0 -0
  67. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/adapters/vector_stores.py +0 -0
  68. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/agent.py +0 -0
  69. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/agent_scheduler.py +0 -0
  70. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/api/agent_invoke.py +0 -0
  71. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/api/call.py +0 -0
  72. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/app/__init__.py +0 -0
  73. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/app/agentos.py +0 -0
  74. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/async_agent_scheduler.py +0 -0
  75. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/audit/__init__.py +0 -0
  76. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/audit/agent_centric.py +0 -0
  77. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/auto.py +0 -0
  78. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/bots/__init__.py +0 -0
  79. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/__init__.py +0 -0
  80. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/a2a.py +0 -0
  81. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/assistants.py +0 -0
  82. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/audio.py +0 -0
  83. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/batches.py +0 -0
  84. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/completions.py +0 -0
  85. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/container_files.py +0 -0
  86. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/containers.py +0 -0
  87. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/embeddings.py +0 -0
  88. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/files.py +0 -0
  89. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/fine_tuning.py +0 -0
  90. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/guardrails.py +0 -0
  91. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/images.py +0 -0
  92. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/mcp.py +0 -0
  93. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/messages.py +0 -0
  94. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/moderations.py +0 -0
  95. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/ocr.py +0 -0
  96. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/passthrough.py +0 -0
  97. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/rag.py +0 -0
  98. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/realtime.py +0 -0
  99. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/rerank.py +0 -0
  100. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/responses.py +0 -0
  101. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/search.py +0 -0
  102. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/skills.py +0 -0
  103. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/vector_store_files.py +0 -0
  104. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/vector_stores.py +0 -0
  105. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/capabilities/videos.py +0 -0
  106. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/claw/__init__.py +0 -0
  107. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/__init__.py +0 -0
  108. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/_paths.py +0 -0
  109. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/_shim.py +0 -0
  110. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/_warnings.py +0 -0
  111. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/app.py +0 -0
  112. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/approval_backend.py +0 -0
  113. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/branding.py +0 -0
  114. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/__init__.py +0 -0
  115. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/acp.py +0 -0
  116. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/agent.py +0 -0
  117. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/agents.py +0 -0
  118. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/app.py +0 -0
  119. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/attach.py +0 -0
  120. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/audit.py +0 -0
  121. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/auth.py +0 -0
  122. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/batch.py +0 -0
  123. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/benchmark.py +0 -0
  124. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/bot.py +0 -0
  125. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/call.py +0 -0
  126. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/chat.py +0 -0
  127. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/checkpoint.py +0 -0
  128. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/claw.py +0 -0
  129. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/code.py +0 -0
  130. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/command.py +0 -0
  131. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/commit.py +0 -0
  132. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/completion.py +0 -0
  133. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/config.py +0 -0
  134. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/context.py +0 -0
  135. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/daemon.py +0 -0
  136. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/dashboard.py +0 -0
  137. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/debug.py +0 -0
  138. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/deploy.py +0 -0
  139. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/diag.py +0 -0
  140. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/docs.py +0 -0
  141. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/doctor.py +0 -0
  142. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/endpoints.py +0 -0
  143. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/environment.py +0 -0
  144. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/eval.py +0 -0
  145. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/examples.py +0 -0
  146. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/flow.py +0 -0
  147. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/gateway.py +0 -0
  148. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/github.py +0 -0
  149. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/hooks.py +0 -0
  150. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/identity.py +0 -0
  151. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/init.py +0 -0
  152. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/kanban.py +0 -0
  153. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/knowledge.py +0 -0
  154. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/langextract.py +0 -0
  155. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/langfuse.py +0 -0
  156. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/loop.py +0 -0
  157. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/lsp.py +0 -0
  158. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/managed.py +0 -0
  159. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/mcp.py +0 -0
  160. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/memory.py +0 -0
  161. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/mint_link.py +0 -0
  162. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/models.py +0 -0
  163. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/n8n.py +0 -0
  164. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/obs.py +0 -0
  165. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/onboard.py +0 -0
  166. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/package.py +0 -0
  167. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/pairing.py +0 -0
  168. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/paths.py +0 -0
  169. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/permissions.py +0 -0
  170. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/plugins.py +0 -0
  171. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/port.py +0 -0
  172. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/profile.py +0 -0
  173. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/publish.py +0 -0
  174. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/rag.py +0 -0
  175. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/realtime.py +0 -0
  176. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/recipe.py +0 -0
  177. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/registry.py +0 -0
  178. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/replay.py +0 -0
  179. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/research.py +0 -0
  180. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/retrieval.py +0 -0
  181. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/rules.py +0 -0
  182. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/run.py +0 -0
  183. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/sandbox.py +0 -0
  184. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/schedule.py +0 -0
  185. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/serve.py +0 -0
  186. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/session.py +0 -0
  187. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/setup.py +0 -0
  188. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/skills.py +0 -0
  189. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/standardise.py +0 -0
  190. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/templates.py +0 -0
  191. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/test.py +0 -0
  192. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/todo.py +0 -0
  193. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/tools.py +0 -0
  194. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/traces.py +0 -0
  195. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/tracker.py +0 -0
  196. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/train.py +0 -0
  197. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/ui.py +0 -0
  198. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/up.py +0 -0
  199. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/validate.py +0 -0
  200. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/version.py +0 -0
  201. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/commands/workflow.py +0 -0
  202. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/config_loader.py +0 -0
  203. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/configuration/__init__.py +0 -0
  204. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/configuration/config.schema.json +0 -0
  205. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/execution/__init__.py +0 -0
  206. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/fallback_schema.py +0 -0
  207. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/__init__.py +0 -0
  208. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/acp.py +0 -0
  209. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/agent_scheduler.py +0 -0
  210. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/agent_tools.py +0 -0
  211. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/approval.py +0 -0
  212. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/background.py +0 -0
  213. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/bots_cli.py +0 -0
  214. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/deploy.py +0 -0
  215. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/endpoints.py +0 -0
  216. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/eval.py +0 -0
  217. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/gateway.py +0 -0
  218. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/ollama.py +0 -0
  219. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/onboard.py +0 -0
  220. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/persistence.py +0 -0
  221. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/recipe.py +0 -0
  222. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/recipe_optimizer.py +0 -0
  223. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/registry.py +0 -0
  224. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/sandbox_cli.py +0 -0
  225. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/serve.py +0 -0
  226. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/templates.py +0 -0
  227. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/tools.py +0 -0
  228. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/tui/__init__.py +0 -0
  229. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/tui/app.py +0 -0
  230. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/features/workflow.py +0 -0
  231. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/interactive/__init__.py +0 -0
  232. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/interactive/async_tui.py +0 -0
  233. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/interactive/core.py +0 -0
  234. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/langfuse_client.py +0 -0
  235. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/__init__.py +0 -0
  236. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/direct_prompt.py +0 -0
  237. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
  238. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
  239. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
  240. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/framework_run.py +0 -0
  241. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
  242. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/interactive_legacy.py +0 -0
  243. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
  244. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/legacy/workflow_commands.py +0 -0
  245. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/main.py +0 -0
  246. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/output/__init__.py +0 -0
  247. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/schedule_cli.py +0 -0
  248. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/schema_provider.py +0 -0
  249. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/session/__init__.py +0 -0
  250. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/state/__init__.py +0 -0
  251. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/ui/__init__.py +0 -0
  252. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/unified_schema.py +0 -0
  253. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli/utils/__init__.py +0 -0
  254. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/cli_backends/__init__.py +0 -0
  255. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/__init__.py +0 -0
  256. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/agent_tools.py +0 -0
  257. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/diff/__init__.py +0 -0
  258. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/diff/diff_strategy.py +0 -0
  259. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/tools/__init__.py +0 -0
  260. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/tools/apply_diff.py +0 -0
  261. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/tools/execute_command.py +0 -0
  262. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/tools/list_files.py +0 -0
  263. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/tools/read_file.py +0 -0
  264. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/tools/search_replace.py +0 -0
  265. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/tools/write_file.py +0 -0
  266. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/utils/__init__.py +0 -0
  267. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/utils/file_utils.py +0 -0
  268. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/utils/ignore_utils.py +0 -0
  269. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/code/utils/text_utils.py +0 -0
  270. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/config/__init__.py +0 -0
  271. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/config/schema.py +0 -0
  272. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/config/validator.py +0 -0
  273. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/__init__.py +0 -0
  274. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/_storage_path.py +0 -0
  275. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/artifact_store.py +0 -0
  276. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/config.py +0 -0
  277. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/history_store.py +0 -0
  278. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/queue.py +0 -0
  279. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/setup.py +0 -0
  280. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/context/terminal_logger.py +0 -0
  281. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/daemon/__init__.py +0 -0
  282. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/db/__init__.py +0 -0
  283. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/db/adapter.py +0 -0
  284. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/__init__.py +0 -0
  285. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/api.py +0 -0
  286. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/docker.py +0 -0
  287. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/doctor.py +0 -0
  288. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/main.py +0 -0
  289. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/models.py +0 -0
  290. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/providers/__init__.py +0 -0
  291. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/providers/_registry.py +0 -0
  292. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/providers/aws.py +0 -0
  293. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/providers/azure.py +0 -0
  294. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/providers/base.py +0 -0
  295. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/providers/gcp.py +0 -0
  296. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/deploy/schema.py +0 -0
  297. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/__init__.py +0 -0
  298. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/a2u_server.py +0 -0
  299. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/discovery.py +0 -0
  300. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/__init__.py +0 -0
  301. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/a2a.py +0 -0
  302. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/a2u.py +0 -0
  303. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/agents_api.py +0 -0
  304. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/base.py +0 -0
  305. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/mcp.py +0 -0
  306. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/openai_compat.py +0 -0
  307. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/recipe.py +0 -0
  308. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  309. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/registry.py +0 -0
  310. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/endpoints/server.py +0 -0
  311. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/flow/__init__.py +0 -0
  312. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/flow/client.py +0 -0
  313. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  314. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  315. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/flow/components/__init__.py +0 -0
  316. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/flow/converter.py +0 -0
  317. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/flow/helpers.py +0 -0
  318. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/__init__.py +0 -0
  319. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/_config_builder.py +0 -0
  320. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  321. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/base.py +0 -0
  322. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  323. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  324. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/registry.py +0 -0
  325. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/validators.py +0 -0
  326. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/framework_adapters/workflow_framework.py +0 -0
  327. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/gateway/__init__.py +0 -0
  328. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/inbuilt_tools/__init__.py +0 -0
  329. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  330. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/inc/__init__.py +0 -0
  331. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/inc/config.py +0 -0
  332. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/inc/models.py +0 -0
  333. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/__init__.py +0 -0
  334. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/bridges/__init__.py +0 -0
  335. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  336. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/bridges/hooks_query.py +0 -0
  337. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  338. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/bridges/schedules_runner.py +0 -0
  339. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/bridges/usage_bridge.py +0 -0
  340. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/bridges/workflows_service.py +0 -0
  341. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/context_files.py +0 -0
  342. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/gateway_host.py +0 -0
  343. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/host_app.py +0 -0
  344. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/pages/__init__.py +0 -0
  345. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/pages/bot_health.py +0 -0
  346. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integration/pages/workflow_runs.py +0 -0
  347. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/__init__.py +0 -0
  348. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/_cli_loaders.py +0 -0
  349. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/_session_info.py +0 -0
  350. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/_tool_aliases.py +0 -0
  351. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/_unified_registry.py +0 -0
  352. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/backend_registry.py +0 -0
  353. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/base.py +0 -0
  354. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/claude_code.py +0 -0
  355. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/codex_cli.py +0 -0
  356. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/compute/__init__.py +0 -0
  357. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/compute/daytona.py +0 -0
  358. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/compute/docker.py +0 -0
  359. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/compute/e2b.py +0 -0
  360. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/compute/flyio.py +0 -0
  361. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/compute/local.py +0 -0
  362. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/compute/modal_compute.py +0 -0
  363. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/cursor_cli.py +0 -0
  364. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/db_session_adapter.py +0 -0
  365. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/gemini_cli.py +0 -0
  366. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/hosted_agent.py +0 -0
  367. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/local_agent.py +0 -0
  368. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/managed_agents.py +0 -0
  369. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/managed_local.py +0 -0
  370. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/registry.py +0 -0
  371. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/integrations/sandboxed_agent.py +0 -0
  372. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/jobs/__init__.py +0 -0
  373. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/jobs/executor.py +0 -0
  374. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/jobs/models.py +0 -0
  375. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/jobs/path_validation.py +0 -0
  376. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/jobs/router.py +0 -0
  377. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/jobs/server.py +0 -0
  378. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/jobs/store.py +0 -0
  379. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/kanban/__init__.py +0 -0
  380. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/llm/__init__.py +0 -0
  381. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/llm/catalogue.py +0 -0
  382. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/llm/config.py +0 -0
  383. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/llm/credentials.py +0 -0
  384. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/llm/env.py +0 -0
  385. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/llm/gateways.py +0 -0
  386. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/llm/registry.py +0 -0
  387. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/__init__.py +0 -0
  388. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/__init__.py +0 -0
  389. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/agents.py +0 -0
  390. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/capabilities.py +0 -0
  391. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
  392. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
  393. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/knowledge.py +0 -0
  394. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/memory.py +0 -0
  395. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/prompts.py +0 -0
  396. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/resources.py +0 -0
  397. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
  398. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/auth/__init__.py +0 -0
  399. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/auth/api_key.py +0 -0
  400. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/auth/oauth.py +0 -0
  401. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/auth/oidc.py +0 -0
  402. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/cli.py +0 -0
  403. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/elicitation.py +0 -0
  404. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/icons.py +0 -0
  405. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/recipe_adapter.py +0 -0
  406. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/recipe_cli.py +0 -0
  407. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/registry.py +0 -0
  408. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/sampling.py +0 -0
  409. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/tasks.py +0 -0
  410. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/tool_index.py +0 -0
  411. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/transports/__init__.py +0 -0
  412. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/transports/http_stream.py +0 -0
  413. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/mcp_server/transports/stdio.py +0 -0
  414. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/n8n/__init__.py +0 -0
  415. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/n8n/client.py +0 -0
  416. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/n8n/converter.py +0 -0
  417. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/n8n/preview.py +0 -0
  418. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/n8n/reverse_converter.py +0 -0
  419. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/observability/__init__.py +0 -0
  420. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/observability/hooks.py +0 -0
  421. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/observability/langextract.py +0 -0
  422. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/observability/langfuse.py +0 -0
  423. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/__init__.py +0 -0
  424. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/_valkey_client.py +0 -0
  425. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/config.py +0 -0
  426. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/__init__.py +0 -0
  427. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/_sql_base.py +0 -0
  428. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
  429. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/async_mysql.py +0 -0
  430. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/async_postgres.py +0 -0
  431. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  432. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/base.py +0 -0
  433. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/json_store.py +0 -0
  434. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/mysql.py +0 -0
  435. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/postgres.py +0 -0
  436. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/singlestore.py +0 -0
  437. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/sqlite.py +0 -0
  438. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/supabase.py +0 -0
  439. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/surrealdb.py +0 -0
  440. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
  441. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/conversation/turso.py +0 -0
  442. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/factory.py +0 -0
  443. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/hooks/__init__.py +0 -0
  444. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  445. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/__init__.py +0 -0
  446. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/base.py +0 -0
  447. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/cassandra.py +0 -0
  448. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/chroma.py +0 -0
  449. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  450. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  451. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/couchbase.py +0 -0
  452. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/lancedb.py +0 -0
  453. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  454. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  455. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  456. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/milvus.py +0 -0
  457. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  458. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/pgvector.py +0 -0
  459. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/pinecone.py +0 -0
  460. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/qdrant.py +0 -0
  461. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  462. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  463. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  464. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  465. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  466. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/knowledge/weaviate.py +0 -0
  467. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/migrations/__init__.py +0 -0
  468. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/migrations/manager.py +0 -0
  469. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/orchestrator.py +0 -0
  470. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/registry.py +0 -0
  471. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/__init__.py +0 -0
  472. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/async_mongodb.py +0 -0
  473. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/base.py +0 -0
  474. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/dynamodb.py +0 -0
  475. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/firestore.py +0 -0
  476. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/gcs.py +0 -0
  477. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/memory.py +0 -0
  478. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/mongodb.py +0 -0
  479. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/redis.py +0 -0
  480. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/upstash.py +0 -0
  481. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/state/valkey.py +0 -0
  482. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/tests/__init__.py +0 -0
  483. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/tests/test_all_backends.py +0 -0
  484. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
  485. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
  486. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/profiler.py +0 -0
  487. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/public/fantasy.svg +0 -0
  488. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/public/game.svg +0 -0
  489. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/public/movie.svg +0 -0
  490. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/public/thriller.svg +0 -0
  491. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/push/__init__.py +0 -0
  492. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/push/client.py +0 -0
  493. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/push/transports.py +0 -0
  494. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/__init__.py +0 -0
  495. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/bridge.py +0 -0
  496. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/core.py +0 -0
  497. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/exceptions.py +0 -0
  498. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/history.py +0 -0
  499. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/models.py +0 -0
  500. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/operations.py +0 -0
  501. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/policy.py +0 -0
  502. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/registry.py +0 -0
  503. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/runtime.py +0 -0
  504. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/security.py +0 -0
  505. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/serve.py +0 -0
  506. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/recipe/server.py +0 -0
  507. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/__init__.py +0 -0
  508. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/analyzer.py +0 -0
  509. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/applier.py +0 -0
  510. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/judge.py +0 -0
  511. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/plan.py +0 -0
  512. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/player.py +0 -0
  513. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/reader.py +0 -0
  514. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/storage.py +0 -0
  515. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/replay/writer.py +0 -0
  516. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/runtime/__init__.py +0 -0
  517. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/runtime/__main__.py +0 -0
  518. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/__init__.py +0 -0
  519. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/_compat.py +0 -0
  520. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/_registry.py +0 -0
  521. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/_shell.py +0 -0
  522. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/daytona.py +0 -0
  523. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/docker.py +0 -0
  524. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/e2b.py +0 -0
  525. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/modal.py +0 -0
  526. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/sandlock.py +0 -0
  527. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/ssh.py +0 -0
  528. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/sandbox/subprocess.py +0 -0
  529. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/README.md +0 -0
  530. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/__init__.py +0 -0
  531. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/_base_scheduler.py +0 -0
  532. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/_delivery.py +0 -0
  533. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/_dispatch.py +0 -0
  534. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/agent_scheduler.py +0 -0
  535. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/async_agent_scheduler.py +0 -0
  536. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/base.py +0 -0
  537. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  538. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/condition_gate.py +0 -0
  539. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/daemon_manager.py +0 -0
  540. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/deployment.py +0 -0
  541. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/executor.py +0 -0
  542. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/run_policy.py +0 -0
  543. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/shared.py +0 -0
  544. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/state_manager.py +0 -0
  545. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/suggestion_engine.py +0 -0
  546. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/scheduler/yaml_loader.py +0 -0
  547. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/security/__init__.py +0 -0
  548. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/security/audit.py +0 -0
  549. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/security/injection.py +0 -0
  550. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/security/protected.py +0 -0
  551. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/setup/__init__.py +0 -0
  552. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/setup/build.py +0 -0
  553. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/setup/config.yaml +0 -0
  554. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/setup/post_install.py +0 -0
  555. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/setup/setup_conda_env.py +0 -0
  556. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/setup.py +0 -0
  557. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/__init__.py +0 -0
  558. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/ai_generator.py +0 -0
  559. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/config.py +0 -0
  560. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/dedupe.py +0 -0
  561. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/discovery.py +0 -0
  562. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/drift.py +0 -0
  563. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/engine.py +0 -0
  564. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/enhanced_templates.py +0 -0
  565. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/example_verifier.py +0 -0
  566. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/manifest.py +0 -0
  567. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/models.py +0 -0
  568. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/reports.py +0 -0
  569. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/templates.py +0 -0
  570. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/undo_redo.py +0 -0
  571. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/standardise/validator.py +0 -0
  572. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/storage/__init__.py +0 -0
  573. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/storage/dynamodb_adapter.py +0 -0
  574. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/storage/mongodb_adapter.py +0 -0
  575. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/storage/postgresql_adapter.py +0 -0
  576. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/storage/redis_adapter.py +0 -0
  577. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/storage/valkey_adapter.py +0 -0
  578. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/__init__.py +0 -0
  579. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/batch_source.py +0 -0
  580. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/cli_docs_source.py +0 -0
  581. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/discovery.py +0 -0
  582. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/docs_source.py +0 -0
  583. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/examples_source.py +0 -0
  584. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/executor.py +0 -0
  585. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/models.py +0 -0
  586. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/report_viewer.py +0 -0
  587. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/reporter.py +0 -0
  588. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/suite_runner/runner.py +0 -0
  589. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/__init__.py +0 -0
  590. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/cache.py +0 -0
  591. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/dependency_checker.py +0 -0
  592. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/discovery.py +0 -0
  593. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/loader.py +0 -0
  594. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/registry.py +0 -0
  595. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/resolver.py +0 -0
  596. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/security.py +0 -0
  597. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/tool_override.py +0 -0
  598. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/templates/tools_doctor.py +0 -0
  599. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tool_registry.py +0 -0
  600. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tool_resolver.py +0 -0
  601. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tools/__init__.py +0 -0
  602. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tools/audio.py +0 -0
  603. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tools/glob_tool.py +0 -0
  604. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tools/grep_tool.py +0 -0
  605. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tools/kanban_tools.py +0 -0
  606. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tools/multiedit.py +0 -0
  607. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/tools/skill_manage.py +0 -0
  608. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/train/__init__.py +0 -0
  609. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/train.py +0 -0
  610. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/train_vision.py +0 -0
  611. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/README.md +0 -0
  612. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/_aiui_datastore.py +0 -0
  613. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/_external_agents.py +0 -0
  614. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/callbacks.py +0 -0
  615. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/components/aicoder.py +0 -0
  616. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/chainlit.md +0 -0
  617. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/bn.json +0 -0
  618. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/en-US.json +0 -0
  619. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/gu.json +0 -0
  620. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/he-IL.json +0 -0
  621. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/hi.json +0 -0
  622. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/kn.json +0 -0
  623. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/ml.json +0 -0
  624. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/mr.json +0 -0
  625. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/ta.json +0 -0
  626. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/te.json +0 -0
  627. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/config/translations/zh-CN.json +0 -0
  628. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/context.py +0 -0
  629. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/database_config.py +0 -0
  630. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/public/fantasy.svg +0 -0
  631. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/public/game.svg +0 -0
  632. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/public/logo_dark.png +0 -0
  633. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/public/logo_light.png +0 -0
  634. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/public/movie.svg +0 -0
  635. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/public/praison.css +0 -0
  636. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/public/thriller.svg +0 -0
  637. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui/tools.md +0 -0
  638. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_agents/__init__.py +0 -0
  639. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_agents/default_app.py +0 -0
  640. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_bot/__init__.py +0 -0
  641. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_bot/default_app.py +0 -0
  642. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_chat/__init__.py +0 -0
  643. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_chat/default_app.py +0 -0
  644. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_dashboard/default_app.py +0 -0
  645. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_realtime/__init__.py +0 -0
  646. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/ui_realtime/default_app.py +0 -0
  647. {praisonai-4.6.147 → praisonai-4.6.149}/praisonai/upload_vision.py +0 -0
  648. {praisonai-4.6.147 → praisonai-4.6.149}/setup.cfg +0 -0
  649. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test.py +0 -0
  650. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_agents_playbook.py +0 -0
  651. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_approval_system.py +0 -0
  652. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_basic.py +0 -0
  653. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_cli_features.py +0 -0
  654. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_custom_tools_fix.py +0 -0
  655. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_double_api_fix.py +0 -0
  656. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_n8n_agent_invoke.py +0 -0
  657. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_n8n_cli_feature.py +0 -0
  658. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_n8n_integration.py +0 -0
  659. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_phase2_refactor.py +0 -0
  660. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_recipe.py +0 -0
  661. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_registry.py +0 -0
  662. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_runner.py +0 -0
  663. {praisonai-4.6.147 → praisonai-4.6.149}/tests/test_sandboxed_agent_compatibility.py +0 -0
  664. {praisonai-4.6.147 → praisonai-4.6.149}/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.147
3
+ Version: 4.6.149
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,11 @@ 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.150
15
- Requires-Dist: praisonai-code>=0.0.46
16
- Requires-Dist: praisonai-bot>=0.0.31
17
- Requires-Dist: praisonai-train>=0.0.2
14
+ Requires-Dist: praisonaiagents>=1.6.152
15
+ Requires-Dist: praisonai-code>=0.0.48
16
+ Requires-Dist: praisonai-bot>=0.0.33
17
+ Requires-Dist: praisonai-train>=0.0.4
18
+ Requires-Dist: praisonai-browser>=0.0.1
18
19
  Requires-Dist: python-dotenv>=0.19.0
19
20
  Requires-Dist: litellm<2,>=1.83.14
20
21
  Requires-Dist: PyYAML>=6.0
@@ -83,6 +84,8 @@ Requires-Dist: pyngrok>=1.4.0; extra == "call"
83
84
  Requires-Dist: rich; extra == "call"
84
85
  Provides-Extra: train
85
86
  Requires-Dist: praisonai-train[llm]; extra == "train"
87
+ Provides-Extra: browser
88
+ Requires-Dist: praisonai-browser[all]; extra == "browser"
86
89
  Provides-Extra: crewai
87
90
  Requires-Dist: crewai>=0.157.0; extra == "crewai"
88
91
  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.147
3
+ Version: 4.6.149
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,11 @@ 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.150
15
- Requires-Dist: praisonai-code>=0.0.46
16
- Requires-Dist: praisonai-bot>=0.0.31
17
- Requires-Dist: praisonai-train>=0.0.2
14
+ Requires-Dist: praisonaiagents>=1.6.152
15
+ Requires-Dist: praisonai-code>=0.0.48
16
+ Requires-Dist: praisonai-bot>=0.0.33
17
+ Requires-Dist: praisonai-train>=0.0.4
18
+ Requires-Dist: praisonai-browser>=0.0.1
18
19
  Requires-Dist: python-dotenv>=0.19.0
19
20
  Requires-Dist: litellm<2,>=1.83.14
20
21
  Requires-Dist: PyYAML>=6.0
@@ -83,6 +84,8 @@ Requires-Dist: pyngrok>=1.4.0; extra == "call"
83
84
  Requires-Dist: rich; extra == "call"
84
85
  Provides-Extra: train
85
86
  Requires-Dist: praisonai-train[llm]; extra == "train"
87
+ Provides-Extra: browser
88
+ Requires-Dist: praisonai-browser[all]; extra == "browser"
86
89
  Provides-Extra: crewai
87
90
  Requires-Dist: crewai>=0.157.0; extra == "crewai"
88
91
  Requires-Dist: praisonai-tools>=0.1.0; extra == "crewai"
@@ -62,20 +62,6 @@ praisonai/audit/__init__.py
62
62
  praisonai/audit/agent_centric.py
63
63
  praisonai/bots/__init__.py
64
64
  praisonai/browser/__init__.py
65
- praisonai/browser/agent.py
66
- praisonai/browser/benchmark.py
67
- praisonai/browser/cdp_agent.py
68
- praisonai/browser/cdp_utils.py
69
- praisonai/browser/cli.py
70
- praisonai/browser/diagnostics.py
71
- praisonai/browser/launcher.py
72
- praisonai/browser/playwright_agent.py
73
- praisonai/browser/profiling.py
74
- praisonai/browser/protocol.py
75
- praisonai/browser/report.py
76
- praisonai/browser/server.py
77
- praisonai/browser/sessions.py
78
- praisonai/browser/video.py
79
65
  praisonai/capabilities/__init__.py
80
66
  praisonai/capabilities/a2a.py
81
67
  praisonai/capabilities/assistants.py
@@ -1,10 +1,11 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.150
5
- praisonai-code>=0.0.46
6
- praisonai-bot>=0.0.31
7
- praisonai-train>=0.0.2
4
+ praisonaiagents>=1.6.152
5
+ praisonai-code>=0.0.48
6
+ praisonai-bot>=0.0.33
7
+ praisonai-train>=0.0.4
8
+ praisonai-browser>=0.0.1
8
9
  python-dotenv>=0.19.0
9
10
  litellm<2,>=1.83.14
10
11
  PyYAML>=6.0
@@ -78,6 +79,9 @@ aiui<0.4,>=0.3.121
78
79
  [bot-whatsapp-web]
79
80
  praisonai-bot[bot-whatsapp-web]
80
81
 
82
+ [browser]
83
+ praisonai-browser[all]
84
+
81
85
  [call]
82
86
  twilio>=7.0.0
83
87
  fastapi>=0.95.0
@@ -59,3 +59,19 @@ 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)
@@ -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
@@ -232,6 +232,7 @@ OPERATION_SCOPES: Dict[str, ScopeRequirement] = {
232
232
  "tasks/get": ScopeRequirement(["tasks:read"]),
233
233
  "tasks/list": ScopeRequirement(["tasks:read"]),
234
234
  "tasks/cancel": ScopeRequirement(["tasks:write"]),
235
+ "logging/setLevel": ScopeRequirement(["admin"]),
235
236
  }
236
237
 
237
238
 
@@ -8,7 +8,8 @@ Supports both STDIO and HTTP Stream transports.
8
8
  import asyncio
9
9
  import json
10
10
  import logging
11
- from typing import Any, Callable, Dict, Optional, Set
11
+ from collections import OrderedDict
12
+ from typing import Any, Callable, Dict, Optional
12
13
 
13
14
  from .registry import (
14
15
  get_tool_registry,
@@ -88,7 +89,10 @@ class MCPServer:
88
89
 
89
90
  # Cancellation support
90
91
  self._active_requests: Dict[str, asyncio.Task] = {}
91
- self._cancelled_requests: Set[str] = set()
92
+ # Ordered so overflow eviction drops the *oldest* id (FIFO), never the
93
+ # id that was just added (a plain set.pop() removes an arbitrary element
94
+ # and could silently forget a cancellation that had just arrived).
95
+ self._cancelled_requests: "OrderedDict[str, None]" = OrderedDict()
92
96
  self._max_cancelled_requests = 10000
93
97
 
94
98
  # Progress notification callback
@@ -232,15 +236,18 @@ class MCPServer:
232
236
  if method == "notifications/cancelled":
233
237
  request_id = params.get("requestId")
234
238
  if request_id:
235
- self._cancelled_requests.add(str(request_id))
236
- if len(self._cancelled_requests) > self._max_cancelled_requests:
237
- overflow = len(self._cancelled_requests) - self._max_cancelled_requests
238
- for _ in range(overflow):
239
- self._cancelled_requests.pop()
240
- # Cancel active task if exists
241
- if str(request_id) in self._active_requests:
242
- task = self._active_requests[str(request_id)]
239
+ rid = str(request_id)
240
+ self._cancelled_requests[rid] = None
241
+ while len(self._cancelled_requests) > self._max_cancelled_requests:
242
+ self._cancelled_requests.popitem(last=False) # drop oldest
243
+ # Cancel the in-flight task if one is registered. Once we have
244
+ # acted on the cancellation we drop the marker so a later request
245
+ # that reuses the same JSON-RPC id is not spuriously cancelled by
246
+ # this stale entry.
247
+ task = self._active_requests.get(rid)
248
+ if task is not None:
243
249
  task.cancel()
250
+ self._cancelled_requests.pop(rid, None)
244
251
  logger.debug(f"Cancelled request: {request_id}")
245
252
  return None
246
253
 
@@ -261,12 +268,37 @@ class MCPServer:
261
268
  msg_id, scope_error["code"], scope_error["message"], data=scope_error["data"]
262
269
  )
263
270
 
264
- # Execute handler
271
+ # Execute handler. Id-bearing requests run as a registered task so an
272
+ # incoming ``notifications/cancelled`` can actually cancel the in-flight
273
+ # work (a plain ``await handler(...)`` leaves nothing to cancel).
265
274
  try:
266
- result = await handler(params)
275
+ if not is_notification:
276
+ rid = str(msg_id)
277
+ task = asyncio.ensure_future(handler(params))
278
+ self._active_requests[rid] = task
279
+ try:
280
+ # Honour a cancellation that arrived before we registered,
281
+ # then consume the marker so it cannot cancel a *future*
282
+ # request that reuses this id. (Stored values are ``None``,
283
+ # so test membership rather than the popped value.)
284
+ if rid in self._cancelled_requests:
285
+ self._cancelled_requests.pop(rid, None)
286
+ task.cancel()
287
+ result = await task
288
+ finally:
289
+ # Only remove *our* registration: a concurrent client that
290
+ # reused this id may have already replaced the entry with its
291
+ # own task, which must not be evicted by our cleanup.
292
+ if self._active_requests.get(rid) is task:
293
+ self._active_requests.pop(rid, None)
294
+ return self._success_response(msg_id, result)
295
+ await handler(params)
296
+ return None
297
+ except asyncio.CancelledError:
298
+ logger.debug(f"Request cancelled: {method}")
267
299
  if is_notification:
268
300
  return None
269
- return self._success_response(msg_id, result)
301
+ return self._error_response(msg_id, INTERNAL_ERROR, "Request cancelled")
270
302
  except Exception as e:
271
303
  logger.exception(f"Error handling {method}")
272
304
  if is_notification:
@@ -482,8 +514,10 @@ class MCPServer:
482
514
  raise
483
515
 
484
516
  async def _handle_set_log_level(self, params: Dict[str, Any]) -> Dict[str, Any]:
485
- """Handle logging/setLevel request per MCP spec."""
486
- level = params.get("level", "info")
517
+ """Handle logging/setLevel request per MCP spec (per-server scope only)."""
518
+ level = params.get("level")
519
+ if not isinstance(level, str):
520
+ raise ValueError("`level` must be a string")
487
521
  level_map = {
488
522
  "debug": logging.DEBUG,
489
523
  "info": logging.INFO,
@@ -494,9 +528,15 @@ class MCPServer:
494
528
  "alert": logging.CRITICAL,
495
529
  "emergency": logging.CRITICAL,
496
530
  }
497
- log_level = level_map.get(level.lower(), logging.INFO)
498
- logging.getLogger().setLevel(log_level)
499
- logger.info(f"Log level set to: {level}")
531
+ if level.lower() not in level_map:
532
+ raise ValueError(f"Unknown log level: {level!r}")
533
+ # Scope the change to the MCP-server package logger tree
534
+ # (``praisonai.mcp_server`` — the parent of the loggers this module and
535
+ # its siblings actually emit through), never the process root. This
536
+ # honours the client's request for the server's own log output while
537
+ # leaving unrelated audit / injection-defense telemetry in the host
538
+ # process untouched.
539
+ logging.getLogger("praisonai.mcp_server").setLevel(level_map[level.lower()])
500
540
  return {}
501
541
 
502
542
  def _success_response(self, msg_id: Any, result: Any) -> Dict[str, Any]:
@@ -0,0 +1 @@
1
+ __version__ = "4.6.149"
@@ -12,10 +12,11 @@ dependencies = [
12
12
  "rich>=13.7",
13
13
  "markdown>=3.5",
14
14
  "pyparsing>=3.0.0",
15
- "praisonaiagents>=1.6.150",
16
- "praisonai-code>=0.0.46",
17
- "praisonai-bot>=0.0.31",
18
- "praisonai-train>=0.0.2",
15
+ "praisonaiagents>=1.6.152",
16
+ "praisonai-code>=0.0.48",
17
+ "praisonai-bot>=0.0.33",
18
+ "praisonai-train>=0.0.4",
19
+ "praisonai-browser>=0.0.1",
19
20
  "python-dotenv>=0.19.0",
20
21
  "litellm>=1.83.14,<2",
21
22
  "PyYAML>=6.0",
@@ -102,6 +103,7 @@ call = [
102
103
  ]
103
104
  # C10: training lives in praisonai-train; this extra pulls the heavy ML stack.
104
105
  train = ["praisonai-train[llm]"]
106
+ browser = ["praisonai-browser[all]"]
105
107
  crewai = ["crewai>=0.157.0", "praisonai-tools>=0.1.0"] # Task 2: alias to praisonai-frameworks[crewai]
106
108
  autogen = ["pyautogen==0.2.29", "praisonai-tools>=0.1.0", "crewai"] # Task 2: alias to praisonai-frameworks[autogen]
107
109
  ag2 = ["ag2>=0.11.0", "praisonai-tools>=0.1.0"]
@@ -274,6 +276,7 @@ praisonai-bot = { path = "../praisonai-bot", editable = true }
274
276
  # praisonai-train hosts LLM fine-tuning + agent training (C10); old
275
277
  # praisonai.train paths kept via shims.
276
278
  praisonai-train = { path = "../praisonai-train", editable = true }
279
+ praisonai-browser = { path = "../praisonai-browser", editable = true }
277
280
 
278
281
  [tool.uv]
279
282
  # Exclude from lock resolution — these cause cross-extra conflicts that
@@ -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
- ]