PraisonAI 4.6.77__tar.gz → 4.6.82__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 (906) hide show
  1. {praisonai-4.6.77 → praisonai-4.6.82}/PKG-INFO +2 -2
  2. {praisonai-4.6.77 → praisonai-4.6.82}/PraisonAI.egg-info/PKG-INFO +2 -2
  3. {praisonai-4.6.77 → praisonai-4.6.82}/PraisonAI.egg-info/SOURCES.txt +19 -0
  4. {praisonai-4.6.77 → praisonai-4.6.82}/PraisonAI.egg-info/requires.txt +1 -1
  5. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_async_bridge.py +58 -24
  6. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_entrypoint.py +10 -32
  7. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/agents_generator.py +79 -34
  8. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/api/agent_invoke.py +9 -6
  9. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/api/call.py +3 -1
  10. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/auto.py +198 -124
  11. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/__init__.py +37 -0
  12. praisonai-4.6.82/praisonai/bots/_approval_store.py +402 -0
  13. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_commands.py +292 -1
  14. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_config_schema.py +42 -0
  15. praisonai-4.6.82/praisonai/bots/_correlation.py +131 -0
  16. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_delivery.py +38 -1
  17. praisonai-4.6.82/praisonai/bots/_media.py +309 -0
  18. praisonai-4.6.82/praisonai/bots/_metrics.py +203 -0
  19. praisonai-4.6.82/praisonai/bots/_outbound_messenger.py +172 -0
  20. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_outbox.py +77 -10
  21. praisonai-4.6.82/praisonai/bots/_presentation_approval.py +610 -0
  22. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_protocol_mixin.py +46 -0
  23. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_session.py +542 -38
  24. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_streaming.py +160 -39
  25. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/agentmail.py +22 -3
  26. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/bot.py +19 -0
  27. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/botos.py +414 -3
  28. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/discord.py +56 -2
  29. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/email.py +1 -1
  30. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/linear.py +22 -12
  31. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/slack.py +59 -3
  32. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/telegram.py +236 -5
  33. praisonai-4.6.82/praisonai/bots/webhook_security.py +203 -0
  34. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/whatsapp.py +154 -17
  35. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/app.py +3 -0
  36. praisonai-4.6.82/praisonai/cli/commands/attach.py +95 -0
  37. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/auth.py +135 -9
  38. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/chat.py +10 -2
  39. praisonai-4.6.82/praisonai/cli/commands/checkpoint.py +147 -0
  40. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/code.py +16 -5
  41. praisonai-4.6.82/praisonai/cli/commands/daemon.py +203 -0
  42. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/init.py +42 -4
  43. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/run.py +307 -58
  44. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/serve.py +6 -78
  45. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/session.py +74 -16
  46. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/configuration/__init__.py +9 -1
  47. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/configuration/credentials.py +182 -3
  48. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/configuration/loader.py +8 -2
  49. praisonai-4.6.82/praisonai/cli/configuration/model_resolver.py +161 -0
  50. praisonai-4.6.82/praisonai/cli/configuration/oauth.py +389 -0
  51. praisonai-4.6.82/praisonai/cli/configuration/paths.py +224 -0
  52. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/configuration/resolver.py +2 -0
  53. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/checkpoints.py +8 -4
  54. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/custom_definitions.py +287 -20
  55. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/gateway.py +163 -4
  56. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/mcp.py +140 -20
  57. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/sandbox_executor.py +3 -0
  58. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/serve.py +3 -0
  59. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/config.py +6 -0
  60. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/core.py +42 -2
  61. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/main.py +224 -59
  62. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/session/__init__.py +3 -0
  63. praisonai-4.6.82/praisonai/cli/session/resume.py +117 -0
  64. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/state/project_sessions.py +40 -0
  65. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/api.py +7 -4
  66. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/server.py +100 -0
  67. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/framework_adapters/registry.py +45 -0
  68. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/health_monitor.py +33 -6
  69. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/home_channels.py +56 -3
  70. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/server.py +829 -12
  71. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/host_app.py +21 -3
  72. praisonai-4.6.82/praisonai/integrations/backend_registry.py +45 -0
  73. praisonai-4.6.82/praisonai/integrations/hosted_agent.py +143 -0
  74. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/jobs/server.py +21 -1
  75. praisonai-4.6.82/praisonai/llm/config.py +37 -0
  76. praisonai-4.6.82/praisonai/llm/credentials.py +286 -0
  77. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/llm/env.py +67 -1
  78. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/transports/http_stream.py +5 -0
  79. praisonai-4.6.82/praisonai/persistence/conversation/_sqlite_base.py +360 -0
  80. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/async_sqlite.py +1 -0
  81. praisonai-4.6.82/praisonai/persistence/conversation/sqlite.py +89 -0
  82. praisonai-4.6.82/praisonai/persistence/conversation/sync_sqlite.py +100 -0
  83. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/base.py +9 -0
  84. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/cassandra.py +2 -1
  85. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/pgvector.py +2 -1
  86. praisonai-4.6.82/praisonai/runtime/__init__.py +36 -0
  87. praisonai-4.6.82/praisonai/runtime/__main__.py +43 -0
  88. praisonai-4.6.82/praisonai/runtime/client.py +131 -0
  89. praisonai-4.6.82/praisonai/runtime/descriptor.py +209 -0
  90. praisonai-4.6.82/praisonai/runtime/server.py +356 -0
  91. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/subprocess.py +52 -0
  92. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/security/injection.py +3 -3
  93. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tool_resolver.py +120 -29
  94. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/llm/trainer.py +1 -1
  95. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train.py +1 -1
  96. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui/components/aicoder.py +27 -3
  97. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui/context.py +24 -4
  98. praisonai-4.6.82/praisonai/version.py +1 -0
  99. {praisonai-4.6.77 → praisonai-4.6.82}/pyproject.toml +1 -1
  100. praisonai-4.6.77/praisonai/bots/_presentation_approval.py +0 -269
  101. praisonai-4.6.77/praisonai/bots/webhook_security.py +0 -14
  102. praisonai-4.6.77/praisonai/cli/configuration/paths.py +0 -114
  103. praisonai-4.6.77/praisonai/integrations/hosted_agent.py +0 -93
  104. praisonai-4.6.77/praisonai/llm/credentials.py +0 -178
  105. praisonai-4.6.77/praisonai/persistence/conversation/sqlite.py +0 -347
  106. praisonai-4.6.77/praisonai/persistence/conversation/sync_sqlite.py +0 -374
  107. praisonai-4.6.77/praisonai/version.py +0 -1
  108. {praisonai-4.6.77 → praisonai-4.6.82}/PraisonAI.egg-info/dependency_links.txt +0 -0
  109. {praisonai-4.6.77 → praisonai-4.6.82}/PraisonAI.egg-info/entry_points.txt +0 -0
  110. {praisonai-4.6.77 → praisonai-4.6.82}/PraisonAI.egg-info/top_level.txt +0 -0
  111. {praisonai-4.6.77 → praisonai-4.6.82}/README.md +0 -0
  112. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/__init__.py +0 -0
  113. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/__main__.py +0 -0
  114. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_approval_spec.py +0 -0
  115. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/__init__.py +0 -0
  116. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/api_md.py +0 -0
  117. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/__init__.py +0 -0
  118. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/docs_extractor.py +0 -0
  119. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/docs_generator.py +0 -0
  120. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/generator.py +0 -0
  121. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  122. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/python_extractor.py +0 -0
  123. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  124. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/rust_extractor.py +0 -0
  125. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  126. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  127. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  128. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_framework_availability.py +0 -0
  129. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_lazy_cache.py +0 -0
  130. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_lockmap.py +0 -0
  131. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_logging.py +0 -0
  132. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_registry.py +0 -0
  133. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/_safe_loader.py +0 -0
  134. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/acp/__init__.py +0 -0
  135. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/acp/config.py +0 -0
  136. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/acp/safe_edit.py +0 -0
  137. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/acp/server.py +0 -0
  138. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/acp/session.py +0 -0
  139. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/adapters/__init__.py +0 -0
  140. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/adapters/readers.py +0 -0
  141. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/adapters/rerankers.py +0 -0
  142. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/adapters/retrievers.py +0 -0
  143. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/adapters/vector_stores.py +0 -0
  144. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/agent.py +0 -0
  145. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/agent_scheduler.py +0 -0
  146. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/app/__init__.py +0 -0
  147. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/app/agentos.py +0 -0
  148. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/async_agent_scheduler.py +0 -0
  149. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/audit/__init__.py +0 -0
  150. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/audit/agent_centric.py +0 -0
  151. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_ack.py +0 -0
  152. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_approval.py +0 -0
  153. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_approval_base.py +0 -0
  154. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_auth.py +0 -0
  155. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_chunk.py +0 -0
  156. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_debounce.py +0 -0
  157. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_defaults.py +0 -0
  158. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_discord_approval.py +0 -0
  159. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_dlq.py +0 -0
  160. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_durable_adapter.py +0 -0
  161. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_email_utils.py +0 -0
  162. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_http_approval.py +0 -0
  163. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_identity.py +0 -0
  164. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_ingress.py +0 -0
  165. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_mirror.py +0 -0
  166. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_pairing_ui.py +0 -0
  167. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_presentation_renderer.py +0 -0
  168. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_rate_limit.py +0 -0
  169. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_registry.py +0 -0
  170. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_reset_policy.py +0 -0
  171. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_resilience.py +0 -0
  172. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_run_control.py +0 -0
  173. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_slack_approval.py +0 -0
  174. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_status.py +0 -0
  175. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_telegram_approval.py +0 -0
  176. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_typing.py +0 -0
  177. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_typing_indicator.py +0 -0
  178. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_unknown_user.py +0 -0
  179. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_webhook_approval.py +0 -0
  180. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/_whatsapp_web_adapter.py +0 -0
  181. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/delivery.py +0 -0
  182. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/bots/media.py +0 -0
  183. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/__init__.py +0 -0
  184. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/agent.py +0 -0
  185. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/benchmark.py +0 -0
  186. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/cdp_agent.py +0 -0
  187. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/cdp_utils.py +0 -0
  188. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/cli.py +0 -0
  189. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/diagnostics.py +0 -0
  190. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/launcher.py +0 -0
  191. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/playwright_agent.py +0 -0
  192. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/profiling.py +0 -0
  193. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/protocol.py +0 -0
  194. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/report.py +0 -0
  195. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/server.py +0 -0
  196. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/sessions.py +0 -0
  197. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/browser/video.py +0 -0
  198. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/__init__.py +0 -0
  199. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/a2a.py +0 -0
  200. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/assistants.py +0 -0
  201. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/audio.py +0 -0
  202. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/batches.py +0 -0
  203. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/completions.py +0 -0
  204. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/container_files.py +0 -0
  205. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/containers.py +0 -0
  206. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/embeddings.py +0 -0
  207. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/files.py +0 -0
  208. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/fine_tuning.py +0 -0
  209. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/guardrails.py +0 -0
  210. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/images.py +0 -0
  211. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/mcp.py +0 -0
  212. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/messages.py +0 -0
  213. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/moderations.py +0 -0
  214. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/ocr.py +0 -0
  215. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/passthrough.py +0 -0
  216. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/rag.py +0 -0
  217. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/realtime.py +0 -0
  218. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/rerank.py +0 -0
  219. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/responses.py +0 -0
  220. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/search.py +0 -0
  221. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/skills.py +0 -0
  222. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/vector_store_files.py +0 -0
  223. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/vector_stores.py +0 -0
  224. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/capabilities/videos.py +0 -0
  225. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/claw/__init__.py +0 -0
  226. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/claw/default_app.py +0 -0
  227. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/__init__.py +0 -0
  228. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/_paths.py +0 -0
  229. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/_warnings.py +0 -0
  230. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/approval_backend.py +0 -0
  231. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/branding.py +0 -0
  232. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/__init__.py +0 -0
  233. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/acp.py +0 -0
  234. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/agent.py +0 -0
  235. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/agents.py +0 -0
  236. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/app.py +0 -0
  237. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/audit.py +0 -0
  238. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/batch.py +0 -0
  239. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/benchmark.py +0 -0
  240. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/bot.py +0 -0
  241. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/browser.py +0 -0
  242. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/call.py +0 -0
  243. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/claw.py +0 -0
  244. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/command.py +0 -0
  245. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/commit.py +0 -0
  246. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/completion.py +0 -0
  247. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/config.py +0 -0
  248. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/context.py +0 -0
  249. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/dashboard.py +0 -0
  250. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/debug.py +0 -0
  251. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/deploy.py +0 -0
  252. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/diag.py +0 -0
  253. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/docs.py +0 -0
  254. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/doctor.py +0 -0
  255. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/endpoints.py +0 -0
  256. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/environment.py +0 -0
  257. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/eval.py +0 -0
  258. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/examples.py +0 -0
  259. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/flow.py +0 -0
  260. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/gateway.py +0 -0
  261. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/github.py +0 -0
  262. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/hooks.py +0 -0
  263. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/identity.py +0 -0
  264. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/kanban.py +0 -0
  265. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/knowledge.py +0 -0
  266. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/langextract.py +0 -0
  267. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/langfuse.py +0 -0
  268. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/loop.py +0 -0
  269. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/lsp.py +0 -0
  270. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/managed.py +0 -0
  271. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/mcp.py +0 -0
  272. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/memory.py +0 -0
  273. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/mint_link.py +0 -0
  274. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/models.py +0 -0
  275. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/n8n.py +0 -0
  276. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/obs.py +0 -0
  277. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/onboard.py +0 -0
  278. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/package.py +0 -0
  279. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/pairing.py +0 -0
  280. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/paths.py +0 -0
  281. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/permissions.py +0 -0
  282. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/plugins.py +0 -0
  283. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/port.py +0 -0
  284. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/profile.py +0 -0
  285. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/publish.py +0 -0
  286. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/rag.py +0 -0
  287. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/realtime.py +0 -0
  288. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/recipe.py +0 -0
  289. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/registry.py +0 -0
  290. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/replay.py +0 -0
  291. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/research.py +0 -0
  292. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/retrieval.py +0 -0
  293. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/rules.py +0 -0
  294. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/sandbox.py +0 -0
  295. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/schedule.py +0 -0
  296. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/setup.py +0 -0
  297. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/skills.py +0 -0
  298. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/standardise.py +0 -0
  299. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/templates.py +0 -0
  300. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/test.py +0 -0
  301. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/todo.py +0 -0
  302. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/tools.py +0 -0
  303. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/traces.py +0 -0
  304. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/tracker.py +0 -0
  305. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/train.py +0 -0
  306. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/ui.py +0 -0
  307. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/up.py +0 -0
  308. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/validate.py +0 -0
  309. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/version.py +0 -0
  310. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/commands/workflow.py +0 -0
  311. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/config_loader.py +0 -0
  312. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/configuration/config.schema.json +0 -0
  313. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/configuration/schema.py +0 -0
  314. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/execution/__init__.py +0 -0
  315. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/execution/core.py +0 -0
  316. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/execution/profiler.py +0 -0
  317. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/execution/request.py +0 -0
  318. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/execution/result.py +0 -0
  319. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/fallback_schema.py +0 -0
  320. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/__init__.py +0 -0
  321. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/_endpoint_registry.py +0 -0
  322. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/_search_registry.py +0 -0
  323. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/acp.py +0 -0
  324. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/action_orchestrator.py +0 -0
  325. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/agent_scheduler.py +0 -0
  326. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/agent_tools.py +0 -0
  327. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/agents.py +0 -0
  328. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/approval.py +0 -0
  329. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/at_mentions.py +0 -0
  330. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/audit_cli.py +0 -0
  331. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/auto_memory.py +0 -0
  332. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/auto_mode.py +0 -0
  333. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/autonomy_mode.py +0 -0
  334. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/background.py +0 -0
  335. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/base.py +0 -0
  336. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/benchmark.py +0 -0
  337. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/bots_cli.py +0 -0
  338. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/capabilities.py +0 -0
  339. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/cli_profiler.py +0 -0
  340. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/code_intelligence.py +0 -0
  341. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/compaction.py +0 -0
  342. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/compare.py +0 -0
  343. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/config_hierarchy.py +0 -0
  344. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/context_manager.py +0 -0
  345. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/cost_tracker.py +0 -0
  346. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/csv_test_runner.py +0 -0
  347. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/debug.py +0 -0
  348. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/deploy.py +0 -0
  349. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/diag.py +0 -0
  350. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/display_jsonl.py +0 -0
  351. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/__init__.py +0 -0
  352. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/__init__.py +0 -0
  353. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/acp_checks.py +0 -0
  354. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/bot_checks.py +0 -0
  355. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/config_checks.py +0 -0
  356. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/db_checks.py +0 -0
  357. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/env_checks.py +0 -0
  358. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/gateway_checks.py +0 -0
  359. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/lsp_checks.py +0 -0
  360. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/mcp_checks.py +0 -0
  361. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/memory_checks.py +0 -0
  362. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/network_checks.py +0 -0
  363. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/obs_checks.py +0 -0
  364. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/packaging_checks.py +0 -0
  365. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/performance_checks.py +0 -0
  366. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/permissions_checks.py +0 -0
  367. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/runtime_checks.py +0 -0
  368. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/runtime_migration_checks.py +0 -0
  369. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/selftest_checks.py +0 -0
  370. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/serve_checks.py +0 -0
  371. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/skills_checks.py +0 -0
  372. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/checks/tools_checks.py +0 -0
  373. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/engine.py +0 -0
  374. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/formatters.py +0 -0
  375. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/handler.py +0 -0
  376. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/models.py +0 -0
  377. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/doctor/registry.py +0 -0
  378. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/endpoints.py +0 -0
  379. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/eval.py +0 -0
  380. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/examples.py +0 -0
  381. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/external_agents.py +0 -0
  382. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/fast_context.py +0 -0
  383. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/file_history.py +0 -0
  384. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/flow_display.py +0 -0
  385. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/git_attribution.py +0 -0
  386. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/git_integration.py +0 -0
  387. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/guardrail.py +0 -0
  388. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/handoff.py +0 -0
  389. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/hooks.py +0 -0
  390. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/hybrid_workflow.py +0 -0
  391. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/image.py +0 -0
  392. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/interactive_core_headless.py +0 -0
  393. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/interactive_runtime.py +0 -0
  394. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/interactive_test_harness.py +0 -0
  395. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/interactive_tools.py +0 -0
  396. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/interactive_tui.py +0 -0
  397. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/job_workflow.py +0 -0
  398. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/jobs.py +0 -0
  399. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/knowledge.py +0 -0
  400. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/knowledge_cli.py +0 -0
  401. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/lite.py +0 -0
  402. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/logs.py +0 -0
  403. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/lsp_cli.py +0 -0
  404. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/lsp_diagnostics.py +0 -0
  405. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/message_queue.py +0 -0
  406. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/metrics.py +0 -0
  407. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/migrate.py +0 -0
  408. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/migration_flow.py +0 -0
  409. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/migration_spec.py +0 -0
  410. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/n8n.py +0 -0
  411. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/observability.py +0 -0
  412. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/ollama.py +0 -0
  413. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/onboard.py +0 -0
  414. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/output_modes.py +0 -0
  415. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/output_style.py +0 -0
  416. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/package.py +0 -0
  417. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/performance.py +0 -0
  418. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/persistence.py +0 -0
  419. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/plugin_cli.py +0 -0
  420. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/profile.py +0 -0
  421. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/profiler/__init__.py +0 -0
  422. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/profiler/core.py +0 -0
  423. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/profiler/optimizations.py +0 -0
  424. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/profiler/suite.py +0 -0
  425. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/profiling.py +0 -0
  426. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/queue/__init__.py +0 -0
  427. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/queue/manager.py +0 -0
  428. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/queue/models.py +0 -0
  429. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/queue/persistence.py +0 -0
  430. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/queue/scheduler.py +0 -0
  431. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/queue/worker.py +0 -0
  432. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/recipe.py +0 -0
  433. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/recipe_creator.py +0 -0
  434. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/recipe_optimizer.py +0 -0
  435. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/recipe_prompts.py +0 -0
  436. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/recipes.py +0 -0
  437. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/registry.py +0 -0
  438. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/repo_map.py +0 -0
  439. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/router.py +0 -0
  440. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/safe_shell.py +0 -0
  441. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/sandbox_cli.py +0 -0
  442. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/sdk_knowledge.py +0 -0
  443. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/session.py +0 -0
  444. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/setup/__init__.py +0 -0
  445. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/setup/handler.py +0 -0
  446. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/setup/templates.py +0 -0
  447. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/skills.py +0 -0
  448. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/slash_commands.py +0 -0
  449. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/telemetry.py +0 -0
  450. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/templates.py +0 -0
  451. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/thinking.py +0 -0
  452. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/todo.py +0 -0
  453. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tools.py +0 -0
  454. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/__init__.py +0 -0
  455. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/app.py +0 -0
  456. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/cli.py +0 -0
  457. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/config.py +0 -0
  458. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/debug.py +0 -0
  459. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/events.py +0 -0
  460. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/mock_provider.py +0 -0
  461. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/orchestrator.py +0 -0
  462. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/screens/__init__.py +0 -0
  463. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/screens/help.py +0 -0
  464. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/screens/main.py +0 -0
  465. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/screens/queue.py +0 -0
  466. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/screens/session.py +0 -0
  467. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/screens/settings.py +0 -0
  468. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/session_store.py +0 -0
  469. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/__init__.py +0 -0
  470. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/chat.py +0 -0
  471. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/command_popup.py +0 -0
  472. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/composer.py +0 -0
  473. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/file_popup.py +0 -0
  474. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/queue_panel.py +0 -0
  475. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/status.py +0 -0
  476. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/tui/widgets/tool_panel.py +0 -0
  477. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/wizard.py +0 -0
  478. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/workflow.py +0 -0
  479. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/features/yaml_utils.py +0 -0
  480. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/__init__.py +0 -0
  481. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/async_tui.py +0 -0
  482. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/events.py +0 -0
  483. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/frontends/__init__.py +0 -0
  484. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/frontends/rich_frontend.py +0 -0
  485. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/frontends/textual_frontend.py +0 -0
  486. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/praison_io.py +0 -0
  487. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/repl.py +0 -0
  488. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/split_tui.py +0 -0
  489. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/interactive/tui_app.py +0 -0
  490. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/langfuse_client.py +0 -0
  491. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/output/__init__.py +0 -0
  492. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/output/console.py +0 -0
  493. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/output/event_bridge.py +0 -0
  494. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/schedule_cli.py +0 -0
  495. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/schema_provider.py +0 -0
  496. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/session/unified.py +0 -0
  497. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/state/__init__.py +0 -0
  498. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/state/identifiers.py +0 -0
  499. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/state/sessions.py +0 -0
  500. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/ui/__init__.py +0 -0
  501. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/ui/config.py +0 -0
  502. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/ui/events.py +0 -0
  503. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/ui/mg_backend.py +0 -0
  504. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/ui/plain.py +0 -0
  505. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/ui/rich_backend.py +0 -0
  506. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/unified_schema.py +0 -0
  507. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/utils/env_utils.py +0 -0
  508. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli/utils/project.py +0 -0
  509. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli_backends/__init__.py +0 -0
  510. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli_backends/claude.py +0 -0
  511. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/cli_backends/registry.py +0 -0
  512. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/__init__.py +0 -0
  513. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/agent_tools.py +0 -0
  514. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/diff/__init__.py +0 -0
  515. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/diff/diff_strategy.py +0 -0
  516. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/tools/__init__.py +0 -0
  517. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/tools/apply_diff.py +0 -0
  518. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/tools/execute_command.py +0 -0
  519. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/tools/list_files.py +0 -0
  520. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/tools/read_file.py +0 -0
  521. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/tools/search_replace.py +0 -0
  522. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/tools/write_file.py +0 -0
  523. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/utils/__init__.py +0 -0
  524. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/utils/file_utils.py +0 -0
  525. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/utils/ignore_utils.py +0 -0
  526. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/code/utils/text_utils.py +0 -0
  527. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/config/__init__.py +0 -0
  528. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/config/schema.py +0 -0
  529. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/config/validator.py +0 -0
  530. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/__init__.py +0 -0
  531. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/_storage_path.py +0 -0
  532. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/artifact_store.py +0 -0
  533. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/config.py +0 -0
  534. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/history_store.py +0 -0
  535. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/queue.py +0 -0
  536. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/setup.py +0 -0
  537. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/context/terminal_logger.py +0 -0
  538. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/daemon/__init__.py +0 -0
  539. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/daemon/launchd.py +0 -0
  540. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/daemon/systemd.py +0 -0
  541. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/daemon/windows.py +0 -0
  542. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/db/__init__.py +0 -0
  543. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/db/adapter.py +0 -0
  544. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/__init__.py +0 -0
  545. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/docker.py +0 -0
  546. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/doctor.py +0 -0
  547. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/main.py +0 -0
  548. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/models.py +0 -0
  549. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/providers/__init__.py +0 -0
  550. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/providers/_registry.py +0 -0
  551. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/providers/aws.py +0 -0
  552. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/providers/azure.py +0 -0
  553. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/providers/base.py +0 -0
  554. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/providers/gcp.py +0 -0
  555. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/deploy/schema.py +0 -0
  556. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/docs_runner/__init__.py +0 -0
  557. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/docs_runner/classifier.py +0 -0
  558. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/docs_runner/executor.py +0 -0
  559. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/docs_runner/extractor.py +0 -0
  560. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/docs_runner/reporter.py +0 -0
  561. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/docs_runner/runner.py +0 -0
  562. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/docs_runner/workspace.py +0 -0
  563. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/__init__.py +0 -0
  564. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/a2u_server.py +0 -0
  565. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/discovery.py +0 -0
  566. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/__init__.py +0 -0
  567. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/a2a.py +0 -0
  568. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/a2u.py +0 -0
  569. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/agents_api.py +0 -0
  570. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/base.py +0 -0
  571. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/mcp.py +0 -0
  572. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/openai_compat.py +0 -0
  573. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/recipe.py +0 -0
  574. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  575. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/endpoints/registry.py +0 -0
  576. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/flow/__init__.py +0 -0
  577. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/flow/client.py +0 -0
  578. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  579. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  580. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/flow/components/__init__.py +0 -0
  581. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/flow/converter.py +0 -0
  582. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/flow/helpers.py +0 -0
  583. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/framework_adapters/__init__.py +0 -0
  584. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  585. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/framework_adapters/base.py +0 -0
  586. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  587. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  588. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/framework_adapters/validators.py +0 -0
  589. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/__init__.py +0 -0
  590. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/auth.py +0 -0
  591. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/client.py +0 -0
  592. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/cookie_auth.py +0 -0
  593. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/exec_approval.py +0 -0
  594. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/gateway_approval.py +0 -0
  595. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/kanban_dispatcher.py +0 -0
  596. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/magic_link.py +0 -0
  597. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/origin_check.py +0 -0
  598. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/pairing.py +0 -0
  599. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/pairing_routes.py +0 -0
  600. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/port_utils.py +0 -0
  601. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/push_channels.py +0 -0
  602. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/push_delivery.py +0 -0
  603. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/push_polling.py +0 -0
  604. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/push_presence.py +0 -0
  605. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/rate_limiter.py +0 -0
  606. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/redis_pubsub.py +0 -0
  607. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/supervisor.py +0 -0
  608. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/gateway/unicode_utils.py +0 -0
  609. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/inbuilt_tools/__init__.py +0 -0
  610. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  611. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/inc/__init__.py +0 -0
  612. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/inc/config.py +0 -0
  613. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/inc/models.py +0 -0
  614. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/__init__.py +0 -0
  615. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/bridges/__init__.py +0 -0
  616. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  617. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/bridges/hooks_query.py +0 -0
  618. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  619. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/bridges/schedules_runner.py +0 -0
  620. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/bridges/usage_bridge.py +0 -0
  621. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/bridges/workflows_service.py +0 -0
  622. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/context_files.py +0 -0
  623. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/gateway_host.py +0 -0
  624. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/pages/__init__.py +0 -0
  625. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/pages/bot_health.py +0 -0
  626. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integration/pages/workflow_runs.py +0 -0
  627. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/__init__.py +0 -0
  628. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/_session_info.py +0 -0
  629. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/_tool_aliases.py +0 -0
  630. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/_unified_registry.py +0 -0
  631. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/base.py +0 -0
  632. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/claude_code.py +0 -0
  633. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/codex_cli.py +0 -0
  634. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/compute/__init__.py +0 -0
  635. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/compute/daytona.py +0 -0
  636. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/compute/docker.py +0 -0
  637. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/compute/e2b.py +0 -0
  638. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/compute/flyio.py +0 -0
  639. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/compute/local.py +0 -0
  640. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/compute/modal_compute.py +0 -0
  641. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/cursor_cli.py +0 -0
  642. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/db_session_adapter.py +0 -0
  643. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/gemini_cli.py +0 -0
  644. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/local_agent.py +0 -0
  645. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/managed_agents.py +0 -0
  646. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/managed_local.py +0 -0
  647. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/registry.py +0 -0
  648. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/integrations/sandboxed_agent.py +0 -0
  649. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/jobs/__init__.py +0 -0
  650. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/jobs/executor.py +0 -0
  651. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/jobs/models.py +0 -0
  652. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/jobs/path_validation.py +0 -0
  653. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/jobs/router.py +0 -0
  654. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/jobs/store.py +0 -0
  655. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/kanban/__init__.py +0 -0
  656. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/kanban/models.py +0 -0
  657. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/kanban/paths.py +0 -0
  658. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/kanban/sqlite_store.py +0 -0
  659. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/llm/__init__.py +0 -0
  660. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/llm/catalogue.py +0 -0
  661. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/llm/gateways.py +0 -0
  662. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/llm/registry.py +0 -0
  663. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/__init__.py +0 -0
  664. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/__init__.py +0 -0
  665. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/agents.py +0 -0
  666. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/capabilities.py +0 -0
  667. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
  668. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
  669. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/knowledge.py +0 -0
  670. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/memory.py +0 -0
  671. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/prompts.py +0 -0
  672. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/resources.py +0 -0
  673. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
  674. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/auth/__init__.py +0 -0
  675. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/auth/api_key.py +0 -0
  676. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/auth/oauth.py +0 -0
  677. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/auth/oidc.py +0 -0
  678. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/auth/scopes.py +0 -0
  679. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/cli.py +0 -0
  680. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/elicitation.py +0 -0
  681. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/icons.py +0 -0
  682. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/recipe_adapter.py +0 -0
  683. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/recipe_cli.py +0 -0
  684. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/registry.py +0 -0
  685. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/sampling.py +0 -0
  686. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/server.py +0 -0
  687. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/tasks.py +0 -0
  688. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/tool_index.py +0 -0
  689. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/transports/__init__.py +0 -0
  690. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/mcp_server/transports/stdio.py +0 -0
  691. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/n8n/__init__.py +0 -0
  692. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/n8n/client.py +0 -0
  693. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/n8n/converter.py +0 -0
  694. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/n8n/preview.py +0 -0
  695. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/n8n/reverse_converter.py +0 -0
  696. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/observability/__init__.py +0 -0
  697. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/observability/hooks.py +0 -0
  698. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/observability/langextract.py +0 -0
  699. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/observability/langfuse.py +0 -0
  700. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/__init__.py +0 -0
  701. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/_valkey_client.py +0 -0
  702. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/config.py +0 -0
  703. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/__init__.py +0 -0
  704. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/_sql_base.py +0 -0
  705. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/async_mysql.py +0 -0
  706. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/async_postgres.py +0 -0
  707. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/base.py +0 -0
  708. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/json_store.py +0 -0
  709. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/mysql.py +0 -0
  710. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/postgres.py +0 -0
  711. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/singlestore.py +0 -0
  712. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/supabase.py +0 -0
  713. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/surrealdb.py +0 -0
  714. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/conversation/turso.py +0 -0
  715. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/factory.py +0 -0
  716. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/hooks/__init__.py +0 -0
  717. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  718. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/__init__.py +0 -0
  719. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/chroma.py +0 -0
  720. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  721. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  722. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/couchbase.py +0 -0
  723. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/lancedb.py +0 -0
  724. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  725. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  726. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  727. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/milvus.py +0 -0
  728. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  729. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/pinecone.py +0 -0
  730. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/qdrant.py +0 -0
  731. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  732. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  733. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  734. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  735. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  736. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/knowledge/weaviate.py +0 -0
  737. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/migrations/__init__.py +0 -0
  738. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/migrations/manager.py +0 -0
  739. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/orchestrator.py +0 -0
  740. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/registry.py +0 -0
  741. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/__init__.py +0 -0
  742. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/async_mongodb.py +0 -0
  743. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/base.py +0 -0
  744. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/dynamodb.py +0 -0
  745. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/firestore.py +0 -0
  746. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/gcs.py +0 -0
  747. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/memory.py +0 -0
  748. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/mongodb.py +0 -0
  749. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/redis.py +0 -0
  750. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/upstash.py +0 -0
  751. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/state/valkey.py +0 -0
  752. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/tests/__init__.py +0 -0
  753. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/tests/test_all_backends.py +0 -0
  754. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
  755. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/profiler.py +0 -0
  756. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/push/__init__.py +0 -0
  757. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/push/client.py +0 -0
  758. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/push/transports.py +0 -0
  759. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/__init__.py +0 -0
  760. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/bridge.py +0 -0
  761. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/core.py +0 -0
  762. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/exceptions.py +0 -0
  763. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/history.py +0 -0
  764. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/models.py +0 -0
  765. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/operations.py +0 -0
  766. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/policy.py +0 -0
  767. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/registry.py +0 -0
  768. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/runtime.py +0 -0
  769. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/security.py +0 -0
  770. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/serve.py +0 -0
  771. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/recipe/server.py +0 -0
  772. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/__init__.py +0 -0
  773. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/analyzer.py +0 -0
  774. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/applier.py +0 -0
  775. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/judge.py +0 -0
  776. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/plan.py +0 -0
  777. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/player.py +0 -0
  778. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/reader.py +0 -0
  779. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/storage.py +0 -0
  780. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/replay/writer.py +0 -0
  781. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/__init__.py +0 -0
  782. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/_compat.py +0 -0
  783. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/_registry.py +0 -0
  784. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/_shell.py +0 -0
  785. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/daytona.py +0 -0
  786. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/docker.py +0 -0
  787. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/e2b.py +0 -0
  788. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/modal.py +0 -0
  789. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/sandlock.py +0 -0
  790. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/sandbox/ssh.py +0 -0
  791. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/__init__.py +0 -0
  792. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/_base_scheduler.py +0 -0
  793. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/_dispatch.py +0 -0
  794. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/agent_scheduler.py +0 -0
  795. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/async_agent_scheduler.py +0 -0
  796. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/base.py +0 -0
  797. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  798. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/condition_gate.py +0 -0
  799. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/daemon_manager.py +0 -0
  800. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/deployment.py +0 -0
  801. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/enhanced_executor.py +0 -0
  802. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/executor.py +0 -0
  803. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/run_policy.py +0 -0
  804. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/shared.py +0 -0
  805. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/state_manager.py +0 -0
  806. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/suggestion_engine.py +0 -0
  807. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/scheduler/yaml_loader.py +0 -0
  808. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/security/__init__.py +0 -0
  809. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/security/audit.py +0 -0
  810. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/security/protected.py +0 -0
  811. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/setup/__init__.py +0 -0
  812. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/setup/build.py +0 -0
  813. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/setup/post_install.py +0 -0
  814. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/setup/setup_conda_env.py +0 -0
  815. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/setup.py +0 -0
  816. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/__init__.py +0 -0
  817. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/ai_generator.py +0 -0
  818. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/config.py +0 -0
  819. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/dedupe.py +0 -0
  820. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/discovery.py +0 -0
  821. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/drift.py +0 -0
  822. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/engine.py +0 -0
  823. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/enhanced_templates.py +0 -0
  824. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/example_verifier.py +0 -0
  825. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/manifest.py +0 -0
  826. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/models.py +0 -0
  827. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/reports.py +0 -0
  828. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/templates.py +0 -0
  829. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/undo_redo.py +0 -0
  830. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/standardise/validator.py +0 -0
  831. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/storage/__init__.py +0 -0
  832. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/storage/dynamodb_adapter.py +0 -0
  833. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/storage/mongodb_adapter.py +0 -0
  834. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/storage/postgresql_adapter.py +0 -0
  835. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/storage/redis_adapter.py +0 -0
  836. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/storage/valkey_adapter.py +0 -0
  837. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/__init__.py +0 -0
  838. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/batch_source.py +0 -0
  839. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/cli_docs_source.py +0 -0
  840. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/discovery.py +0 -0
  841. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/docs_source.py +0 -0
  842. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/examples_source.py +0 -0
  843. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/executor.py +0 -0
  844. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/models.py +0 -0
  845. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/report_viewer.py +0 -0
  846. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/reporter.py +0 -0
  847. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/suite_runner/runner.py +0 -0
  848. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/__init__.py +0 -0
  849. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/cache.py +0 -0
  850. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/dependency_checker.py +0 -0
  851. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/discovery.py +0 -0
  852. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/loader.py +0 -0
  853. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/registry.py +0 -0
  854. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/resolver.py +0 -0
  855. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/security.py +0 -0
  856. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/tool_override.py +0 -0
  857. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/templates/tools_doctor.py +0 -0
  858. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tool_registry.py +0 -0
  859. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tools/__init__.py +0 -0
  860. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tools/audio.py +0 -0
  861. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tools/glob_tool.py +0 -0
  862. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tools/grep_tool.py +0 -0
  863. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tools/kanban_tools.py +0 -0
  864. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tools/multiedit.py +0 -0
  865. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/tools/skill_manage.py +0 -0
  866. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/__init__.py +0 -0
  867. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/_ollama.py +0 -0
  868. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/agents/__init__.py +0 -0
  869. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/agents/grader.py +0 -0
  870. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/agents/hook.py +0 -0
  871. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/agents/models.py +0 -0
  872. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/agents/orchestrator.py +0 -0
  873. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/agents/storage.py +0 -0
  874. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train/llm/__init__.py +0 -0
  875. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/train_vision.py +0 -0
  876. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui/_aiui_datastore.py +0 -0
  877. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui/_external_agents.py +0 -0
  878. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui/callbacks.py +0 -0
  879. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui/database_config.py +0 -0
  880. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_agents/__init__.py +0 -0
  881. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_agents/default_app.py +0 -0
  882. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_bot/__init__.py +0 -0
  883. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_bot/default_app.py +0 -0
  884. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_chat/__init__.py +0 -0
  885. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_chat/default_app.py +0 -0
  886. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_dashboard/default_app.py +0 -0
  887. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_realtime/__init__.py +0 -0
  888. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/ui_realtime/default_app.py +0 -0
  889. {praisonai-4.6.77 → praisonai-4.6.82}/praisonai/upload_vision.py +0 -0
  890. {praisonai-4.6.77 → praisonai-4.6.82}/setup.cfg +0 -0
  891. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test.py +0 -0
  892. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_agents_playbook.py +0 -0
  893. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_approval_system.py +0 -0
  894. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_basic.py +0 -0
  895. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_cli_features.py +0 -0
  896. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_custom_tools_fix.py +0 -0
  897. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_double_api_fix.py +0 -0
  898. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_n8n_agent_invoke.py +0 -0
  899. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_n8n_cli_feature.py +0 -0
  900. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_n8n_integration.py +0 -0
  901. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_phase2_refactor.py +0 -0
  902. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_recipe.py +0 -0
  903. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_registry.py +0 -0
  904. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_runner.py +0 -0
  905. {praisonai-4.6.77 → praisonai-4.6.82}/tests/test_sandboxed_agent_compatibility.py +0 -0
  906. {praisonai-4.6.77 → praisonai-4.6.82}/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.77
