PraisonAI 4.6.122__tar.gz → 4.6.123__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 (674) hide show
  1. {praisonai-4.6.122 → praisonai-4.6.123}/PKG-INFO +5 -15
  2. {praisonai-4.6.122 → praisonai-4.6.123}/PraisonAI.egg-info/PKG-INFO +5 -15
  3. {praisonai-4.6.122 → praisonai-4.6.123}/PraisonAI.egg-info/requires.txt +4 -14
  4. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/tools.py +65 -9
  5. praisonai-4.6.123/praisonai/scheduler/condition_gate.py +8 -0
  6. praisonai-4.6.123/praisonai/scheduler/executor.py +8 -0
  7. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/run_policy.py +2 -2
  8. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/storage/__init__.py +19 -4
  9. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/dependency_checker.py +81 -22
  10. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/tools_doctor.py +55 -2
  11. praisonai-4.6.123/praisonai/train.py +25 -0
  12. praisonai-4.6.123/praisonai/version.py +1 -0
  13. {praisonai-4.6.122 → praisonai-4.6.123}/pyproject.toml +5 -18
  14. praisonai-4.6.122/praisonai/scheduler/condition_gate.py +0 -111
  15. praisonai-4.6.122/praisonai/scheduler/executor.py +0 -597
  16. praisonai-4.6.122/praisonai/train.py +0 -590
  17. praisonai-4.6.122/praisonai/version.py +0 -1
  18. {praisonai-4.6.122 → praisonai-4.6.123}/PraisonAI.egg-info/SOURCES.txt +0 -0
  19. {praisonai-4.6.122 → praisonai-4.6.123}/PraisonAI.egg-info/dependency_links.txt +0 -0
  20. {praisonai-4.6.122 → praisonai-4.6.123}/PraisonAI.egg-info/entry_points.txt +0 -0
  21. {praisonai-4.6.122 → praisonai-4.6.123}/PraisonAI.egg-info/top_level.txt +0 -0
  22. {praisonai-4.6.122 → praisonai-4.6.123}/README.md +0 -0
  23. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/README.md +0 -0
  24. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/__init__.py +0 -0
  25. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/__main__.py +0 -0
  26. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_approval_spec.py +0 -0
  27. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_async_bridge.py +0 -0
  28. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_bootstrap.py +0 -0
  29. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/__init__.py +0 -0
  30. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/api_md.py +0 -0
  31. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/__init__.py +0 -0
  32. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/docs_extractor.py +0 -0
  33. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/docs_generator.py +0 -0
  34. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/generator.py +0 -0
  35. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  36. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/python_extractor.py +0 -0
  37. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  38. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/rust_extractor.py +0 -0
  39. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  40. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  41. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  42. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_entrypoint.py +0 -0
  43. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_framework_availability.py +0 -0
  44. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_lazy_cache.py +0 -0
  45. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_lockmap.py +0 -0
  46. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_logging.py +0 -0
  47. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_registry.py +0 -0
  48. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/_safe_loader.py +0 -0
  49. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/acp/__init__.py +0 -0
  50. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/acp/config.py +0 -0
  51. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/acp/safe_edit.py +0 -0
  52. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/acp/server.py +0 -0
  53. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/acp/session.py +0 -0
  54. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/adapters/__init__.py +0 -0
  55. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/adapters/readers.py +0 -0
  56. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/adapters/rerankers.py +0 -0
  57. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/adapters/retrievers.py +0 -0
  58. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/adapters/vector_stores.py +0 -0
  59. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/agent.py +0 -0
  60. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/agent_scheduler.py +0 -0
  61. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/agents_generator.py +0 -0
  62. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/api/agent_invoke.py +0 -0
  63. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/api/call.py +0 -0
  64. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/app/__init__.py +0 -0
  65. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/app/agentos.py +0 -0
  66. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/async_agent_scheduler.py +0 -0
  67. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/audit/__init__.py +0 -0
  68. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/audit/agent_centric.py +0 -0
  69. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/auto.py +0 -0
  70. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/bots/__init__.py +0 -0
  71. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/__init__.py +0 -0
  72. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/agent.py +0 -0
  73. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/benchmark.py +0 -0
  74. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/cdp_agent.py +0 -0
  75. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/cdp_utils.py +0 -0
  76. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/cli.py +0 -0
  77. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/diagnostics.py +0 -0
  78. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/launcher.py +0 -0
  79. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/playwright_agent.py +0 -0
  80. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/profiling.py +0 -0
  81. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/protocol.py +0 -0
  82. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/report.py +0 -0
  83. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/server.py +0 -0
  84. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/sessions.py +0 -0
  85. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/browser/video.py +0 -0
  86. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/__init__.py +0 -0
  87. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/a2a.py +0 -0
  88. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/assistants.py +0 -0
  89. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/audio.py +0 -0
  90. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/batches.py +0 -0
  91. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/completions.py +0 -0
  92. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/container_files.py +0 -0
  93. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/containers.py +0 -0
  94. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/embeddings.py +0 -0
  95. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/files.py +0 -0
  96. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/fine_tuning.py +0 -0
  97. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/guardrails.py +0 -0
  98. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/images.py +0 -0
  99. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/mcp.py +0 -0
  100. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/messages.py +0 -0
  101. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/moderations.py +0 -0
  102. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/ocr.py +0 -0
  103. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/passthrough.py +0 -0
  104. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/rag.py +0 -0
  105. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/realtime.py +0 -0
  106. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/rerank.py +0 -0
  107. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/responses.py +0 -0
  108. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/search.py +0 -0
  109. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/skills.py +0 -0
  110. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/vector_store_files.py +0 -0
  111. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/vector_stores.py +0 -0
  112. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/capabilities/videos.py +0 -0
  113. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/claw/__init__.py +0 -0
  114. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/__init__.py +0 -0
  115. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/_paths.py +0 -0
  116. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/_shim.py +0 -0
  117. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/_warnings.py +0 -0
  118. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/app.py +0 -0
  119. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/approval_backend.py +0 -0
  120. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/branding.py +0 -0
  121. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/__init__.py +0 -0
  122. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/acp.py +0 -0
  123. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/agent.py +0 -0
  124. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/agents.py +0 -0
  125. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/app.py +0 -0
  126. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/attach.py +0 -0
  127. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/audit.py +0 -0
  128. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/auth.py +0 -0
  129. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/batch.py +0 -0
  130. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/benchmark.py +0 -0
  131. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/bot.py +0 -0
  132. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/browser.py +0 -0
  133. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/call.py +0 -0
  134. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/chat.py +0 -0
  135. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/checkpoint.py +0 -0
  136. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/claw.py +0 -0
  137. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/code.py +0 -0
  138. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/command.py +0 -0
  139. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/commit.py +0 -0
  140. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/completion.py +0 -0
  141. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/config.py +0 -0
  142. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/context.py +0 -0
  143. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/daemon.py +0 -0
  144. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/dashboard.py +0 -0
  145. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/debug.py +0 -0
  146. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/deploy.py +0 -0
  147. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/diag.py +0 -0
  148. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/docs.py +0 -0
  149. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/doctor.py +0 -0
  150. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/endpoints.py +0 -0
  151. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/environment.py +0 -0
  152. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/eval.py +0 -0
  153. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/examples.py +0 -0
  154. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/flow.py +0 -0
  155. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/gateway.py +0 -0
  156. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/github.py +0 -0
  157. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/hooks.py +0 -0
  158. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/identity.py +0 -0
  159. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/init.py +0 -0
  160. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/kanban.py +0 -0
  161. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/knowledge.py +0 -0
  162. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/langextract.py +0 -0
  163. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/langfuse.py +0 -0
  164. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/loop.py +0 -0
  165. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/lsp.py +0 -0
  166. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/managed.py +0 -0
  167. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/mcp.py +0 -0
  168. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/memory.py +0 -0
  169. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/mint_link.py +0 -0
  170. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/models.py +0 -0
  171. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/n8n.py +0 -0
  172. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/obs.py +0 -0
  173. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/onboard.py +0 -0
  174. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/package.py +0 -0
  175. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/pairing.py +0 -0
  176. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/paths.py +0 -0
  177. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/permissions.py +0 -0
  178. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/plugins.py +0 -0
  179. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/port.py +0 -0
  180. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/profile.py +0 -0
  181. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/publish.py +0 -0
  182. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/rag.py +0 -0
  183. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/realtime.py +0 -0
  184. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/recipe.py +0 -0
  185. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/registry.py +0 -0
  186. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/replay.py +0 -0
  187. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/research.py +0 -0
  188. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/retrieval.py +0 -0
  189. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/rules.py +0 -0
  190. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/run.py +0 -0
  191. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/sandbox.py +0 -0
  192. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/schedule.py +0 -0
  193. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/serve.py +0 -0
  194. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/session.py +0 -0
  195. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/setup.py +0 -0
  196. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/skills.py +0 -0
  197. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/standardise.py +0 -0
  198. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/templates.py +0 -0
  199. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/test.py +0 -0
  200. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/todo.py +0 -0
  201. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/tools.py +0 -0
  202. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/traces.py +0 -0
  203. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/tracker.py +0 -0
  204. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/train.py +0 -0
  205. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/ui.py +0 -0
  206. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/up.py +0 -0
  207. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/validate.py +0 -0
  208. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/version.py +0 -0
  209. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/commands/workflow.py +0 -0
  210. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/config_loader.py +0 -0
  211. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/configuration/__init__.py +0 -0
  212. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/configuration/config.schema.json +0 -0
  213. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/execution/__init__.py +0 -0
  214. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/fallback_schema.py +0 -0
  215. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/__init__.py +0 -0
  216. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/acp.py +0 -0
  217. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/agent_scheduler.py +0 -0
  218. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/agent_tools.py +0 -0
  219. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/approval.py +0 -0
  220. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/background.py +0 -0
  221. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/bots_cli.py +0 -0
  222. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/deploy.py +0 -0
  223. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/endpoints.py +0 -0
  224. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/eval.py +0 -0
  225. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/gateway.py +0 -0
  226. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/ollama.py +0 -0
  227. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/onboard.py +0 -0
  228. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/persistence.py +0 -0
  229. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/recipe.py +0 -0
  230. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/recipe_optimizer.py +0 -0
  231. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/registry.py +0 -0
  232. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/sandbox_cli.py +0 -0
  233. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/serve.py +0 -0
  234. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/templates.py +0 -0
  235. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/tui/__init__.py +0 -0
  236. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/tui/app.py +0 -0
  237. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/features/workflow.py +0 -0
  238. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/interactive/__init__.py +0 -0
  239. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/interactive/async_tui.py +0 -0
  240. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/interactive/core.py +0 -0
  241. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/langfuse_client.py +0 -0
  242. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/__init__.py +0 -0
  243. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/direct_prompt.py +0 -0
  244. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
  245. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
  246. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
  247. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/framework_run.py +0 -0
  248. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
  249. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/interactive_legacy.py +0 -0
  250. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
  251. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/legacy/workflow_commands.py +0 -0
  252. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/main.py +0 -0
  253. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/output/__init__.py +0 -0
  254. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/schedule_cli.py +0 -0
  255. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/schema_provider.py +0 -0
  256. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/session/__init__.py +0 -0
  257. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/state/__init__.py +0 -0
  258. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/ui/__init__.py +0 -0
  259. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/unified_schema.py +0 -0
  260. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli/utils/__init__.py +0 -0
  261. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/cli_backends/__init__.py +0 -0
  262. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/__init__.py +0 -0
  263. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/agent_tools.py +0 -0
  264. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/diff/__init__.py +0 -0
  265. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/diff/diff_strategy.py +0 -0
  266. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/tools/__init__.py +0 -0
  267. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/tools/apply_diff.py +0 -0
  268. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/tools/execute_command.py +0 -0
  269. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/tools/list_files.py +0 -0
  270. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/tools/read_file.py +0 -0
  271. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/tools/search_replace.py +0 -0
  272. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/tools/write_file.py +0 -0
  273. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/utils/__init__.py +0 -0
  274. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/utils/file_utils.py +0 -0
  275. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/utils/ignore_utils.py +0 -0
  276. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/code/utils/text_utils.py +0 -0
  277. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/config/__init__.py +0 -0
  278. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/config/schema.py +0 -0
  279. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/config/validator.py +0 -0
  280. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/__init__.py +0 -0
  281. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/_storage_path.py +0 -0
  282. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/artifact_store.py +0 -0
  283. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/config.py +0 -0
  284. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/history_store.py +0 -0
  285. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/queue.py +0 -0
  286. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/setup.py +0 -0
  287. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/context/terminal_logger.py +0 -0
  288. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/daemon/__init__.py +0 -0
  289. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/db/__init__.py +0 -0
  290. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/db/adapter.py +0 -0
  291. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/__init__.py +0 -0
  292. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/api.py +0 -0
  293. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/docker.py +0 -0
  294. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/doctor.py +0 -0
  295. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/main.py +0 -0
  296. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/models.py +0 -0
  297. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/providers/__init__.py +0 -0
  298. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/providers/_registry.py +0 -0
  299. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/providers/aws.py +0 -0
  300. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/providers/azure.py +0 -0
  301. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/providers/base.py +0 -0
  302. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/providers/gcp.py +0 -0
  303. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/deploy/schema.py +0 -0
  304. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/__init__.py +0 -0
  305. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/a2u_server.py +0 -0
  306. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/discovery.py +0 -0
  307. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/__init__.py +0 -0
  308. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/a2a.py +0 -0
  309. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/a2u.py +0 -0
  310. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/agents_api.py +0 -0
  311. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/base.py +0 -0
  312. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/mcp.py +0 -0
  313. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/openai_compat.py +0 -0
  314. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/recipe.py +0 -0
  315. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  316. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/registry.py +0 -0
  317. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/endpoints/server.py +0 -0
  318. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/flow/__init__.py +0 -0
  319. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/flow/client.py +0 -0
  320. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  321. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  322. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/flow/components/__init__.py +0 -0
  323. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/flow/converter.py +0 -0
  324. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/flow/helpers.py +0 -0
  325. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/__init__.py +0 -0
  326. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/_config_builder.py +0 -0
  327. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  328. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/base.py +0 -0
  329. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  330. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  331. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/registry.py +0 -0
  332. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/validators.py +0 -0
  333. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/framework_adapters/workflow_framework.py +0 -0
  334. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/gateway/__init__.py +0 -0
  335. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/inbuilt_tools/__init__.py +0 -0
  336. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  337. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/inc/__init__.py +0 -0
  338. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/inc/config.py +0 -0
  339. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/inc/models.py +0 -0
  340. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/__init__.py +0 -0
  341. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/bridges/__init__.py +0 -0
  342. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  343. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/bridges/hooks_query.py +0 -0
  344. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  345. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/bridges/schedules_runner.py +0 -0
  346. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/bridges/usage_bridge.py +0 -0
  347. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/bridges/workflows_service.py +0 -0
  348. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/context_files.py +0 -0
  349. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/gateway_host.py +0 -0
  350. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/host_app.py +0 -0
  351. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/pages/__init__.py +0 -0
  352. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/pages/bot_health.py +0 -0
  353. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integration/pages/workflow_runs.py +0 -0
  354. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/__init__.py +0 -0
  355. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/_session_info.py +0 -0
  356. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/_tool_aliases.py +0 -0
  357. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/_unified_registry.py +0 -0
  358. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/backend_registry.py +0 -0
  359. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/base.py +0 -0
  360. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/claude_code.py +0 -0
  361. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/codex_cli.py +0 -0
  362. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/compute/__init__.py +0 -0
  363. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/compute/daytona.py +0 -0
  364. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/compute/docker.py +0 -0
  365. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/compute/e2b.py +0 -0
  366. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/compute/flyio.py +0 -0
  367. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/compute/local.py +0 -0
  368. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/compute/modal_compute.py +0 -0
  369. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/cursor_cli.py +0 -0
  370. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/db_session_adapter.py +0 -0
  371. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/gemini_cli.py +0 -0
  372. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/hosted_agent.py +0 -0
  373. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/local_agent.py +0 -0
  374. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/managed_agents.py +0 -0
  375. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/managed_local.py +0 -0
  376. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/registry.py +0 -0
  377. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/integrations/sandboxed_agent.py +0 -0
  378. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/jobs/__init__.py +0 -0
  379. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/jobs/executor.py +0 -0
  380. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/jobs/models.py +0 -0
  381. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/jobs/path_validation.py +0 -0
  382. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/jobs/router.py +0 -0
  383. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/jobs/server.py +0 -0
  384. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/jobs/store.py +0 -0
  385. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/kanban/__init__.py +0 -0
  386. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/llm/__init__.py +0 -0
  387. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/llm/catalogue.py +0 -0
  388. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/llm/config.py +0 -0
  389. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/llm/credentials.py +0 -0
  390. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/llm/env.py +0 -0
  391. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/llm/gateways.py +0 -0
  392. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/llm/registry.py +0 -0
  393. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/__init__.py +0 -0
  394. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/__init__.py +0 -0
  395. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/agents.py +0 -0
  396. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/capabilities.py +0 -0
  397. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
  398. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
  399. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/knowledge.py +0 -0
  400. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/memory.py +0 -0
  401. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/prompts.py +0 -0
  402. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/resources.py +0 -0
  403. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
  404. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/auth/__init__.py +0 -0
  405. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/auth/api_key.py +0 -0
  406. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/auth/oauth.py +0 -0
  407. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/auth/oidc.py +0 -0
  408. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/auth/scopes.py +0 -0
  409. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/cli.py +0 -0
  410. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/elicitation.py +0 -0
  411. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/icons.py +0 -0
  412. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/recipe_adapter.py +0 -0
  413. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/recipe_cli.py +0 -0
  414. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/registry.py +0 -0
  415. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/sampling.py +0 -0
  416. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/server.py +0 -0
  417. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/tasks.py +0 -0
  418. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/tool_index.py +0 -0
  419. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/transports/__init__.py +0 -0
  420. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/transports/http_stream.py +0 -0
  421. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/mcp_server/transports/stdio.py +0 -0
  422. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/n8n/__init__.py +0 -0
  423. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/n8n/client.py +0 -0
  424. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/n8n/converter.py +0 -0
  425. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/n8n/preview.py +0 -0
  426. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/n8n/reverse_converter.py +0 -0
  427. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/observability/__init__.py +0 -0
  428. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/observability/hooks.py +0 -0
  429. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/observability/langextract.py +0 -0
  430. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/observability/langfuse.py +0 -0
  431. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/__init__.py +0 -0
  432. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/_valkey_client.py +0 -0
  433. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/config.py +0 -0
  434. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/__init__.py +0 -0
  435. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/_sql_base.py +0 -0
  436. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
  437. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/async_mysql.py +0 -0
  438. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/async_postgres.py +0 -0
  439. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  440. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/base.py +0 -0
  441. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/json_store.py +0 -0
  442. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/mysql.py +0 -0
  443. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/postgres.py +0 -0
  444. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/singlestore.py +0 -0
  445. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/sqlite.py +0 -0
  446. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/supabase.py +0 -0
  447. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/surrealdb.py +0 -0
  448. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
  449. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/conversation/turso.py +0 -0
  450. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/factory.py +0 -0
  451. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/hooks/__init__.py +0 -0
  452. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  453. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/__init__.py +0 -0
  454. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/base.py +0 -0
  455. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/cassandra.py +0 -0
  456. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/chroma.py +0 -0
  457. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  458. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  459. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/couchbase.py +0 -0
  460. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/lancedb.py +0 -0
  461. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  462. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  463. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  464. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/milvus.py +0 -0
  465. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  466. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/pgvector.py +0 -0
  467. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/pinecone.py +0 -0
  468. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/qdrant.py +0 -0
  469. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  470. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  471. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  472. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  473. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  474. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/knowledge/weaviate.py +0 -0
  475. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/migrations/__init__.py +0 -0
  476. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/migrations/manager.py +0 -0
  477. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/orchestrator.py +0 -0
  478. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/registry.py +0 -0
  479. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/__init__.py +0 -0
  480. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/async_mongodb.py +0 -0
  481. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/base.py +0 -0
  482. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/dynamodb.py +0 -0
  483. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/firestore.py +0 -0
  484. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/gcs.py +0 -0
  485. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/memory.py +0 -0
  486. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/mongodb.py +0 -0
  487. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/redis.py +0 -0
  488. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/upstash.py +0 -0
  489. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/state/valkey.py +0 -0
  490. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/tests/__init__.py +0 -0
  491. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/tests/test_all_backends.py +0 -0
  492. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
  493. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
  494. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/profiler.py +0 -0
  495. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/public/fantasy.svg +0 -0
  496. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/public/game.svg +0 -0
  497. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/public/movie.svg +0 -0
  498. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/public/thriller.svg +0 -0
  499. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/push/__init__.py +0 -0
  500. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/push/client.py +0 -0
  501. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/push/transports.py +0 -0
  502. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/__init__.py +0 -0
  503. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/bridge.py +0 -0
  504. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/core.py +0 -0
  505. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/exceptions.py +0 -0
  506. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/history.py +0 -0
  507. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/models.py +0 -0
  508. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/operations.py +0 -0
  509. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/policy.py +0 -0
  510. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/registry.py +0 -0
  511. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/runtime.py +0 -0
  512. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/security.py +0 -0
  513. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/serve.py +0 -0
  514. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/recipe/server.py +0 -0
  515. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/__init__.py +0 -0
  516. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/analyzer.py +0 -0
  517. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/applier.py +0 -0
  518. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/judge.py +0 -0
  519. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/plan.py +0 -0
  520. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/player.py +0 -0
  521. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/reader.py +0 -0
  522. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/storage.py +0 -0
  523. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/replay/writer.py +0 -0
  524. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/runtime/__init__.py +0 -0
  525. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/runtime/__main__.py +0 -0
  526. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/__init__.py +0 -0
  527. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/_compat.py +0 -0
  528. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/_registry.py +0 -0
  529. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/_shell.py +0 -0
  530. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/daytona.py +0 -0
  531. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/docker.py +0 -0
  532. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/e2b.py +0 -0
  533. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/modal.py +0 -0
  534. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/sandlock.py +0 -0
  535. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/ssh.py +0 -0
  536. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/sandbox/subprocess.py +0 -0
  537. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/README.md +0 -0
  538. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/__init__.py +0 -0
  539. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/_base_scheduler.py +0 -0
  540. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/_dispatch.py +0 -0
  541. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/agent_scheduler.py +0 -0
  542. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/async_agent_scheduler.py +0 -0
  543. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/base.py +0 -0
  544. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  545. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/daemon_manager.py +0 -0
  546. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/deployment.py +0 -0
  547. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/shared.py +0 -0
  548. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/state_manager.py +0 -0
  549. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/suggestion_engine.py +0 -0
  550. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/scheduler/yaml_loader.py +0 -0
  551. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/security/__init__.py +0 -0
  552. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/security/audit.py +0 -0
  553. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/security/injection.py +0 -0
  554. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/security/protected.py +0 -0
  555. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/setup/__init__.py +0 -0
  556. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/setup/build.py +0 -0
  557. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/setup/config.yaml +0 -0
  558. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/setup/post_install.py +0 -0
  559. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/setup/setup_conda_env.py +0 -0
  560. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/setup/setup_conda_env.sh +0 -0
  561. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/setup.py +0 -0
  562. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/__init__.py +0 -0
  563. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/ai_generator.py +0 -0
  564. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/config.py +0 -0
  565. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/dedupe.py +0 -0
  566. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/discovery.py +0 -0
  567. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/drift.py +0 -0
  568. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/engine.py +0 -0
  569. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/enhanced_templates.py +0 -0
  570. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/example_verifier.py +0 -0
  571. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/manifest.py +0 -0
  572. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/models.py +0 -0
  573. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/reports.py +0 -0
  574. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/templates.py +0 -0
  575. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/undo_redo.py +0 -0
  576. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/standardise/validator.py +0 -0
  577. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/storage/dynamodb_adapter.py +0 -0
  578. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/storage/mongodb_adapter.py +0 -0
  579. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/storage/postgresql_adapter.py +0 -0
  580. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/storage/redis_adapter.py +0 -0
  581. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/storage/valkey_adapter.py +0 -0
  582. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/__init__.py +0 -0
  583. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/batch_source.py +0 -0
  584. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/cli_docs_source.py +0 -0
  585. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/discovery.py +0 -0
  586. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/docs_source.py +0 -0
  587. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/examples_source.py +0 -0
  588. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/executor.py +0 -0
  589. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/models.py +0 -0
  590. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/report_viewer.py +0 -0
  591. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/reporter.py +0 -0
  592. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/suite_runner/runner.py +0 -0
  593. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/__init__.py +0 -0
  594. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/cache.py +0 -0
  595. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/discovery.py +0 -0
  596. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/loader.py +0 -0
  597. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/registry.py +0 -0
  598. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/resolver.py +0 -0
  599. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/security.py +0 -0
  600. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/templates/tool_override.py +0 -0
  601. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tool_registry.py +0 -0
  602. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tool_resolver.py +0 -0
  603. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tools/__init__.py +0 -0
  604. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tools/audio.py +0 -0
  605. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tools/glob_tool.py +0 -0
  606. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tools/grep_tool.py +0 -0
  607. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tools/kanban_tools.py +0 -0
  608. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tools/multiedit.py +0 -0
  609. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/tools/skill_manage.py +0 -0
  610. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/__init__.py +0 -0
  611. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/_ollama.py +0 -0
  612. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/agents/__init__.py +0 -0
  613. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/agents/grader.py +0 -0
  614. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/agents/hook.py +0 -0
  615. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/agents/models.py +0 -0
  616. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/agents/orchestrator.py +0 -0
  617. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/agents/storage.py +0 -0
  618. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/llm/__init__.py +0 -0
  619. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train/llm/trainer.py +0 -0
  620. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/train_vision.py +0 -0
  621. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/README.md +0 -0
  622. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/_aiui_datastore.py +0 -0
  623. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/_external_agents.py +0 -0
  624. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/callbacks.py +0 -0
  625. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/components/aicoder.py +0 -0
  626. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/chainlit.md +0 -0
  627. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/bn.json +0 -0
  628. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/en-US.json +0 -0
  629. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/gu.json +0 -0
  630. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/he-IL.json +0 -0
  631. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/hi.json +0 -0
  632. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/kn.json +0 -0
  633. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/ml.json +0 -0
  634. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/mr.json +0 -0
  635. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/ta.json +0 -0
  636. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/te.json +0 -0
  637. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/config/translations/zh-CN.json +0 -0
  638. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/context.py +0 -0
  639. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/database_config.py +0 -0
  640. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/public/fantasy.svg +0 -0
  641. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/public/game.svg +0 -0
  642. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/public/logo_dark.png +0 -0
  643. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/public/logo_light.png +0 -0
  644. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/public/movie.svg +0 -0
  645. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/public/praison.css +0 -0
  646. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/public/thriller.svg +0 -0
  647. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui/tools.md +0 -0
  648. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_agents/__init__.py +0 -0
  649. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_agents/default_app.py +0 -0
  650. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_bot/__init__.py +0 -0
  651. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_bot/default_app.py +0 -0
  652. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_chat/__init__.py +0 -0
  653. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_chat/default_app.py +0 -0
  654. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_dashboard/default_app.py +0 -0
  655. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_realtime/__init__.py +0 -0
  656. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/ui_realtime/default_app.py +0 -0
  657. {praisonai-4.6.122 → praisonai-4.6.123}/praisonai/upload_vision.py +0 -0
  658. {praisonai-4.6.122 → praisonai-4.6.123}/setup.cfg +0 -0
  659. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test.py +0 -0
  660. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_agents_playbook.py +0 -0
  661. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_approval_system.py +0 -0
  662. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_basic.py +0 -0
  663. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_cli_features.py +0 -0
  664. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_custom_tools_fix.py +0 -0
  665. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_double_api_fix.py +0 -0
  666. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_n8n_agent_invoke.py +0 -0
  667. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_n8n_cli_feature.py +0 -0
  668. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_n8n_integration.py +0 -0
  669. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_phase2_refactor.py +0 -0
  670. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_recipe.py +0 -0
  671. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_registry.py +0 -0
  672. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_runner.py +0 -0
  673. {praisonai-4.6.122 → praisonai-4.6.123}/tests/test_sandboxed_agent_compatibility.py +0 -0
  674. {praisonai-4.6.122 → praisonai-4.6.123}/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.122
