rasa-pro 3.14.0.dev20250901__py3-none-any.whl → 3.14.0rc1__py3-none-any.whl

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.

Potentially problematic release.


This version of rasa-pro might be problematic. Click here for more details.

Files changed (584) hide show
  1. rasa/__main__.py +15 -3
  2. rasa/agents/__init__.py +0 -0
  3. rasa/agents/agent_factory.py +122 -0
  4. rasa/agents/agent_manager.py +211 -0
  5. rasa/agents/constants.py +43 -0
  6. rasa/agents/core/__init__.py +0 -0
  7. rasa/agents/core/agent_protocol.py +107 -0
  8. rasa/agents/core/types.py +81 -0
  9. rasa/agents/exceptions.py +38 -0
  10. rasa/agents/protocol/__init__.py +5 -0
  11. rasa/agents/protocol/a2a/__init__.py +0 -0
  12. rasa/agents/protocol/a2a/a2a_agent.py +879 -0
  13. rasa/agents/protocol/mcp/__init__.py +0 -0
  14. rasa/agents/protocol/mcp/mcp_base_agent.py +726 -0
  15. rasa/agents/protocol/mcp/mcp_open_agent.py +327 -0
  16. rasa/agents/protocol/mcp/mcp_task_agent.py +522 -0
  17. rasa/agents/schemas/__init__.py +13 -0
  18. rasa/agents/schemas/agent_input.py +38 -0
  19. rasa/agents/schemas/agent_output.py +26 -0
  20. rasa/agents/schemas/agent_tool_result.py +65 -0
  21. rasa/agents/schemas/agent_tool_schema.py +186 -0
  22. rasa/agents/templates/__init__.py +0 -0
  23. rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +20 -0
  24. rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +22 -0
  25. rasa/agents/utils.py +206 -0
  26. rasa/agents/validation.py +485 -0
  27. rasa/api.py +24 -9
  28. rasa/builder/config.py +7 -2
  29. rasa/builder/copilot/constants.py +3 -0
  30. rasa/builder/copilot/copilot.py +128 -54
  31. rasa/builder/copilot/models.py +39 -3
  32. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +183 -188
  33. rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +61 -0
  34. rasa/builder/copilot/telemetry.py +46 -20
  35. rasa/builder/document_retrieval/models.py +3 -3
  36. rasa/builder/download.py +1 -8
  37. rasa/builder/guardrails/{lakera.py → clients.py} +55 -5
  38. rasa/builder/guardrails/constants.py +3 -0
  39. rasa/builder/guardrails/models.py +45 -10
  40. rasa/builder/guardrails/policy_checker.py +324 -0
  41. rasa/builder/guardrails/utils.py +42 -276
  42. rasa/builder/jobs.py +33 -21
  43. rasa/builder/llm_service.py +32 -5
  44. rasa/builder/main.py +38 -62
  45. rasa/builder/models.py +8 -7
  46. rasa/builder/project_generator.py +149 -148
  47. rasa/builder/service.py +58 -40
  48. rasa/builder/template_cache.py +69 -0
  49. rasa/builder/training_service.py +84 -20
  50. rasa/builder/validation_service.py +1 -1
  51. rasa/cli/arguments/default_arguments.py +12 -0
  52. rasa/cli/arguments/run.py +2 -0
  53. rasa/cli/arguments/train.py +2 -0
  54. rasa/cli/data.py +10 -8
  55. rasa/cli/dialogue_understanding_test.py +10 -7
  56. rasa/cli/e2e_test.py +9 -6
  57. rasa/cli/evaluate.py +4 -2
  58. rasa/cli/export.py +5 -2
  59. rasa/cli/inspect.py +8 -4
  60. rasa/cli/interactive.py +5 -4
  61. rasa/cli/llm_fine_tuning.py +11 -6
  62. rasa/cli/project_templates/basic/README.md +23 -0
  63. rasa/cli/project_templates/basic/actions/actions.md +10 -0
  64. rasa/cli/project_templates/basic/config.yml +6 -4
  65. rasa/cli/project_templates/basic/data/data.md +5 -6
  66. rasa/cli/project_templates/basic/domain/domain.md +7 -5
  67. rasa/cli/project_templates/basic/domain/general/show_faqs.yml +1 -1
  68. rasa/cli/project_templates/basic/endpoints.yml +5 -1
  69. rasa/cli/project_templates/default/config.yml +4 -0
  70. rasa/cli/project_templates/default/endpoints.yml +4 -0
  71. rasa/cli/project_templates/finance/README.md +26 -0
  72. rasa/cli/project_templates/finance/actions/__init__.py +0 -46
  73. rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
  74. rasa/cli/project_templates/finance/actions/actions.md +15 -0
  75. rasa/cli/project_templates/finance/actions/{transfers/action_process_immediate_payment.py → cards/check_that_card_exists.py} +6 -3
  76. rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
  77. rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
  78. rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
  79. rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
  80. rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
  81. rasa/cli/project_templates/finance/actions/db.py +117 -0
  82. rasa/cli/project_templates/finance/actions/general/__init__.py +0 -0
  83. rasa/cli/project_templates/finance/actions/general/action_human_handoff.py +49 -0
  84. rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
  85. rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
  86. rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
  87. rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
  88. rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
  89. rasa/cli/project_templates/finance/config.yml +8 -0
  90. rasa/cli/project_templates/finance/credentials.yml +7 -6
  91. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +3 -4
  92. rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
  93. rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
  94. rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
  95. rasa/cli/project_templates/finance/data/cards/block_card.yml +37 -58
  96. rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
  97. rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
  98. rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
  99. rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
  100. rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
  101. rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
  102. rasa/cli/project_templates/finance/data/data.md +14 -0
  103. rasa/cli/project_templates/finance/data/general/bot_challenge.yml +6 -0
  104. rasa/cli/project_templates/finance/data/general/goodbye.yml +1 -1
  105. rasa/cli/project_templates/finance/data/general/hello.yml +1 -2
  106. rasa/cli/project_templates/finance/data/general/help.yml +2 -2
  107. rasa/cli/project_templates/finance/data/general/human_handoff.yml +2 -2
  108. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +1 -1
  109. rasa/cli/project_templates/finance/data/transfers/check_transfer_limit.yml +18 -0
  110. rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
  111. rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
  112. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +29 -62
  113. rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
  114. rasa/cli/project_templates/finance/db/cards.json +18 -0
  115. rasa/cli/project_templates/finance/db/contacts.json +10 -0
  116. rasa/cli/project_templates/finance/db/my_account.json +6 -0
  117. rasa/cli/project_templates/finance/db/transactions.json +22 -0
  118. rasa/cli/project_templates/finance/docs/docs.md +8 -0
  119. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
  120. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
  121. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
  122. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
  123. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
  124. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
  125. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
  126. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
  127. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
  128. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
  129. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +9 -5
  130. rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
  131. rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
  132. rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
  133. rasa/cli/project_templates/finance/domain/cards/block_card.yml +33 -90
  134. rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
  135. rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
  136. rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
  137. rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
  138. rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
  139. rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
  140. rasa/cli/project_templates/finance/domain/domain.md +18 -0
  141. rasa/cli/project_templates/finance/domain/general/_shared.yml +39 -0
  142. rasa/cli/project_templates/finance/domain/general/bot_challenge.yml +4 -0
  143. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -2
  144. rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -3
  145. rasa/cli/project_templates/finance/domain/general/goodbye.yml +6 -6
  146. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +10 -9
  147. rasa/cli/project_templates/finance/domain/general/welcome.yml +33 -2
  148. rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
  149. rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
  150. rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
  151. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +203 -61
  152. rasa/cli/project_templates/finance/endpoints.yml +8 -4
  153. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +31 -12
  154. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/check_balance.yml +9 -0
  155. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/download_statements.yml +43 -0
  156. rasa/cli/project_templates/finance/tests/e2e_test_cases/cards/block_card.yml +55 -0
  157. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  158. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/feedback.yml +46 -0
  159. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/goodbye.yml +9 -0
  160. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/hello.yml +8 -0
  161. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  162. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/patterns.yml +22 -0
  163. rasa/cli/project_templates/finance/tests/e2e_test_cases/transfers/transfer_money.yml +56 -0
  164. rasa/cli/project_templates/telco/README.md +25 -0
  165. rasa/cli/project_templates/telco/actions/actions.md +12 -0
  166. rasa/cli/project_templates/telco/config.yml +6 -4
  167. rasa/cli/project_templates/telco/data/data.md +11 -0
  168. rasa/cli/project_templates/telco/data/general/human_handoff.yml +1 -1
  169. rasa/cli/project_templates/telco/docs/docs.md +3 -0
  170. rasa/cli/project_templates/telco/domain/domain.md +13 -0
  171. rasa/cli/project_templates/telco/domain/general/human_handoff.yml +3 -6
  172. rasa/cli/project_templates/telco/endpoints.yml +5 -1
  173. rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +1 -1
  174. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing/understand_bill.yml +67 -0
  175. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  176. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/feedback.yml +46 -0
  177. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/goodbye.yml +9 -0
  178. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/hello.yml +8 -0
  179. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  180. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/patterns.yml +23 -0
  181. rasa/cli/project_templates/telco/tests/e2e_test_cases/network/solve_internet_issue.yml +57 -0
  182. rasa/cli/project_templates/tutorial/credentials.yml +10 -0
  183. rasa/cli/run.py +12 -10
  184. rasa/cli/scaffold.py +4 -4
  185. rasa/cli/shell.py +9 -5
  186. rasa/cli/studio/studio.py +1 -1
  187. rasa/cli/test.py +34 -14
  188. rasa/cli/train.py +41 -28
  189. rasa/cli/utils.py +1 -393
  190. rasa/cli/validation/__init__.py +0 -0
  191. rasa/cli/validation/bot_config.py +223 -0
  192. rasa/cli/validation/config_path_validation.py +257 -0
  193. rasa/cli/x.py +8 -4
  194. rasa/constants.py +7 -1
  195. rasa/core/actions/action.py +51 -10
  196. rasa/core/actions/action_run_slot_rejections.py +1 -1
  197. rasa/core/actions/direct_custom_actions_executor.py +9 -2
  198. rasa/core/actions/grpc_custom_action_executor.py +1 -1
  199. rasa/core/agent.py +19 -2
  200. rasa/core/available_agents.py +229 -0
  201. rasa/core/brokers/broker.py +1 -1
  202. rasa/core/brokers/kafka.py +52 -8
  203. rasa/core/channels/__init__.py +82 -35
  204. rasa/core/channels/development_inspector.py +4 -24
  205. rasa/core/channels/hangouts.py +2 -2
  206. rasa/core/channels/inspector/README.md +25 -13
  207. rasa/core/channels/inspector/dist/assets/{arc-18042c22.js → arc-6177260a.js} +1 -1
  208. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-b054f038.js} +1 -1
  209. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-f25427d5.js} +1 -1
  210. rasa/core/channels/inspector/dist/assets/channel-bf9cbb34.js +1 -0
  211. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-c7a2af53.js} +1 -1
  212. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-58db65c0.js} +1 -1
  213. rasa/core/channels/inspector/dist/assets/clone-8f9083bb.js +1 -0
  214. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-088372e2.js} +1 -1
  215. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-58676240.js} +1 -1
  216. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-0c14d7c6.js} +1 -1
  217. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-ea63f85c.js} +1 -1
  218. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-a2af48cd.js} +1 -1
  219. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-9ecd5b59.js +1 -0
  220. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-6937abe7.js} +1 -1
  221. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-7473f357.js} +1 -1
  222. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-d0c9405e.js} +1 -1
  223. rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-0a6f8466.js} +1 -1
  224. rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-7610671a.js} +1 -1
  225. rasa/core/channels/inspector/dist/assets/index-74e01d94.js +1354 -0
  226. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-be397dc7.js} +1 -1
  227. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-4cefbf62.js} +1 -1
  228. rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-e7fbc2bf.js} +1 -1
  229. rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-a8aa457c.js} +1 -1
  230. rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-3351e0d2.js} +1 -1
  231. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-b8cbf605.js} +1 -1
  232. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-f327f774.js} +1 -1
  233. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-2854c591.js} +1 -1
  234. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-964985d5.js} +1 -1
  235. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-edeb4f33.js} +1 -1
  236. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-fcf70125.js} +1 -1
  237. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-0e770395.js} +1 -1
  238. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-af8dcd22.js} +1 -1
  239. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-36a9e70d.js} +1 -1
  240. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-884a8b5b.js} +1 -1
  241. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-dc097813.js} +1 -1
  242. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-5a2c7eed.js} +1 -1
  243. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-e89c4f6e.js} +1 -1
  244. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-afb6fe56.js} +1 -1
  245. rasa/core/channels/inspector/dist/index.html +1 -1
  246. rasa/core/channels/inspector/package.json +18 -18
  247. rasa/core/channels/inspector/src/App.tsx +34 -35
  248. rasa/core/channels/inspector/src/components/Chat.tsx +2 -3
  249. rasa/core/channels/inspector/src/components/DialogueAgentStack.tsx +108 -0
  250. rasa/core/channels/inspector/src/components/{DialogueStack.tsx → DialogueHistoryStack.tsx} +4 -2
  251. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +9 -1
  252. rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +63 -35
  253. rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +20 -3
  254. rasa/core/channels/inspector/src/helpers/formatters.test.ts +4 -0
  255. rasa/core/channels/inspector/src/helpers/formatters.ts +24 -3
  256. rasa/core/channels/inspector/src/helpers/utils.test.ts +127 -0
  257. rasa/core/channels/inspector/src/helpers/utils.ts +66 -1
  258. rasa/core/channels/inspector/src/theme/base/styles.ts +19 -1
  259. rasa/core/channels/inspector/src/types.ts +53 -7
  260. rasa/core/channels/inspector/yarn.lock +336 -189
  261. rasa/core/channels/studio_chat.py +29 -47
  262. rasa/core/channels/telegram.py +4 -9
  263. rasa/core/channels/voice_stream/asr/asr_event.py +1 -1
  264. rasa/core/channels/voice_stream/asr/azure.py +6 -3
  265. rasa/core/channels/voice_stream/asr/deepgram.py +1 -1
  266. rasa/core/channels/voice_stream/audiocodes.py +3 -0
  267. rasa/core/channels/voice_stream/browser_audio.py +55 -3
  268. rasa/core/channels/voice_stream/genesys.py +3 -2
  269. rasa/core/channels/voice_stream/jambonz.py +9 -1
  270. rasa/core/channels/voice_stream/tts/deepgram.py +140 -0
  271. rasa/core/channels/voice_stream/twilio_media_streams.py +21 -1
  272. rasa/core/channels/voice_stream/voice_channel.py +64 -0
  273. rasa/core/concurrent_lock_store.py +66 -16
  274. rasa/core/config/__init__.py +0 -0
  275. rasa/core/{available_endpoints.py → config/available_endpoints.py} +51 -16
  276. rasa/core/config/configuration.py +260 -0
  277. rasa/core/config/credentials.py +19 -0
  278. rasa/core/config/message_procesing_config.py +34 -0
  279. rasa/core/constants.py +11 -0
  280. rasa/core/iam_credentials_providers/__init__.py +0 -0
  281. rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +226 -0
  282. rasa/core/iam_credentials_providers/credentials_provider_protocol.py +90 -0
  283. rasa/core/lock_store.py +46 -10
  284. rasa/core/nlg/generator.py +1 -1
  285. rasa/core/policies/enterprise_search_policy.py +5 -3
  286. rasa/core/policies/flow_policy.py +4 -4
  287. rasa/core/policies/flows/agent_executor.py +632 -0
  288. rasa/core/policies/flows/flow_executor.py +137 -76
  289. rasa/core/policies/flows/mcp_tool_executor.py +298 -0
  290. rasa/core/policies/intentless_policy.py +1 -1
  291. rasa/core/policies/ted_policy.py +20 -12
  292. rasa/core/policies/unexpected_intent_policy.py +6 -0
  293. rasa/core/processor.py +100 -44
  294. rasa/core/redis_connection_factory.py +469 -0
  295. rasa/core/run.py +37 -8
  296. rasa/core/test.py +4 -0
  297. rasa/core/tracker_stores/redis_tracker_store.py +32 -14
  298. rasa/core/tracker_stores/sql_tracker_store.py +57 -1
  299. rasa/core/tracker_stores/tracker_store.py +3 -7
  300. rasa/core/train.py +1 -1
  301. rasa/core/training/interactive.py +20 -18
  302. rasa/core/training/story_conflict.py +5 -5
  303. rasa/core/utils.py +22 -23
  304. rasa/dialogue_understanding/commands/__init__.py +8 -0
  305. rasa/dialogue_understanding/commands/cancel_flow_command.py +19 -5
  306. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +21 -2
  307. rasa/dialogue_understanding/commands/clarify_command.py +20 -2
  308. rasa/dialogue_understanding/commands/continue_agent_command.py +91 -0
  309. rasa/dialogue_understanding/commands/knowledge_answer_command.py +21 -2
  310. rasa/dialogue_understanding/commands/restart_agent_command.py +162 -0
  311. rasa/dialogue_understanding/commands/start_flow_command.py +68 -7
  312. rasa/dialogue_understanding/commands/utils.py +124 -2
  313. rasa/dialogue_understanding/generator/command_parser.py +4 -0
  314. rasa/dialogue_understanding/generator/llm_based_command_generator.py +50 -12
  315. rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
  316. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
  317. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +66 -0
  318. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +66 -0
  319. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +89 -0
  320. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +88 -0
  321. rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +42 -7
  322. rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +40 -3
  323. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +20 -3
  324. rasa/dialogue_understanding/patterns/cancel.py +27 -6
  325. rasa/dialogue_understanding/patterns/clarify.py +3 -14
  326. rasa/dialogue_understanding/patterns/continue_interrupted.py +239 -6
  327. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +46 -8
  328. rasa/dialogue_understanding/processor/command_processor.py +136 -15
  329. rasa/dialogue_understanding/stack/dialogue_stack.py +98 -2
  330. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +57 -0
  331. rasa/dialogue_understanding/stack/utils.py +57 -3
  332. rasa/dialogue_understanding/utils.py +24 -4
  333. rasa/dialogue_understanding_test/du_test_runner.py +8 -3
  334. rasa/e2e_test/e2e_test_runner.py +13 -3
  335. rasa/engine/caching.py +2 -2
  336. rasa/engine/constants.py +1 -1
  337. rasa/engine/graph.py +5 -1
  338. rasa/engine/loader.py +12 -0
  339. rasa/engine/recipes/default_components.py +138 -49
  340. rasa/engine/recipes/default_recipe.py +108 -11
  341. rasa/engine/runner/dask.py +8 -5
  342. rasa/engine/storage/local_model_storage.py +41 -4
  343. rasa/engine/validation.py +19 -6
  344. rasa/graph_components/validators/default_recipe_validator.py +86 -28
  345. rasa/hooks.py +5 -5
  346. rasa/llm_fine_tuning/utils.py +2 -2
  347. rasa/model_manager/socket_bridge.py +1 -2
  348. rasa/model_manager/warm_rasa_process.py +13 -3
  349. rasa/model_training.py +60 -47
  350. rasa/nlu/classifiers/diet_classifier.py +198 -98
  351. rasa/nlu/classifiers/logistic_regression_classifier.py +1 -4
  352. rasa/nlu/classifiers/mitie_intent_classifier.py +3 -0
  353. rasa/nlu/classifiers/sklearn_intent_classifier.py +1 -3
  354. rasa/nlu/extractors/crf_entity_extractor.py +9 -10
  355. rasa/nlu/extractors/mitie_entity_extractor.py +3 -0
  356. rasa/nlu/extractors/spacy_entity_extractor.py +3 -0
  357. rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +4 -0
  358. rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +5 -0
  359. rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +2 -0
  360. rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +3 -0
  361. rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +4 -2
  362. rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +4 -0
  363. rasa/nlu/selectors/response_selector.py +10 -2
  364. rasa/nlu/tokenizers/jieba_tokenizer.py +3 -4
  365. rasa/nlu/tokenizers/mitie_tokenizer.py +3 -2
  366. rasa/nlu/tokenizers/spacy_tokenizer.py +3 -2
  367. rasa/nlu/utils/mitie_utils.py +3 -0
  368. rasa/nlu/utils/spacy_utils.py +3 -2
  369. rasa/plugin.py +8 -8
  370. rasa/privacy/privacy_manager.py +12 -3
  371. rasa/server.py +15 -3
  372. rasa/shared/agents/__init__.py +0 -0
  373. rasa/shared/agents/auth/__init__.py +0 -0
  374. rasa/shared/agents/auth/agent_auth_factory.py +105 -0
  375. rasa/shared/agents/auth/agent_auth_manager.py +92 -0
  376. rasa/shared/agents/auth/auth_strategy/__init__.py +19 -0
  377. rasa/shared/agents/auth/auth_strategy/agent_auth_strategy.py +52 -0
  378. rasa/shared/agents/auth/auth_strategy/api_key_auth_strategy.py +42 -0
  379. rasa/shared/agents/auth/auth_strategy/bearer_token_auth_strategy.py +28 -0
  380. rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py +167 -0
  381. rasa/shared/agents/auth/constants.py +12 -0
  382. rasa/shared/agents/auth/types.py +12 -0
  383. rasa/shared/agents/utils.py +35 -0
  384. rasa/shared/constants.py +8 -0
  385. rasa/shared/core/constants.py +17 -1
  386. rasa/shared/core/domain.py +0 -7
  387. rasa/shared/core/events.py +329 -0
  388. rasa/shared/core/flows/constants.py +5 -0
  389. rasa/shared/core/flows/flow.py +1 -1
  390. rasa/shared/core/flows/flows_list.py +21 -5
  391. rasa/shared/core/flows/flows_yaml_schema.json +119 -184
  392. rasa/shared/core/flows/steps/call.py +49 -5
  393. rasa/shared/core/flows/steps/collect.py +98 -13
  394. rasa/shared/core/flows/validation.py +372 -8
  395. rasa/shared/core/flows/yaml_flows_io.py +3 -2
  396. rasa/shared/core/slots.py +2 -2
  397. rasa/shared/core/trackers.py +5 -2
  398. rasa/shared/exceptions.py +16 -0
  399. rasa/shared/importers/rasa.py +1 -1
  400. rasa/shared/importers/utils.py +9 -3
  401. rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
  402. rasa/shared/providers/llm/_base_litellm_client.py +41 -9
  403. rasa/shared/providers/llm/litellm_router_llm_client.py +8 -4
  404. rasa/shared/providers/llm/llm_client.py +7 -3
  405. rasa/shared/providers/llm/llm_response.py +66 -0
  406. rasa/shared/providers/llm/self_hosted_llm_client.py +8 -4
  407. rasa/shared/utils/common.py +24 -0
  408. rasa/shared/utils/health_check/health_check.py +7 -3
  409. rasa/shared/utils/llm.py +39 -16
  410. rasa/shared/utils/mcp/__init__.py +0 -0
  411. rasa/shared/utils/mcp/server_connection.py +247 -0
  412. rasa/shared/utils/mcp/utils.py +20 -0
  413. rasa/shared/utils/schemas/events.py +42 -0
  414. rasa/shared/utils/yaml.py +3 -1
  415. rasa/studio/pull/pull.py +3 -2
  416. rasa/studio/train.py +8 -7
  417. rasa/studio/upload.py +3 -6
  418. rasa/telemetry.py +69 -5
  419. rasa/tracing/config.py +45 -12
  420. rasa/tracing/constants.py +14 -0
  421. rasa/tracing/instrumentation/attribute_extractors.py +142 -9
  422. rasa/tracing/instrumentation/instrumentation.py +626 -21
  423. rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
  424. rasa/tracing/instrumentation/metrics.py +32 -0
  425. rasa/tracing/metric_instrument_provider.py +68 -0
  426. rasa/utils/common.py +92 -1
  427. rasa/utils/endpoints.py +11 -2
  428. rasa/utils/log_utils.py +96 -5
  429. rasa/utils/ml_utils.py +1 -1
  430. rasa/utils/pypred.py +38 -0
  431. rasa/utils/tensorflow/__init__.py +7 -0
  432. rasa/utils/tensorflow/callback.py +136 -101
  433. rasa/utils/tensorflow/crf.py +1 -1
  434. rasa/utils/tensorflow/data_generator.py +21 -8
  435. rasa/utils/tensorflow/layers.py +21 -11
  436. rasa/utils/tensorflow/metrics.py +7 -3
  437. rasa/utils/tensorflow/models.py +56 -8
  438. rasa/utils/tensorflow/rasa_layers.py +8 -6
  439. rasa/utils/tensorflow/transformer.py +2 -3
  440. rasa/utils/train_utils.py +54 -24
  441. rasa/validator.py +17 -13
  442. rasa/version.py +1 -1
  443. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0rc1.dist-info}/METADATA +59 -51
  444. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0rc1.dist-info}/RECORD +452 -428
  445. rasa/builder/scrape_rasa_docs.py +0 -97
  446. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +0 -47
  447. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +0 -40
  448. rasa/cli/project_templates/finance/actions/action_session_start.py +0 -74
  449. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +0 -48
  450. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +0 -36
  451. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +0 -54
  452. rasa/cli/project_templates/finance/actions/database.py +0 -277
  453. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +0 -52
  454. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +0 -51
  455. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +0 -40
  456. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +0 -40
  457. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +0 -46
  458. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +0 -49
  459. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +0 -19
  460. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +0 -36
  461. rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
  462. rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
  463. rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
  464. rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
  465. rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
  466. rasa/cli/project_templates/finance/csvs/payees.csv +0 -11
  467. rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
  468. rasa/cli/project_templates/finance/csvs/users.csv +0 -4
  469. rasa/cli/project_templates/finance/data/cards/select_card.yml +0 -12
  470. rasa/cli/project_templates/finance/data/general/bot_identity.yml +0 -6
  471. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
  472. rasa/cli/project_templates/finance/data/system/source/accounts.json +0 -51
  473. rasa/cli/project_templates/finance/data/system/source/advisors.json +0 -44
  474. rasa/cli/project_templates/finance/data/system/source/appointments.json +0 -1474
  475. rasa/cli/project_templates/finance/data/system/source/branches.json +0 -47
  476. rasa/cli/project_templates/finance/data/system/source/cards.json +0 -72
  477. rasa/cli/project_templates/finance/data/system/source/payees.json +0 -74
  478. rasa/cli/project_templates/finance/data/system/source/transactions.json +0 -492
  479. rasa/cli/project_templates/finance/data/system/source/users.json +0 -29
  480. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +0 -29
  481. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +0 -5
  482. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +0 -21
  483. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
  484. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
  485. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
  486. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
  487. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
  488. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
  489. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
  490. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
  491. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
  492. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
  493. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
  494. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
  495. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
  496. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
  497. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
  498. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
  499. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
  500. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
  501. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
  502. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
  503. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
  504. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
  505. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
  506. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
  507. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
  508. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
  509. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
  510. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
  511. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
  512. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
  513. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
  514. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
  515. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
  516. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
  517. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
  518. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
  519. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
  520. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
  521. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
  522. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
  523. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
  524. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
  525. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
  526. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
  527. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
  528. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
  529. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
  530. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
  531. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
  532. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
  533. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
  534. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
  535. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
  536. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
  537. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
  538. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
  539. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
  540. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
  541. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
  542. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
  543. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
  544. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
  545. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
  546. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
  547. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
  548. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
  549. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
  550. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
  551. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
  552. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
  553. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
  554. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
  555. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
  556. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
  557. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
  558. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
  559. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
  560. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
  561. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
  562. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
  563. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
  564. rasa/cli/project_templates/finance/domain/cards/select_card.yml +0 -12
  565. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +0 -12
  566. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +0 -5
  567. rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
  568. rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
  569. rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
  570. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +0 -47
  571. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +0 -4
  572. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +0 -16
  573. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +0 -1
  574. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +0 -1
  575. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +0 -1
  576. rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +0 -1335
  577. /rasa/cli/project_templates/telco/domain/billing/{domain_undertand_bill.yml → understand_bill.yml} +0 -0
  578. /rasa/cli/project_templates/telco/domain/network/{domain_reboot_router.yml → reboot_router.yml} +0 -0
  579. /rasa/cli/project_templates/telco/domain/network/{domain_reset_router.yml → reset_router.yml} +0 -0
  580. /rasa/cli/project_templates/telco/domain/network/{domain_run_speed_test.yml → run_speed_test.yml} +0 -0
  581. /rasa/cli/project_templates/telco/domain/network/{domain_solve_internet_issue.yml → solve_internet_issue.yml} +0 -0
  582. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0rc1.dist-info}/NOTICE +0 -0
  583. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0rc1.dist-info}/WHEEL +0 -0
  584. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0rc1.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,69 @@