3
+ Version: 4.6.82
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,7 +11,7 @@ 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.77
14
+ Requires-Dist: praisonaiagents>=1.6.82
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: litellm<2,>=1.83.14
17
17
  Requires-Dist: PyYAML>=6.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.77
3
+ Version: 4.6.82
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,7 +11,7 @@ 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.77
14
+ Requires-Dist: praisonaiagents>=1.6.82
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: litellm<2,>=1.83.14
17
17
  Requires-Dist: PyYAML>=6.0
@@ -63,10 +63,12 @@ praisonai/bots/__init__.py
63
63
  praisonai/bots/_ack.py
64
64
  praisonai/bots/_approval.py
65
65
  praisonai/bots/_approval_base.py
66
+ praisonai/bots/_approval_store.py
66
67
  praisonai/bots/_auth.py
67
68
  praisonai/bots/_chunk.py
68
69
  praisonai/bots/_commands.py
69
70
  praisonai/bots/_config_schema.py
71
+ praisonai/bots/_correlation.py
70
72
  praisonai/bots/_debounce.py
71
73
  praisonai/bots/_defaults.py
72
74
  praisonai/bots/_delivery.py
@@ -77,7 +79,10 @@ praisonai/bots/_email_utils.py
77
79
  praisonai/bots/_http_approval.py