3
+ Version: 4.6.123
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,9 +11,9 @@ 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.125
15
- Requires-Dist: praisonai-code>=0.0.21
16
- Requires-Dist: praisonai-bot>=0.0.6
14
+ Requires-Dist: praisonaiagents>=1.6.126
15
+ Requires-Dist: praisonai-code>=0.0.22
16
+ Requires-Dist: praisonai-bot>=0.0.7
17
17
  Requires-Dist: python-dotenv>=0.19.0
18
18
  Requires-Dist: litellm<2,>=1.83.14
19
19
  Requires-Dist: PyYAML>=6.0
@@ -172,23 +172,13 @@ Requires-Dist: psycopg2-binary>=2.9.0; extra == "xata"
172
172
  Provides-Extra: claw
173
173
  Requires-Dist: aiui[all]<0.4,>=0.3.121; extra == "claw"
174
174
  Requires-Dist: praisonaiagents[all]>=1.5.40; extra == "claw"
175
+ Requires-Dist: praisonai-bot[bot,gateway]>=0.0.6; extra == "claw"
175
176
  Requires-Dist: flask>=3.0.0; extra == "claw"
176
- Requires-Dist: fastapi>=0.115.0; extra == "claw"
177
- Requires-Dist: uvicorn>=0.34.0; extra == "claw"
178
- Requires-Dist: sse-starlette>=1.6.0; extra == "claw"
179
177
  Requires-Dist: tavily-python==0.5.0; extra == "claw"