1
+ import os
2
+ from pathlib import Path
3
+
4
+ import aiofiles
5
+ import aiofiles.os
6
+ import aioshutil
7
+ import structlog
8
+
9
+ from rasa.cli.scaffold import ProjectTemplateName
10
+
11
+ structlogger = structlog.get_logger()
12
+
13
+
14
+ # Root directory for storing downloaded template caches on disk.
15
+ _CACHE_ROOT_DIR = Path(os.getenv("RASA_TEMPLATE_CACHE_DIR", "/templates"))
16
+
17
+
18
+ def _template_cache_dir(template: ProjectTemplateName) -> Path:
19
+ """Return the local cache directory for a given template and version."""
20
+ return _CACHE_ROOT_DIR / template.value
21
+
22
+
23
+ async def _copytree(src: Path, dst: Path) -> None:
24
+ """Copy directory tree from src to dst, merging into dst.
25
+
26
+ Existing files are overwritten. Hidden files and directories are included, as
27
+ caches can contain `.rasa` metadata that should be applied before calling
28
+ `ensure_first_used`.
29
+ """
30
+ for root, dirs, files in os.walk(src):
31
+ rel_path = Path(root).relative_to(src)
32
+ target_dir = dst / rel_path
33
+ await aiofiles.os.makedirs(target_dir, exist_ok=True)
34
+ for filename in files:
35
+ src_file = Path(root) / filename
36
+ dst_file = target_dir / filename
37
+ await aioshutil.copy2(src_file, dst_file)
38
+
39
+
40
+ async def copy_cache_for_template_if_available(
41
+ template: ProjectTemplateName, project_folder: Path
42
+ ) -> None:
43
+ """Copy a previously downloaded cache for `template` into `project_folder`.
44
+
45
+ If the cache does not exist, this function is a no-op.
46
+ """
47
+ try:
48
+ cache_dir = _template_cache_dir(template)
49
+ if cache_dir.exists() and any(cache_dir.iterdir()):
50
+ await _copytree(cache_dir, project_folder)
51
+ structlogger.info(
52
+ "project_generator.copy_cache_for_template.success",
53
+ template=template,
54
+ event_info=(
55
+ "Copied cached template files from cache to project folder."
56
+ ),
57
+ )
58
+ else:
59
+ structlogger.debug(
60
+ "project_generator.copy_cache_for_template.missing",
61
+ template=template,
62
+ event_info=("No local cache found for template; skipping copy."),
63
+ )
64
+ except Exception as exc:
65
+ structlogger.warning(
66
+ "project_generator.copy_cache_for_template.error",
67
+ error=str(exc),
68
+ template=template,
69
+ )
@@ -2,20 +2,34 @@
2
2
 