78
80
  praisonai/bots/_identity.py
79
81
  praisonai/bots/_ingress.py
82
+ praisonai/bots/_media.py
83
+ praisonai/bots/_metrics.py
80
84
  praisonai/bots/_mirror.py
85
+ praisonai/bots/_outbound_messenger.py
81
86
  praisonai/bots/_outbox.py
82
87
  praisonai/bots/_pairing_ui.py
83
88
  praisonai/bots/_presentation_approval.py
@@ -172,6 +177,7 @@ praisonai/cli/commands/acp.py
172
177
  praisonai/cli/commands/agent.py
173
178
  praisonai/cli/commands/agents.py
174
179
  praisonai/cli/commands/app.py
180
+ praisonai/cli/commands/attach.py
175
181
  praisonai/cli/commands/audit.py
176
182
  praisonai/cli/commands/auth.py
177
183
  praisonai/cli/commands/batch.py
@@ -180,6 +186,7 @@ praisonai/cli/commands/bot.py
180
186
  praisonai/cli/commands/browser.py
181
187
  praisonai/cli/commands/call.py
182
188
  praisonai/cli/commands/chat.py
189
+ praisonai/cli/commands/checkpoint.py
183
190
  praisonai/cli/commands/claw.py
184
191
  praisonai/cli/commands/code.py