180
178
  Requires-Dist: crawl4ai>=0.7.0; extra == "claw"
181
179
  Requires-Dist: playwright>=1.47.0; extra == "claw"
182
- Requires-Dist: websockets>=12.0; extra == "claw"
183
180
  Requires-Dist: ddgs>=9.0.0; extra == "claw"
184
- Requires-Dist: psutil>=5.9.0; extra == "claw"
185
181
  Requires-Dist: langfuse>=3.0.0; extra == "claw"
186
- Requires-Dist: python-telegram-bot>=20.0; extra == "claw"
187
- Requires-Dist: discord.py>=2.0.0; extra == "claw"
188
- Requires-Dist: slack_sdk>=3.0.0; extra == "claw"
189
- Requires-Dist: slack-bolt>=1.18.0; extra == "claw"
190
- Requires-Dist: brotlicffi>=1.0.0; extra == "claw"
191
- Requires-Dist: aiohttp>=3.8.0; extra == "claw"
192
182
  Requires-Dist: redis>=5.0.0; extra == "claw"
193
183
  Requires-Dist: pymongo>=4.6.0; extra == "claw"
194
184
  Requires-Dist: psycopg2-binary>=2.9.0; extra == "claw"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.122
3
+ Version: 4.6.123
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,9 +11,9 @@ 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.125
15
- Requires-Dist: praisonai-code>=0.0.21
16
- Requires-Dist: praisonai-bot>=0.0.6
14
+ Requires-Dist: praisonaiagents>=1.6.126
15
+ Requires-Dist: praisonai-code>=0.0.22
16
+ Requires-Dist: praisonai-bot>=0.0.7
17
17
  Requires-Dist: python-dotenv>=0.19.0