3
3
  import os
4
4
  from pathlib import Path
5
+ from typing import Optional
5
6
 
6
7
  import structlog
8
+ from sanic import Sanic
7
9
 
8
10
  from rasa.builder.exceptions import AgentLoadError, TrainingError
9
11
  from rasa.builder.models import TrainingInput
10
- from rasa.core import agent
11
- from rasa.core.utils import AvailableEndpoints, read_endpoints_from_path
12
+ from rasa.core.agent import Agent, load_agent
13
+ from rasa.core.channels.studio_chat import StudioChatInput
14
+ from rasa.core.config.configuration import Configuration
15
+ from rasa.model import get_latest_model
12
16
  from rasa.model_training import TrainingResult, train
17
+ from rasa.shared.constants import DEFAULT_ENDPOINTS_PATH
13
18
  from rasa.shared.importers.importer import TrainingDataImporter
14
19
 
15
20
  structlogger = structlog.get_logger()
16
21
 
17
22
 
18
- async def train_and_load_agent(input: TrainingInput) -> agent.Agent:
23
+ def update_agent(agent: Optional[Agent], app: Sanic) -> None:
24
+ """Update the agent in the request context."""
25
+ app.ctx.agent = agent
26
+ if hasattr(app.ctx, "input_channel") and isinstance(
27
+ app.ctx.input_channel, StudioChatInput
28
+ ):
29
+ app.ctx.input_channel.agent = agent
30
+
31
+
32
+ async def train_and_load_agent(input: TrainingInput) -> Agent:
19
33
  """Train a model and load an agent.
20
34
 
21
35
  Args:
@@ -29,14 +43,13 @@ async def train_and_load_agent(input: TrainingInput) -> agent.Agent:
29
43
  AgentLoadError: If agent loading fails
30
44
  """