185
192
  praisonai/cli/commands/command.py
@@ -187,6 +194,7 @@ praisonai/cli/commands/commit.py
187
194
  praisonai/cli/commands/completion.py
188
195
  praisonai/cli/commands/config.py
189
196
  praisonai/cli/commands/context.py
197
+ praisonai/cli/commands/daemon.py
190
198
  praisonai/cli/commands/dashboard.py
191
199
  praisonai/cli/commands/debug.py
192
200
  praisonai/cli/commands/deploy.py
@@ -257,6 +265,8 @@ praisonai/cli/configuration/__init__.py
257
265
  praisonai/cli/configuration/config.schema.json
258
266
  praisonai/cli/configuration/credentials.py
259
267
  praisonai/cli/configuration/loader.py
268
+ praisonai/cli/configuration/model_resolver.py
269
+ praisonai/cli/configuration/oauth.py
260
270
  praisonai/cli/configuration/paths.py
261
271
  praisonai/cli/configuration/resolver.py
262
272
  praisonai/cli/configuration/schema.py
@@ -447,6 +457,7 @@ praisonai/cli/output/__init__.py
447
457
  praisonai/cli/output/console.py
448
458
  praisonai/cli/output/event_bridge.py
449
459
  praisonai/cli/session/__init__.py
460
+ praisonai/cli/session/resume.py
450
461
  praisonai/cli/session/unified.py