18
18
  Requires-Dist: litellm<2,>=1.83.14
19
19
  Requires-Dist: PyYAML>=6.0
@@ -172,23 +172,13 @@ Requires-Dist: psycopg2-binary>=2.9.0; extra == "xata"
172
172
  Provides-Extra: claw
173
173
  Requires-Dist: aiui[all]<0.4,>=0.3.121; extra == "claw"
174
174
  Requires-Dist: praisonaiagents[all]>=1.5.40; extra == "claw"
175
+ Requires-Dist: praisonai-bot[bot,gateway]>=0.0.6; extra == "claw"
175
176
  Requires-Dist: flask>=3.0.0; extra == "claw"
176
- Requires-Dist: fastapi>=0.115.0; extra == "claw"
177
- Requires-Dist: uvicorn>=0.34.0; extra == "claw"
178
- Requires-Dist: sse-starlette>=1.6.0; extra == "claw"
179
177
  Requires-Dist: tavily-python==0.5.0; extra == "claw"
180
178
  Requires-Dist: crawl4ai>=0.7.0; extra == "claw"
181
179
  Requires-Dist: playwright>=1.47.0; extra == "claw"
182
- Requires-Dist: websockets>=12.0; extra == "claw"
183
180
  Requires-Dist: ddgs>=9.0.0; extra == "claw"
