PraisonAI 4.6.26__tar.gz → 4.6.28__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 (767) hide show
  1. {praisonai-4.6.26 → praisonai-4.6.28}/PKG-INFO +2 -2
  2. {praisonai-4.6.26 → praisonai-4.6.28}/PraisonAI.egg-info/PKG-INFO +2 -2
  3. {praisonai-4.6.26 → praisonai-4.6.28}/PraisonAI.egg-info/requires.txt +1 -1
  4. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/onboard.py +139 -84
  5. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy.py +1 -1
  6. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/server.py +28 -1
  7. praisonai-4.6.28/praisonai/version.py +1 -0
  8. {praisonai-4.6.26 → praisonai-4.6.28}/pyproject.toml +1 -1
  9. praisonai-4.6.26/praisonai/version.py +0 -1
  10. {praisonai-4.6.26 → praisonai-4.6.28}/PraisonAI.egg-info/SOURCES.txt +0 -0
  11. {praisonai-4.6.26 → praisonai-4.6.28}/PraisonAI.egg-info/dependency_links.txt +0 -0
  12. {praisonai-4.6.26 → praisonai-4.6.28}/PraisonAI.egg-info/entry_points.txt +0 -0
  13. {praisonai-4.6.26 → praisonai-4.6.28}/PraisonAI.egg-info/top_level.txt +0 -0
  14. {praisonai-4.6.26 → praisonai-4.6.28}/README.md +0 -0
  15. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/__init__.py +0 -0
  16. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/__main__.py +0 -0
  17. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_approval_spec.py +0 -0
  18. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_async_bridge.py +0 -0
  19. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/__init__.py +0 -0
  20. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/api_md.py +0 -0
  21. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/__init__.py +0 -0
  22. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/docs_extractor.py +0 -0
  23. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/docs_generator.py +0 -0
  24. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/generator.py +0 -0
  25. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  26. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/python_extractor.py +0 -0
  27. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  28. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/rust_extractor.py +0 -0
  29. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  30. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  31. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  32. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/_logging.py +0 -0
  33. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/acp/__init__.py +0 -0
  34. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/acp/config.py +0 -0
  35. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/acp/safe_edit.py +0 -0
  36. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/acp/server.py +0 -0
  37. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/acp/session.py +0 -0
  38. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/adapters/__init__.py +0 -0
  39. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/adapters/readers.py +0 -0
  40. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/adapters/rerankers.py +0 -0
  41. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/adapters/retrievers.py +0 -0
  42. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/adapters/vector_stores.py +0 -0
  43. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/agent_scheduler.py +0 -0
  44. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/agents_generator.py +0 -0
  45. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/api/agent_invoke.py +0 -0
  46. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/api/call.py +0 -0
  47. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/app/__init__.py +0 -0
  48. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/app/agentos.py +0 -0
  49. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/async_agent_scheduler.py +0 -0
  50. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/audit/__init__.py +0 -0
  51. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/audit/agent_centric.py +0 -0
  52. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/auto.py +0 -0
  53. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/__init__.py +0 -0
  54. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_ack.py +0 -0
  55. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_approval.py +0 -0
  56. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_approval_base.py +0 -0
  57. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_chunk.py +0 -0
  58. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_commands.py +0 -0
  59. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_config_schema.py +0 -0
  60. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_debounce.py +0 -0
  61. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_discord_approval.py +0 -0
  62. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_email_utils.py +0 -0
  63. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_http_approval.py +0 -0
  64. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_protocol_mixin.py +0 -0
  65. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_rate_limit.py +0 -0
  66. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_registry.py +0 -0
  67. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_resilience.py +0 -0
  68. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_session.py +0 -0
  69. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_slack_approval.py +0 -0
  70. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_telegram_approval.py +0 -0
  71. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_webhook_approval.py +0 -0
  72. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/_whatsapp_web_adapter.py +0 -0
  73. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/agentmail.py +0 -0
  74. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/bot.py +0 -0
  75. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/botos.py +0 -0
  76. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/discord.py +0 -0
  77. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/email.py +0 -0
  78. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/media.py +0 -0
  79. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/slack.py +0 -0
  80. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/telegram.py +0 -0
  81. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/bots/whatsapp.py +0 -0
  82. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/__init__.py +0 -0
  83. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/agent.py +0 -0
  84. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/benchmark.py +0 -0
  85. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/cdp_agent.py +0 -0
  86. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/cdp_utils.py +0 -0
  87. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/cli.py +0 -0
  88. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/diagnostics.py +0 -0
  89. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/launcher.py +0 -0
  90. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/playwright_agent.py +0 -0
  91. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/profiling.py +0 -0
  92. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/protocol.py +0 -0
  93. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/report.py +0 -0
  94. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/server.py +0 -0
  95. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/sessions.py +0 -0
  96. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/browser/video.py +0 -0
  97. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/__init__.py +0 -0
  98. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/a2a.py +0 -0
  99. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/assistants.py +0 -0
  100. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/audio.py +0 -0
  101. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/batches.py +0 -0
  102. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/completions.py +0 -0
  103. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/container_files.py +0 -0
  104. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/containers.py +0 -0
  105. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/embeddings.py +0 -0
  106. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/files.py +0 -0
  107. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/fine_tuning.py +0 -0
  108. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/guardrails.py +0 -0
  109. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/images.py +0 -0
  110. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/mcp.py +0 -0
  111. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/messages.py +0 -0
  112. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/moderations.py +0 -0
  113. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/ocr.py +0 -0
  114. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/passthrough.py +0 -0
  115. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/rag.py +0 -0
  116. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/realtime.py +0 -0
  117. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/rerank.py +0 -0
  118. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/responses.py +0 -0
  119. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/search.py +0 -0
  120. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/skills.py +0 -0
  121. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/vector_store_files.py +0 -0
  122. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/vector_stores.py +0 -0
  123. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/capabilities/videos.py +0 -0
  124. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/chainlit_ui.py +0 -0
  125. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/chat/__init__.py +0 -0
  126. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/chat/app.py +0 -0
  127. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/claw/__init__.py +0 -0
  128. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/claw/default_app.py +0 -0
  129. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/__init__.py +0 -0
  130. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/_paths.py +0 -0
  131. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/app.py +0 -0
  132. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/branding.py +0 -0
  133. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/__init__.py +0 -0
  134. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/acp.py +0 -0
  135. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/agents.py +0 -0
  136. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/app.py +0 -0
  137. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/audit.py +0 -0
  138. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/batch.py +0 -0
  139. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/benchmark.py +0 -0
  140. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/bot.py +0 -0
  141. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/browser.py +0 -0
  142. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/call.py +0 -0
  143. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/chat.py +0 -0
  144. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/claw.py +0 -0
  145. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/code.py +0 -0
  146. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/commit.py +0 -0
  147. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/completion.py +0 -0
  148. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/config.py +0 -0
  149. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/context.py +0 -0
  150. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/dashboard.py +0 -0
  151. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/debug.py +0 -0
  152. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/deploy.py +0 -0
  153. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/diag.py +0 -0
  154. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/docs.py +0 -0
  155. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/doctor.py +0 -0
  156. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/endpoints.py +0 -0
  157. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/environment.py +0 -0
  158. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/eval.py +0 -0
  159. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/examples.py +0 -0
  160. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/flow.py +0 -0
  161. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/gateway.py +0 -0
  162. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/github.py +0 -0
  163. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/hooks.py +0 -0
  164. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/knowledge.py +0 -0
  165. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/langextract.py +0 -0
  166. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/langfuse.py +0 -0
  167. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/loop.py +0 -0
  168. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/lsp.py +0 -0
  169. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/managed.py +0 -0
  170. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/mcp.py +0 -0
  171. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/memory.py +0 -0
  172. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/n8n.py +0 -0
  173. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/obs.py +0 -0
  174. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/onboard.py +0 -0
  175. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/package.py +0 -0
  176. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/paths.py +0 -0
  177. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/plugins.py +0 -0
  178. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/port.py +0 -0
  179. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/profile.py +0 -0
  180. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/publish.py +0 -0
  181. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/rag.py +0 -0
  182. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/realtime.py +0 -0
  183. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/recipe.py +0 -0
  184. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/registry.py +0 -0
  185. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/replay.py +0 -0
  186. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/research.py +0 -0
  187. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/retrieval.py +0 -0
  188. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/rules.py +0 -0
  189. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/run.py +0 -0
  190. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/sandbox.py +0 -0
  191. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/schedule.py +0 -0
  192. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/serve.py +0 -0
  193. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/session.py +0 -0
  194. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/setup.py +0 -0
  195. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/skills.py +0 -0
  196. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/standardise.py +0 -0
  197. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/templates.py +0 -0
  198. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/test.py +0 -0
  199. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/todo.py +0 -0
  200. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/tools.py +0 -0
  201. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/traces.py +0 -0
  202. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/tracker.py +0 -0
  203. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/train.py +0 -0
  204. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/ui.py +0 -0
  205. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/up.py +0 -0
  206. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/version.py +0 -0
  207. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/commands/workflow.py +0 -0
  208. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/config_loader.py +0 -0
  209. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/configuration/__init__.py +0 -0
  210. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/configuration/loader.py +0 -0
  211. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/configuration/paths.py +0 -0
  212. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/configuration/schema.py +0 -0
  213. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/execution/__init__.py +0 -0
  214. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/execution/core.py +0 -0
  215. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/execution/profiler.py +0 -0
  216. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/execution/request.py +0 -0
  217. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/execution/result.py +0 -0
  218. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/fallback_schema.py +0 -0
  219. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/__init__.py +0 -0
  220. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/acp.py +0 -0
  221. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/action_orchestrator.py +0 -0
  222. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/agent_scheduler.py +0 -0
  223. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/agent_tools.py +0 -0
  224. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/agents.py +0 -0
  225. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/approval.py +0 -0
  226. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/at_mentions.py +0 -0
  227. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/audit_cli.py +0 -0
  228. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/auto_memory.py +0 -0
  229. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/auto_mode.py +0 -0
  230. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/autonomy_mode.py +0 -0
  231. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/background.py +0 -0
  232. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/base.py +0 -0
  233. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/benchmark.py +0 -0
  234. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/bots_cli.py +0 -0
  235. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/capabilities.py +0 -0
  236. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/checkpoints.py +0 -0
  237. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/cli_profiler.py +0 -0
  238. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/code_intelligence.py +0 -0
  239. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/compaction.py +0 -0
  240. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/compare.py +0 -0
  241. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/config_hierarchy.py +0 -0
  242. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/context_manager.py +0 -0
  243. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/cost_tracker.py +0 -0
  244. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/csv_test_runner.py +0 -0
  245. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/debug.py +0 -0
  246. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/deploy.py +0 -0
  247. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/diag.py +0 -0
  248. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/display_jsonl.py +0 -0
  249. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/__init__.py +0 -0
  250. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/__init__.py +0 -0
  251. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/acp_checks.py +0 -0
  252. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/bot_checks.py +0 -0
  253. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/config_checks.py +0 -0
  254. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/db_checks.py +0 -0
  255. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/env_checks.py +0 -0
  256. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/lsp_checks.py +0 -0
  257. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/mcp_checks.py +0 -0
  258. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/memory_checks.py +0 -0
  259. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/network_checks.py +0 -0
  260. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/obs_checks.py +0 -0
  261. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/performance_checks.py +0 -0
  262. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/permissions_checks.py +0 -0
  263. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/selftest_checks.py +0 -0
  264. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/serve_checks.py +0 -0
  265. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/skills_checks.py +0 -0
  266. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/checks/tools_checks.py +0 -0
  267. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/engine.py +0 -0
  268. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/formatters.py +0 -0
  269. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/handler.py +0 -0
  270. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/models.py +0 -0
  271. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/doctor/registry.py +0 -0
  272. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/endpoints.py +0 -0
  273. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/eval.py +0 -0
  274. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/examples.py +0 -0
  275. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/external_agents.py +0 -0
  276. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/fast_context.py +0 -0
  277. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/file_history.py +0 -0
  278. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/flow_display.py +0 -0
  279. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/gateway.py +0 -0
  280. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/git_attribution.py +0 -0
  281. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/git_integration.py +0 -0
  282. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/guardrail.py +0 -0
  283. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/handoff.py +0 -0
  284. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/hooks.py +0 -0
  285. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/hybrid_workflow.py +0 -0
  286. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/image.py +0 -0
  287. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/interactive_core_headless.py +0 -0
  288. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/interactive_runtime.py +0 -0
  289. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/interactive_test_harness.py +0 -0
  290. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/interactive_tools.py +0 -0
  291. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/interactive_tui.py +0 -0
  292. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/job_workflow.py +0 -0
  293. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/jobs.py +0 -0
  294. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/knowledge.py +0 -0
  295. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/knowledge_cli.py +0 -0
  296. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/lite.py +0 -0
  297. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/logs.py +0 -0
  298. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/lsp_cli.py +0 -0
  299. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/lsp_diagnostics.py +0 -0
  300. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/mcp.py +0 -0
  301. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/message_queue.py +0 -0
  302. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/metrics.py +0 -0
  303. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/migrate.py +0 -0
  304. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/migration_flow.py +0 -0
  305. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/migration_spec.py +0 -0
  306. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/n8n.py +0 -0
  307. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/observability.py +0 -0
  308. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/ollama.py +0 -0
  309. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/output_modes.py +0 -0
  310. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/output_style.py +0 -0
  311. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/package.py +0 -0
  312. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/performance.py +0 -0
  313. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/persistence.py +0 -0
  314. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/plugin_cli.py +0 -0
  315. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/profile.py +0 -0
  316. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/profiler/__init__.py +0 -0
  317. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/profiler/core.py +0 -0
  318. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/profiler/optimizations.py +0 -0
  319. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/profiler/suite.py +0 -0
  320. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/profiling.py +0 -0
  321. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/queue/__init__.py +0 -0
  322. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/queue/manager.py +0 -0
  323. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/queue/models.py +0 -0
  324. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/queue/persistence.py +0 -0
  325. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/queue/scheduler.py +0 -0
  326. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/queue/worker.py +0 -0
  327. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/recipe.py +0 -0
  328. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/recipe_creator.py +0 -0
  329. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/recipe_optimizer.py +0 -0
  330. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/recipe_prompts.py +0 -0
  331. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/recipes.py +0 -0
  332. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/registry.py +0 -0
  333. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/repo_map.py +0 -0
  334. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/router.py +0 -0
  335. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/safe_shell.py +0 -0
  336. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/sandbox_cli.py +0 -0
  337. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/sandbox_executor.py +0 -0
  338. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/sdk_knowledge.py +0 -0
  339. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/serve.py +0 -0
  340. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/session.py +0 -0
  341. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/setup/__init__.py +0 -0
  342. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/setup/handler.py +0 -0
  343. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/setup/templates.py +0 -0
  344. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/skills.py +0 -0
  345. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/slash_commands.py +0 -0
  346. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/telemetry.py +0 -0
  347. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/templates.py +0 -0
  348. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/thinking.py +0 -0
  349. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/todo.py +0 -0
  350. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tools.py +0 -0
  351. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/__init__.py +0 -0
  352. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/app.py +0 -0
  353. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/cli.py +0 -0
  354. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/config.py +0 -0
  355. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/debug.py +0 -0
  356. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/events.py +0 -0
  357. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/mock_provider.py +0 -0
  358. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/orchestrator.py +0 -0
  359. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/screens/__init__.py +0 -0
  360. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/screens/help.py +0 -0
  361. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/screens/main.py +0 -0
  362. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/screens/queue.py +0 -0
  363. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/screens/session.py +0 -0
  364. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/screens/settings.py +0 -0
  365. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/session_store.py +0 -0
  366. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/__init__.py +0 -0
  367. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/chat.py +0 -0
  368. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/command_popup.py +0 -0
  369. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/composer.py +0 -0
  370. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/file_popup.py +0 -0
  371. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/queue_panel.py +0 -0
  372. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/status.py +0 -0
  373. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/tui/widgets/tool_panel.py +0 -0
  374. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/wizard.py +0 -0
  375. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/workflow.py +0 -0
  376. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/features/yaml_utils.py +0 -0
  377. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/__init__.py +0 -0
  378. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/async_tui.py +0 -0
  379. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/config.py +0 -0
  380. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/core.py +0 -0
  381. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/events.py +0 -0
  382. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/frontends/__init__.py +0 -0
  383. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/frontends/rich_frontend.py +0 -0
  384. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/frontends/textual_frontend.py +0 -0
  385. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/praison_io.py +0 -0
  386. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/repl.py +0 -0
  387. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/split_tui.py +0 -0
  388. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/interactive/tui_app.py +0 -0
  389. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/langfuse_client.py +0 -0
  390. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/legacy.py +0 -0
  391. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/main.py +0 -0
  392. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/output/__init__.py +0 -0
  393. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/output/console.py +0 -0
  394. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/schedule_cli.py +0 -0
  395. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/schema_provider.py +0 -0
  396. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/session/__init__.py +0 -0
  397. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/session/unified.py +0 -0
  398. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/state/__init__.py +0 -0
  399. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/state/identifiers.py +0 -0
  400. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/state/sessions.py +0 -0
  401. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/ui/__init__.py +0 -0
  402. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/ui/config.py +0 -0
  403. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/ui/events.py +0 -0
  404. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/ui/mg_backend.py +0 -0
  405. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/ui/plain.py +0 -0
  406. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/ui/rich_backend.py +0 -0
  407. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/cli/unified_schema.py +0 -0
  408. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/__init__.py +0 -0
  409. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/agent_tools.py +0 -0
  410. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/diff/__init__.py +0 -0
  411. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/diff/diff_strategy.py +0 -0
  412. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/tools/__init__.py +0 -0
  413. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/tools/apply_diff.py +0 -0
  414. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/tools/execute_command.py +0 -0
  415. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/tools/list_files.py +0 -0
  416. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/tools/read_file.py +0 -0
  417. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/tools/search_replace.py +0 -0
  418. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/tools/write_file.py +0 -0
  419. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/utils/__init__.py +0 -0
  420. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/utils/file_utils.py +0 -0
  421. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/utils/ignore_utils.py +0 -0
  422. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/code/utils/text_utils.py +0 -0
  423. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/context/__init__.py +0 -0
  424. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/context/artifact_store.py +0 -0
  425. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/context/config.py +0 -0
  426. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/context/history_store.py +0 -0
  427. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/context/queue.py +0 -0
  428. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/context/setup.py +0 -0
  429. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/context/terminal_logger.py +0 -0
  430. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/daemon/__init__.py +0 -0
  431. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/daemon/launchd.py +0 -0
  432. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/daemon/systemd.py +0 -0
  433. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/daemon/windows.py +0 -0
  434. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/db/__init__.py +0 -0
  435. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/db/adapter.py +0 -0
  436. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/__init__.py +0 -0
  437. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/api.py +0 -0
  438. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/docker.py +0 -0
  439. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/doctor.py +0 -0
  440. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/main.py +0 -0
  441. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/models.py +0 -0
  442. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/providers/__init__.py +0 -0
  443. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/providers/aws.py +0 -0
  444. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/providers/azure.py +0 -0
  445. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/providers/base.py +0 -0
  446. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/providers/gcp.py +0 -0
  447. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/deploy/schema.py +0 -0
  448. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/docs_runner/__init__.py +0 -0
  449. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/docs_runner/classifier.py +0 -0
  450. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/docs_runner/executor.py +0 -0
  451. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/docs_runner/extractor.py +0 -0
  452. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/docs_runner/reporter.py +0 -0
  453. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/docs_runner/runner.py +0 -0
  454. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/docs_runner/workspace.py +0 -0
  455. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/__init__.py +0 -0
  456. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/a2u_server.py +0 -0
  457. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/discovery.py +0 -0
  458. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/__init__.py +0 -0
  459. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/a2a.py +0 -0
  460. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/a2u.py +0 -0
  461. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/agents_api.py +0 -0
  462. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/base.py +0 -0
  463. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/mcp.py +0 -0
  464. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/recipe.py +0 -0
  465. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  466. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/registry.py +0 -0
  467. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/endpoints/server.py +0 -0
  468. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/flow/__init__.py +0 -0
  469. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/flow/client.py +0 -0
  470. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  471. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  472. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/flow/components/__init__.py +0 -0
  473. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/flow/converter.py +0 -0
  474. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/flow/helpers.py +0 -0
  475. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/framework_adapters/__init__.py +0 -0
  476. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  477. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/framework_adapters/base.py +0 -0
  478. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  479. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  480. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/__init__.py +0 -0
  481. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/exec_approval.py +0 -0
  482. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/gateway_approval.py +0 -0
  483. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/pairing.py +0 -0
  484. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/push_channels.py +0 -0
  485. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/push_delivery.py +0 -0
  486. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/push_polling.py +0 -0
  487. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/push_presence.py +0 -0
  488. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/rate_limiter.py +0 -0
  489. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/gateway/redis_pubsub.py +0 -0
  490. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/inbuilt_tools/__init__.py +0 -0
  491. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  492. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/inc/__init__.py +0 -0
  493. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/inc/config.py +0 -0
  494. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/inc/models.py +0 -0
  495. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/__init__.py +0 -0
  496. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/_session_info.py +0 -0
  497. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/_tool_aliases.py +0 -0
  498. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/base.py +0 -0
  499. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/claude_code.py +0 -0
  500. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/codex_cli.py +0 -0
  501. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/compute/__init__.py +0 -0
  502. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/compute/daytona.py +0 -0
  503. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/compute/docker.py +0 -0
  504. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/compute/e2b.py +0 -0
  505. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/compute/flyio.py +0 -0
  506. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/compute/local.py +0 -0
  507. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/compute/modal_compute.py +0 -0
  508. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/cursor_cli.py +0 -0
  509. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/db_session_adapter.py +0 -0
  510. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/gemini_cli.py +0 -0
  511. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/managed_agents.py +0 -0
  512. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/managed_local.py +0 -0
  513. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/integrations/registry.py +0 -0
  514. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/jobs/__init__.py +0 -0
  515. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/jobs/executor.py +0 -0
  516. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/jobs/models.py +0 -0
  517. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/jobs/router.py +0 -0
  518. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/jobs/server.py +0 -0
  519. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/jobs/store.py +0 -0
  520. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/llm/__init__.py +0 -0
  521. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/llm/registry.py +0 -0
  522. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/__init__.py +0 -0
  523. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/__init__.py +0 -0
  524. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/agents.py +0 -0
  525. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/capabilities.py +0 -0
  526. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
  527. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
  528. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/knowledge.py +0 -0
  529. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/memory.py +0 -0
  530. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/prompts.py +0 -0
  531. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/resources.py +0 -0
  532. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
  533. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/auth/__init__.py +0 -0
  534. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/auth/api_key.py +0 -0
  535. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/auth/oauth.py +0 -0
  536. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/auth/oidc.py +0 -0
  537. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/auth/scopes.py +0 -0
  538. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/cli.py +0 -0
  539. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/elicitation.py +0 -0
  540. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/icons.py +0 -0
  541. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/recipe_adapter.py +0 -0
  542. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/recipe_cli.py +0 -0
  543. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/registry.py +0 -0
  544. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/sampling.py +0 -0
  545. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/server.py +0 -0
  546. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/tasks.py +0 -0
  547. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/tool_index.py +0 -0
  548. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/transports/__init__.py +0 -0
  549. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/transports/http_stream.py +0 -0
  550. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/mcp_server/transports/stdio.py +0 -0
  551. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/n8n/__init__.py +0 -0
  552. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/n8n/client.py +0 -0
  553. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/n8n/converter.py +0 -0
  554. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/n8n/preview.py +0 -0
  555. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/n8n/reverse_converter.py +0 -0
  556. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/observability/__init__.py +0 -0
  557. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/observability/langextract.py +0 -0
  558. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/observability/langfuse.py +0 -0
  559. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/__init__.py +0 -0
  560. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/config.py +0 -0
  561. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/__init__.py +0 -0
  562. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/async_mysql.py +0 -0
  563. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/async_postgres.py +0 -0
  564. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  565. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/base.py +0 -0
  566. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/json_store.py +0 -0
  567. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/mysql.py +0 -0
  568. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/postgres.py +0 -0
  569. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/singlestore.py +0 -0
  570. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/sqlite.py +0 -0
  571. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/supabase.py +0 -0
  572. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/surrealdb.py +0 -0
  573. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/conversation/turso.py +0 -0
  574. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/factory.py +0 -0
  575. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/hooks/__init__.py +0 -0
  576. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  577. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/__init__.py +0 -0
  578. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/base.py +0 -0
  579. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/cassandra.py +0 -0
  580. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/chroma.py +0 -0
  581. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  582. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  583. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/couchbase.py +0 -0
  584. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/lancedb.py +0 -0
  585. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  586. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  587. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  588. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/milvus.py +0 -0
  589. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  590. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/pgvector.py +0 -0
  591. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/pinecone.py +0 -0
  592. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/qdrant.py +0 -0
  593. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  594. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  595. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  596. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  597. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/knowledge/weaviate.py +0 -0
  598. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/migrations/__init__.py +0 -0
  599. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/migrations/manager.py +0 -0
  600. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/orchestrator.py +0 -0
  601. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/__init__.py +0 -0
  602. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/async_mongodb.py +0 -0
  603. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/base.py +0 -0
  604. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/dynamodb.py +0 -0
  605. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/firestore.py +0 -0
  606. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/gcs.py +0 -0
  607. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/memory.py +0 -0
  608. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/mongodb.py +0 -0
  609. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/redis.py +0 -0
  610. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/state/upstash.py +0 -0
  611. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/tests/__init__.py +0 -0
  612. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/persistence/tests/test_all_backends.py +0 -0
  613. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/profiler.py +0 -0
  614. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/push/__init__.py +0 -0
  615. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/push/client.py +0 -0
  616. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/push/transports.py +0 -0
  617. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/__init__.py +0 -0
  618. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/bridge.py +0 -0
  619. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/core.py +0 -0
  620. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/exceptions.py +0 -0
  621. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/history.py +0 -0
  622. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/models.py +0 -0
  623. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/operations.py +0 -0
  624. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/policy.py +0 -0
  625. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/registry.py +0 -0
  626. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/runtime.py +0 -0
  627. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/security.py +0 -0
  628. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/serve.py +0 -0
  629. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/recipe/server.py +0 -0
  630. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/__init__.py +0 -0
  631. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/analyzer.py +0 -0
  632. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/applier.py +0 -0
  633. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/judge.py +0 -0
  634. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/plan.py +0 -0
  635. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/player.py +0 -0
  636. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/reader.py +0 -0
  637. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/storage.py +0 -0
  638. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/replay/writer.py +0 -0
  639. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/sandbox/__init__.py +0 -0
  640. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/sandbox/daytona.py +0 -0
  641. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/sandbox/docker.py +0 -0
  642. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/sandbox/modal.py +0 -0
  643. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/sandbox/sandlock.py +0 -0
  644. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/sandbox/ssh.py +0 -0
  645. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/sandbox/subprocess.py +0 -0
  646. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/__init__.py +0 -0
  647. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/agent_scheduler.py +0 -0
  648. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/base.py +0 -0
  649. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/daemon_manager.py +0 -0
  650. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/executor.py +0 -0
  651. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/shared.py +0 -0
  652. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/state_manager.py +0 -0
  653. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler/yaml_loader.py +0 -0
  654. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/scheduler.py +0 -0
  655. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/security/__init__.py +0 -0
  656. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/security/audit.py +0 -0
  657. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/security/injection.py +0 -0
  658. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/security/protected.py +0 -0
  659. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/setup/__init__.py +0 -0
  660. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/setup/build.py +0 -0
  661. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/setup/post_install.py +0 -0
  662. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/setup/setup_conda_env.py +0 -0
  663. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/setup.py +0 -0
  664. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/__init__.py +0 -0
  665. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/ai_generator.py +0 -0
  666. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/config.py +0 -0
  667. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/dedupe.py +0 -0
  668. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/discovery.py +0 -0
  669. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/drift.py +0 -0
  670. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/engine.py +0 -0
  671. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/enhanced_templates.py +0 -0
  672. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/example_verifier.py +0 -0
  673. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/manifest.py +0 -0
  674. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/models.py +0 -0
  675. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/reports.py +0 -0
  676. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/templates.py +0 -0
  677. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/undo_redo.py +0 -0
  678. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/standardise/validator.py +0 -0
  679. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/storage/__init__.py +0 -0
  680. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/storage/dynamodb_adapter.py +0 -0
  681. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/storage/mongodb_adapter.py +0 -0
  682. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/storage/postgresql_adapter.py +0 -0
  683. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/storage/redis_adapter.py +0 -0
  684. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/__init__.py +0 -0
  685. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/batch_source.py +0 -0
  686. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/cli_docs_source.py +0 -0
  687. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/discovery.py +0 -0
  688. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/docs_source.py +0 -0
  689. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/examples_source.py +0 -0
  690. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/executor.py +0 -0
  691. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/models.py +0 -0
  692. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/report_viewer.py +0 -0
  693. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/reporter.py +0 -0
  694. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/suite_runner/runner.py +0 -0
  695. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/__init__.py +0 -0
  696. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/cache.py +0 -0
  697. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/dependency_checker.py +0 -0
  698. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/discovery.py +0 -0
  699. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/loader.py +0 -0
  700. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/registry.py +0 -0
  701. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/resolver.py +0 -0
  702. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/security.py +0 -0
  703. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/tool_override.py +0 -0
  704. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/templates/tools_doctor.py +0 -0
  705. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/test.py +0 -0
  706. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tool_registry.py +0 -0
  707. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tool_resolver.py +0 -0
  708. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tools/__init__.py +0 -0
  709. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tools/audio.py +0 -0
  710. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tools/glob_tool.py +0 -0
  711. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tools/grep_tool.py +0 -0
  712. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tools/multiedit.py +0 -0
  713. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/tools/skill_manage.py +0 -0
  714. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/__init__.py +0 -0
  715. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/agents/__init__.py +0 -0
  716. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/agents/grader.py +0 -0
  717. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/agents/hook.py +0 -0
  718. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/agents/models.py +0 -0
  719. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/agents/orchestrator.py +0 -0
  720. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/agents/storage.py +0 -0
  721. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/llm/__init__.py +0 -0
  722. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train/llm/trainer.py +0 -0
  723. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train.py +0 -0
  724. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/train_vision.py +0 -0
  725. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/_aiui_datastore.py +0 -0
  726. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/_external_agents.py +0 -0
  727. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/agents.py +0 -0
  728. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/bot.py +0 -0
  729. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/callbacks.py +0 -0
  730. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/chainlit_compat.py +0 -0
  731. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/chat.py +0 -0
  732. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/code.py +0 -0
  733. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/colab.py +0 -0
  734. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/colab_chainlit.py +0 -0
  735. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/components/aicoder.py +0 -0
  736. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/context.py +0 -0
  737. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/database_config.py +0 -0
  738. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/db.py +0 -0
  739. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/realtime.py +0 -0
  740. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/realtimeclient/__init__.py +0 -0
  741. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/realtimeclient/tools.py +0 -0
  742. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui/sql_alchemy.py +0 -0
  743. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_agents/__init__.py +0 -0
  744. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_agents/default_app.py +0 -0
  745. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_bot/__init__.py +0 -0
  746. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_bot/default_app.py +0 -0
  747. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_chat/__init__.py +0 -0
  748. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_chat/default_app.py +0 -0
  749. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_realtime/__init__.py +0 -0
  750. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/ui_realtime/default_app.py +0 -0
  751. {praisonai-4.6.26 → praisonai-4.6.28}/praisonai/upload_vision.py +0 -0
  752. {praisonai-4.6.26 → praisonai-4.6.28}/setup.cfg +0 -0
  753. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test.py +0 -0
  754. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_agents_playbook.py +0 -0
  755. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_approval_system.py +0 -0
  756. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_basic.py +0 -0
  757. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_cli_features.py +0 -0
  758. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_custom_tools_fix.py +0 -0
  759. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_double_api_fix.py +0 -0
  760. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_n8n_agent_invoke.py +0 -0
  761. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_n8n_cli_feature.py +0 -0
  762. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_n8n_integration.py +0 -0
  763. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_phase2_refactor.py +0 -0
  764. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_recipe.py +0 -0
  765. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_registry.py +0 -0
  766. {praisonai-4.6.26 → praisonai-4.6.28}/tests/test_runner.py +0 -0
  767. {praisonai-4.6.26 → praisonai-4.6.28}/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.26