451
462
  praisonai/cli/state/__init__.py
452
463
  praisonai/cli/state/identifiers.py
@@ -589,6 +600,7 @@ praisonai/integrations/__init__.py
589
600
  praisonai/integrations/_session_info.py
590
601
  praisonai/integrations/_tool_aliases.py
591
602
  praisonai/integrations/_unified_registry.py
603
+ praisonai/integrations/backend_registry.py
592
604
  praisonai/integrations/base.py
593
605
  praisonai/integrations/claude_code.py
594
606
  praisonai/integrations/codex_cli.py
@@ -621,6 +633,7 @@ praisonai/kanban/paths.py
621
633
  praisonai/kanban/sqlite_store.py
622
634
  praisonai/llm/__init__.py
623
635
  praisonai/llm/catalogue.py
636
+ praisonai/llm/config.py
624
637
  praisonai/llm/credentials.py
625
638
  praisonai/llm/env.py
626
639
  praisonai/llm/gateways.py
@@ -671,6 +684,7 @@ praisonai/persistence/orchestrator.py
671
684
  praisonai/persistence/registry.py
672
685
  praisonai/persistence/conversation/__init__.py
673
686
  praisonai/persistence/conversation/_sql_base.py
687
+ praisonai/persistence/conversation/_sqlite_base.py
674
688
  praisonai/persistence/conversation/async_mysql.py