31
45
  try:
32
- # Setup endpoints for training validation
33
- await _setup_endpoints(input.endpoints_file)
34
-
35
46
  # Train the model
36
- training_result = await _train_model(input.importer)
47
+ training_result = await _train_model(
48
+ input.importer, input.endpoints_file, input.config_file
49
+ )
37
50
 
38
51
  # Load the agent
39
- agent_instance = await _load_agent(training_result.model)
52
+ agent_instance = await _load_agent(training_result.model, input.endpoints_file)
40
53
 
41
54
  # Verify agent is ready
42
55
  if not agent_instance.is_ready():
@@ -54,27 +67,76 @@ async def train_and_load_agent(input: TrainingInput) -> agent.Agent:
54
67
  raise TrainingError(f"SystemExit during training: {e}")
55
68
 
56
69
 
57
- async def _setup_endpoints(endpoints_file: Path) -> None:
58
- """Setup endpoints configuration for training."""
70
+ async def try_load_existing_agent(project_folder: str) -> Optional[Agent]:
71
+ """Try to load an existing agent from the project's models directory.
72
+
73
+ Args:
74
+ project_folder: Path to the project folder
75
+
76
+ Returns:
77
+ Loaded Agent instance if successful, None otherwise
78
+ """
79
+ models_dir = os.path.join(project_folder, "models")
80
+
81
+ if not os.path.exists(models_dir) or not os.path.isdir(models_dir):
82
+ structlogger.debug("No models directory found", models_dir=models_dir)
83
+ return None
84
+
59
85
  try:
60
- # Reset and load endpoints
61
- AvailableEndpoints.reset_instance()
62
- read_endpoints_from_path(endpoints_file)
86
+ # Find the latest model in the models directory
87
+ latest_model_path = get_latest_model(models_dir)
88
+ if not latest_model_path:
89
+ structlogger.debug(
90
+ "No models found in models directory", models_dir=models_dir
91
+ )
92
+ return None
93
+
94
+ structlogger.info(
95
+ "Found existing model, attempting to load", model_path=latest_model_path
96
+ )
97
+
98
+ # Get available endpoints for agent loading
99
+ available_endpoints = Configuration.initialise_endpoints(
100
+ endpoints_path=Path(project_folder) / DEFAULT_ENDPOINTS_PATH
101
+ ).endpoints
63
102
 
64
- structlogger.debug("training.endpoints_setup", endpoints_file=endpoints_file)
103
+ # Load the agent
104
+ agent = await load_agent(
105
+ model_path=latest_model_path, endpoints=available_endpoints
106
+ )
107
+
108
+ if agent and agent.is_ready():
109
+ structlogger.info(
110
+ "Successfully loaded existing agent", model_path=latest_model_path
111
+ )
112
+ return agent
113
+ else:
114
+ structlogger.warning(
115
+ "Agent loaded but not ready", model_path=latest_model_path
116
+ )
117
+ return None
65
118
 
66
119
  except Exception as e:
67
- raise TrainingError(f"Failed to setup endpoints: {e}")
120
+ structlogger.warning(
121
+ "Failed to load existing agent",
122
+ models_dir=models_dir,
123
+ error=str(e),
124
+ exc_info=True,
125
+ )
126
+ return None
68
127
 
69
128
 
70
- async def _train_model(importer: TrainingDataImporter) -> TrainingResult:
129
+ async def _train_model(
130
+ importer: TrainingDataImporter, endpoints_file: Path, config_file: Path
131
+ ) -> TrainingResult:
71
132
  """Train the Rasa model."""
72
133
  try:
73
134
  structlogger.info("training.started")
74
135
 
75
136
  training_result = await train(
76
137
  domain="",
77
- config="",
138
+ config=str(config_file),
139
+ endpoints=str(endpoints_file),
78
140
  training_files=None,
79
141
  file_importer=importer,
80
142
  )
@@ -90,12 +152,14 @@ async def _train_model(importer: TrainingDataImporter) -> TrainingResult:
90
152
  raise TrainingError(f"Model training failed: {e}")
91
153
 
92
154
 
93
- async def _load_agent(model_path: str) -> agent.Agent:
155
+ async def _load_agent(model_path: str, endpoints_file: Path) -> Agent:
94
156
  """Load the trained agent."""
95
157
  try:
96
158
  structlogger.info("training.loading_agent", model_path=model_path)
97
159
 
98
- available_endpoints = AvailableEndpoints.get_instance()
160
+ available_endpoints = Configuration.initialise_endpoints(
161
+ endpoints_path=endpoints_file
162
+ ).endpoints
99
163
  if available_endpoints is None:
100
164
  raise AgentLoadError("No endpoints available for agent loading")
101
165
 
@@ -105,7 +169,7 @@ async def _load_agent(model_path: str) -> agent.Agent:
105
169
  model_path=model_path,
106
170
  )
107
171
 