184
- Requires-Dist: psutil>=5.9.0; extra == "claw"
185
181
  Requires-Dist: langfuse>=3.0.0; extra == "claw"
186
- Requires-Dist: python-telegram-bot>=20.0; extra == "claw"
187
- Requires-Dist: discord.py>=2.0.0; extra == "claw"
188
- Requires-Dist: slack_sdk>=3.0.0; extra == "claw"
189
- Requires-Dist: slack-bolt>=1.18.0; extra == "claw"
190
- Requires-Dist: brotlicffi>=1.0.0; extra == "claw"
191
- Requires-Dist: aiohttp>=3.8.0; extra == "claw"
192
182
  Requires-Dist: redis>=5.0.0; extra == "claw"
193
183
  Requires-Dist: pymongo>=4.6.0; extra == "claw"
194
184
  Requires-Dist: psycopg2-binary>=2.9.0; extra == "claw"
@@ -1,9 +1,9 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.125
5
- praisonai-code>=0.0.21
6
- praisonai-bot>=0.0.6
4
+ praisonaiagents>=1.6.126
5
+ praisonai-code>=0.0.22
6
+ praisonai-bot>=0.0.7
7
7
  python-dotenv>=0.19.0
8
8
  litellm<2,>=1.83.14
9
9
  PyYAML>=6.0