3
+ Version: 4.6.28
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.26
14
+ Requires-Dist: praisonaiagents>=1.6.28
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: litellm<=1.82.6,>=1.81.0
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.26
3
+ Version: 4.6.28
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.26
14
+ Requires-Dist: praisonaiagents>=1.6.28
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: litellm<=1.82.6,>=1.81.0
17
17
  Requires-Dist: PyYAML>=6.0
@@ -1,7 +1,7 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.26
4
+ praisonaiagents>=1.6.28
5
5
  python-dotenv>=0.19.0
6
6
  litellm<=1.82.6,>=1.81.0
7
7
  PyYAML>=6.0
@@ -23,10 +23,13 @@ from typing import Dict, List, Optional
23
23
 
24
24
  logger = logging.getLogger(__name__)
25
25
 
26
- # Platform info for the wizard.
27
- # ``allowed_users_env`` / ``home_channel_env`` mirror the hermes/openclaw
28
- # pattern: a per-platform allowlist of user IDs and a default "home" channel
29
- # for proactive/cron deliveries.
26
+ # Platform info for the wizard. ``allowed_users_env`` is a per-platform
27
+ # allowlist of user IDs used by the channel adapter to restrict inbound
28
+ # traffic. We deliberately don't carry a ``home_channel_env`` any more:
29
+ # no code path in the gateway reads ``home_channel`` today (the scheduler
30
+ # uses an explicit DeliveryTarget.channel_id per job), and the prompt
31
+ # confused non-developers. If a proactive-delivery feature ships later
32
+ # it can reintroduce this on an opt-in basis.
30
33
  PLATFORMS = {
31
34
  "telegram": {
32
35
  "name": "Telegram",
@@ -34,7 +37,6 @@ PLATFORMS = {
34
37
  "token_help": "Get from @BotFather on Telegram: https://t.me/BotFather",
35
38
  "install_hint": "pip install python-telegram-bot",
36
39
  "allowed_users_env": "TELEGRAM_ALLOWED_USERS",
37
- "home_channel_env": "TELEGRAM_HOME_CHANNEL",
38
40
  "user_id_help": "Find your user ID by messaging @userinfobot on Telegram",
39
41
  },
40
42
  "discord": {
@@ -43,7 +45,6 @@ PLATFORMS = {
43
45
  "token_help": "Create at https://discord.com/developers/applications",
44
46
  "install_hint": "pip install discord.py",
45
47
  "allowed_users_env": "DISCORD_ALLOWED_USERS",
46
- "home_channel_env": "DISCORD_HOME_CHANNEL",
47
48
  "user_id_help": "Enable Developer Mode (Settings > Advanced), right-click your name > Copy User ID",
48
49
  },
49
50
  "slack": {
@@ -53,7 +54,6 @@ PLATFORMS = {
53
54
  "install_hint": "pip install slack-bolt",
54
55
  "extra_env": {"SLACK_APP_TOKEN": "App token (xapp-...)"},
55
56
  "allowed_users_env": "SLACK_ALLOWED_USERS",
56
- "home_channel_env": "SLACK_HOME_CHANNEL",
57
57
  "user_id_help": "Your Slack member ID (U...). Profile > More > Copy member ID",
58
58
  },
59
59
  "whatsapp": {
@@ -63,7 +63,6 @@ PLATFORMS = {
63
63
  "install_hint": "pip install aiohttp",
64
64
  "extra_env": {"WHATSAPP_PHONE_NUMBER_ID": "Phone number ID"},
65
65
  "allowed_users_env": "WHATSAPP_ALLOWED_USERS",
66
- "home_channel_env": "WHATSAPP_HOME_CHANNEL",
67
66
  "user_id_help": "Your WhatsApp phone number in E.164 (e.g. 15551234567, no +)",
68
67
  },
69
68
  }
@@ -79,8 +78,8 @@ def _save_env_vars(env_vars: Dict[str, Optional[str]]) -> Optional[Path]:
79
78
  """Atomically merge ``env_vars`` into ``~/.praisonai/.env`` (chmod 600).
80
79
 
81
80
  - Non-empty string values are written (updating existing keys).
82
- - ``None`` values **remove** the key from the file (supports "clear" updates
83
- so the user can drop an allowlist or home-channel).
81
+ - ``None`` values **remove** the key from the file (supports "clear" updates,
82
+ e.g. dropping an allowlist).
84
83
  - Empty-string values are skipped.
85
84
  Existing keys not referenced in ``env_vars`` are preserved. Written with a
86
85
  temp-then-rename to avoid partial writes.
@@ -196,9 +195,6 @@ def _generate_bot_yaml(platforms: List[str], agent_name: str = "assistant", agen
196
195
  allowed_env = info.get("allowed_users_env")
197
196
  if allowed_env:
198
197
  lines.append(f" allowed_users: ${{{allowed_env}}}")
199
- home_env = info.get("home_channel_env")
200
- if home_env:
201
- lines.append(f" home_channel: ${{{home_env}}}")
202
198
  if plat == "whatsapp":
203
199
  lines.append(" phone_number_id: ${WHATSAPP_PHONE_NUMBER_ID}")
204
200
  # Gateway-style routing (ignored by `bot start` which uses top-level routing).
@@ -347,9 +343,8 @@ class OnboardWizard:
347
343
  os.environ[extra_env] = extra_val
348
344
  env_to_save[extra_env] = extra_val
349
345
 
350
- # Step 2b: Security — allowlist + home channel (mirrors hermes)
346
+ # Step 2b: Security — allowlist (mirrors hermes)
351
347
  allowed_env = info.get("allowed_users_env")
352
- home_env = info.get("home_channel_env")
353
348
  if allowed_env:
354
349
  existing_allow = os.environ.get(allowed_env, "").strip()
355
350
  if existing_allow:
@@ -399,34 +394,8 @@ class OnboardWizard:
399
394
  " [yellow]⚠ Warning:[/yellow] no allowlist set — anyone who finds your bot can use it."
400
395
  )
401
396
 
402
- # Home channel (default = first allowed user) also updatable
403
- if home_env:
404
- existing_home = os.environ.get(home_env, "").strip()
405
- first_allowed = ""
406
- saved_allow = env_to_save.get(allowed_env, existing_allow)
407
- if isinstance(saved_allow, str) and saved_allow:
408
- first_allowed = saved_allow.split(",")[0].strip()
409
- default_home = existing_home or first_allowed
410
- if existing_home:
411
- console.print(
412
- f" [green]✓[/green] {home_env} = [cyan]{existing_home}[/cyan]"
413
- )
414
- prompt_label = (
415
- f" Update home channel for {info['name']}? (Enter = keep current)"
416
- )
417
- else:
418
- prompt_label = (
419
- f" Home channel / user ID for proactive messages ({home_env})"
420
- )
421
- home_val = Prompt.ask(
422
- prompt_label,
423
- default=default_home,
424
- show_default=bool(default_home),
425
- ).strip()
426
- if home_val and home_val != existing_home:
427
- os.environ[home_env] = home_val
428
- env_to_save[home_env] = home_val
429
- console.print(f" [green]✓[/green] Home channel set to {home_val}")
397
+ # Home-channel prompt intentionally removedsee PLATFORMS
398
+ # docstring above. No code path consumes home_channel today.
430
399
 
431
400
  # Persist everything collected above to ~/.praisonai/.env
432
401
  env_file = _save_env_vars(env_to_save)
@@ -448,11 +417,17 @@ class OnboardWizard:
448
417
  console.print(f"[red]✗ {str(e)[:100]}[/red]")
449
418
 
450
419
  # Step 4: Agent configuration
451
- console.print("\n[bold]Step 4: Configure your agent[/bold]\n")
452
- self.agent_name = Prompt.ask("Agent name", default="assistant")
453
- self.agent_instructions = Prompt.ask(
454
- "Agent instructions",
455
- default="You are a helpful AI assistant.",
420
+ #
421
+ # We no longer ask for an agent name and instructions up-front:
422
+ # 95% of first-time users pressed Enter through both prompts, and
423
+ # the remaining 5% are better served editing the generated bot.yaml
424
+ # afterwards (which also shows them the full schema). Defaults are
425
+ # already set in __init__.
426
+ console.print(
427
+ "\n[bold]Step 4: Agent defaults applied[/bold] "
428
+ f"[dim](name=[cyan]{self.agent_name}[/cyan], "
429
+ f"instructions=[cyan]{self.agent_instructions!r}[/cyan] — "
430
+ "edit bot.yaml to customise)[/dim]"
456
431
  )
457
432
 
458
433
  # Step 4b: Ensure a stable GATEWAY_AUTH_TOKEN is persisted. Without
@@ -470,6 +445,14 @@ class OnboardWizard:
470
445
  self._gateway_token = existing_gateway_token
471
446
 
472
447
  # Step 5: Generate config
448
+ #
449
+ # We write to the canonical default path without asking. An earlier
450
+ # free-text "Config file path" prompt caused real user pain: typing
451
+ # 'n' (meaning 'no') created a literal file named ``n`` in cwd. The
452
+ # canonical path is discoverable via ``praisonai doctor`` and is
453
+ # honoured by both ``praisonai bot start`` and ``praisonai gateway
454
+ # start`` with zero flags. Overwrite-confirm still guards existing
455
+ # configs so power users who hand-edited the file aren't surprised.
473
456
  console.print("\n[bold]Step 5: Generate configuration[/bold]\n")
474
457
  yaml_content = _generate_bot_yaml(
475
458
  self.selected_platforms,
@@ -478,19 +461,20 @@ class OnboardWizard:
478
461
  )
479
462
 
480
463
  from praisonai.cli._paths import default_bot_config_path
481
- default_cfg = str(default_bot_config_path())
482
- self.config_path = Prompt.ask("Config file path", default=default_cfg)
483
- # Ensure parent dir exists (e.g. ~/.praisonai/) before writing.
464
+ self.config_path = str(default_bot_config_path())
484
465
  os.makedirs(os.path.dirname(os.path.abspath(self.config_path)) or ".", exist_ok=True)
485
466
 
486
467
  if os.path.exists(self.config_path):
487
- if not Confirm.ask(f" {self.config_path} exists. Overwrite?", default=False):
488
- console.print(" [dim]Skipped[/dim]")
468
+ if not Confirm.ask(
469
+ f" {self.config_path} exists. Overwrite with fresh config?",
470
+ default=False,
471
+ ):
472
+ console.print(" [dim]Kept existing file[/dim]")
489
473
  return
490
474
 
491
475
  with open(self.config_path, "w") as f:
492
476
  f.write(yaml_content)
493
- console.print(f" [green]✓[/green] Written to {self.config_path}")
477
+ console.print(f" [green]✓[/green] Written to [cyan]{self.config_path}[/cyan]")
494
478
 
495
479
  # Step 6: Optional daemon install
496
480
  # Guard: refuse to install a daemon that has no tokens — it would loop
@@ -510,35 +494,67 @@ class OnboardWizard:
510
494
  " [dim]Re-run [cyan]praisonai onboard[/cyan] once you have the token(s) and "
511
495
  "the service will be installed automatically.[/dim]"
512
496
  )
513
- elif Confirm.ask("\nInstall as background service (daemon)?", default=True):
514
- try:
515
- from praisonai.daemon import install_daemon
516
- result = install_daemon(config_path=self.config_path)
517
- if result.get("ok"):
518
- console.print(f" [green]✓[/green] {result.get('message', 'Service installed')}")
519
- else:
520
- console.print(f" [red]✗[/red] {result.get('error', 'Install failed')}")
521
- except Exception as e:
522
- console.print(f" [red]✗[/red] {str(e)[:200]}")
523
-
524
- # Done commands referenced here must exist in `praisonai --help`.
497
+ else:
498
+ # Install the daemon by default — no prompt. The previous
499
+ # "Install as background service (daemon)? [Y/n]" question
500
+ # confused non-developer users ("what does daemon mean?") and
501
+ # 95% answered Yes anyway. If they really don't want it, they
502
+ # run `praisonai gateway uninstall` afterwards. This keeps the
503
+ # onboarding 'do-the-thing-for-me' feel instead of 'quiz me'.
504
+ daemon_success = self._install_daemon_with_feedback(
505
+ console.print, self.config_path
506
+ )
507
+
508
+ if 'daemon_success' not in locals():
509
+ daemon_success = False
510
+
511
+ # Done panel. Commands referenced here must exist in `praisonai --help`.
512
+ # OS-aware daemon management hints: non-developers struggle to find
513
+ # launchctl/systemctl invocations themselves, so we surface the exact
514
+ # line for their platform. Label ``ai.praison.bot`` is used for launchd,
515
+ # while ``praisonai-bot`` is used for systemd.
525
516
  _tok = getattr(self, "_gateway_token", "")
526
517
  _masked = (_tok[:4] + "…" + _tok[-4:]) if len(_tok) >= 10 else "(set)"
527
518
  _health_url = "http://127.0.0.1:8765/health"
528
- _info_url = f"http://127.0.0.1:8765/info?token={_tok}" if _tok else "http://127.0.0.1:8765/info"
519
+ _info_url = (
520
+ f"http://127.0.0.1:8765/info?token={_tok}"
521
+ if _tok
522
+ else "http://127.0.0.1:8765/info"
523
+ )
524
+ import platform as _platform # stdlib, free
525
+ _os = _platform.system().lower()
526
+ if _os == "darwin":
527
+ _restart_cmd = "launchctl kickstart -k gui/$(id -u)/ai.praison.bot"
528
+ elif _os == "linux":
529
+ _restart_cmd = "systemctl --user restart praisonai-bot"
530
+ elif _os == "windows":
531
+ _restart_cmd = "schtasks /End /TN PraisonAIGateway && schtasks /Run /TN PraisonAIGateway"
532
+ else:
533
+ _restart_cmd = "praisonai gateway install # re-run installer"
534
+ # Adjust headline based on daemon install success
535
+ daemon_running_text = (
536
+ "Your bot is now running in the background." if daemon_success
537
+ else "Configuration complete."
538
+ )
539
+
529
540
  console.print(Panel(
530
- f"[bold green]Setup complete![/bold green]\n\n"
541
+ f"[bold green]Setup complete![/bold green] "
542
+ f"[dim]{daemon_running_text}[/dim]\n\n"
531
543
  f"[bold]🦞 Dashboard UI:[/bold]\n"
532
544
  f" [cyan]praisonai claw[/cyan] [dim]→ http://127.0.0.1:8082[/dim]\n\n"
533
- f"[bold]Start your bot (foreground):[/bold]\n"
534
- f" [cyan]praisonai bot start[/cyan]\n\n"
535
545
  f"[bold]Gateway endpoints:[/bold]\n"
536
546
  f" Health (public): [cyan]{_health_url}[/cyan]\n"
537
547
  f" Info (authed): [cyan]{_info_url}[/cyan]\n"
538
548
  f" [dim]Token {_masked} stored in ~/.praisonai/.env as GATEWAY_AUTH_TOKEN[/dim]\n\n"
539
- f"[bold]Check everything:[/bold]\n"
540
- f" [cyan]praisonai doctor[/cyan]\n"
541
- f" [cyan]praisonai gateway status[/cyan]",
549
+ f"[bold]Manage the daemon:[/bold]\n"
550
+ f" [cyan]praisonai gateway status[/cyan] [dim]# is it running?[/dim]\n"
551
+ f" [cyan]praisonai gateway logs[/cyan] [dim]# tail the logs[/dim]\n"
552
+ f" [cyan]{_restart_cmd}[/cyan]\n"
553
+ f" [cyan]praisonai gateway uninstall[/cyan] [dim]# remove the daemon[/dim]\n\n"
554
+ f"[bold]Re-run or reconfigure:[/bold]\n"
555
+ f" [cyan]praisonai onboard[/cyan] [dim]# change tokens / add platforms[/dim]\n"
556
+ f" [cyan]praisonai gateway start[/cyan] [dim]# run in foreground (skip the daemon)[/dim]\n"
557
+ f" [cyan]praisonai doctor[/cyan] [dim]# diagnose the whole stack[/dim]",
542
558
  title="✅ Done",
543
559
  border_style="green",
544
560
  ))
@@ -549,11 +565,38 @@ class OnboardWizard:
549
565
  bot = Bot(platform, token=self.tokens.get(platform, ""))
550
566
  return await bot.probe()
551
567
 
568
+ def _install_daemon_with_feedback(self, print_fn, config_path: str) -> bool:
569
+ """Install daemon with error handling and feedback. Returns success status."""
570
+ try:
571
+ # First check if already installed to make idempotent
572
+ from praisonai.daemon import get_daemon_status, install_daemon
573
+ status = get_daemon_status()
574
+ if status.get("installed") and status.get("running"):
575
+ print_fn(
576
+ " ✓ Daemon already installed and running"
577
+ )
578
+ return True
579
+
580
+ result = install_daemon(config_path=config_path)
581
+ if result.get("ok"):
582
+ print_fn(
583
+ f" ✓ {result.get('message', 'Service installed')}"
584
+ )
585
+ return True
586
+ else:
587
+ print_fn(
588
+ f" ✗ {result.get('error', 'Install failed')}"
589
+ )
590
+ return False
591
+ except Exception as e:
592
+ print_fn(f" ✗ {str(e)[:200]}")
593
+ return False
594
+
552
595
  def _run_plain(self) -> None:
553
596
  """Fallback for when rich is not available.
554
597
 
555
598
  Parity with the rich path: hidden token input via ``getpass``,
556
- allowlist + home-channel prompts, and persistence to
599
+ allowlist prompt, and persistence to
557
600
  ``~/.praisonai/.env``.
558
601
  """
559
602
  print("\n=== PraisonAI Bot Setup ===\n")
@@ -565,7 +608,10 @@ class OnboardWizard:
565
608
  for plat in self.selected_platforms:
566
609
  info = PLATFORMS.get(plat, {})
567
610
  env_var = info.get("token_env", f"{plat.upper()}_BOT_TOKEN")
568
- if not os.environ.get(env_var):
611
+ existing = os.environ.get(env_var)
612
+ if existing:
613
+ self.tokens[plat] = existing
614
+ else:
569
615
  print(f"\n {info.get('token_help', '')}")
570
616
  token = getpass.getpass(f" {env_var} (hidden): ").strip()
571
617
  if token:
@@ -583,14 +629,8 @@ class OnboardWizard:
583
629
  else:
584
630
  print(" ⚠ No allowlist — anyone who finds your bot can use it.")
585
631
 
586
- home_env = info.get("home_channel_env")
587
- if home_env and not os.environ.get(home_env):
588
- first = env_to_save.get(allowed_env, "").split(",")[0].strip() if allowed_env else ""
589
- prompt_text = f" Home channel ({home_env})" + (f" [{first}]: " if first else ": ")
590
- home = input(prompt_text).strip() or first
591
- if home:
592
- os.environ[home_env] = home
593
- env_to_save[home_env] = home
632
+ # Home-channel prompt intentionally removed — see PLATFORMS
633
+ # docstring above. No code path consumes home_channel today.
594
634
 
595
635
  env_file = _save_env_vars(env_to_save)
596
636
  yaml_content = _generate_bot_yaml(self.selected_platforms)
@@ -602,7 +642,22 @@ class OnboardWizard:
602
642
  print(f"\n✓ Written to {cfg_path}")
603
643
  if env_file:
604
644
  print(f"✓ Secrets saved to {env_file} (chmod 600)")
605
- print(f"Start with: praisonai bot start --config {cfg_path}")
645
+
646
+ # Parity with rich flow: install daemon by default (no prompt)
647
+ # when every selected platform has a token captured.
648
+ if self.selected_platforms and all(
649
+ p in self.tokens or os.environ.get(
650
+ PLATFORMS.get(p, {}).get("token_env", f"{p.upper()}_BOT_TOKEN")
651
+ )
652
+ for p in self.selected_platforms
653
+ ):
654
+ self._install_daemon_with_feedback(print, str(cfg_path))
655
+
656
+ print("\nNext steps:")
657
+ print(" praisonai gateway status # check if the daemon is running")
658
+ print(" praisonai gateway logs # see what the bot is doing")
659
+ print(" praisonai onboard # change tokens / add platforms")
660
+ print(f" praisonai gateway start --config {cfg_path} # foreground run (no daemon)")
606
661
 
607
662
 
608
663
  def run_onboard() -> None:
@@ -57,7 +57,7 @@ class CloudDeployer:
57
57
  file.write("FROM python:3.11-slim\n")
58
58
  file.write("WORKDIR /app\n")
59
59
  file.write("COPY . .\n")
60
- file.write("RUN pip install flask praisonai==4.6.26 gunicorn markdown\n")
60
+ file.write("RUN pip install flask praisonai==4.6.28 gunicorn markdown\n")
61
61
  file.write("EXPOSE 8080\n")
62
62
  file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
63
63
 
@@ -1364,7 +1364,34 @@ class WebSocketGateway:
1364
1364
  logger.warning(f"Default agent '{default_agent_id}' not found for channel '{channel_name}', skipping")
1365
1365
  continue
1366
1366
 
1367
- config = BotConfig(token=token)
1367
+ # Extract allowlist configuration from channel config
1368
+ _raw_allowed = ch_cfg.get("allowed_users") or []
1369
+ if isinstance(_raw_allowed, str):
1370
+ # Env-expanded string like "12345,67890"; split on commas.
1371
+ _raw_allowed = [s.strip() for s in _raw_allowed.split(",") if s.strip()]
1372
+
1373
+ _raw_channels = ch_cfg.get("allowed_channels") or []
1374
+ if isinstance(_raw_channels, str):
1375
+ _raw_channels = [s.strip() for s in _raw_channels.split(",") if s.strip()]
1376
+
1377
+ # Extract group policy setting
1378
+ group_policy = ch_cfg.get("group_policy", "mention_only")
1379
+ mention_required = (group_policy == "mention_only")
1380
+
1381
+ config = BotConfig(
1382
+ token=token,
1383
+ allowed_users=list(_raw_allowed),
1384
+ allowed_channels=list(_raw_channels),
1385
+ mention_required=mention_required,
1386
+ )
1387
+
1388
+ # Warn if no allowlist is configured
1389
+ if not config.allowed_users:
1390
+ logger.warning(
1391
+ "Channel %r has no allowed_users — bot accepts messages from everyone. "
1392
+ "Re-run `praisonai onboard` to configure.",
1393
+ channel_name,
1394
+ )
1368
1395
 
1369
1396
  try:
1370
1397
  bot = self._create_bot(channel_type, token, default_agent, config, ch_cfg)
@@ -0,0 +1 @@
1
+ __version__ = "4.6.28"
@@ -12,7 +12,7 @@ dependencies = [
12
12
  "rich>=13.7",
13
13
  "markdown>=3.5",
14
14
  "pyparsing>=3.0.0",
15
- "praisonaiagents>=1.6.26",
15
+ "praisonaiagents>=1.6.28",
16
16
  "python-dotenv>=0.19.0",
17
17
  "litellm>=1.81.0,<=1.82.6",
18
18
  "PyYAML>=6.0",
@@ -1 +0,0 @@
1
- __version__ = "4.6.26"
File without changes
File without changes