108
- agent_instance = await agent.load_agent(
172
+ agent_instance = await load_agent(
109
173
  model_path=model_path,
110
174
  remote_storage=None,
111
175
  endpoints=available_endpoints,
@@ -9,7 +9,7 @@ import structlog
9
9
  from rasa.builder import config
10
10
  from rasa.builder.exceptions import ValidationError
11
11
  from rasa.builder.logging_utils import capture_validation_logs
12
- from rasa.cli.utils import validate_files
12
+ from rasa.cli.validation.bot_config import validate_files
13
13
  from rasa.shared.importers.importer import TrainingDataImporter
14
14
 
15
15
  structlogger = structlog.get_logger()
@@ -3,6 +3,7 @@ import logging
3
3
  from enum import Enum
4
4
  from typing import List, Optional, Text, Union
5
5
 
6
+ from rasa.core.constants import DEFAULT_SUB_AGENTS
6
7
  from rasa.core.persistor import RemoteStorageType, StorageType, parse_remote_storage
7
8
  from rasa.shared.constants import (
8
9
  DEFAULT_CONFIG_PATH,
@@ -217,3 +218,14 @@ def add_skip_validation_flag(
217
218
  action="append",
218
219
  help="Skip YAML validation for selected parts of the training data.",
219
220
  )
221
+
222
+
223
+ def add_sub_agents_param(
224
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
225
+ ) -> None:
226
+ parser.add_argument(
227
+ "--sub-agents",
228
+ type=str,
229
+ default=DEFAULT_SUB_AGENTS,
230
+ help="Directory that specifies sub-agents to use (default: %(default)s).",
231
+ )
rasa/cli/arguments/run.py CHANGED
@@ -7,6 +7,7 @@ from rasa.cli.arguments.default_arguments import (
7
7
  add_model_param,
8
8
  add_remote_storage_param,
9
9
  add_skip_validation_flag,
10
+ add_sub_agents_param,
10
11
  )
11
12
  from rasa.core import constants
12
13
  from rasa.env import (
@@ -24,6 +25,7 @@ def set_run_arguments(parser: argparse.ArgumentParser) -> None:
24
25
  add_server_arguments(parser)
25
26
  add_inspect_argument(parser)
26
27
  add_skip_validation_flag(parser)
28
+ add_sub_agents_param(parser)
27
29
 
28
30
 
29
31
  def set_run_action_arguments(parser: argparse.ArgumentParser) -> None:
@@ -10,6 +10,7 @@ from rasa.cli.arguments.default_arguments import (
10
10
  add_remote_root_only_param,
11
11
  add_remote_storage_param,
12
12
  add_stories_param,
13
+ add_sub_agents_param,
13
14
  )
14
15
  from rasa.graph_components.providers.training_tracker_provider import (
15
16
  TrainingTrackerProvider,
@@ -43,6 +44,7 @@ def set_train_arguments(parser: argparse.ArgumentParser) -> None:
43
44
  )
44
45
  add_remote_storage_param(parser)
45
46
  add_remote_root_only_param(parser)
47
+ add_sub_agents_param(parser)
46
48
 
47
49
 
48
50
  def set_train_core_arguments(parser: argparse.ArgumentParser) -> None:
rasa/cli/data.py CHANGED
@@ -15,6 +15,8 @@ from rasa import telemetry
15
15
  from rasa.cli import SubParsersAction
16
16
  from rasa.cli.arguments import data as arguments
17
17
  from rasa.cli.arguments import default_arguments
18
+ from rasa.cli.validation.bot_config import validate_files
19
+ from rasa.cli.validation.config_path_validation import get_validated_path
18
20
  from rasa.e2e_test.e2e_config import create_llm_e2e_test_converter_config
19
21
  from rasa.e2e_test.e2e_test_converter import E2ETestConverter
20
22
  from rasa.e2e_test.utils.e2e_yaml_utils import E2ETestYAMLWriter
@@ -137,7 +139,7 @@ def _add_data_validate_parsers(
137
139
  )
138
140
  _append_story_structure_arguments(validate_parser)
139
141
  validate_parser.set_defaults(
140
- func=lambda args: rasa.cli.utils.validate_files(
142
+ func=lambda args: validate_files(
141
143
  args.fail_on_warnings, args.max_history, _build_training_data_importer(args)
142
144
  )
143
145
  )
@@ -153,7 +155,7 @@ def _add_data_validate_parsers(
153
155
  _append_story_structure_arguments(story_structure_parser)
154
156
 
155
157
  story_structure_parser.set_defaults(
156
- func=lambda args: rasa.cli.utils.validate_files(
158
+ func=lambda args: validate_files(
157
159
  args.fail_on_warnings,
158
160
  args.max_history,
159
161
  _build_training_data_importer(args),
@@ -169,7 +171,7 @@ def _add_data_validate_parsers(
169
171
  help="Checks for inconsistencies in the flows files.",
170
172
  )
171
173
  flows_structure_parser.set_defaults(
172
- func=lambda args: rasa.cli.utils.validate_files(
174
+ func=lambda args: validate_files(
173
175
  args.fail_on_warnings,
174
176
  args.max_history,
175
177
  _build_training_data_importer(args),
@@ -185,7 +187,7 @@ def _add_data_validate_parsers(
185
187
  help="Checks for inconsistencies of the flow and response translation.",
186
188
  )
187
189
  translations_structure_parser.set_defaults(
188
- func=lambda args: rasa.cli.utils.validate_files(
190
+ func=lambda args: validate_files(
189
191
  args.fail_on_warnings,
190
192
  args.max_history,
191
193
  _build_training_data_importer(args),
@@ -196,12 +198,12 @@ def _add_data_validate_parsers(
196
198
 
197
199
 
198
200
  def _build_training_data_importer(args: argparse.Namespace) -> "TrainingDataImporter":
199
- config = rasa.cli.utils.get_validated_path(
201
+ config = get_validated_path(
200
202
  args.config, "config", DEFAULT_CONFIG_PATH, none_is_valid=True
201
203
  )
202
204
 
203
205
  # Exit the validation if the domain path is invalid
204
- domain = rasa.cli.utils.get_validated_path(
206
+ domain = get_validated_path(
205
207
  args.domain, "domain", DEFAULT_DOMAIN_PATHS, none_is_valid=False
206
208
  )
207
209
 
@@ -231,7 +233,7 @@ def split_nlu_data(args: argparse.Namespace) -> None:
231
233
  Args:
232
234
  args: Commandline arguments
233
235
  """
234
- data_path = rasa.cli.utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
236
+ data_path = get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
235
237
  data_path = rasa.shared.data.get_nlu_directory(data_path)
236
238
 
237
239
  nlu_data = rasa.shared.nlu.training_data.loading.load_data(data_path)
@@ -258,7 +260,7 @@ def split_stories_data(args: argparse.Namespace) -> None:
258
260
  YAMLStoryReader,
259
261
  )
260
262
 
261
- data_path = rasa.cli.utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
263
+ data_path = get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
262
264
  data_files = rasa.shared.data.get_data_files(
263
265
  data_path, YAMLStoryReader.is_stories_file
264
266
  )
@@ -3,6 +3,7 @@ import asyncio
3
3
  import datetime
4
4
  import importlib
5
5
  import sys
6
+ from pathlib import Path
6
7
  from typing import Any, Dict, List, Optional, Type, cast
7
8
 
8
9
  import structlog
@@ -14,9 +15,11 @@ from rasa.cli.arguments.default_arguments import (
14
15
  add_endpoint_param,
15
16
  add_model_param,
16
17
  add_remote_storage_param,
18
+ add_sub_agents_param,
17
19
  )
18
20
  from rasa.core.agent import Agent
19
- from rasa.core.available_endpoints import AvailableEndpoints
21
+ from rasa.core.config.available_endpoints import AvailableEndpoints
22
+ from rasa.core.config.configuration import Configuration
20
23
  from rasa.core.exceptions import AgentNotReady
21
24
  from rasa.core.processor import MessageProcessor
22
25
  from rasa.dialogue_understanding.commands import Command
@@ -47,7 +50,6 @@ from rasa.dialogue_understanding_test.validation import (
47
50
  from rasa.e2e_test.e2e_test_case import TestSuite
48
51
  from rasa.exceptions import RasaException
49
52
  from rasa.shared.constants import (
50
- DEFAULT_ENDPOINTS_PATH,
51
53
  LLM_CONFIG_KEY,
52
54
  ROUTE_TO_CALM_SLOT,
53
55
  )
@@ -174,6 +176,8 @@ def add_du_test_arguments(parser: argparse.ArgumentParser) -> None:
174
176
  ),
175
177
  )
176
178
 
179
+ add_sub_agents_param(du_arguments)
180
+
177
181
 
178
182
  def ensure_calm_only_bot(agent: Agent) -> None:
179
183
  if agent.domain is None or agent.processor is None:
@@ -218,6 +222,7 @@ def execute_dialogue_understanding_tests(args: argparse.Namespace) -> None:
218
222
  model_path=args.model,
219
223
  model_server=endpoints.model,
220
224
  remote_storage=args.remote_storage,
225
+ sub_agents_path=args.sub_agents,
221
226
  )
222
227
  except AgentNotReady as error:
223
228
  structlogger.error(
@@ -323,11 +328,9 @@ def get_valid_test_suite(
323
328
 
324
329
 
325
330
  def set_up_available_endpoints(args: argparse.Namespace) -> AvailableEndpoints:
326
- """Set up the available endpoints for the test runner."""
327
- args.endpoints = rasa.cli.utils.get_validated_path(
328
- args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True
329
- )
330
- endpoints = AvailableEndpoints.get_instance(args.endpoints)
331
+ endpoints = Configuration.initialise_endpoints(
332
+ endpoints_path=Path(args.endpoints)
333
+ ).endpoints
331
334
 
332
335
  # Ignore all endpoints apart from action server, model, and nlu
333
336
  # to ensure InMemoryTrackerStore is being used instead of production
rasa/cli/e2e_test.py CHANGED
@@ -17,8 +17,9 @@ from rasa.cli.arguments.default_arguments import (
17
17
  add_endpoint_param,
18
18
  add_model_param,
19
19
  add_remote_storage_param,
20
+ add_sub_agents_param,
20
21
  )
21
- from rasa.core.available_endpoints import AvailableEndpoints
22
+ from rasa.core.config.configuration import Configuration, EndpointsConfigPath
22
23
  from rasa.core.exceptions import AgentNotReady
23
24
  from rasa.e2e_test.aggregate_test_stats_calculator import (
24
25
  AggregateTestStatsCalculator,
@@ -50,7 +51,7 @@ from rasa.e2e_test.utils.io import (
50
51
  )
51
52
  from rasa.e2e_test.utils.validation import validate_model_path
52
53
  from rasa.exceptions import RasaException
53
- from rasa.shared.constants import DEFAULT_ENDPOINTS_PATH, DEFAULT_MODELS_PATH
54
+ from rasa.shared.constants import DEFAULT_MODELS_PATH
54
55
  from rasa.utils.endpoints import EndpointConfig
55
56
 
56
57
  RASA_PRO_BETA_FINE_TUNING_RECIPE_ENV_VAR_NAME = "RASA_PRO_BETA_FINE_TUNING_RECIPE"
@@ -147,6 +148,8 @@ def add_e2e_test_arguments(parser: argparse.ArgumentParser) -> None:
147
148
  help="Directory where to save coverage report to.",
148
149
  )
149
150
 
151
+ add_sub_agents_param(parser)
152
+
150
153
 
151
154
  def execute_e2e_tests(args: argparse.Namespace) -> None:
152
155
  """Run the end-to-end tests.
@@ -154,10 +157,9 @@ def execute_e2e_tests(args: argparse.Namespace) -> None:
154
157
  Args:
155
158
  args: Commandline arguments.
156
159
  """
157
- args.endpoints = rasa.cli.utils.get_validated_path(
158
- args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True
159
- )
160
- endpoints = AvailableEndpoints.get_instance(args.endpoints)
160
+ endpoints = Configuration.initialise_endpoints(
161
+ endpoints_path=EndpointsConfigPath.validate(args.endpoints)
162
+ ).endpoints
161
163
 
162
164
  # Ignore all endpoints apart from action server, model, nlu and nlg
163
165
  # to ensure InMemoryTrackerStore is being used instead of production
@@ -192,6 +194,7 @@ def execute_e2e_tests(args: argparse.Namespace) -> None:
192
194
  model_server=endpoints.model,
193
195
  endpoints=endpoints,
194
196
  test_case_path=Path(test_case_path),
197
+ sub_agents_path=args.sub_agents,
195
198
  )
196
199
  except AgentNotReady as error:
197
200
  structlogger.error(
rasa/cli/evaluate.py CHANGED
@@ -6,7 +6,7 @@ import rasa.cli.arguments.evaluate as arguments
6
6
  import rasa.shared.utils.cli
7
7
  from rasa import telemetry
8
8
  from rasa.cli import SubParsersAction
9
- from rasa.core.available_endpoints import AvailableEndpoints
9
+ from rasa.core.config.configuration import Configuration
10
10
  from rasa.core.evaluation.marker_base import Marker, OperatorMarker
11
11
  from rasa.core.evaluation.marker_tracker_loader import MarkerTrackerLoader
12
12
  from rasa.core.tracker_stores.tracker_store import TrackerStore
@@ -217,6 +217,8 @@ def _create_tracker_loader(
217
217
  A MarkerTrackerLoader object configured with the specified strategy against
218
218
  the configured tracker store.
219
219
  """
220
- endpoints = AvailableEndpoints.get_instance(endpoint_config)
220
+ endpoints = Configuration.initialise_endpoints(
221
+ endpoints_path=Path(endpoint_config)
222
+ ).endpoints
221
223
  tracker_store = TrackerStore.create(endpoints.tracker_store, domain=domain)
222
224
  return MarkerTrackerLoader(tracker_store, strategy, count, seed)
rasa/cli/export.py CHANGED
@@ -11,13 +11,14 @@ from rasa import telemetry
11
11
  from rasa.cli import SubParsersAction
12
12
  from rasa.cli.arguments import export as arguments
13
13
  from rasa.core.brokers.pika import PikaEventBroker
14
+ from rasa.core.config.configuration import Configuration
14
15
  from rasa.exceptions import PublishingError
15
16
  from rasa.shared.constants import DOCS_URL_EVENT_BROKERS, DOCS_URL_TRACKER_STORES
16
17
  from rasa.shared.exceptions import RasaException
17
18
 
18
19
  if typing.TYPE_CHECKING:
19
- from rasa.core.available_endpoints import AvailableEndpoints
20
20
  from rasa.core.brokers.broker import EventBroker
21
+ from rasa.core.config.available_endpoints import AvailableEndpoints
21
22
  from rasa.core.exporter import Exporter
22
23
  from rasa.core.tracker_stores.tracker_store import TrackerStore
23
24
 
@@ -179,7 +180,9 @@ def export_trackers(args: argparse.Namespace) -> None:
179
180
  async def _export_trackers(args: argparse.Namespace) -> None:
180
181
  _assert_max_timestamp_is_greater_than_min_timestamp(args)
181
182
 
182
- endpoints = rasa.core.utils.read_endpoints_from_path(args.endpoints)
183
+ endpoints = Configuration.initialise_endpoints(
184
+ endpoints_path=args.endpoints
185
+ ).endpoints
183
186
  tracker_store = _get_tracker_store(endpoints)
184
187
  event_broker = await _get_event_broker(endpoints)
185
188
  _prepare_event_broker(event_broker)
rasa/cli/inspect.py CHANGED
@@ -1,6 +1,7 @@
1
1
  import argparse
2
2
  import webbrowser
3
3
  from asyncio import AbstractEventLoop
4
+ from pathlib import Path
4
5
  from typing import List, Optional, Text
5
6
 
6
7
  from sanic import Sanic
@@ -8,8 +9,9 @@ from sanic import Sanic
8
9
  from rasa import telemetry
9
10
  from rasa.cli import SubParsersAction
10
11
  from rasa.cli.arguments import shell as arguments
12
+ from rasa.cli.arguments.default_arguments import add_sub_agents_param
11
13
  from rasa.core import constants
12
- from rasa.core.available_endpoints import AvailableEndpoints
14
+ from rasa.core.config.configuration import Configuration
13
15
  from rasa.engine.storage.local_model_storage import LocalModelStorage
14
16
  from rasa.exceptions import ModelNotFound
15
17
  from rasa.model import get_local_model
@@ -44,6 +46,8 @@ def add_subparser(
44
46
  "--voice", help="Enable voice", action="store_true", default=False
45
47
  )
46
48
 
49
+ add_sub_agents_param(inspect_parser)
50
+
47
51
  # it'd be confusing to expose those arguments to the user,
48
52
  # so we remove them
49
53
  remove_argument_from_parser(inspect_parser, "--credentials")
@@ -64,7 +68,7 @@ async def open_inspector_in_browser(
64
68
  def inspect(args: argparse.Namespace) -> None:
65
69
  """Inspect the bot using the most recent model."""
66
70
  import rasa.cli.run
67
- from rasa.cli.utils import get_validated_path
71
+ from rasa.cli.validation.config_path_validation import get_validated_path
68
72
  from rasa.shared.constants import DEFAULT_MODELS_PATH
69
73
 
70
74
  async def after_start_hook_open_inspector(_: Sanic, __: AbstractEventLoop) -> None:
@@ -87,8 +91,8 @@ def inspect(args: argparse.Namespace) -> None:
87
91
  # Load endpoints with proper endpoint file location
88
92
  # This will initialise the endpoints singleton properly so that
89
93
  # it can be used safely throughout the codebase with
90
- # `AvailableEndpoints.get_instance()`
91
- AvailableEndpoints.get_instance(args.endpoints)
94
+ # `Configuration.get_instance().endpoints`
95
+ Configuration.initialise_endpoints(endpoints_path=Path(args.endpoints))
92
96
 
93
97
  try:
94
98
  model = get_local_model(model)
rasa/cli/interactive.py CHANGED
@@ -11,6 +11,8 @@ import rasa.utils.common
11
11
  from rasa import model
12
12
  from rasa.cli import SubParsersAction
13
13
  from rasa.cli.arguments import interactive as arguments
14
+ from rasa.cli.validation.config_path_validation import get_validated_path
15
+ from rasa.core.constants import DEFAULT_SUB_AGENTS
14
16
  from rasa.engine.storage.local_model_storage import LocalModelStorage
15
17
  from rasa.shared.constants import (
16
18
  ASSISTANT_ID_DEFAULT_VALUE,
@@ -109,6 +111,7 @@ def _set_not_required_args(args: argparse.Namespace) -> None:
109
111
  args.validation_max_history = None
110
112
  args.remote_storage = None
111
113
  args.keep_local_model_copy = False
114
+ args.sub_agents = DEFAULT_SUB_AGENTS # Default value for sub-agents
112
115
 
113
116
 
114
117
  def perform_interactive_learning(
@@ -133,7 +136,7 @@ def perform_interactive_learning(
133
136
  "Can not run interactive learning on an NLU-only model."
134
137
  )
135
138
 
136
- args.endpoints = rasa.cli.utils.get_validated_path(
139
+ args.endpoints = get_validated_path(
137
140
  args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True
138
141
  )
139
142
 
@@ -142,9 +145,7 @@ def perform_interactive_learning(
142
145
 
143
146
  def get_provided_model(arg_model: Text) -> Optional[Union[Text, Path]]:
144
147
  """Checks model path input and selects model from it."""
145
- model_path = rasa.cli.utils.get_validated_path(
146
- arg_model, "model", DEFAULT_MODELS_PATH
147
- )
148
+ model_path = get_validated_path(arg_model, "model", DEFAULT_MODELS_PATH)
148
149
 
149
150
  return (
150
151
  model.get_latest_model(model_path) if os.path.isdir(model_path) else model_path