@@ -96,23 +96,13 @@ rich
96
96
  [claw]
97
97
  aiui[all]<0.4,>=0.3.121
98
98
  praisonaiagents[all]>=1.5.40
99
+ praisonai-bot[bot,gateway]>=0.0.6
99
100
  flask>=3.0.0
100
- fastapi>=0.115.0
101
- uvicorn>=0.34.0
102
- sse-starlette>=1.6.0
103
101
  tavily-python==0.5.0
104
102
  crawl4ai>=0.7.0
105
103
  playwright>=1.47.0
106
- websockets>=12.0
107
104
  ddgs>=9.0.0
108
- psutil>=5.9.0
109
105
  langfuse>=3.0.0
110
- python-telegram-bot>=20.0
111
- discord.py>=2.0.0
112
- slack_sdk>=3.0.0
113
- slack-bolt>=1.18.0
114
- brotlicffi>=1.0.0
115
- aiohttp>=3.8.0
116
106
  redis>=5.0.0
117
107
  pymongo>=4.6.0
118
108
  psycopg2-binary>=2.9.0
@@ -25,6 +25,20 @@ class ToolsHandler(CommandHandler):
25
25
  def __init__(self, verbose: bool = False):
26
26
  super().__init__(verbose)
27
27
  self._registry = None
28
+ self._resolver = None
29
+ self._resolver_loaded = False
30
+
31
+ def _get_resolver(self):
32
+ """Lazily construct the canonical ToolResolver (None if unavailable)."""
33
+ if self._resolver_loaded:
34
+ return self._resolver
35
+ self._resolver_loaded = True
36
+ try:
37
+ from praisonai.tool_resolver import ToolResolver
38
+ self._resolver = ToolResolver()
39
+ except Exception:
40
+ self._resolver = None
41
+ return self._resolver
28
42
 
29
43
  @property
30
44
  def feature_name(self) -> str:
@@ -71,13 +85,30 @@ Built-in tools include: internet_search, calculator, file operations, etc.
71
85
  return self._registry
72
86
 
73
87
  def _get_builtin_tools(self) -> Dict[str, Any]:
74
- """Get dictionary of built-in tools."""
75
- tools = {}
76
- try:
77
- from praisonaiagents.tools import TOOL_MAPPINGS
78
- tools.update(TOOL_MAPPINGS)
79
- except ImportError:
80
- pass
88
+ """Get dictionary of available tools.
89
+
90
+ Seeds the tool set from the canonical :class:`ToolResolver` so every
91
+ resolvable source (local tools.py, wrapper registry, praisonaiagents
92
+ built-ins, praisonai-tools, core registry / entry-point plugins) is
93
+ surfaced — not just ``TOOL_MAPPINGS``. Falls back to a direct
94
+ ``TOOL_MAPPINGS`` scan when the resolver is unavailable. The
95
+ human-readable description table below is kept as a presentation
96
+ overlay.
97
+ """
98
+ tools: Dict[str, Any] = {}
99
+ resolver = self._get_resolver()
100
+ if resolver is not None:
101
+ try:
102
+ tools.update({name: {"source": src}
103
+ for name, src in resolver.list_available_sources().items()})
104
+ except Exception:
105
+ pass
106
+ if not tools:
107
+ try:
108
+ from praisonaiagents.tools import TOOL_MAPPINGS
109
+ tools.update(TOOL_MAPPINGS)
110
+ except ImportError:
111
+ pass
81
112
 
82
113
  # Add common tool descriptions
83
114
  tool_descriptions = {
@@ -97,8 +128,18 @@ Built-in tools include: internet_search, calculator, file operations, etc.
97
128
  }
98
129
 
99
130
  for name, desc in tool_descriptions.items():
100
- if name not in tools:
101
- tools[name] = {"description": desc, "available": name in tools}
131
+ if name in tools:
132
+ # Overlay the human-readable description onto entries already
133
+ # discovered by the resolver (stored as {"source": ...}) so
134
+ # `tools list` shows the description instead of "No description".
135
+ entry = tools[name]
136
+ if isinstance(entry, dict):
137
+ entry.setdefault("description", desc)
138
+ entry.setdefault("available", True)
139
+ else:
140
+ tools[name] = {"description": desc, "available": True}
141
+ else:
142
+ tools[name] = {"description": desc, "available": False}
102
143
 
103
144
  return tools
104
145
 
@@ -378,6 +419,21 @@ Built-in tools include: internet_search, calculator, file operations, etc.
378
419
  except ImportError:
379
420
  pass
380
421
 
422
+ # Surface registered / entry-point plugin tools via the canonical
423
+ # resolver so discovery matches the full runtime resolution chain
424
+ # instead of only the two partial sources scanned above.
425
+ resolver = self._get_resolver()
426
+ if resolver is not None:
427
+ try:
428
+ registered = [
429
+ name for name, src in resolver.list_available_sources().items()
430
+ if src == "registered"
431
+ ]
432
+ if registered:
433
+ discovered["registered"] = registered[:20]
434
+ except Exception:
435
+ pass
436
+
381
437
  # Additional packages from --include
382
438
  for pkg in include_packages:
383
439
  try:
@@ -0,0 +1,8 @@
1
+ """Backward-compat re-export — implementation lives in ``praisonai_bot.scheduler``."""
2
+
3
+ from praisonai._bootstrap import ensure_praisonai_bot
4
+
5
+ ensure_praisonai_bot()
6
+ from praisonai_bot.scheduler.condition_gate import ShellConditionGate
7
+
8
+ __all__ = ["ShellConditionGate"]
@@ -0,0 +1,8 @@
1
+ """Backward-compat re-export — implementation lives in ``praisonai_bot.scheduler``."""
2
+
3
+ from praisonai._bootstrap import ensure_praisonai_bot
4
+
5
+ ensure_praisonai_bot()
6
+ from praisonai_bot.scheduler.executor import JobResult, ScheduledAgentExecutor
7
+
8
+ __all__ = ["ScheduledAgentExecutor", "JobResult"]
@@ -7,10 +7,10 @@ runtime-assembled skill/recipe content. :class:`RunPolicy` lets a deployment
7
7
  declare what an unattended run may do *before* the agent is handed the toolset
8
8
  and prompt at run construction.
9
9
 
10
- Lives in the **wrapper** layer (alongside the scheduler executor) because the
10
+ Lives in the **wrapper** layer (alongside the scheduler executor shim) because the
11
11
  executor is the enforcement point — it is the only place that constructs the
12
12
  run and therefore the only place that can scope the toolset and scan the
13
- fully-assembled prompt.
13
+ fully-assembled prompt. The executor implementation lives in ``praisonai_bot.scheduler``.
14
14
 
15
15
  Usage::
16
16
 
@@ -8,10 +8,25 @@ Heavy implementations that follow StorageBackendProtocol for:
8
8
  - DynamoDB (praisonai[dynamodb])
