PraisonAI 4.6.146__tar.gz → 4.6.147__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 (676) hide show
  1. {praisonai-4.6.146 → praisonai-4.6.147}/PKG-INFO +6 -4
  2. {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/PKG-INFO +6 -4
  3. {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/SOURCES.txt +28 -9
  4. {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/requires.txt +5 -3
  5. praisonai-4.6.147/praisonai/README.md +5 -0
  6. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_bootstrap.py +16 -0
  7. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/auto.py +127 -69
  8. praisonai-4.6.147/praisonai/cli/commands/train.py +11 -0
  9. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/configuration/config.schema.json +1 -0
  10. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inc/models.py +79 -1
  11. praisonai-4.6.147/praisonai/public/fantasy.svg +3 -0
  12. praisonai-4.6.147/praisonai/public/game.svg +3 -0
  13. praisonai-4.6.147/praisonai/public/movie.svg +3 -0
  14. praisonai-4.6.147/praisonai/public/thriller.svg +3 -0
  15. praisonai-4.6.147/praisonai/scheduler/README.md +274 -0
  16. praisonai-4.6.147/praisonai/setup/config.yaml +60 -0
  17. praisonai-4.6.147/praisonai/setup/setup_conda_env.py +14 -0
  18. praisonai-4.6.147/praisonai/train/__init__.py +14 -0
  19. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/train.py +5 -4
  20. praisonai-4.6.147/praisonai/train_vision.py +14 -0
  21. praisonai-4.6.147/praisonai/ui/README.md +21 -0
  22. praisonai-4.6.147/praisonai/ui/config/chainlit.md +1 -0
  23. praisonai-4.6.147/praisonai/ui/config/translations/bn.json +231 -0
  24. praisonai-4.6.147/praisonai/ui/config/translations/en-US.json +229 -0
  25. praisonai-4.6.147/praisonai/ui/config/translations/gu.json +231 -0
  26. praisonai-4.6.147/praisonai/ui/config/translations/he-IL.json +231 -0
  27. praisonai-4.6.147/praisonai/ui/config/translations/hi.json +231 -0
  28. praisonai-4.6.147/praisonai/ui/config/translations/kn.json +231 -0
  29. praisonai-4.6.147/praisonai/ui/config/translations/ml.json +231 -0
  30. praisonai-4.6.147/praisonai/ui/config/translations/mr.json +231 -0
  31. praisonai-4.6.147/praisonai/ui/config/translations/ta.json +231 -0
  32. praisonai-4.6.147/praisonai/ui/config/translations/te.json +231 -0
  33. praisonai-4.6.147/praisonai/ui/config/translations/zh-CN.json +229 -0
  34. praisonai-4.6.147/praisonai/ui/public/fantasy.svg +3 -0
  35. praisonai-4.6.147/praisonai/ui/public/game.svg +3 -0
  36. praisonai-4.6.147/praisonai/ui/public/logo_dark.png +0 -0
  37. praisonai-4.6.147/praisonai/ui/public/logo_light.png +0 -0
  38. praisonai-4.6.147/praisonai/ui/public/movie.svg +3 -0
  39. praisonai-4.6.147/praisonai/ui/public/praison.css +3 -0
  40. praisonai-4.6.147/praisonai/ui/public/thriller.svg +3 -0
  41. praisonai-4.6.147/praisonai/ui/tools.md +133 -0
  42. praisonai-4.6.147/praisonai/upload_vision.py +14 -0
  43. praisonai-4.6.147/praisonai/version.py +1 -0
  44. {praisonai-4.6.146 → praisonai-4.6.147}/pyproject.toml +9 -4
  45. praisonai-4.6.146/praisonai/cli/commands/train.py +0 -613
  46. praisonai-4.6.146/praisonai/setup/setup_conda_env.py +0 -25
  47. praisonai-4.6.146/praisonai/train/__init__.py +0 -77
  48. praisonai-4.6.146/praisonai/train/_ollama.py +0 -97
  49. praisonai-4.6.146/praisonai/train/agents/__init__.py +0 -94
  50. praisonai-4.6.146/praisonai/train/agents/grader.py +0 -63
  51. praisonai-4.6.146/praisonai/train/agents/hook.py +0 -320
  52. praisonai-4.6.146/praisonai/train/agents/models.py +0 -328
  53. praisonai-4.6.146/praisonai/train/agents/orchestrator.py +0 -394
  54. praisonai-4.6.146/praisonai/train/agents/storage.py +0 -282
  55. praisonai-4.6.146/praisonai/train/llm/__init__.py +0 -23
  56. praisonai-4.6.146/praisonai/train/llm/trainer.py +0 -587
  57. praisonai-4.6.146/praisonai/train_vision.py +0 -333
  58. praisonai-4.6.146/praisonai/upload_vision.py +0 -141
  59. praisonai-4.6.146/praisonai/version.py +0 -1
  60. {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/dependency_links.txt +0 -0
  61. {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/entry_points.txt +0 -0
  62. {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/top_level.txt +0 -0
  63. {praisonai-4.6.146 → praisonai-4.6.147}/README.md +0 -0
  64. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/__init__.py +0 -0
  65. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/__main__.py +0 -0
  66. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_approval_spec.py +0 -0
  67. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_async_bridge.py +0 -0
  68. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/__init__.py +0 -0
  69. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/api_md.py +0 -0
  70. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/__init__.py +0 -0
  71. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/docs_extractor.py +0 -0
  72. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/docs_generator.py +0 -0
  73. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/generator.py +0 -0
  74. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
  75. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/python_extractor.py +0 -0
  76. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
  77. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/rust_extractor.py +0 -0
  78. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/topic_normalizer.py +0 -0
  79. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
  80. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/typescript_extractor.py +0 -0
  81. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_entrypoint.py +0 -0
  82. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_framework_availability.py +0 -0
  83. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_lazy_cache.py +0 -0
  84. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_logging.py +0 -0
  85. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_registry.py +0 -0
  86. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_safe_loader.py +0 -0
  87. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/__init__.py +0 -0
  88. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/config.py +0 -0
  89. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/safe_edit.py +0 -0
  90. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/server.py +0 -0
  91. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/session.py +0 -0
  92. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/__init__.py +0 -0
  93. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/readers.py +0 -0
  94. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/rerankers.py +0 -0
  95. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/retrievers.py +0 -0
  96. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/vector_stores.py +0 -0
  97. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/agent.py +0 -0
  98. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/agent_scheduler.py +0 -0
  99. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/agents_generator.py +0 -0
  100. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/api/agent_invoke.py +0 -0
  101. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/api/call.py +0 -0
  102. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/app/__init__.py +0 -0
  103. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/app/agentos.py +0 -0
  104. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/async_agent_scheduler.py +0 -0
  105. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/audit/__init__.py +0 -0
  106. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/audit/agent_centric.py +0 -0
  107. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/bots/__init__.py +0 -0
  108. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/__init__.py +0 -0
  109. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/agent.py +0 -0
  110. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/benchmark.py +0 -0
  111. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/cdp_agent.py +0 -0
  112. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/cdp_utils.py +0 -0
  113. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/cli.py +0 -0
  114. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/diagnostics.py +0 -0
  115. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/launcher.py +0 -0
  116. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/playwright_agent.py +0 -0
  117. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/profiling.py +0 -0
  118. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/protocol.py +0 -0
  119. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/report.py +0 -0
  120. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/server.py +0 -0
  121. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/sessions.py +0 -0
  122. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/video.py +0 -0
  123. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/__init__.py +0 -0
  124. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/a2a.py +0 -0
  125. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/assistants.py +0 -0
  126. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/audio.py +0 -0
  127. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/batches.py +0 -0
  128. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/completions.py +0 -0
  129. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/container_files.py +0 -0
  130. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/containers.py +0 -0
  131. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/embeddings.py +0 -0
  132. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/files.py +0 -0
  133. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/fine_tuning.py +0 -0
  134. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/guardrails.py +0 -0
  135. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/images.py +0 -0
  136. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/mcp.py +0 -0
  137. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/messages.py +0 -0
  138. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/moderations.py +0 -0
  139. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/ocr.py +0 -0
  140. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/passthrough.py +0 -0
  141. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/rag.py +0 -0
  142. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/realtime.py +0 -0
  143. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/rerank.py +0 -0
  144. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/responses.py +0 -0
  145. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/search.py +0 -0
  146. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/skills.py +0 -0
  147. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/vector_store_files.py +0 -0
  148. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/vector_stores.py +0 -0
  149. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/videos.py +0 -0
  150. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/claw/__init__.py +0 -0
  151. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/__init__.py +0 -0
  152. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/_paths.py +0 -0
  153. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/_shim.py +0 -0
  154. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/_warnings.py +0 -0
  155. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/app.py +0 -0
  156. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/approval_backend.py +0 -0
  157. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/branding.py +0 -0
  158. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/__init__.py +0 -0
  159. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/acp.py +0 -0
  160. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/agent.py +0 -0
  161. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/agents.py +0 -0
  162. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/app.py +0 -0
  163. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/attach.py +0 -0
  164. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/audit.py +0 -0
  165. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/auth.py +0 -0
  166. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/batch.py +0 -0
  167. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/benchmark.py +0 -0
  168. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/bot.py +0 -0
  169. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/browser.py +0 -0
  170. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/call.py +0 -0
  171. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/chat.py +0 -0
  172. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/checkpoint.py +0 -0
  173. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/claw.py +0 -0
  174. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/code.py +0 -0
  175. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/command.py +0 -0
  176. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/commit.py +0 -0
  177. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/completion.py +0 -0
  178. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/config.py +0 -0
  179. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/context.py +0 -0
  180. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/daemon.py +0 -0
  181. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/dashboard.py +0 -0
  182. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/debug.py +0 -0
  183. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/deploy.py +0 -0
  184. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/diag.py +0 -0
  185. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/docs.py +0 -0
  186. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/doctor.py +0 -0
  187. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/endpoints.py +0 -0
  188. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/environment.py +0 -0
  189. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/eval.py +0 -0
  190. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/examples.py +0 -0
  191. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/flow.py +0 -0
  192. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/gateway.py +0 -0
  193. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/github.py +0 -0
  194. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/hooks.py +0 -0
  195. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/identity.py +0 -0
  196. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/init.py +0 -0
  197. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/kanban.py +0 -0
  198. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/knowledge.py +0 -0
  199. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/langextract.py +0 -0
  200. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/langfuse.py +0 -0
  201. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/loop.py +0 -0
  202. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/lsp.py +0 -0
  203. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/managed.py +0 -0
  204. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/mcp.py +0 -0
  205. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/memory.py +0 -0
  206. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/mint_link.py +0 -0
  207. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/models.py +0 -0
  208. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/n8n.py +0 -0
  209. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/obs.py +0 -0
  210. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/onboard.py +0 -0
  211. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/package.py +0 -0
  212. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/pairing.py +0 -0
  213. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/paths.py +0 -0
  214. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/permissions.py +0 -0
  215. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/plugins.py +0 -0
  216. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/port.py +0 -0
  217. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/profile.py +0 -0
  218. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/publish.py +0 -0
  219. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/rag.py +0 -0
  220. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/realtime.py +0 -0
  221. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/recipe.py +0 -0
  222. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/registry.py +0 -0
  223. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/replay.py +0 -0
  224. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/research.py +0 -0
  225. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/retrieval.py +0 -0
  226. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/rules.py +0 -0
  227. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/run.py +0 -0
  228. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/sandbox.py +0 -0
  229. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/schedule.py +0 -0
  230. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/serve.py +0 -0
  231. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/session.py +0 -0
  232. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/setup.py +0 -0
  233. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/skills.py +0 -0
  234. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/standardise.py +0 -0
  235. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/templates.py +0 -0
  236. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/test.py +0 -0
  237. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/todo.py +0 -0
  238. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/tools.py +0 -0
  239. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/traces.py +0 -0
  240. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/tracker.py +0 -0
  241. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/ui.py +0 -0
  242. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/up.py +0 -0
  243. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/validate.py +0 -0
  244. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/version.py +0 -0
  245. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/workflow.py +0 -0
  246. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/config_loader.py +0 -0
  247. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/configuration/__init__.py +0 -0
  248. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/execution/__init__.py +0 -0
  249. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/fallback_schema.py +0 -0
  250. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/__init__.py +0 -0
  251. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/acp.py +0 -0
  252. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/agent_scheduler.py +0 -0
  253. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/agent_tools.py +0 -0
  254. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/approval.py +0 -0
  255. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/background.py +0 -0
  256. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/bots_cli.py +0 -0
  257. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/deploy.py +0 -0
  258. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/endpoints.py +0 -0
  259. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/eval.py +0 -0
  260. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/gateway.py +0 -0
  261. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/ollama.py +0 -0
  262. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/onboard.py +0 -0
  263. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/persistence.py +0 -0
  264. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/recipe.py +0 -0
  265. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/recipe_optimizer.py +0 -0
  266. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/registry.py +0 -0
  267. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/sandbox_cli.py +0 -0
  268. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/serve.py +0 -0
  269. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/templates.py +0 -0
  270. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/tools.py +0 -0
  271. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/tui/__init__.py +0 -0
  272. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/tui/app.py +0 -0
  273. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/workflow.py +0 -0
  274. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/interactive/__init__.py +0 -0
  275. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/interactive/async_tui.py +0 -0
  276. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/interactive/core.py +0 -0
  277. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/langfuse_client.py +0 -0
  278. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/__init__.py +0 -0
  279. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/direct_prompt.py +0 -0
  280. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
  281. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
  282. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
  283. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/framework_run.py +0 -0
  284. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
  285. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/interactive_legacy.py +0 -0
  286. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
  287. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/workflow_commands.py +0 -0
  288. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/main.py +0 -0
  289. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/output/__init__.py +0 -0
  290. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/schedule_cli.py +0 -0
  291. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/schema_provider.py +0 -0
  292. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/session/__init__.py +0 -0
  293. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/state/__init__.py +0 -0
  294. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/ui/__init__.py +0 -0
  295. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/unified_schema.py +0 -0
  296. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/utils/__init__.py +0 -0
  297. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli_backends/__init__.py +0 -0
  298. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/__init__.py +0 -0
  299. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/agent_tools.py +0 -0
  300. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/diff/__init__.py +0 -0
  301. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/diff/diff_strategy.py +0 -0
  302. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/__init__.py +0 -0
  303. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/apply_diff.py +0 -0
  304. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/execute_command.py +0 -0
  305. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/list_files.py +0 -0
  306. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/read_file.py +0 -0
  307. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/search_replace.py +0 -0
  308. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/write_file.py +0 -0
  309. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/__init__.py +0 -0
  310. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/file_utils.py +0 -0
  311. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/ignore_utils.py +0 -0
  312. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/text_utils.py +0 -0
  313. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/config/__init__.py +0 -0
  314. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/config/schema.py +0 -0
  315. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/config/validator.py +0 -0
  316. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/__init__.py +0 -0
  317. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/_storage_path.py +0 -0
  318. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/artifact_store.py +0 -0
  319. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/config.py +0 -0
  320. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/history_store.py +0 -0
  321. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/queue.py +0 -0
  322. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/setup.py +0 -0
  323. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/terminal_logger.py +0 -0
  324. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/daemon/__init__.py +0 -0
  325. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/db/__init__.py +0 -0
  326. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/db/adapter.py +0 -0
  327. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/__init__.py +0 -0
  328. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/api.py +0 -0
  329. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/docker.py +0 -0
  330. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/doctor.py +0 -0
  331. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/main.py +0 -0
  332. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/models.py +0 -0
  333. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/__init__.py +0 -0
  334. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/_registry.py +0 -0
  335. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/aws.py +0 -0
  336. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/azure.py +0 -0
  337. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/base.py +0 -0
  338. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/gcp.py +0 -0
  339. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/schema.py +0 -0
  340. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/__init__.py +0 -0
  341. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/a2u_server.py +0 -0
  342. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/discovery.py +0 -0
  343. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/__init__.py +0 -0
  344. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/a2a.py +0 -0
  345. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/a2u.py +0 -0
  346. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/agents_api.py +0 -0
  347. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/base.py +0 -0
  348. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/mcp.py +0 -0
  349. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/openai_compat.py +0 -0
  350. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/recipe.py +0 -0
  351. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/tools_mcp.py +0 -0
  352. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/registry.py +0 -0
  353. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/server.py +0 -0
  354. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/__init__.py +0 -0
  355. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/client.py +0 -0
  356. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
  357. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
  358. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/components/__init__.py +0 -0
  359. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/converter.py +0 -0
  360. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/helpers.py +0 -0
  361. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/__init__.py +0 -0
  362. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/_config_builder.py +0 -0
  363. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/autogen_adapter.py +0 -0
  364. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/base.py +0 -0
  365. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/crewai_adapter.py +0 -0
  366. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
  367. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/registry.py +0 -0
  368. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/validators.py +0 -0
  369. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/workflow_framework.py +0 -0
  370. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/gateway/__init__.py +0 -0
  371. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inbuilt_tools/__init__.py +0 -0
  372. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  373. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inc/__init__.py +0 -0
  374. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inc/config.py +0 -0
  375. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/__init__.py +0 -0
  376. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/__init__.py +0 -0
  377. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/approvals_bridge.py +0 -0
  378. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/hooks_query.py +0 -0
  379. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/kanban_bridge.py +0 -0
  380. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/schedules_runner.py +0 -0
  381. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/usage_bridge.py +0 -0
  382. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/workflows_service.py +0 -0
  383. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/context_files.py +0 -0
  384. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/gateway_host.py +0 -0
  385. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/host_app.py +0 -0
  386. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/pages/__init__.py +0 -0
  387. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/pages/bot_health.py +0 -0
  388. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/pages/workflow_runs.py +0 -0
  389. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/__init__.py +0 -0
  390. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_cli_loaders.py +0 -0
  391. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_session_info.py +0 -0
  392. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_tool_aliases.py +0 -0
  393. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_unified_registry.py +0 -0
  394. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/backend_registry.py +0 -0
  395. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/base.py +0 -0
  396. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/claude_code.py +0 -0
  397. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/codex_cli.py +0 -0
  398. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/__init__.py +0 -0
  399. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/daytona.py +0 -0
  400. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/docker.py +0 -0
  401. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/e2b.py +0 -0
  402. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/flyio.py +0 -0
  403. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/local.py +0 -0
  404. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/modal_compute.py +0 -0
  405. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/cursor_cli.py +0 -0
  406. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/db_session_adapter.py +0 -0
  407. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/gemini_cli.py +0 -0
  408. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/hosted_agent.py +0 -0
  409. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/local_agent.py +0 -0
  410. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/managed_agents.py +0 -0
  411. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/managed_local.py +0 -0
  412. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/registry.py +0 -0
  413. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/sandboxed_agent.py +0 -0
  414. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/__init__.py +0 -0
  415. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/executor.py +0 -0
  416. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/models.py +0 -0
  417. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/path_validation.py +0 -0
  418. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/router.py +0 -0
  419. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/server.py +0 -0
  420. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/store.py +0 -0
  421. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/kanban/__init__.py +0 -0
  422. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/__init__.py +0 -0
  423. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/catalogue.py +0 -0
  424. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/config.py +0 -0
  425. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/credentials.py +0 -0
  426. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/env.py +0 -0
  427. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/gateways.py +0 -0
  428. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/registry.py +0 -0
  429. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/__init__.py +0 -0
  430. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/__init__.py +0 -0
  431. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/agents.py +0 -0
  432. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/capabilities.py +0 -0
  433. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
  434. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
  435. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/knowledge.py +0 -0
  436. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/memory.py +0 -0
  437. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/prompts.py +0 -0
  438. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/resources.py +0 -0
  439. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
  440. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/__init__.py +0 -0
  441. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/api_key.py +0 -0
  442. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/oauth.py +0 -0
  443. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/oidc.py +0 -0
  444. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/scopes.py +0 -0
  445. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/cli.py +0 -0
  446. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/elicitation.py +0 -0
  447. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/icons.py +0 -0
  448. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/recipe_adapter.py +0 -0
  449. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/recipe_cli.py +0 -0
  450. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/registry.py +0 -0
  451. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/sampling.py +0 -0
  452. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/server.py +0 -0
  453. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/tasks.py +0 -0
  454. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/tool_index.py +0 -0
  455. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/transports/__init__.py +0 -0
  456. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/transports/http_stream.py +0 -0
  457. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/transports/stdio.py +0 -0
  458. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/__init__.py +0 -0
  459. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/client.py +0 -0
  460. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/converter.py +0 -0
  461. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/preview.py +0 -0
  462. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/reverse_converter.py +0 -0
  463. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/__init__.py +0 -0
  464. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/hooks.py +0 -0
  465. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/langextract.py +0 -0
  466. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/langfuse.py +0 -0
  467. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/__init__.py +0 -0
  468. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/_valkey_client.py +0 -0
  469. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/config.py +0 -0
  470. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/__init__.py +0 -0
  471. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/_sql_base.py +0 -0
  472. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
  473. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/async_mysql.py +0 -0
  474. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/async_postgres.py +0 -0
  475. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/async_sqlite.py +0 -0
  476. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/base.py +0 -0
  477. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/json_store.py +0 -0
  478. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/mysql.py +0 -0
  479. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/postgres.py +0 -0
  480. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/singlestore.py +0 -0
  481. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/sqlite.py +0 -0
  482. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/supabase.py +0 -0
  483. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/surrealdb.py +0 -0
  484. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
  485. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/turso.py +0 -0
  486. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/factory.py +0 -0
  487. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/hooks/__init__.py +0 -0
  488. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/hooks/agent_hooks.py +0 -0
  489. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/__init__.py +0 -0
  490. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/base.py +0 -0
  491. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/cassandra.py +0 -0
  492. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/chroma.py +0 -0
  493. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/clickhouse.py +0 -0
  494. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
  495. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/couchbase.py +0 -0
  496. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/lancedb.py +0 -0
  497. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
  498. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
  499. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
  500. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/milvus.py +0 -0
  501. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
  502. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/pgvector.py +0 -0
  503. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/pinecone.py +0 -0
  504. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/qdrant.py +0 -0
  505. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/redis_vector.py +0 -0
  506. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
  507. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
  508. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
  509. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
  510. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/weaviate.py +0 -0
  511. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/migrations/__init__.py +0 -0
  512. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/migrations/manager.py +0 -0
  513. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/orchestrator.py +0 -0
  514. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/registry.py +0 -0
  515. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/__init__.py +0 -0
  516. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/async_mongodb.py +0 -0
  517. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/base.py +0 -0
  518. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/dynamodb.py +0 -0
  519. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/firestore.py +0 -0
  520. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/gcs.py +0 -0
  521. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/memory.py +0 -0
  522. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/mongodb.py +0 -0
  523. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/redis.py +0 -0
  524. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/upstash.py +0 -0
  525. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/valkey.py +0 -0
  526. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/__init__.py +0 -0
  527. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/test_all_backends.py +0 -0
  528. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
  529. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
  530. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/profiler.py +0 -0
  531. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/push/__init__.py +0 -0
  532. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/push/client.py +0 -0
  533. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/push/transports.py +0 -0
  534. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/__init__.py +0 -0
  535. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/bridge.py +0 -0
  536. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/core.py +0 -0
  537. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/exceptions.py +0 -0
  538. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/history.py +0 -0
  539. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/models.py +0 -0
  540. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/operations.py +0 -0
  541. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/policy.py +0 -0
  542. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/registry.py +0 -0
  543. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/runtime.py +0 -0
  544. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/security.py +0 -0
  545. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/serve.py +0 -0
  546. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/server.py +0 -0
  547. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/__init__.py +0 -0
  548. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/analyzer.py +0 -0
  549. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/applier.py +0 -0
  550. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/judge.py +0 -0
  551. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/plan.py +0 -0
  552. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/player.py +0 -0
  553. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/reader.py +0 -0
  554. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/storage.py +0 -0
  555. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/writer.py +0 -0
  556. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/runtime/__init__.py +0 -0
  557. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/runtime/__main__.py +0 -0
  558. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/__init__.py +0 -0
  559. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/_compat.py +0 -0
  560. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/_registry.py +0 -0
  561. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/_shell.py +0 -0
  562. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/daytona.py +0 -0
  563. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/docker.py +0 -0
  564. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/e2b.py +0 -0
  565. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/modal.py +0 -0
  566. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/sandlock.py +0 -0
  567. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/ssh.py +0 -0
  568. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/subprocess.py +0 -0
  569. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/__init__.py +0 -0
  570. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/_base_scheduler.py +0 -0
  571. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/_delivery.py +0 -0
  572. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/_dispatch.py +0 -0
  573. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/agent_scheduler.py +0 -0
  574. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/async_agent_scheduler.py +0 -0
  575. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/base.py +0 -0
  576. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/blueprint_catalogue.py +0 -0
  577. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/condition_gate.py +0 -0
  578. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/daemon_manager.py +0 -0
  579. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/deployment.py +0 -0
  580. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/executor.py +0 -0
  581. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/run_policy.py +0 -0
  582. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/shared.py +0 -0
  583. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/state_manager.py +0 -0
  584. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/suggestion_engine.py +0 -0
  585. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/yaml_loader.py +0 -0
  586. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/__init__.py +0 -0
  587. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/audit.py +0 -0
  588. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/injection.py +0 -0
  589. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/protected.py +0 -0
  590. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup/__init__.py +0 -0
  591. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup/build.py +0 -0
  592. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup/post_install.py +0 -0
  593. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup.py +0 -0
  594. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/__init__.py +0 -0
  595. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/ai_generator.py +0 -0
  596. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/config.py +0 -0
  597. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/dedupe.py +0 -0
  598. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/discovery.py +0 -0
  599. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/drift.py +0 -0
  600. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/engine.py +0 -0
  601. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/enhanced_templates.py +0 -0
  602. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/example_verifier.py +0 -0
  603. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/manifest.py +0 -0
  604. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/models.py +0 -0
  605. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/reports.py +0 -0
  606. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/templates.py +0 -0
  607. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/undo_redo.py +0 -0
  608. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/validator.py +0 -0
  609. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/__init__.py +0 -0
  610. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/dynamodb_adapter.py +0 -0
  611. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/mongodb_adapter.py +0 -0
  612. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/postgresql_adapter.py +0 -0
  613. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/redis_adapter.py +0 -0
  614. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/valkey_adapter.py +0 -0
  615. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/__init__.py +0 -0
  616. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/batch_source.py +0 -0
  617. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/cli_docs_source.py +0 -0
  618. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/discovery.py +0 -0
  619. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/docs_source.py +0 -0
  620. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/examples_source.py +0 -0
  621. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/executor.py +0 -0
  622. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/models.py +0 -0
  623. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/report_viewer.py +0 -0
  624. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/reporter.py +0 -0
  625. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/runner.py +0 -0
  626. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/__init__.py +0 -0
  627. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/cache.py +0 -0
  628. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/dependency_checker.py +0 -0
  629. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/discovery.py +0 -0
  630. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/loader.py +0 -0
  631. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/registry.py +0 -0
  632. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/resolver.py +0 -0
  633. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/security.py +0 -0
  634. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/tool_override.py +0 -0
  635. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/tools_doctor.py +0 -0
  636. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tool_registry.py +0 -0
  637. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tool_resolver.py +0 -0
  638. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/__init__.py +0 -0
  639. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/audio.py +0 -0
  640. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/glob_tool.py +0 -0
  641. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/grep_tool.py +0 -0
  642. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/kanban_tools.py +0 -0
  643. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/multiedit.py +0 -0
  644. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/skill_manage.py +0 -0
  645. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/_aiui_datastore.py +0 -0
  646. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/_external_agents.py +0 -0
  647. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/callbacks.py +0 -0
  648. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/components/aicoder.py +0 -0
  649. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/context.py +0 -0
  650. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/database_config.py +0 -0
  651. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_agents/__init__.py +0 -0
  652. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_agents/default_app.py +0 -0
  653. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_bot/__init__.py +0 -0
  654. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_bot/default_app.py +0 -0
  655. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_chat/__init__.py +0 -0
  656. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_chat/default_app.py +0 -0
  657. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_dashboard/default_app.py +0 -0
  658. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_realtime/__init__.py +0 -0
  659. {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_realtime/default_app.py +0 -0
  660. {praisonai-4.6.146 → praisonai-4.6.147}/setup.cfg +0 -0
  661. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test.py +0 -0
  662. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_agents_playbook.py +0 -0
  663. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_approval_system.py +0 -0
  664. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_basic.py +0 -0
  665. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_cli_features.py +0 -0
  666. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_custom_tools_fix.py +0 -0
  667. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_double_api_fix.py +0 -0
  668. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_n8n_agent_invoke.py +0 -0
  669. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_n8n_cli_feature.py +0 -0
  670. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_n8n_integration.py +0 -0
  671. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_phase2_refactor.py +0 -0
  672. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_recipe.py +0 -0
  673. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_registry.py +0 -0
  674. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_runner.py +0 -0
  675. {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_sandboxed_agent_compatibility.py +0 -0
  676. {praisonai-4.6.146 → praisonai-4.6.147}/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.146
3
+ Version: 4.6.147
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,10 @@ 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.149
15
- Requires-Dist: praisonai-code>=0.0.45
16
- Requires-Dist: praisonai-bot>=0.0.30
14
+ Requires-Dist: praisonaiagents>=1.6.150
15
+ Requires-Dist: praisonai-code>=0.0.46
16
+ Requires-Dist: praisonai-bot>=0.0.31
17
+ Requires-Dist: praisonai-train>=0.0.2
17
18
  Requires-Dist: python-dotenv>=0.19.0
18
19
  Requires-Dist: litellm<2,>=1.83.14
19
20
  Requires-Dist: PyYAML>=6.0
@@ -81,6 +82,7 @@ Requires-Dist: flaml[automl]>=2.3.1; extra == "call"
81
82
  Requires-Dist: pyngrok>=1.4.0; extra == "call"
82
83
  Requires-Dist: rich; extra == "call"
83
84
  Provides-Extra: train
85
+ Requires-Dist: praisonai-train[llm]; extra == "train"
84
86
  Provides-Extra: crewai
85
87
  Requires-Dist: crewai>=0.157.0; extra == "crewai"
86
88
  Requires-Dist: praisonai-tools>=0.1.0; extra == "crewai"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 4.6.146
3
+ Version: 4.6.147
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,10 @@ 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.149
15
- Requires-Dist: praisonai-code>=0.0.45
16
- Requires-Dist: praisonai-bot>=0.0.30
14
+ Requires-Dist: praisonaiagents>=1.6.150
15
+ Requires-Dist: praisonai-code>=0.0.46
16
+ Requires-Dist: praisonai-bot>=0.0.31
17
+ Requires-Dist: praisonai-train>=0.0.2
17
18
  Requires-Dist: python-dotenv>=0.19.0
18
19
  Requires-Dist: litellm<2,>=1.83.14
19
20
  Requires-Dist: PyYAML>=6.0
@@ -81,6 +82,7 @@ Requires-Dist: flaml[automl]>=2.3.1; extra == "call"
81
82
  Requires-Dist: pyngrok>=1.4.0; extra == "call"
82
83
  Requires-Dist: rich; extra == "call"
83
84
  Provides-Extra: train
85
+ Requires-Dist: praisonai-train[llm]; extra == "train"
84
86
  Provides-Extra: crewai
85
87
  Requires-Dist: crewai>=0.157.0; extra == "crewai"
86
88
  Requires-Dist: praisonai-tools>=0.1.0; extra == "crewai"
@@ -6,6 +6,7 @@ PraisonAI.egg-info/dependency_links.txt
6
6
  PraisonAI.egg-info/entry_points.txt
7
7
  PraisonAI.egg-info/requires.txt
8
8
  PraisonAI.egg-info/top_level.txt
9
+ praisonai/README.md
9
10
  praisonai/__init__.py
10
11
  praisonai/__main__.py
11
12
  praisonai/_approval_spec.py
@@ -485,6 +486,10 @@ praisonai/persistence/tests/__init__.py
485
486
  praisonai/persistence/tests/test_all_backends.py
486
487
  praisonai/persistence/tests/test_registry_lazy.py
487
488
  praisonai/persistence/tests/test_valkey_backends.py
489
+ praisonai/public/fantasy.svg
490
+ praisonai/public/game.svg
491
+ praisonai/public/movie.svg
492
+ praisonai/public/thriller.svg
488
493
  praisonai/push/__init__.py
489
494
  praisonai/push/client.py
490
495
  praisonai/push/transports.py
@@ -523,6 +528,7 @@ praisonai/sandbox/modal.py
523
528
  praisonai/sandbox/sandlock.py
524
529
  praisonai/sandbox/ssh.py
525
530
  praisonai/sandbox/subprocess.py
531
+ praisonai/scheduler/README.md
526
532
  praisonai/scheduler/__init__.py
527
533
  praisonai/scheduler/_base_scheduler.py
528
534
  praisonai/scheduler/_delivery.py
@@ -546,6 +552,7 @@ praisonai/security/injection.py
546
552
  praisonai/security/protected.py
547
553
  praisonai/setup/__init__.py
548
554
  praisonai/setup/build.py
555
+ praisonai/setup/config.yaml
549
556
  praisonai/setup/post_install.py
550
557
  praisonai/setup/setup_conda_env.py
551
558
  praisonai/standardise/__init__.py
@@ -598,21 +605,33 @@ praisonai/tools/kanban_tools.py
598
605
  praisonai/tools/multiedit.py
599
606
  praisonai/tools/skill_manage.py
600
607
  praisonai/train/__init__.py
601
- praisonai/train/_ollama.py
602
- praisonai/train/agents/__init__.py
603
- praisonai/train/agents/grader.py
604
- praisonai/train/agents/hook.py
605
- praisonai/train/agents/models.py
606
- praisonai/train/agents/orchestrator.py
607
- praisonai/train/agents/storage.py
608
- praisonai/train/llm/__init__.py
609
- praisonai/train/llm/trainer.py
608
+ praisonai/ui/README.md
610
609
  praisonai/ui/_aiui_datastore.py
611
610
  praisonai/ui/_external_agents.py
612
611
  praisonai/ui/callbacks.py
613
612
  praisonai/ui/context.py
614
613
  praisonai/ui/database_config.py
614
+ praisonai/ui/tools.md
615
615
  praisonai/ui/components/aicoder.py
616
+ praisonai/ui/config/chainlit.md
617
+ praisonai/ui/config/translations/bn.json
618
+ praisonai/ui/config/translations/en-US.json
619
+ praisonai/ui/config/translations/gu.json
620
+ praisonai/ui/config/translations/he-IL.json
621
+ praisonai/ui/config/translations/hi.json
622
+ praisonai/ui/config/translations/kn.json
623
+ praisonai/ui/config/translations/ml.json
624
+ praisonai/ui/config/translations/mr.json
625
+ praisonai/ui/config/translations/ta.json
626
+ praisonai/ui/config/translations/te.json
627
+ praisonai/ui/config/translations/zh-CN.json
628
+ praisonai/ui/public/fantasy.svg
629
+ praisonai/ui/public/game.svg
630
+ praisonai/ui/public/logo_dark.png
631
+ praisonai/ui/public/logo_light.png
632
+ praisonai/ui/public/movie.svg
633
+ praisonai/ui/public/praison.css
634
+ praisonai/ui/public/thriller.svg
616
635
  praisonai/ui_agents/__init__.py
617
636
  praisonai/ui_agents/default_app.py
618
637
  praisonai/ui_bot/__init__.py
@@ -1,9 +1,10 @@
1
1
  rich>=13.7
2
2
  markdown>=3.5
3
3
  pyparsing>=3.0.0
4
- praisonaiagents>=1.6.149
5
- praisonai-code>=0.0.45
6
- praisonai-bot>=0.0.30
4
+ praisonaiagents>=1.6.150
5
+ praisonai-code>=0.0.46
6
+ praisonai-bot>=0.0.31
7
+ praisonai-train>=0.0.2
7
8
  python-dotenv>=0.19.0
8
9
  litellm<2,>=1.83.14
9
10
  PyYAML>=6.0
@@ -213,6 +214,7 @@ sandlock>=0.1.0
213
214
  asyncssh>=2.14.0
214
215
 
215
216
  [train]
217
+ praisonai-train[llm]
216
218
 
217
219
  [turso]
218
220
  libsql-experimental>=0.0.50
@@ -0,0 +1,5 @@
1
+ # PraisonAI Package
2
+
3
+ This is the PraisonAI package, which serves as a wrapper for PraisonAIAgents.
4
+
5
+ It provides a simple and intuitive interface for working with AI agents and their capabilities.
@@ -43,3 +43,19 @@ def ensure_praisonai_bot() -> None:
43
43
  root = str(bot_src)
44
44
  if root not in sys.path:
45
45
  sys.path.insert(0, root)
46
+
47
+
48
+ def ensure_praisonai_train() -> None:
49
+ """Ensure ``praisonai_train`` can be imported in monorepo dev layouts."""
50
+ try:
51
+ import praisonai_train # noqa: F401
52
+ return
53
+ except ImportError:
54
+ pass
55
+
56
+ wrapper_src = Path(__file__).resolve().parents[1] # .../src/praisonai
57
+ train_src = wrapper_src.parent / "praisonai-train"
58
+ if (train_src / "praisonai_train").is_dir():
59
+ root = str(train_src)
60
+ if root not in sys.path:
61
+ sys.path.insert(0, root)
@@ -367,65 +367,64 @@ class BaseAutoGenerator:
367
367
  # Resolve LLM endpoint configuration from environment variables
368
368
  from praisonai.llm.config import build_config_list
369
369
  self.config_list = config_list or build_config_list(include_api_type=False)
370
- self._openai_client = None # lazy, per-instance
371
- self._async_openai_client = None # lazy, per-instance async client
370
+ self._core_client = None # lazy, per-instance core OpenAIClient
372
371
  self._client_lock = threading.Lock()
373
-
374
- def _get_openai_client(self):
375
- """Get or create the OpenAI client for this instance.
372
+
373
+ def _get_core_client(self):
374
+ """Get or create the core-owned ``OpenAIClient`` for this instance.
375
+
376
+ The OpenAI leg of the structured-completion ladder is owned by the core
377
+ SDK (``praisonaiagents.llm.openai_client.OpenAIClient``), which manages
378
+ sync/async client construction, lifecycle, and the
379
+ ``beta.chat.completions.parse`` structured-output path. The wrapper
380
+ delegates to it rather than maintaining a parallel copy.
376
381
 
377
382
  Lazy-init AND snapshot the client under the same lock so the returned
378
- local reference survives a concurrent close() that nulls the attribute,
379
- closing the shutdown-during-request race (mirrors the async path).
383
+ local reference survives a concurrent close()/aclose() that nulls the
384
+ attribute, closing the shutdown-during-request race.
380
385
  """
381
386
  with self._client_lock:
382
- client = self._openai_client
387
+ client = self._core_client
383
388
  if client is None:
384
389
  try:
385
- from openai import OpenAI
390
+ from praisonaiagents.llm.openai_client import OpenAIClient
386
391
  except ImportError as e:
387
392
  raise ImportError("Install with: pip install openai") from e
388
393
  cfg = self.config_list[0]
389
- client = self._openai_client = OpenAI(
394
+ client = self._core_client = OpenAIClient(
390
395
  api_key=cfg.get("api_key") or os.environ.get("OPENAI_API_KEY"),
391
396
  base_url=cfg.get("base_url"),
392
397
  )
393
398
  return client
394
399
 
395
400
  def close(self):
396
- """Close the sync OpenAI client if it exists."""
401
+ """Close the core OpenAI client if it exists."""
397
402
  if not hasattr(self, '_client_lock'):
398
403
  return # Object was never fully initialized
399
404
  # Snapshot under the lock, close OUTSIDE it, and only null the attribute
400
405
  # after a successful close so a failed close can be retried.
401
406
  with self._client_lock:
402
- client = getattr(self, '_openai_client', None)
407
+ client = getattr(self, '_core_client', None)
403
408
  if client is not None:
404
409
  client.close()
405
410
  with self._client_lock:
406
- if getattr(self, '_openai_client', None) is client:
407
- self._openai_client = None
408
-
411
+ if getattr(self, '_core_client', None) is client:
412
+ self._core_client = None
413
+
409
414
  async def aclose(self):
410
- """Close both sync and async OpenAI clients if they exist."""
415
+ """Close the core OpenAI client if it exists."""
411
416
  if not hasattr(self, '_client_lock'):
412
417
  return # Object was never fully initialized
413
- # Snapshot under the lock, close OUTSIDE it, and only null each attribute
414
- # after its successful close so a failed close can be retried.
418
+ # Snapshot under the lock, close OUTSIDE it, and only null the attribute
419
+ # after a successful close so a failed close can be retried.
415
420
  with self._client_lock:
416
- sync_client = getattr(self, '_openai_client', None)
417
- async_client = getattr(self, '_async_openai_client', None)
418
- if sync_client is not None:
419
- await asyncio.to_thread(sync_client.close)
420
- with self._client_lock:
421
- if getattr(self, '_openai_client', None) is sync_client:
422
- self._openai_client = None
423
- if async_client is not None:
424
- await async_client.close()
421
+ client = getattr(self, '_core_client', None)
422
+ if client is not None:
423
+ await client.aclose()
425
424
  with self._client_lock:
426
- if getattr(self, '_async_openai_client', None) is async_client:
427
- self._async_openai_client = None
428
-
425
+ if getattr(self, '_core_client', None) is client:
426
+ self._core_client = None
427
+
429
428
  def __enter__(self):
430
429
  return self
431
430
 
@@ -440,27 +439,73 @@ class BaseAutoGenerator:
440
439
  await self.aclose()
441
440
  return False
442
441
 
443
-
444
- def _get_async_openai_client(self):
445
- """Get or create the async OpenAI client for this instance.
446
-
447
- Lazy-init AND snapshot the client under the same lock so the returned
448
- local reference survives a concurrent aclose() that nulls the attribute,
449
- closing the shutdown-during-request race (mirrors the sync path).
442
+ async def _structured_via_registered_provider(
443
+ self,
444
+ response_model: Type[T],
445
+ messages: List[Dict],
446
+ model_name: str,
447
+ **kwargs,
448
+ ):
449
+ """Delegate structured completion to a user-registered LLM provider.
450
+
451
+ Consults ``praisonai.llm.registry`` so a provider registered via
452
+ ``register_llm_provider(...)`` becomes reachable from AutoGenerator (and
453
+ every generator inheriting from it). Only providers that are (a) NOT a
454
+ built-in litellm/gateway prefix and (b) opt in by exposing an async
455
+ ``generate_structured(response_model, messages, **kwargs)`` are used;
456
+ everything else returns ``None`` so the existing LiteLLM/OpenAI ladder
457
+ runs unchanged. Never raises for registry issues — returns ``None``.
450
458
  """
451
- with self._client_lock:
452
- client = self._async_openai_client
453
- if client is None:
454
- try:
455
- from openai import AsyncOpenAI
456
- except ImportError as e:
457
- raise ImportError("Install with: pip install openai") from e
458
- cfg = self.config_list[0]
459
- client = self._async_openai_client = AsyncOpenAI(
460
- api_key=cfg.get("api_key") or os.environ.get("OPENAI_API_KEY"),
461
- base_url=cfg.get("base_url"),
462
- )
463
- return client
459
+ if "/" not in model_name:
460
+ return None
461
+ provider_id = model_name.split("/", 1)[0].lower()
462
+ # Built-in prefixes keep the fast, direct LiteLLM/OpenAI ladder below and
463
+ # are never resolved through the registry — reuse the SAME set as
464
+ # PraisonAIModel._is_registered_provider() so both hot paths agree on
465
+ # which providers are "registered" (a custom "openai"/"anthropic"
466
+ # registration must not hijack the built-in path here).
467
+ try:
468
+ from praisonai.inc.models import _BUILTIN_MODEL_PREFIXES
469
+ except ImportError:
470
+ _BUILTIN_MODEL_PREFIXES = frozenset(
471
+ {"openai", "groq", "cohere", "ollama",
472
+ "anthropic", "google", "openrouter"}
473
+ )
474
+ if provider_id in _BUILTIN_MODEL_PREFIXES:
475
+ return None
476
+ try:
477
+ from praisonai.llm import create_llm_provider, has_llm_provider
478
+ except ImportError:
479
+ return None
480
+ # Forward the selected generator's config so a provider that needs it for
481
+ # generate_structured() authenticates correctly — mirrors what
482
+ # PraisonAIModel passes. Preserve provider-specific fields (e.g.
483
+ # aws_region, timeout, model_kwargs) but drop empty credential entries so
484
+ # a provider's own credential chain is not shadowed by empty values.
485
+ cfg = self.config_list[0]
486
+ provider_config = {
487
+ k: v
488
+ for k, v in cfg.items()
489
+ if k != "model" and not (k in ("api_key", "base_url") and not v)
490
+ }
491
+ try:
492
+ if not has_llm_provider(provider_id):
493
+ return None
494
+ provider = create_llm_provider(
495
+ model_name, config=provider_config or None
496
+ )
497
+ except Exception as exc:
498
+ logger.debug(
499
+ "Registered provider lookup for %r failed (%s); "
500
+ "using built-in completion ladder.", model_name, exc
501
+ )
502
+ return None
503
+ generate_structured = getattr(provider, "generate_structured", None)
504
+ if not callable(generate_structured):
505
+ return None
506
+ return await _maybe_await(
507
+ generate_structured(response_model, messages, **kwargs)
508
+ )
464
509
 
465
510
  async def _completion_impl(
466
511
  self,
@@ -480,6 +525,16 @@ class BaseAutoGenerator:
480
525
  """
481
526
  model_name = self.config_list[0]['model']
482
527
 
528
+ # Extension point: if the model resolves to a user-registered provider
529
+ # (praisonai.llm.registry) that opts in by exposing generate_structured,
530
+ # delegate to it so custom providers (e.g. "bedrock/...") take effect
531
+ # here. Built-in providers are untouched and keep the ladder below.
532
+ registered = await self._structured_via_registered_provider(
533
+ response_model, messages, model_name, **kwargs
534
+ )
535
+ if registered is not None:
536
+ return registered
537
+
483
538
  # Try LiteLLM first (preferred - supports 100+ providers)
484
539
  if is_available("litellm"):
485
540
  try:
@@ -513,27 +568,30 @@ class BaseAutoGenerator:
513
568
  "falling back to OpenAI SDK.", e
514
569
  )
515
570
 
516
- # Fallback to OpenAI SDK (uses beta.chat.completions.parse)
571
+ # Fallback to the core-owned OpenAI client (uses beta.chat.completions.parse).
572
+ # Delegating to praisonaiagents.llm.openai_client.OpenAIClient keeps the
573
+ # OpenAI structured-output path in a single, core-owned place instead of a
574
+ # parallel wrapper copy that can silently drift from core.
517
575
  if is_available("openai"):
518
- client = (
519
- self._get_async_openai_client() if is_async
520
- else self._get_openai_client()
521
- )
522
- parse = client.beta.chat.completions.parse
523
- parse_kwargs = dict(
524
- model=model_name,
525
- messages=messages,
526
- response_format=response_model,
527
- **kwargs,
528
- )
529
- # As above: await directly when async, otherwise offload the blocking
530
- # sync parse() so the bridge event loop is never blocked.
531
- response = (
532
- await _maybe_await(parse(**parse_kwargs))
533
- if is_async
534
- else await asyncio.to_thread(lambda: parse(**parse_kwargs))
576
+ client = self._get_core_client()
577
+ # The async path awaits the core coroutine directly. The sync path
578
+ # offloads the blocking core call via asyncio.to_thread so it never
579
+ # blocks the bridge event loop this coroutine runs on.
580
+ if is_async:
581
+ return await client.aparse_structured_output(
582
+ messages=messages,
583
+ response_format=response_model,
584
+ model=model_name,
585
+ **kwargs,
586
+ )
587
+ return await asyncio.to_thread(
588
+ lambda: client.parse_structured_output(
589
+ messages=messages,
590
+ response_format=response_model,
591
+ model=model_name,
592
+ **kwargs,
593
+ )
535
594
  )
536
- return response.choices[0].message.parsed
537
595
 
538
596
  # Neither available - raise helpful error
539
597
  raise ImportError(
@@ -0,0 +1,11 @@
1
+ """C10 shim: implementation moved to ``praisonai_train.cli.commands.train``."""
2
+
3
+ import sys as _sys
4
+
5
+ from praisonai._bootstrap import ensure_praisonai_train
6
+
7
+ ensure_praisonai_train()
8
+
9
+ import praisonai_train.cli.commands.train as _impl
10
+
11
+ _sys.modules[__name__] = _impl
@@ -13,6 +13,7 @@
13
13
  "additionalProperties": false,
14
14
  "properties": {
15
15
  "model": { "type": "string" },
16
+ "small_model": { "type": "string" },
16
17
  "provider": { "type": "string" },
17
18
  "base_url": { "type": "string" },
18
19
  "api_key": { "type": "string" },
@@ -11,6 +11,13 @@ logger = logging.getLogger(__name__)
11
11
  # Constants
12
12
  LOCAL_SERVER_API_KEY_PLACEHOLDER = "not-needed"
13
13
 
14
+ # Provider prefixes handled directly by the built-in ladder in this module.
15
+ # Any prefix NOT in this set is delegated to praisonai.llm.registry so that
16
+ # user-registered providers (register_llm_provider(...)) take effect here.
17
+ _BUILTIN_MODEL_PREFIXES = frozenset(
18
+ {"openai", "groq", "cohere", "ollama", "anthropic", "google", "openrouter"}
19
+ )
20
+
14
21
  def _is_module_available(module_name: str) -> bool:
15
22
  """Safely check if a module spec is importable.
16
23
 
@@ -107,7 +114,13 @@ class PraisonAIModel:
107
114
  "api.openai.com" not in self.base_url)
108
115
  if is_local:
109
116
  self.api_key = LOCAL_SERVER_API_KEY_PLACEHOLDER
110
-
117
+
118
+ # A user-registered provider (llm.registry) owns its own credential
119
+ # resolution, so defer the OpenAI-key requirement to it rather than
120
+ # failing here for e.g. "bedrock/..." that isn't a built-in prefix.
121
+ if not self.api_key and self._is_registered_provider():
122
+ return
123
+
111
124
  if not self.api_key:
112
125
  raise ValueError(
113
126
  f"{self.api_key_var} environment variable is required for the default OpenAI service. "
@@ -115,6 +128,62 @@ class PraisonAIModel:
115
128
  )
116
129
 
117
130
 
131
+ def _is_registered_provider(self):
132
+ """Return True if the model's provider prefix is a user-registered one.
133
+
134
+ A non-built-in prefix (e.g. "bedrock/") that has been registered via
135
+ ``register_llm_provider`` should be resolved through the registry rather
136
+ than the built-in ladder. Never raises.
137
+ """
138
+ if "/" not in self.model:
139
+ return False
140
+ provider_id = self.model.split("/", 1)[0].lower()
141
+ if provider_id in _BUILTIN_MODEL_PREFIXES:
142
+ return False
143
+ try:
144
+ from praisonai.llm import has_llm_provider
145
+ return bool(has_llm_provider(provider_id))
146
+ except Exception: # pragma: no cover - defensive
147
+ return False
148
+
149
+ def _resolve_registered_provider(self):
150
+ """Resolve a user-registered LLM provider from ``praisonai.llm.registry``.
151
+
152
+ Consults the extension point advertised in ``llm/registry.py`` so that
153
+ ``register_llm_provider("bedrock", BedrockProvider)`` becomes visible to
154
+ every framework adapter that goes through ``PraisonAIModel``. Only
155
+ providers NOT covered by the built-in ladder below are resolved here;
156
+ built-ins keep their existing fast, direct-SDK behaviour. Returns the
157
+ resolved provider instance, or ``None`` when the prefix is not a
158
+ registered provider (so the built-in ladder runs). If the prefix IS a
159
+ registered provider but its construction fails, the error is propagated
160
+ rather than masked behind the uncredentialed built-in OpenAI path.
161
+ """
162
+ if not self._is_registered_provider():
163
+ return None
164
+ try:
165
+ from praisonai.llm import create_llm_provider
166
+ except Exception as exc: # pragma: no cover - defensive
167
+ logger.debug(
168
+ "Registry import for %r failed (%s); "
169
+ "falling back to built-in resolution.", self.model, exc
170
+ )
171
+ return None
172
+ # Only pass credentials that were actually resolved. Injecting
173
+ # ``api_key: None``/``base_url: ""`` would let a provider treat a
174
+ # present-but-empty key as an explicit credential and skip its own
175
+ # environment/credential chain (Greptile P2).
176
+ config = {}
177
+ if self.api_key:
178
+ config["api_key"] = self.api_key
179
+ if self.base_url:
180
+ config["base_url"] = self.base_url
181
+ # The provider is registered, so a construction failure is a real error
182
+ # for the user's chosen provider — surface it rather than silently
183
+ # continuing into the uncredentialed built-in OpenAI ladder, which would
184
+ # otherwise mask the cause behind a misleading auth error (Greptile P1).
185
+ return create_llm_provider(self.model, config=config or None)
186
+
118
187
  def get_model(self):
119
188
  """
120
189
  Returns an instance of the native SDK client with the configured parameters.
@@ -125,6 +194,15 @@ class PraisonAIModel:
125
194
  Returns:
126
195
  Client: An instance of the native SDK client (OpenAI, Anthropic, etc.)
127
196
  """
197
+ # Extension point: honour user-registered providers (llm.registry) before
198
+ # the built-in ladder so custom providers (e.g. "bedrock/...") take effect.
199
+ registered = self._resolve_registered_provider()
200
+ if registered is not None:
201
+ get_client = getattr(registered, "get_client", None)
202
+ if callable(get_client):
203
+ return get_client()
204
+ return registered
205
+
128
206
  if self.model.startswith("google/"):
129
207
  if GOOGLE_GENAI_AVAILABLE:
130
208
  genai = _get_google_genai()
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M840.5 798.2L662.3 599.5l-151 173.7-173.7-173.7-167.7 201c-21 30.4 0.9 71.8 37.9 71.6l594.7-3.3c36.2-0.1 57.8-40.3 38-70.6z" fill="#FFB89A" /><path d="M741.6 647.3l-52.3-47.7c-12.2-11.2-31.2-10.3-42.4 1.9s-10.3 31.2 1.9 42.4l52.3 47.7c5.8 5.3 13 7.8 20.2 7.8 8.1 0 16.2-3.3 22.2-9.8 11.2-12.1 10.3-31.1-1.9-42.3zM631.2 546.5c-12.4-11-31.4-9.8-42.3 2.6l-98.8 111.7-171-165.7L87.9 724.7c-11.8 11.7-11.8 30.7-0.1 42.4 5.9 5.9 13.6 8.9 21.3 8.9 7.6 0 15.3-2.9 21.1-8.7l189.4-188.1 173.8 168.5L633.8 589c11-12.5 9.8-31.5-2.6-42.5z" fill="#33CC99" /><path d="M721.3 342.8m-35.1 0a35.1 35.1 0 1 0 70.2 0 35.1 35.1 0 1 0-70.2 0Z" fill="#33CC99" /><path d="M743.2 175.1H191.6c-70.6 0-128.3 57.7-128.3 128.3v499.2c0 70.6 57.7 128.3 128.3 128.3h551.5c70.6 0 128.3-57.7 128.3-128.3V303.5c0.1-70.6-57.7-128.4-128.2-128.4z m68.3 627.6c0 18.1-7.1 35.2-20.1 48.2-13 13-30.1 20.1-48.2 20.1H191.6c-18.1 0-35.2-7.1-48.2-20.1-13-13-20.1-30.1-20.1-48.2V303.5c0-18.1 7.1-35.2 20.1-48.2 13-13 30.1-20.1 48.2-20.1h551.5c18.1 0 35.2 7.1 48.2 20.1 13 13 20.1 30.1 20.1 48.2v499.2z" fill="#45484C" /><path d="M799.7 90.9H237.2c-16.6 0-30 13.4-30 30s13.4 30 30 30h562.4c26.1 0 50.8 10.3 69.4 28.9 18.6 18.6 28.9 43.3 28.9 69.4v482.4c0 16.6 13.4 30 30 30s30-13.4 30-30V249.2C958 161.9 887 90.9 799.7 90.9z" fill="#45484C" /></svg>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M570.2 842c-50.6 0-278.7-180-278.7-401.9 0-58.8-2.9-133.1-1-183.9-50.8 3.2-91.4 45.7-91.4 97.3v272.1c37.4 194.7 137.5 334 255.2 334 69.5 0 132.9-48.6 180.9-128.5-20.8 7.1-42.6 10.9-65 10.9z" fill="#FFB89A" /><path d="M926.1 191.8C900.5 74.1 817.9 62.1 704.9 62.1c-29.1 0-60.3 0.8-93 0.8-36 0-70.5-1.1-102.5-1.1-109.7 0-189.8 12.5-201.3 123.7-20.4 198.3 30 617.1 306.1 617.1S939 414.3 926.1 191.8z m-76.9 268.5c-9.5 47.9-22.3 90.8-38.1 127.7-16.8 39.2-37 71.4-60 95.8-37.3 39.5-82.1 58.7-137 58.7-53.4 0-97.6-20.1-134.9-61.6-45.5-50.5-79.8-131.5-99-234.2-15.6-83.5-20.3-178.9-12.4-255.2 1.8-17.3 5.7-30.7 11.6-39.8 4.4-6.8 10.1-11.7 18.7-15.8 25.8-12.5 70.8-14.2 111.4-14.2 15 0 30.7 0.2 47.3 0.5 17.8 0.3 36.2 0.6 55.2 0.6 17.2 0 33.9-0.2 50-0.4 15.1-0.2 29.3-0.4 43.1-0.4 44.5 0 89.5 1.8 118 15.1 15.9 7.4 33.4 20.8 43.6 63 2.6 53.3 3.6 153.5-17.5 260.2z" fill="#4E5155" /><path d="M532 841.7c-32.5 22.3-70.6 33.7-113.2 33.7-29.7 0-57.3-6-82.1-17.7-23.2-11-44.7-27.4-63.9-48.7-46-50.9-80.3-131.3-99.2-232.4-15.1-80.6-19.6-172.9-12-246.8 3-29.5 12-50.2 27.5-63.2 14.2-12 35.1-19.2 65.8-22.9 16.5-2 28.2-16.9 26.3-33.3-2-16.5-16.9-28.2-33.3-26.3-42.9 5.1-73.8 16.7-97.4 36.5-27.9 23.5-43.8 57.2-48.5 103-8.2 79.3-3.4 178.1 12.7 264 9.7 51.9 23.4 99.4 40.6 141.2 19.8 48.1 44.4 88.6 73 120.4 51.6 57.2 115.7 86.2 190.6 86.2 55 0 104.5-14.9 147.2-44.2 13.7-9.4 17.1-28.1 7.7-41.7-9.4-13.7-28.1-17.2-41.8-7.8z" fill="#4E5155" /><path d="M519.7 248.5c-16.6 0-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3c0-16.6-13.5-30-30-30zM299.5 385.5c0-16.6-13.4-30-30-30s-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3zM754.6 248.5c-16.6 0-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3c0-16.6-13.4-30-30-30zM716.7 554.5c0-16.6-13.4-30-30-30H551v30c0 58.5 38.1 123.7 92.8 123.7 22.9 0 45-11.9 62.2-33.6 10.3-13 8.1-31.9-4.9-42.1-13-10.3-31.9-8.1-42.1 4.9-5.3 6.7-11.1 10.9-15.1 10.9-4.3 0-11.9-5.1-19.1-16.4-3.3-5.3-6.2-11.2-8.4-17.4h70.4c16.4 0 29.9-13.4 29.9-30zM401.6 704c-25.4 0-46.1-24.2-46.1-53.9 0-16.6-13.4-30-30-30s-30 13.4-30 30c0 62.8 47.6 113.9 106.1 113.9 16.6 0 30-13.4 30-30s-13.5-30-30-30z" fill="#33CC99" /></svg>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M861.9 383.8H218.1c-36.4 0-66.1-29.8-66.1-66.1V288c0-36.4 29.8-66.1 66.1-66.1h643.8c36.4 0 66.1 29.8 66.1 66.1v29.7c0 36.3-29.8 66.1-66.1 66.1z" fill="#FFB89A" /><path d="M822.9 129.2H199.8c-77.2 0-140.4 63.2-140.4 140.4v487.2c0 77.2 63.2 140.4 140.4 140.4h623.1c77.2 0 140.4-63.2 140.4-140.4V269.6c0-77.2-63.2-140.4-140.4-140.4z m80.4 177H760.4L864.6 201c5.4 3.3 10.4 7.3 15 11.8 15.3 15.3 23.7 35.4 23.7 56.8v36.6z m-673.3 0l104-117h61.3l-109.1 117H230z m247.4-117h169.2L532 306.2H368.3l109.1-117z m248.8 0h65.6L676 306.2h-60l112.5-114.8-2.3-2.2zM143 212.9c15.3-15.3 35.4-23.7 56.8-23.7h53.9l-104 117h-30.4v-36.5c0.1-21.4 8.5-41.5 23.7-56.8z m736.6 600.7c-15.3 15.3-35.4 23.7-56.8 23.7h-623c-21.3 0-41.5-8.4-56.8-23.7-15.3-15.3-23.7-35.4-23.7-56.8V366.2h783.9v390.6c0.1 21.3-8.3 41.5-23.6 56.8z" fill="#45484C" /><path d="M400.5 770.6V430.9L534.1 508c14.3 8.3 19.3 26.6 11 41-8.3 14.3-26.6 19.3-41 11l-43.6-25.2v131.8l114.1-65.9-7.5-4.3c-14.3-8.3-19.3-26.6-11-41 8.3-14.3 26.6-19.3 41-11l97.5 56.3-294.1 169.9z" fill="#33CC99" /></svg>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M188.3 766.5a94.4 135.8 0 1 0 188.8 0 94.4 135.8 0 1 0-188.8 0Z" fill="#FFB89A" /><path d="M931.5 397s0-0.1 0 0c-34.2-82.6-119.3-141-218.8-141-129.7 0-234.9 99.3-234.9 221.9 0 52.1 19.1 100.1 50.9 138 1 14.5 1.8 29.1 1.8 43.6 0 148.5 98.1 269 219.2 269 121 0 219.2-120.4 219.2-269 0-70.1-1.7-214.7-37.4-262.5z m-36.6 347.5c-8.7 25.3-21.1 47.9-36.8 67.1-29.8 36.5-68.3 56.7-108.5 56.7s-78.7-20.1-108.5-56.7c-15.7-19.2-28-41.8-36.8-67.1-9.3-26.9-13.9-55.5-13.9-85.1 0-16.8-1-33.5-2-47.7l-1.3-19.5-12.6-15c-24.1-28.6-36.8-63-36.8-99.3 0-89.3 78.5-161.9 174.9-161.9 36.4 0 71.4 10.3 101 29.7 28.4 18.7 65.5 81.7 65.5 81.7s17.9 27.5 24.7 98.2c4.5 46.5 5 95.9 5 133.8 0.1 29.6-4.6 58.2-13.9 85.1zM377.1 219.9c-51.8 0-93.8 42-93.8 93.8s42 93.8 93.8 93.8 93.8-42 93.8-93.8-42-93.8-93.8-93.8z m0 127.5c-18.6 0-33.8-15.2-33.8-33.8 0-18.6 15.2-33.8 33.8-33.8 18.6 0 33.8 15.2 33.8 33.8 0 18.7-15.1 33.8-33.8 33.8z" fill="#45484C" /><path d="M521.2 206.7m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M653 156.4m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M781.9 158.4m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M909 206.7m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M263.9 602.7c44.7 0 81 31.5 81 70.3 0 20.9-10.2 35.9-18.7 44.8l-15.9 19.7-0.5 27.2c0.7 7.2 0.6 16.9 0.6 24.7v4.8c0 33.7-27.4 61.2-61.2 61.2-14.9 0-33.3-9.6-48.1-25-15.2-15.9-24.6-35.9-24.6-52.3v-3.2c0-12.7 0-36.2 1-60.2 1.4-33 7.4-57.3 7.4-57.3 3.9-14.7 13.4-28.2 26.8-38 14.8-11 32.8-16.7 52.2-16.7m0-60c-66.4 0-122 42.4-137 99.4-10.9 23-10.4 112.6-10.4 135.9 0 66.9 65.8 137.3 132.7 137.3 66.9 0 121.2-54.3 121.2-121.2 0-9.2 0.3-23-0.8-34.9 22-23 35.4-53.2 35.4-86.3-0.1-71.9-63.2-130.2-141.1-130.2zM444.4 559.9c-26.4 0-47.8 21.4-47.8 47.8s21.4 47.8 47.8 47.8 47.8-21.4 47.8-47.8-21.4-47.8-47.8-47.8zM377.1 494.5c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5c0-15.3-12.3-27.5-27.5-27.5zM288.1 471.5c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5-12.4-27.5-27.5-27.5zM188.3 477.9c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5-12.3-27.5-27.5-27.5zM100.6 538.4c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5c-0.1-15.2-12.4-27.5-27.5-27.5z" fill="#45484C" /><path d="M670.1 584.6c-41.4 0-80.2-20.3-103.9-54.3-9.5-13.6-6.2-32.3 7.4-41.8 13.6-9.5 32.3-6.2 41.8 7.4 12.5 17.9 33 28.6 54.7 28.6 36.8 0 66.7-29.9 66.7-66.7 0-19.8-8.7-38.4-23.9-51.2-12.7-10.6-14.4-29.6-3.7-42.3s29.6-14.4 42.3-3.7c28.9 24.2 45.4 59.6 45.4 97.2-0.1 70-56.9 126.8-126.8 126.8z" fill="#33CC99" /><path d="M853 556.4c-26 0-49.6-14.5-60.1-36.9-7-15-0.6-32.9 14.4-39.9s32.9-0.6 39.9 14.4c0.3 0.6 2.2 2.4 5.8 2.4 1.2 0 2.3-0.2 3.3-0.6 15.5-5.9 32.8 1.8 38.7 17.3 5.9 15.5-1.8 32.8-17.3 38.7-7.9 3.1-16.2 4.6-24.7 4.6z" fill="#33CC99" /></svg>