675
689
  praisonai/persistence/conversation/async_postgres.py
676
690
  praisonai/persistence/conversation/async_sqlite.py
@@ -749,6 +763,11 @@ praisonai/replay/player.py
749
763
  praisonai/replay/reader.py
750
764
  praisonai/replay/storage.py
751
765
  praisonai/replay/writer.py
766
+ praisonai/runtime/__init__.py
767
+ praisonai/runtime/__main__.py
768
+ praisonai/runtime/client.py
769
+ praisonai/runtime/descriptor.py
770
+ praisonai/runtime/server.py
752
771
  praisonai/sandbox/__init__.py
753
772
  praisonai/sandbox/_compat.py
754
773
  praisonai/sandbox/_registry.py
@@ -1,7 +1,7 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.77
4
+ praisonaiagents>=1.6.82
5
5
  python-dotenv>=0.19.0
6
6
  litellm<2,>=1.83.14
7
7
  PyYAML>=6.0
@@ -6,6 +6,7 @@ handling nested event loop scenarios without creating a new event loop
6
6
  on every call (which is expensive and breaks multi-agent workflows).
7
7
  """
8
8
  import asyncio
9
+ import atexit
9
10
  import os
10
11
  import threading
11
12
  import concurrent.futures
@@ -24,6 +25,10 @@ class AsyncBridge:
24
25
  self._loop: asyncio.AbstractEventLoop | None = None
25
26
  self._thread: threading.Thread | None = None
26
27
  self._lock = threading.Lock()
28
+ # Identity of the thread currently holding ``self._lock``. Set under the
29
+ # lock by ``get()``/``submit()`` so ``_spawn_locked()`` can verify the
30
+ # *caller* (not merely *someone*) owns the lock.
31
+ self._lock_owner: int | None = None
27
32
 
28
33
  def _spawn_locked(self) -> asyncio.AbstractEventLoop:
29
34
  """Create the loop+thread; caller must hold ``self._lock``.
@@ -31,11 +36,17 @@ class AsyncBridge:
31
36
  The thread is marked ``daemon=True`` so that short-lived scripts
32
37
  (e.g. CLI commands, smoke tests) exit cleanly without waiting on
33
38
  the background loop to be shut down explicitly. Long-running
34
- server processes should call :func:`shutdown` explicitly to cancel
39
+ server processes should call :meth:`shutdown` explicitly to cancel
35
40
  in-flight tasks before process exit.