9
9
  - Valkey (praisonai[valkey])
10
10
 
11
- NOTE: ``praisonai.storage`` is a legacy parallel stack. The active persistence
12
- layer is ``praisonai.persistence``. New code should use ``create_state_store``,
13
- ``create_conversation_store``, or ``create_knowledge_store`` from
14
- ``praisonai.persistence.factory``.
11
+ NOTE: ``praisonai.storage`` holds the canonical, low-level storage adapters.
12
+ It is NOT dead code — ``praisonai.persistence`` builds on top of it. For
13
+ example ``praisonai.persistence.state.redis.RedisStateStore`` is a thin wrapper
14
+ around ``RedisStorageAdapter`` defined here, so this module is load-bearing and
15
+ canonical for the backends that ``persistence`` wraps.
16
+
17
+ Note on remaining duplication: ``persistence.state.mongodb`` / ``dynamodb`` /
18
+ ``valkey`` currently keep their own driver logic instead of wrapping the
19
+ adapters here. This is because ``StateStore`` and these adapters implement
20
+ different contracts — ``StateStore`` adds per-key TTL, hash operations
21
+ (``hget``/``hset``) and counters (``incr``/``decr``), and the DynamoDB store
22
+ uses a different partition-key schema (``pk``) than the adapter (``key``).
23
+ Collapsing them therefore requires care to avoid changing stored-data layout;
24
+ until that is done, treat these adapters as the canonical KV/blob layer and the
25
+ ``persistence.state`` stores as the richer, TTL/hash-aware state layer.
26
+
27
+ Application code that just needs a persistence layer should use
28
+ ``create_state_store``, ``create_conversation_store``, or
29
+ ``create_knowledge_store`` from ``praisonai.persistence.factory``.
15
30
  """
16
31
 
17
32
  # Lazy imports - only import when needed
@@ -60,11 +60,36 @@ class DependencyChecker:
60
60
  """
61
61
  self._custom_tool_dirs = custom_tool_dirs or []
62
62
  self._tool_cache: Dict[str, DependencyStatus] = {}
63
+ self._resolver = None
64
+ self._resolver_loaded = False
65
+ self._sources_cache: Optional[Dict[str, str]] = None
66
+
67
+ def _get_resolver(self):
68
+ """Lazily construct a shared ToolResolver (the canonical resolution chain).
69
+
70
+ Returns None if the resolver cannot be imported/constructed, so the
71
+ legacy partial checks remain available as a fallback.
72
+ """
73
+ if self._resolver_loaded:
74
+ return self._resolver
75
+ self._resolver_loaded = True
76
+ try:
77
+ from praisonai.tool_resolver import ToolResolver
78
+ self._resolver = ToolResolver()
79
+ except Exception:
80
+ self._resolver = None
81
+ return self._resolver
63
82
 
64
83
  def check_tool(self, tool_name: str) -> Dict[str, Any]:
65
84
  """
66
85
  Check if a tool is available.
67
86
 
87
+ Delegates the "is this tool resolvable?" decision to the canonical
88
+ :class:`ToolResolver` (full local/builtin/external/registered chain)
89
+ so the diagnostic matches what actually loads at run time. Install
90
+ hints are computed only for genuinely-missing tools as a presentation
91
+ overlay on top of the resolver's buckets.
92
+
68
93
  Args:
69
94
  tool_name: Name of the tool to check
70
95
 
@@ -80,30 +105,23 @@ class DependencyChecker:
80
105
  "install_hint": status.install_hint
81
106
  }
82
107
 
83
- # Check built-in tools
84
- source = self._check_builtin_tool(tool_name)
85
- if source:
86
- status = DependencyStatus(
87
- name=tool_name,
88
- available=True,
89
- source=source
90
- )
91
- self._tool_cache[tool_name] = status
92
- return {"available": True, "source": source, "install_hint": None}
93
-
94
- # Check praisonai-tools
95
- source = self._check_praisonai_tools(tool_name)
96
- if source:
97
- status = DependencyStatus(
98
- name=tool_name,
99
- available=True,
100
- source=source
108
+ # Delegate to the canonical resolver's full source chain. This covers
109
+ # local tools.py, wrapper ToolRegistry, praisonaiagents built-ins,
110
+ # praisonai-tools, and the core registry / entry-point plugins.
111
+ source = self._check_resolver(tool_name)
112
+ # Fall back to the legacy partial checks only when the resolver is
113
+ # unavailable, so custom tool directories keep working standalone.
114
+ if source is None and self._get_resolver() is None:
115
+ source = (
116
+ self._check_builtin_tool(tool_name)
117
+ or self._check_praisonai_tools(tool_name)
118
+ or self._check_custom_dirs(tool_name)
101
119
  )
102
- self._tool_cache[tool_name] = status
103
- return {"available": True, "source": source, "install_hint": None}
120
+ # Custom directories are not part of the resolver chain; always honor
121
+ # them so template-local tool dirs resolve regardless.
122
+ if source is None:
123
+ source = self._check_custom_dirs(tool_name)
104
124
 
105
- # Check custom directories
106
- source = self._check_custom_dirs(tool_name)
107
125
  if source:
108
126
  status = DependencyStatus(
109
127
  name=tool_name,
@@ -127,6 +145,47 @@ class DependencyChecker:
127
145
  self._tool_cache[tool_name] = status
128
146
  return {"available": False, "source": None, "install_hint": install_hint}
129
147
 
148
+ def _check_resolver(self, tool_name: str) -> Optional[str]:
149
+ """Resolve via the canonical ToolResolver, returning its source bucket.
150
+
151
+ Returns the resolver's stable source identifier (``local`` / ``builtin``
152
+ / ``external`` / ``registered``) when the tool is resolvable, else None.
153
+ """
154
+ resolver = self._get_resolver()
155
+ if resolver is None:
156
+ return None
157
+ try:
158
+ if not resolver.has_tool(tool_name):
159
+ return None
160
+ # Prefer the resolver's own source attribution when available.
161
+ # The full source scan is cached once so verifying N tools does
162
+ # not trigger N full enumerations.
163
+ sources = self._resolver_sources()
164
+ if tool_name in sources:
165
+ return sources[tool_name]
166
+ return "resolver"
167
+ except Exception:
168
+ return None
169
+
170
+ def _resolver_sources(self) -> Dict[str, str]:
171
+ """Return the resolver's full source map, cached for reuse.
172
+
173
+ Caches :meth:`ToolResolver.list_available_sources` so repeated
174
+ ``check_tool`` calls reuse a single enumeration. Returns an empty
175
+ mapping when the resolver is unavailable or the scan fails.
176
+ """
177
+ if self._sources_cache is not None:
178
+ return self._sources_cache
179
+ sources: Dict[str, str] = {}
180
+ resolver = self._get_resolver()
181
+ if resolver is not None:
182
+ try:
183
+ sources = dict(resolver.list_available_sources())
184
+ except Exception:
185
+ sources = {}
186
+ self._sources_cache = sources
187
+ return sources
188
+
130
189
  def _check_builtin_tool(self, tool_name: str) -> Optional[str]:
131
190
  """Check if tool exists in built-in registry."""
132
191
  try:
@@ -47,6 +47,42 @@ class ToolsDoctor:
47
47
  custom_dirs: Additional custom tool directories to check
48
48
  """