36
41
  """
37
- # Create the loop+thread; caller must hold self._lock.
38
- # The lock contract is now enforced structurally by submit() method.
42
+ # Enforce the "caller must hold the lock" contract. We compare the
43
+ # recorded lock owner against the current thread so the check detects
44
+ # both an unlocked lock *and* a lock held by a different thread (a bare
45
+ # non-blocking acquire could only prove the lock was free for *anyone*).
46
+ if self._lock_owner != threading.get_ident():
47
+ raise AssertionError(
48
+ "_spawn_locked() must be called while holding self._lock"
49
+ )
39
50
  if self._loop is None or self._loop.is_closed():
40
51
  self._loop = asyncio.new_event_loop()
41
52
  self._thread = threading.Thread(
@@ -48,13 +59,21 @@ class AsyncBridge:
48
59
 
49
60
  def get(self) -> asyncio.AbstractEventLoop:
50
61
  with self._lock:
51
- return self._spawn_locked()
62
+ self._lock_owner = threading.get_ident()
63
+ try:
64
+ return self._spawn_locked()
65
+ finally:
66
+ self._lock_owner = None
52
67
 
53
68
  def submit(self, coro):
54
69
  """Atomically (re)spawn loop if needed and submit coro. Returns concurrent.futures.Future."""
55
70
  with self._lock:
56
- loop = self._spawn_locked()
57
- return asyncio.run_coroutine_threadsafe(coro, loop)
71
+ self._lock_owner = threading.get_ident()
72
+ try:
73
+ loop = self._spawn_locked()
74
+ return asyncio.run_coroutine_threadsafe(coro, loop)
75
+ finally:
76
+ self._lock_owner = None
58
77
 
59
78
  def run_sync(self, coro: Awaitable[T], *, timeout: float | None = _DEFAULT_TIMEOUT) -> T:
60
79
  try:
@@ -112,17 +131,41 @@ class AsyncBridge:
112
131
  if not loop.is_closed():
113
132
  loop.close()
114
133
 
115
- # Backwards-compatible module-level shared default:
116
- _DEFAULT_BRIDGE: AsyncBridge | None = None
117
- _DEFAULT_LOCK = threading.Lock()
134
+ # Backwards-compatible module-level shared default.
135
+ #
136
+ # The shared bridge's lifecycle is owned exclusively by the process (via the
137
+ # ``atexit`` hook registered on first use). It is intentionally NOT exposed as a
138
+ # public ``shutdown()`` on the module surface: in a multi-agent / multi-tenant
139
+ # process every ``run_sync()`` caller shares this single loop+thread, so allowing
140
+ # any one caller to tear it down would silently cancel in-flight work belonging
141
+ # to every other agent/session. Embedders that need explicit lifecycle control
142
+ # must construct and own their own :class:`AsyncBridge` instance and pass it via
143
+ # dependency injection.
144
+
145
+ # Single stable shared instance. It is created eagerly (cheap: no loop/thread is
146
+ # spawned until the first ``run_sync()`` call) so the reference never has to be
147
+ # rebound. Keeping the *same* object means callers that captured ``_BG`` always
148
+ # observe its live state, and only the process-exit hook tears it down.
149
+ _BG: AsyncBridge = AsyncBridge()
150
+
118
151
 
119
152
  def _default_bridge() -> AsyncBridge:
120
- global _DEFAULT_BRIDGE
121
- if _DEFAULT_BRIDGE is None:
122
- with _DEFAULT_LOCK:
123
- if _DEFAULT_BRIDGE is None:
124
- _DEFAULT_BRIDGE = AsyncBridge()
125
- return _DEFAULT_BRIDGE
153
+ return _BG
154
+
155
+
156
+ def _shutdown_default() -> None:
157
+ """Private process-exit hook: tear down the shared default bridge.
158
+
159
+ Registered with :mod:`atexit`. This is the ONLY sanctioned way the shared
160
+ default is shut down; it is deliberately absent from the public module
161
+ surface so a single caller cannot terminate async work for the whole
162
+ process. Embedders needing explicit lifecycle control own their own
163
+ :class:`AsyncBridge` instance.
164
+ """
165
+ _BG.shutdown()
166
+
167
+
168
+ atexit.register(_shutdown_default)
126
169
 
127
170
 
128
171
  def run_sync(coro: Awaitable[T], *, timeout: float | None = _DEFAULT_TIMEOUT) -> T:
@@ -145,12 +188,3 @@ def run_sync(coro: Awaitable[T], *, timeout: float | None = _DEFAULT_TIMEOUT) ->
145
188
  Any exception raised by the coroutine
146
189
  """
147
190
  return _default_bridge().run_sync(coro, timeout=timeout)
148
-
149
-
150
- def shutdown() -> None:
151
- """Shut down ONLY the shared default bridge (not user-owned instances)."""
152
- global _DEFAULT_BRIDGE
153
- with _DEFAULT_LOCK:
154
- if _DEFAULT_BRIDGE is not None:
155
- _DEFAULT_BRIDGE.shutdown()
156
- _DEFAULT_BRIDGE = None
@@ -10,16 +10,8 @@ from typing import Any
10
10
 
11
11
  def _build_config_list() -> list[dict[str, Any]]:
12
12
  """Reuse the same env/keyfile resolution the CLI already performs."""
13
- # Import LLM endpoint resolution from the same path the CLI uses
14
- from praisonai.llm.env import resolve_llm_endpoint
15
- ep = resolve_llm_endpoint()
16
-
17
- return [{
18
- 'model': ep.model,
19
- 'base_url': ep.base_url,
20
- 'api_key': ep.api_key,
21
- 'api_type': 'openai' # AutoGen expects this field
22
- }]
13
+ from praisonai.llm.config import build_config_list
14
+ return build_config_list()
23
15
 
24
16
 
25
17
  def run(agent_file: str,
@@ -30,19 +22,12 @@ def run(agent_file: str,
30
22
  cli_config: dict | None = None) -> str:
31
23
  """One-line Python entry point. Equivalent to `praisonai <agent_file>`."""
32
24
  from .agents_generator import AgentsGenerator
33
- from ._framework_availability import is_available
25
+ from .framework_adapters.registry import get_default_registry
34
26
 
35
27
  if framework is None:
36
- # Mirror the CLI default-resolution order
37
- for candidate in ("crewai", "praisonaiagents", "autogen", "ag2"):
38
- if is_available(candidate):
39
- framework = "praisonai" if candidate == "praisonaiagents" else candidate
40
- break
41
- else:
42
- raise RuntimeError(
43
- "No supported framework installed. "
44
- "Install one of: crewai, praisonaiagents, autogen, ag2."
45
- )
28
+ # Single source of truth for default selection: the registry, which
29
+ # honours entry-point plugins as well as the built-in priority order.
30
+ framework = get_default_registry().pick_default()
46
31
  else:
47
32
  # Validate explicit framework like CLI does
48
33
  from .framework_adapters.validators import assert_framework_available
@@ -67,19 +52,12 @@ async def arun(agent_file: str,
67
52
  cli_config: dict | None = None) -> str:
68
53
  """Async equivalent of `run()` using native async framework adapters."""
69
54
  from .agents_generator import AgentsGenerator
70
- from ._framework_availability import is_available
55
+ from .framework_adapters.registry import get_default_registry
71
56
 
72
57
  if framework is None:
73
- # Mirror the CLI default-resolution order
74
- for candidate in ("crewai", "praisonaiagents", "autogen", "ag2"):
75
- if is_available(candidate):
76
- framework = "praisonai" if candidate == "praisonaiagents" else candidate
77
- break
78
- else:
79
- raise RuntimeError(
80
- "No supported framework installed. "
81
- "Install one of: crewai, praisonaiagents, autogen, ag2."
82
- )
58
+ # Single source of truth for default selection: the registry, which
59
+ # honours entry-point plugins as well as the built-in priority order.
60
+ framework = get_default_registry().pick_default()
83
61
  else:
84
62
  # Validate explicit framework like CLI does
85
63
  from .framework_adapters.validators import assert_framework_available
@@ -4,6 +4,7 @@ import sys
4
4
  import os
5
5
  import inspect
6
6
  import logging
7
+ import threading
7
8
  import re
8
9
  import keyword
9
10
  import difflib
@@ -18,6 +19,8 @@ from .version import __version__
18
19
  from .framework_adapters.base import FrameworkAdapter
19
20
  from .framework_adapters.registry import FrameworkAdapterRegistry, get_default_registry
20
21
 
22
+ logger = logging.getLogger("praisonai.agents_generator")
23
+
21
24
 
22
25
  def _rich_print(*args, **kwargs):
23
26
  """Lazy alias for rich.print — pays the import cost only on first use."""
@@ -77,14 +80,72 @@ def __dir__():
77
80
 
78
81
 
79
82
 
83
+ _TOOL_TIMEOUT_EXECUTOR = None
84
+ # Eagerly initialised so concurrent first-callers always share one lock (and
85
+ # therefore one executor); a lazily-created lock would itself race.
86
+ _TOOL_TIMEOUT_EXECUTOR_LOCK = threading.Lock()
87
+ _DEFAULT_TOOL_TIMEOUT_WORKERS = 32
88
+
89
+
90
+ def _resolve_tool_timeout_workers():
91
+ """Resolve the timeout worker count, tolerating a bad env value.
92
+
93
+ A typo or non-positive ``PRAISONAI_TOOL_TIMEOUT_WORKERS`` must not crash
94
+ every timed tool call; we warn and fall back to the safe default instead.
95
+ """
96
+ raw = os.environ.get("PRAISONAI_TOOL_TIMEOUT_WORKERS")
97
+ if raw is None:
98
+ return _DEFAULT_TOOL_TIMEOUT_WORKERS
99
+ try:
100
+ workers = int(raw)
101
+ except (TypeError, ValueError):
102
+ logger.warning(
103
+ "Invalid PRAISONAI_TOOL_TIMEOUT_WORKERS=%r; using default of %d.",
104
+ raw, _DEFAULT_TOOL_TIMEOUT_WORKERS,
105
+ )
106
+ return _DEFAULT_TOOL_TIMEOUT_WORKERS
107
+ if workers < 1:
108
+ logger.warning(
109
+ "PRAISONAI_TOOL_TIMEOUT_WORKERS must be >= 1 (got %d); using default of %d.",
110
+ workers, _DEFAULT_TOOL_TIMEOUT_WORKERS,
111
+ )
112
+ return _DEFAULT_TOOL_TIMEOUT_WORKERS
113
+ return workers
114
+
115
+
116
+ def _get_tool_timeout_executor():
117
+ """Lazily create a bounded, observable thread pool for sync tool timeouts.
118
+
119
+ Using a bounded pool (instead of unbounded bare daemon threads) means any
120
+ background work left running after a timeout is at least capped and named,
121
+ so operators can enumerate it rather than accumulating phantom threads.
122
+ """
123
+ global _TOOL_TIMEOUT_EXECUTOR
124
+ import concurrent.futures
125
+
126
+ with _TOOL_TIMEOUT_EXECUTOR_LOCK:
127
+ if _TOOL_TIMEOUT_EXECUTOR is None:
128
+ _TOOL_TIMEOUT_EXECUTOR = concurrent.futures.ThreadPoolExecutor(
129
+ max_workers=_resolve_tool_timeout_workers(),
130
+ thread_name_prefix="praisonai-tool-timeout",
131
+ )
132
+ return _TOOL_TIMEOUT_EXECUTOR
133
+
134
+
80
135
  def _wrap_with_timeout(tool, timeout_seconds: float):
81
- """Enforce per-call timeout on a tool, sync or async, without
82
- leaking the worker thread/task on timeout.
136
+ """Enforce a per-call timeout on a tool, sync or async.
137
+
138
+ For async tools the underlying task is cancelled on timeout. For sync tools
139
+ the call runs in a bounded thread pool; on timeout we best-effort cancel the
140
+ future and log a warning. Note: a synchronous call that has already started
141
+ cannot be forcibly interrupted, so background work may continue executing —
142
+ the returned payload flags this with ``background_work_may_continue``.
83
143
  """
84
144
  if timeout_seconds is None or timeout_seconds <= 0 or not callable(tool):
85
145
  return tool
86
146
 
87
147
  import asyncio
148
+ import concurrent.futures
88
149
  import functools
89
150
  import inspect
90
151
  import json
@@ -104,43 +165,27 @@ def _wrap_with_timeout(tool, timeout_seconds: float):
104
165
 
105
166
  @functools.wraps(tool)
106
167
  def _sync_wrapped(*args, **kwargs):
107
- import queue
108
- import threading
109
-
110
- result_queue: queue.Queue[tuple[bool, object]] = queue.Queue(maxsize=1)
111
-
112
- def _runner():
113
- try:
114
- result_queue.put((True, tool(*args, **kwargs)))
115
- except BaseException as exc:
116
- result_queue.put((False, exc))
117
-
118
- # Daemon thread avoids blocking process shutdown if the tool call hangs.
119
- worker = threading.Thread(target=_runner, daemon=True)
120
- worker.start()
121
- worker.join(timeout_seconds)
122
-
123
- if worker.is_alive():
168
+ executor = _get_tool_timeout_executor()
169
+ future = executor.submit(tool, *args, **kwargs)
170
+ try:
171
+ return future.result(timeout=timeout_seconds)
172
+ except concurrent.futures.TimeoutError:
173
+ # Best-effort cancel; only effective if the future has not started.
174
+ # A started sync call cannot be interrupted, so warn operators that
175
+ # the worker may keep running (and its side effects may still occur).
176
+ cancelled = future.cancel()
177
+ logger.warning(
178
+ "Tool %r exceeded %.1fs (cancel=%s); worker may continue "
179
+ "executing in the background.",
180
+ getattr(tool, "__name__", repr(tool)),
181
+ timeout_seconds, cancelled,
182
+ )
124
183
  return json.dumps({
125
184
  "error": "tool_timeout",
126
185
  "tool": getattr(tool, "__name__", repr(tool)),
127
186
  "timeout_seconds": timeout_seconds,
187
+ "background_work_may_continue": not cancelled,
128
188
  })
129
-
130
- try:
131
- success, payload = result_queue.get_nowait()
132
- except queue.Empty:
133
- # Defensive fallback: if the worker exits without publishing a result,
134
- # avoid blocking indefinitely and surface an execution failure.
135
- return json.dumps({
136
- "error": "tool_execution_error",
137
- "tool": getattr(tool, "__name__", repr(tool)),
138
- "detail": "worker_exited_without_result",
139
- })
140
-
141
- if success:
142
- return payload
143
- raise payload
144
189
  return _sync_wrapped
145
190
 
146
191
 
@@ -38,9 +38,9 @@ def _call_auth_disabled() -> bool:
38
38
  return os.getenv('PRAISONAI_CALL_AUTH', '').lower() == 'disabled'
39
39
 
40
40
 
41
- def _bind_host_from_request(request: Request) -> str:
42
- host = getattr(getattr(request, 'url', None), 'hostname', None)
43
- return host or os.getenv('PRAISONAI_CALL_BIND_HOST', '127.0.0.1')
41
+ def _configured_bind_host() -> Optional[str]:
42
+ """Server bind address from env only — never trust client Host headers."""
43
+ return os.getenv('PRAISONAI_CALL_BIND_HOST')
44
44
 
45
45
 
46
46
  async def verify_token(
@@ -51,11 +51,14 @@ async def verify_token(
51
51
  if not FASTAPI_AVAILABLE:
52
52
  return
53
53
  if _call_auth_disabled():
54
- bind_host = _bind_host_from_request(request)
55
- if bind_host not in _LOCALHOST_HOSTS:
54
+ bind_host = _configured_bind_host()
55
+ if bind_host is None or bind_host not in _LOCALHOST_HOSTS:
56
56
  raise HTTPException(
57
57
  status_code=503,
58
- detail="PRAISONAI_CALL_AUTH=disabled is only permitted for localhost binding",
58
+ detail=(
59
+ "PRAISONAI_CALL_AUTH=disabled is only permitted for localhost binding; "
60
+ "set PRAISONAI_CALL_BIND_HOST to 127.0.0.1 when binding locally"
61
+ ),
59
62
  )
60
63
  warnings.warn(
61
64
  "PRAISONAI_CALL_AUTH=disabled bypasses authentication; "
@@ -372,7 +372,9 @@ def run_server(port: int, host: str = "127.0.0.1", use_public: bool = False):
372
372
  if host == "0.0.0.0" and not use_public:
373
373
  print("WARNING: Server is binding to all network interfaces (0.0.0.0). "
374
374
  "This exposes the service to your local network.")
375
-
375
+
376
+ os.environ["PRAISONAI_CALL_BIND_HOST"] = host
377
+
376
378
  uvicorn.run(app, host=host, port=port, log_level="warning")
377
379
 
378
380
  def main(args=None):