49
49
  self._custom_dirs = custom_dirs or []
50
+ self._resolver = None
51
+ self._resolver_loaded = False
52
+ self._sources_by_bucket: Optional[Dict[str, List[str]]] = None
53
+
54
+ def _get_resolver(self):
55
+ """Lazily construct the canonical ToolResolver (None if unavailable)."""
56
+ if self._resolver_loaded:
57
+ return self._resolver
58
+ self._resolver_loaded = True
59
+ try:
60
+ from praisonai.tool_resolver import ToolResolver
61
+ self._resolver = ToolResolver()
62
+ except Exception:
63
+ self._resolver = None
64
+ return self._resolver
65
+
66
+ def _resolver_sources(self) -> Dict[str, List[str]]:
67
+ """Group the resolver's discovered tools by their source bucket.
68
+
69
+ Buckets mirror :meth:`ToolResolver.list_available_sources` values:
70
+ ``local`` / ``builtin`` / ``external`` / ``registered``. Returns an
71
+ empty mapping when the resolver is unavailable so callers fall back
72
+ to the legacy per-source listing.
73
+ """
74
+ if self._sources_by_bucket is not None:
75
+ return self._sources_by_bucket
76
+ buckets: Dict[str, List[str]] = {}
77
+ resolver = self._get_resolver()
78
+ if resolver is not None:
79
+ try:
80
+ for name, src in resolver.list_available_sources().items():
81
+ buckets.setdefault(src, []).append(name)
82
+ except Exception:
83
+ buckets = {}
84
+ self._sources_by_bucket = buckets
85
+ return buckets
50
86
 
51
87
  def diagnose(self) -> Dict[str, Any]:
52
88
  """
@@ -103,7 +139,16 @@ class ToolsDoctor:
103
139
  return spec is not None
104
140
 
105
141
  def _get_builtin_tools(self) -> List[str]:
106
- """Get list of built-in tools."""
142
+ """Get list of built-in tools.
143
+
144
+ Delegates to the canonical :class:`ToolResolver` (the ``builtin``
145
+ bucket of :meth:`ToolResolver.list_available_sources`) so this matches
146
+ the runtime resolution chain, falling back to a direct
147
+ ``TOOL_MAPPINGS`` scan when the resolver is unavailable.
148
+ """
149
+ buckets = self._resolver_sources()
150
+ if "builtin" in buckets:
151
+ return sorted(buckets["builtin"])
107
152
  tools = []
108
153
  try:
109
154
  from praisonaiagents.tools import TOOL_MAPPINGS
@@ -113,7 +158,15 @@ class ToolsDoctor:
113
158
  return tools
114
159
 
115
160
  def _get_praisonai_tools_list(self) -> List[str]:
116
- """Get list of tools from praisonai-tools package."""
161
+ """Get list of tools from praisonai-tools package.
162
+
163
+ Delegates to the resolver's ``external`` bucket so it mirrors what the
164
+ resolver would actually load, falling back to a direct package scan
165
+ when the resolver is unavailable.
166
+ """
167
+ buckets = self._resolver_sources()
168
+ if "external" in buckets:
169
+ return sorted(buckets["external"])
117
170
  tools = []
118
171
  try:
119
172
  import praisonai_tools
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ """Backward-compatible shim for the LLM fine-tuning entry point.
4
+
5
+ The canonical fine-tuning implementation lives in
6
+ :mod:`praisonai.train.llm.trainer` (served by the ``praisonai.train`` package).
7
+ This top-level module is retained only as a thin re-export so that any legacy
8
+ reference to ``praisonai/train.py`` (e.g. ``python path/to/train.py train``)
9
+ keeps working. There is a single owner: ``praisonai.train.llm.trainer``.
10
+
11
+ Note: because ``praisonai.train`` resolves to the package, this file is only
12
+ reachable when executed directly as a script, not via ``import``.
13
+ """
14
+
15
+ from praisonai.train.llm.trainer import ( # noqa: F401
16
+ TrainModel,
17
+ formatting_prompts_func,
18
+ tokenize_function,
19
+ main,
20
+ )
21
+
22
+ __all__ = ["TrainModel", "formatting_prompts_func", "tokenize_function", "main"]
23
+
24
+ if __name__ == "__main__":
25
+ main()
@@ -0,0 +1 @@
1
+ __version__ = "4.6.123"
@@ -12,9 +12,9 @@ dependencies = [
12
12
  "rich>=13.7",
13
13
  "markdown>=3.5",
14
14
  "pyparsing>=3.0.0",
15
- "praisonaiagents>=1.6.125",
16
- "praisonai-code>=0.0.21",
17
- "praisonai-bot>=0.0.6",
15
+ "praisonaiagents>=1.6.126",
16
+ "praisonai-code>=0.0.22",
17
+ "praisonai-bot>=0.0.7",
18
18
  "python-dotenv>=0.19.0",
19
19
  "litellm>=1.83.14,<2",
20
20
  "PyYAML>=6.0",
@@ -230,32 +230,19 @@ claw = [
230
230
  # Install: pip install "praisonai[claw]"
231
231
  "aiui[all]>=0.3.121,<0.4",
232
232
  "praisonaiagents[all]>=1.5.40",
233
+ "praisonai-bot[gateway,bot]>=0.0.6",
233
234
  # UI + persistence
234
235
  "flask>=3.0.0",
235
- # Gateway
236
- "fastapi>=0.115.0",
237
- "uvicorn>=0.34.0",
238
- "sse-starlette>=1.6.0",
239
236
  # Search + browsing
240
237
  "tavily-python==0.5.0",
241
238
  "crawl4ai>=0.7.0",
242
239
  "playwright>=1.47.0", # required by crawl4ai — browsers still need: playwright install chromium
243
- "websockets>=12.0",
244
240
  "ddgs>=9.0.0",
245
- # Shell tools
246
- "psutil>=5.9.0",
247
241
  # Observability
248
242
  "langfuse>=3.0.0",
249
- # Bot channels (Telegram, Discord, Slack)
250
- "python-telegram-bot>=20.0",
251
- "discord.py>=2.0.0",
252
- "slack_sdk>=3.0.0",
253
- "slack-bolt>=1.18.0",
254
- "brotlicffi>=1.0.0",
255
- "aiohttp>=3.8.0",
256
243
  # Storage backends
257
244
  "redis>=5.0.0",
258
- "pymongo>=4.6.0",
245
+ "pymongo>=4.6.0",
259
246
  "psycopg2-binary>=2.9.0",
260
247
  "boto3>=1.35.0",
261
248
  # n8n integration