rasa-pro 3.14.0.dev5__py3-none-any.whl → 3.14.0.dev6__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 (464) hide show
  1. rasa/agents/agent_factory.py +122 -0
  2. rasa/agents/agent_manager.py +163 -0
  3. rasa/agents/constants.py +40 -0
  4. rasa/agents/core/agent_protocol.py +107 -0
  5. rasa/agents/core/types.py +70 -0
  6. rasa/agents/exceptions.py +8 -0
  7. rasa/agents/protocol/__init__.py +5 -0
  8. rasa/agents/protocol/a2a/a2a_agent.py +662 -0
  9. rasa/agents/protocol/mcp/mcp_base_agent.py +684 -0
  10. rasa/agents/protocol/mcp/mcp_open_agent.py +290 -0
  11. rasa/agents/protocol/mcp/mcp_task_agent.py +484 -0
  12. rasa/agents/schemas/__init__.py +12 -0
  13. rasa/agents/schemas/agent_input.py +38 -0
  14. rasa/agents/schemas/agent_output.py +26 -0
  15. rasa/agents/schemas/agent_tool_result.py +67 -0
  16. rasa/agents/schemas/agent_tool_schema.py +134 -0
  17. rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +15 -0
  18. rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +17 -0
  19. rasa/agents/utils.py +72 -0
  20. rasa/api.py +5 -0
  21. rasa/cli/arguments/default_arguments.py +12 -0
  22. rasa/cli/arguments/run.py +2 -0
  23. rasa/cli/dialogue_understanding_test.py +4 -0
  24. rasa/cli/e2e_test.py +4 -0
  25. rasa/cli/inspect.py +3 -0
  26. rasa/cli/llm_fine_tuning.py +5 -0
  27. rasa/cli/project_templates/tutorial/config.yml +1 -2
  28. rasa/cli/run.py +4 -0
  29. rasa/cli/scaffold.py +2 -46
  30. rasa/cli/shell.py +3 -0
  31. rasa/constants.py +6 -0
  32. rasa/core/actions/action.py +56 -10
  33. rasa/core/agent.py +19 -1
  34. rasa/core/available_agents.py +199 -0
  35. rasa/core/available_endpoints.py +30 -0
  36. rasa/core/channels/channel.py +3 -4
  37. rasa/core/channels/development_inspector.py +4 -4
  38. rasa/core/channels/hangouts.py +2 -2
  39. rasa/core/channels/inspector/dist/assets/{arc-18042c22.js → arc-63212852.js} +1 -1
  40. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-eecf6b13.js} +1 -1
  41. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-8f798a9a.js} +1 -1
  42. rasa/core/channels/inspector/dist/assets/channel-0cd70adf.js +1 -0
  43. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-df71a04c.js} +1 -1
  44. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-9b275968.js} +1 -1
  45. rasa/core/channels/inspector/dist/assets/clone-a0f9c4ed.js +1 -0
  46. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-1c669cad.js} +1 -1
  47. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-b1553799.js} +1 -1
  48. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-112388d6.js} +1 -1
  49. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-fdebec47.js} +1 -1
  50. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-6280ede1.js} +1 -1
  51. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-de9cc4aa.js +1 -0
  52. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-e1dc03e5.js} +1 -1
  53. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-83f68c51.js} +1 -1
  54. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-22f8666f.js} +1 -1
  55. rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-ca9e6217.js} +1 -1
  56. rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-c5ceb692.js} +1 -1
  57. rasa/core/channels/inspector/dist/assets/index-3e293924.js +1353 -0
  58. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-faa9999b.js} +1 -1
  59. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-c4dda8d9.js} +1 -1
  60. rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-d4307784.js} +1 -1
  61. rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-0567aaa7.js} +1 -1
  62. rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-c11b95cf.js} +1 -1
  63. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-0c7d3ca9.js} +1 -1
  64. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-34b433fa.js} +1 -1
  65. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-4cab816e.js} +1 -1
  66. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-8c22fa9e.js} +1 -1
  67. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-70ce9e8e.js} +1 -1
  68. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-fbcd7fc9.js} +1 -1
  69. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-45f05ea6.js} +1 -1
  70. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-beab1ea6.js} +1 -1
  71. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-2f29dbd5.js} +1 -1
  72. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-951eac83.js} +1 -1
  73. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-897fbfdd.js} +1 -1
  74. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-d667fac1.js} +1 -1
  75. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-e3205144.js} +1 -1
  76. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-4abeb0e2.js} +1 -1
  77. rasa/core/channels/inspector/dist/index.html +2 -2
  78. rasa/core/channels/inspector/index.html +1 -1
  79. rasa/core/channels/inspector/src/App.tsx +11 -10
  80. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +3 -12
  81. rasa/core/channels/inspector/src/components/DialogueStack.tsx +6 -4
  82. rasa/core/channels/inspector/src/helpers/formatters.ts +24 -3
  83. rasa/core/channels/inspector/src/theme/base/styles.ts +19 -1
  84. rasa/core/channels/inspector/src/types.ts +4 -0
  85. rasa/core/channels/socketio.py +51 -212
  86. rasa/core/channels/studio_chat.py +29 -49
  87. rasa/core/channels/voice_stream/genesys.py +1 -1
  88. rasa/core/channels/voice_stream/voice_channel.py +3 -5
  89. rasa/core/constants.py +4 -0
  90. rasa/core/policies/enterprise_search_policy.py +11 -6
  91. rasa/core/policies/flow_policy.py +4 -4
  92. rasa/core/policies/flows/flow_executor.py +470 -45
  93. rasa/core/policies/flows/mcp_tool_executor.py +277 -0
  94. rasa/core/policies/intentless_policy.py +1 -1
  95. rasa/core/policies/unexpected_intent_policy.py +1 -0
  96. rasa/core/processor.py +18 -15
  97. rasa/core/run.py +11 -14
  98. rasa/core/tracker_stores/tracker_store.py +3 -7
  99. rasa/core/train.py +1 -1
  100. rasa/core/training/interactive.py +16 -16
  101. rasa/core/training/story_conflict.py +5 -5
  102. rasa/core/utils.py +21 -1
  103. rasa/dialogue_understanding/commands/__init__.py +8 -0
  104. rasa/dialogue_understanding/commands/cancel_flow_command.py +97 -4
  105. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +11 -0
  106. rasa/dialogue_understanding/commands/clarify_command.py +10 -0
  107. rasa/dialogue_understanding/commands/continue_agent_command.py +91 -0
  108. rasa/dialogue_understanding/commands/knowledge_answer_command.py +11 -0
  109. rasa/dialogue_understanding/commands/restart_agent_command.py +162 -0
  110. rasa/dialogue_understanding/commands/start_flow_command.py +164 -8
  111. rasa/dialogue_understanding/commands/utils.py +6 -2
  112. rasa/dialogue_understanding/generator/command_parser.py +4 -0
  113. rasa/dialogue_understanding/generator/flow_retrieval.py +9 -10
  114. rasa/dialogue_understanding/generator/llm_based_command_generator.py +50 -12
  115. rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
  116. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
  117. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +61 -0
  118. rasa/{cli/project_templates/telco/prompts/command-generator.jinja2 → dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2} +7 -3
  119. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +81 -0
  120. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +81 -0
  121. rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +7 -6
  122. rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +7 -6
  123. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +41 -2
  124. rasa/dialogue_understanding/patterns/continue_interrupted.py +163 -1
  125. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +52 -8
  126. rasa/dialogue_understanding/processor/command_processor.py +31 -15
  127. rasa/dialogue_understanding/stack/dialogue_stack.py +123 -2
  128. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +57 -0
  129. rasa/dialogue_understanding/stack/utils.py +17 -2
  130. rasa/dialogue_understanding_test/du_test_runner.py +7 -2
  131. rasa/e2e_test/e2e_test_runner.py +12 -2
  132. rasa/engine/caching.py +2 -2
  133. rasa/engine/recipes/default_components.py +10 -18
  134. rasa/engine/storage/local_model_storage.py +2 -45
  135. rasa/graph_components/validators/default_recipe_validator.py +134 -134
  136. rasa/hooks.py +5 -5
  137. rasa/llm_fine_tuning/utils.py +2 -2
  138. rasa/model_manager/model_api.py +5 -4
  139. rasa/model_manager/runner_service.py +1 -1
  140. rasa/model_manager/socket_bridge.py +14 -20
  141. rasa/model_manager/trainer_service.py +9 -12
  142. rasa/model_manager/utils.py +29 -1
  143. rasa/model_manager/warm_rasa_process.py +1 -1
  144. rasa/nlu/extractors/extractor.py +2 -1
  145. rasa/plugin.py +8 -8
  146. rasa/privacy/privacy_manager.py +11 -2
  147. rasa/server.py +14 -2
  148. rasa/shared/agents/utils.py +35 -0
  149. rasa/shared/constants.py +5 -0
  150. rasa/shared/core/constants.py +12 -1
  151. rasa/shared/core/domain.py +11 -58
  152. rasa/shared/core/events.py +327 -0
  153. rasa/shared/core/flows/flow_step.py +1 -7
  154. rasa/shared/core/flows/flows_list.py +15 -5
  155. rasa/shared/core/flows/flows_yaml_schema.json +112 -186
  156. rasa/shared/core/flows/steps/call.py +53 -5
  157. rasa/shared/core/flows/validation.py +177 -7
  158. rasa/shared/core/flows/yaml_flows_io.py +9 -17
  159. rasa/shared/core/slots.py +2 -6
  160. rasa/shared/core/trackers.py +5 -2
  161. rasa/shared/exceptions.py +4 -0
  162. rasa/shared/importers/importer.py +0 -6
  163. rasa/shared/importers/rasa.py +1 -1
  164. rasa/shared/importers/utils.py +10 -80
  165. rasa/shared/providers/_utils.py +44 -60
  166. rasa/shared/providers/embedding/default_litellm_embedding_client.py +0 -2
  167. rasa/shared/providers/llm/_base_litellm_client.py +39 -7
  168. rasa/shared/providers/llm/default_litellm_llm_client.py +0 -2
  169. rasa/shared/providers/llm/litellm_router_llm_client.py +8 -4
  170. rasa/shared/providers/llm/llm_client.py +7 -3
  171. rasa/shared/providers/llm/llm_response.py +66 -0
  172. rasa/shared/providers/llm/self_hosted_llm_client.py +8 -4
  173. rasa/shared/utils/llm.py +28 -5
  174. rasa/shared/utils/mcp/server_connection.py +166 -0
  175. rasa/shared/utils/schemas/events.py +42 -0
  176. rasa/shared/utils/yaml.py +3 -1
  177. rasa/studio/upload.py +47 -16
  178. rasa/telemetry.py +23 -97
  179. rasa/tracing/instrumentation/instrumentation.py +14 -10
  180. rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
  181. rasa/utils/common.py +79 -0
  182. rasa/utils/io.py +9 -27
  183. rasa/utils/json_utils.py +1 -6
  184. rasa/utils/log_utils.py +2 -6
  185. rasa/utils/ml_utils.py +1 -1
  186. rasa/utils/tensorflow/rasa_layers.py +1 -1
  187. rasa/utils/train_utils.py +15 -15
  188. rasa/validator.py +19 -21
  189. rasa/version.py +1 -1
  190. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/METADATA +14 -17
  191. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/RECORD +201 -432
  192. rasa/builder/README.md +0 -120
  193. rasa/builder/auth.py +0 -176
  194. rasa/builder/config.py +0 -115
  195. rasa/builder/copilot/constants.py +0 -25
  196. rasa/builder/copilot/copilot.py +0 -372
  197. rasa/builder/copilot/copilot_response_handler.py +0 -487
  198. rasa/builder/copilot/copilot_templated_message_provider.py +0 -58
  199. rasa/builder/copilot/exceptions.py +0 -20
  200. rasa/builder/copilot/models.py +0 -431
  201. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +0 -726
  202. rasa/builder/copilot/telemetry.py +0 -195
  203. rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +0 -16
  204. rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +0 -26
  205. rasa/builder/document_retrieval/constants.py +0 -15
  206. rasa/builder/document_retrieval/inkeep-rag-response-schema.json +0 -64
  207. rasa/builder/document_retrieval/inkeep_document_retrieval.py +0 -238
  208. rasa/builder/document_retrieval/models.py +0 -62
  209. rasa/builder/download.py +0 -140
  210. rasa/builder/exceptions.py +0 -55
  211. rasa/builder/guardrails/__init__.py +0 -1
  212. rasa/builder/guardrails/constants.py +0 -3
  213. rasa/builder/guardrails/exceptions.py +0 -4
  214. rasa/builder/guardrails/lakera.py +0 -206
  215. rasa/builder/guardrails/models.py +0 -199
  216. rasa/builder/guardrails/utils.py +0 -305
  217. rasa/builder/job_manager.py +0 -87
  218. rasa/builder/jobs.py +0 -234
  219. rasa/builder/llm_service.py +0 -246
  220. rasa/builder/logging_utils.py +0 -209
  221. rasa/builder/main.py +0 -174
  222. rasa/builder/models.py +0 -197
  223. rasa/builder/project_generator.py +0 -450
  224. rasa/builder/project_info.py +0 -72
  225. rasa/builder/scrape_rasa_docs.py +0 -97
  226. rasa/builder/service.py +0 -1142
  227. rasa/builder/shared/tracker_context.py +0 -212
  228. rasa/builder/skill_to_bot_prompt.jinja2 +0 -164
  229. rasa/builder/training_service.py +0 -132
  230. rasa/builder/validation_service.py +0 -93
  231. rasa/cli/project_templates/basic/actions/action_api.py +0 -15
  232. rasa/cli/project_templates/basic/actions/action_human_handoff.py +0 -44
  233. rasa/cli/project_templates/basic/config.yml +0 -23
  234. rasa/cli/project_templates/basic/credentials.yml +0 -34
  235. rasa/cli/project_templates/basic/data/general/feedback.yml +0 -20
  236. rasa/cli/project_templates/basic/data/general/goodbye.yml +0 -6
  237. rasa/cli/project_templates/basic/data/general/hello.yml +0 -7
  238. rasa/cli/project_templates/basic/data/general/help.yml +0 -6
  239. rasa/cli/project_templates/basic/data/general/human_handoff.yml +0 -16
  240. rasa/cli/project_templates/basic/data/general/welcome.yml +0 -9
  241. rasa/cli/project_templates/basic/data/system/pattern_completed.yml +0 -7
  242. rasa/cli/project_templates/basic/data/system/pattern_correction.yml +0 -7
  243. rasa/cli/project_templates/basic/data/system/pattern_search.yml +0 -8
  244. rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +0 -8
  245. rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +0 -65
  246. rasa/cli/project_templates/basic/docs/template.txt +0 -7
  247. rasa/cli/project_templates/basic/domain/general/assistant_details.yml +0 -12
  248. rasa/cli/project_templates/basic/domain/general/bot_identity.yml +0 -5
  249. rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +0 -5
  250. rasa/cli/project_templates/basic/domain/general/feedback.yml +0 -28
  251. rasa/cli/project_templates/basic/domain/general/goodbye.yml +0 -7
  252. rasa/cli/project_templates/basic/domain/general/help.yml +0 -5
  253. rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +0 -35
  254. rasa/cli/project_templates/basic/domain/general/utils.yml +0 -13
  255. rasa/cli/project_templates/basic/domain/general/welcome.yml +0 -7
  256. rasa/cli/project_templates/basic/endpoints.yml +0 -73
  257. rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
  258. rasa/cli/project_templates/finance/actions/__init__.py +0 -46
  259. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +0 -47
  260. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +0 -40
  261. rasa/cli/project_templates/finance/actions/action_session_start.py +0 -74
  262. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +0 -48
  263. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +0 -36
  264. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +0 -54
  265. rasa/cli/project_templates/finance/actions/database.py +0 -277
  266. rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
  267. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +0 -52
  268. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +0 -51
  269. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +0 -40
  270. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +0 -40
  271. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +0 -46
  272. rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +0 -18
  273. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +0 -49
  274. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +0 -19
  275. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +0 -36
  276. rasa/cli/project_templates/finance/config.yml +0 -21
  277. rasa/cli/project_templates/finance/credentials.yml +0 -32
  278. rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
  279. rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
  280. rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
  281. rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
  282. rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
  283. rasa/cli/project_templates/finance/csvs/payees.csv +0 -11
  284. rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
  285. rasa/cli/project_templates/finance/csvs/users.csv +0 -4
  286. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +0 -10
  287. rasa/cli/project_templates/finance/data/cards/block_card.yml +0 -66
  288. rasa/cli/project_templates/finance/data/cards/select_card.yml +0 -12
  289. rasa/cli/project_templates/finance/data/general/bot_identity.yml +0 -6
  290. rasa/cli/project_templates/finance/data/general/feedback.yml +0 -20
  291. rasa/cli/project_templates/finance/data/general/goodbye.yml +0 -6
  292. rasa/cli/project_templates/finance/data/general/hello.yml +0 -7
  293. rasa/cli/project_templates/finance/data/general/help.yml +0 -9
  294. rasa/cli/project_templates/finance/data/general/human_handoff.yml +0 -16
  295. rasa/cli/project_templates/finance/data/general/welcome.yml +0 -9
  296. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
  297. rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +0 -7
  298. rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +0 -7
  299. rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +0 -8
  300. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +0 -8
  301. rasa/cli/project_templates/finance/data/system/source/accounts.json +0 -51
  302. rasa/cli/project_templates/finance/data/system/source/advisors.json +0 -44
  303. rasa/cli/project_templates/finance/data/system/source/appointments.json +0 -1474
  304. rasa/cli/project_templates/finance/data/system/source/branches.json +0 -47
  305. rasa/cli/project_templates/finance/data/system/source/cards.json +0 -72
  306. rasa/cli/project_templates/finance/data/system/source/payees.json +0 -74
  307. rasa/cli/project_templates/finance/data/system/source/transactions.json +0 -492
  308. rasa/cli/project_templates/finance/data/system/source/users.json +0 -29
  309. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +0 -29
  310. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +0 -5
  311. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +0 -21
  312. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +0 -67
  313. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
  314. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
  315. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
  316. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
  317. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
  318. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
  319. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
  320. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
  321. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
  322. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
  323. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
  324. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
  325. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
  326. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
  327. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
  328. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
  329. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
  330. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
  331. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
  332. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
  333. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
  334. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
  335. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
  336. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
  337. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
  338. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
  339. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
  340. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
  341. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
  342. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
  343. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
  344. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
  345. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
  346. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
  347. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
  348. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
  349. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
  350. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
  351. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
  352. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
  353. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
  354. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
  355. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
  356. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
  357. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
  358. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
  359. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
  360. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
  361. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
  362. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
  363. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
  364. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
  365. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
  366. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
  367. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
  368. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
  369. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
  370. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
  371. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
  372. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
  373. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
  374. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
  375. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
  376. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
  377. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
  378. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
  379. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
  380. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
  381. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
  382. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
  383. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
  384. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
  385. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
  386. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
  387. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
  388. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
  389. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
  390. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
  391. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
  392. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
  393. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
  394. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +0 -11
  395. rasa/cli/project_templates/finance/domain/cards/block_card.yml +0 -101
  396. rasa/cli/project_templates/finance/domain/cards/select_card.yml +0 -12
  397. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +0 -12
  398. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +0 -5
  399. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +0 -5
  400. rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
  401. rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -28
  402. rasa/cli/project_templates/finance/domain/general/goodbye.yml +0 -7
  403. rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
  404. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +0 -30
  405. rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
  406. rasa/cli/project_templates/finance/domain/general/welcome.yml +0 -8
  407. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +0 -47
  408. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +0 -4
  409. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +0 -16
  410. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +0 -79
  411. rasa/cli/project_templates/finance/endpoints.yml +0 -63
  412. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
  413. rasa/cli/project_templates/telco/actions/__init__.py +0 -0
  414. rasa/cli/project_templates/telco/actions/actions_billing.py +0 -204
  415. rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +0 -48
  416. rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +0 -28
  417. rasa/cli/project_templates/telco/actions/actions_session_start.py +0 -18
  418. rasa/cli/project_templates/telco/config.yml +0 -25
  419. rasa/cli/project_templates/telco/credentials.yml +0 -33
  420. rasa/cli/project_templates/telco/csvs/billing.csv +0 -10
  421. rasa/cli/project_templates/telco/csvs/customers.csv +0 -5
  422. rasa/cli/project_templates/telco/data/flows/flow_global.yml +0 -5
  423. rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +0 -8
  424. rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +0 -7
  425. rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +0 -73
  426. rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +0 -45
  427. rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +0 -7
  428. rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +0 -6
  429. rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +0 -7
  430. rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +0 -9
  431. rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +0 -1
  432. rasa/cli/project_templates/telco/docs/restart_router.txt +0 -6
  433. rasa/cli/project_templates/telco/docs/run_speed_test.txt +0 -6
  434. rasa/cli/project_templates/telco/domain/domain_global.yml +0 -29
  435. rasa/cli/project_templates/telco/domain/domain_patterns.yml +0 -17
  436. rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +0 -20
  437. rasa/cli/project_templates/telco/domain/domain_reset_router.yml +0 -11
  438. rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +0 -24
  439. rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +0 -74
  440. rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +0 -102
  441. rasa/cli/project_templates/telco/endpoints.yml +0 -60
  442. rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +0 -62
  443. rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +0 -130
  444. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +0 -68
  445. rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +0 -13
  446. rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +0 -47
  447. rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +0 -21
  448. rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +0 -15
  449. rasa/core/channels/constants.py +0 -3
  450. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +0 -1
  451. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +0 -1
  452. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +0 -1
  453. rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +0 -1335
  454. rasa/utils/openapi.py +0 -144
  455. /rasa/{builder → agents}/__init__.py +0 -0
  456. /rasa/{builder/copilot → agents/core}/__init__.py +0 -0
  457. /rasa/{builder/copilot/prompts → agents/protocol/a2a}/__init__.py +0 -0
  458. /rasa/{builder/copilot/templated_messages → agents/protocol/mcp}/__init__.py +0 -0
  459. /rasa/{builder/document_retrieval → agents/templates}/__init__.py +0 -0
  460. /rasa/{cli/project_templates/finance/actions/accounts → shared/agents}/__init__.py +0 -0
  461. /rasa/{cli/project_templates/finance/actions/cards → shared/utils/mcp}/__init__.py +0 -0
  462. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/NOTICE +0 -0
  463. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/WHEEL +0 -0
  464. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/entry_points.txt +0 -0
@@ -10,46 +10,40 @@ from rasa.core.policies.flow_policy import FlowPolicy
10
10
  from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
11
11
  from rasa.core.policies.policy import Policy, SupportedData
12
12
  from rasa.core.policies.rule_policy import RulePolicy
13
- from rasa.core.policies.ted_policy import TEDPolicy
14
- from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
13
+
14
+ # from rasa.core.policies.ted_policy import TEDPolicy
15
+ # from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
15
16
  from rasa.engine.graph import ExecutionContext, GraphComponent, GraphSchema, SchemaNode
16
17
  from rasa.engine.storage.resource import Resource
17
18
  from rasa.engine.storage.storage import ModelStorage
18
- from rasa.nlu.classifiers.diet_classifier import DIETClassifier
19
- from rasa.nlu.extractors.crf_entity_extractor import (
20
- CRFEntityExtractor,
21
- CRFEntityExtractorOptions,
22
- )
19
+
20
+ # from rasa.nlu.classifiers.diet_classifier import DIETClassifier
21
+ # from rasa.nlu.extractors.crf_entity_extractor import (
22
+ # CRFEntityExtractor,
23
+ # CRFEntityExtractorOptions,
24
+ # )
23
25
  from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
24
26
  from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
25
27
  from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
26
28
  from rasa.nlu.featurizers.featurizer import Featurizer
27
29
  from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
28
- from rasa.nlu.selectors.response_selector import ResponseSelector
30
+
31
+ # from rasa.nlu.selectors.response_selector import ResponseSelector
29
32
  from rasa.nlu.tokenizers.tokenizer import Tokenizer
30
33
  from rasa.shared.constants import (
31
- DEFAULT_CONFIG_PATH,
32
34
  DOCS_URL_COMPONENTS,
33
- DOCS_URL_DEFAULT_ACTIONS,
34
35
  DOCS_URL_NLU_BASED_POLICIES,
35
- DOCS_URL_RULES,
36
36
  )
37
- from rasa.shared.core.constants import (
38
- ACTION_BACK_NAME,
39
- ACTION_RESTART_NAME,
40
- USER_INTENT_BACK,
41
- USER_INTENT_RESTART,
42
- )
43
- from rasa.shared.core.domain import Domain, InvalidDomain
37
+ from rasa.shared.core.domain import Domain
44
38
  from rasa.shared.core.training_data.structures import RuleStep, StoryGraph
45
39
  from rasa.shared.exceptions import InvalidConfigException
46
40
  from rasa.shared.importers.importer import TrainingDataImporter
47
41
  from rasa.shared.nlu.training_data.training_data import TrainingData
48
42
 
49
43
  # TODO: Can we replace this with the registered types from the regitry?
50
- TRAINABLE_EXTRACTORS = [MitieEntityExtractor, CRFEntityExtractor, DIETClassifier]
44
+ TRAINABLE_EXTRACTORS = [MitieEntityExtractor] # , CRFEntityExtractor, DIETClassifier]
51
45
  # TODO: replace these once the Recipe is merged (used in tests)
52
- POLICY_CLASSSES = {TEDPolicy, MemoizationPolicy, RulePolicy}
46
+ POLICY_CLASSSES = {MemoizationPolicy, RulePolicy}
53
47
 
54
48
 
55
49
  def _types_to_str(types: Iterable[Type]) -> Text:
@@ -135,16 +129,17 @@ class DefaultV1RecipeValidator(GraphComponent):
135
129
  """
136
130
  if (
137
131
  training_data.response_examples
138
- and ResponseSelector not in self._component_types
132
+ # and ResponseSelector not in self._component_types
139
133
  ):
140
- rasa.shared.utils.io.raise_warning(
141
- f"You have defined training data with examples for training a response "
142
- f"selector, but your NLU configuration does not include a response "
143
- f"selector component. "
144
- f"To train a model on your response selector data, add a "
145
- f"'{ResponseSelector.__name__}' to your configuration.",
146
- docs=DOCS_URL_COMPONENTS,
147
- )
134
+ pass
135
+ # rasa.shared.utils.io.raise_warning(
136
+ # f"You have defined training data with examples for training a response " # noqa: E501
137
+ # f"selector, but your NLU configuration does not include a response "
138
+ # f"selector component. "
139
+ # f"To train a model on your response selector data, add a "
140
+ # f"'{ResponseSelector.__name__}' to your configuration.",
141
+ # docs=DOCS_URL_COMPONENTS,
142
+ # )
148
143
 
149
144
  if training_data.entity_examples and self._component_types.isdisjoint(
150
145
  TRAINABLE_EXTRACTORS
@@ -158,21 +153,21 @@ class DefaultV1RecipeValidator(GraphComponent):
158
153
  docs=DOCS_URL_COMPONENTS,
159
154
  )
160
155
 
161
- if training_data.entity_examples and self._component_types.isdisjoint(
162
- {DIETClassifier, CRFEntityExtractor}
163
- ):
164
- if training_data.entity_roles_groups_used():
165
- rasa.shared.utils.io.raise_warning(
166
- f"You have defined training data with entities that "
167
- f"have roles/groups, but your NLU configuration does not "
168
- f"include a '{DIETClassifier.__name__}' "
169
- f"or a '{CRFEntityExtractor.__name__}'. "
170
- f"To train entities that have roles/groups, "
171
- f"add either '{DIETClassifier.__name__}' "
172
- f"or '{CRFEntityExtractor.__name__}' to your "
173
- f"configuration.",
174
- docs=DOCS_URL_COMPONENTS,
175
- )
156
+ # if training_data.entity_examples and self._component_types.isdisjoint(
157
+ # {DIETClassifier, CRFEntityExtractor}
158
+ # ):
159
+ # if training_data.entity_roles_groups_used():
160
+ # rasa.shared.utils.io.raise_warning(
161
+ # f"You have defined training data with entities that "
162
+ # f"have roles/groups, but your NLU configuration does not "
163
+ # f"include a '{DIETClassifier.__name__}' "
164
+ # f"or a '{CRFEntityExtractor.__name__}'. "
165
+ # f"To train entities that have roles/groups, "
166
+ # f"add either '{DIETClassifier.__name__}' "
167
+ # f"or '{CRFEntityExtractor.__name__}' to your "
168
+ # f"configuration.",
169
+ # docs=DOCS_URL_COMPONENTS,
170
+ # )
176
171
 
177
172
  if training_data.regex_features and self._component_types.isdisjoint(
178
173
  [RegexFeaturizer, RegexEntityExtractor]
@@ -202,45 +197,45 @@ class DefaultV1RecipeValidator(GraphComponent):
202
197
  docs=DOCS_URL_COMPONENTS,
203
198
  )
204
199
 
205
- if training_data.lookup_tables:
206
- if self._component_types.isdisjoint([CRFEntityExtractor, DIETClassifier]):
207
- rasa.shared.utils.io.raise_warning(
208
- f"You have defined training data consisting of lookup tables, but "
209
- f"your NLU configuration does not include any components "
210
- f"that uses the features created from the lookup table. "
211
- f"To make use of the features that are created with the "
212
- f"help of the lookup tables, "
213
- f"add a '{DIETClassifier.__name__}' or a "
214
- f"'{CRFEntityExtractor.__name__}' "
215
- f"with the 'pattern' feature "
216
- f"to your configuration.",
217
- docs=DOCS_URL_COMPONENTS,
218
- )
219
-
220
- elif CRFEntityExtractor in self._component_types:
221
- crf_schema_nodes = [
222
- schema_node
223
- for schema_node in self._graph_schema.nodes.values()
224
- if schema_node.uses == CRFEntityExtractor
225
- ]
226
- has_pattern_feature = any(
227
- CRFEntityExtractorOptions.PATTERN in feature_list
228
- for crf in crf_schema_nodes
229
- for feature_list in crf.config.get("features", [])
230
- )
231
-
232
- if not has_pattern_feature:
233
- rasa.shared.utils.io.raise_warning(
234
- f"You have defined training data consisting of "
235
- f"lookup tables, but your NLU configuration's "
236
- f"'{CRFEntityExtractor.__name__}' "
237
- f"does not include the "
238
- f"'pattern' feature. To featurize lookup tables, "
239
- f"add the 'pattern' feature to the "
240
- f"'{CRFEntityExtractor.__name__}' "
241
- "in your configuration.",
242
- docs=DOCS_URL_COMPONENTS,
243
- )
200
+ # if training_data.lookup_tables:
201
+ # if self._component_types.isdisjoint([CRFEntityExtractor, DIETClassifier]):
202
+ # rasa.shared.utils.io.raise_warning(
203
+ # f"You have defined training data consisting of lookup tables, but " # noqa: E501
204
+ # f"your NLU configuration does not include any components "
205
+ # f"that uses the features created from the lookup table. "
206
+ # f"To make use of the features that are created with the "
207
+ # f"help of the lookup tables, "
208
+ # f"add a '{DIETClassifier.__name__}' or a "
209
+ # f"'{CRFEntityExtractor.__name__}' "
210
+ # f"with the 'pattern' feature "
211
+ # f"to your configuration.",
212
+ # docs=DOCS_URL_COMPONENTS,
213
+ # )
214
+
215
+ # elif CRFEntityExtractor in self._component_types:
216
+ # crf_schema_nodes = [
217
+ # schema_node
218
+ # for schema_node in self._graph_schema.nodes.values()
219
+ # if schema_node.uses == CRFEntityExtractor
220
+ # ]
221
+ # has_pattern_feature = any(
222
+ # CRFEntityExtractorOptions.PATTERN in feature_list
223
+ # for crf in crf_schema_nodes
224
+ # for feature_list in crf.config.get("features", [])
225
+ # )
226
+
227
+ # if not has_pattern_feature:
228
+ # rasa.shared.utils.io.raise_warning(
229
+ # f"You have defined training data consisting of "
230
+ # f"lookup tables, but your NLU configuration's "
231
+ # f"'{CRFEntityExtractor.__name__}' "
232
+ # f"does not include the "
233
+ # f"'pattern' feature. To featurize lookup tables, "
234
+ # f"add the 'pattern' feature to the "
235
+ # f"'{CRFEntityExtractor.__name__}' "
236
+ # "in your configuration.",
237
+ # docs=DOCS_URL_COMPONENTS,
238
+ # )
244
239
 
245
240
  if (
246
241
  training_data.entity_synonyms
@@ -392,21 +387,22 @@ class DefaultV1RecipeValidator(GraphComponent):
392
387
 
393
388
  def _warn_if_no_policy_handles_default_intents(self) -> None:
394
389
  """Warns if there is no policy handling the default intents."""
395
- policies_handling_default_indents = (RulePolicy, FlowPolicy)
396
-
397
- contains_policy_handling_default_intents = any(
398
- issubclass(node.uses, policies_handling_default_indents)
399
- for node in self._policy_schema_nodes
400
- )
401
- if not contains_policy_handling_default_intents:
402
- rasa.shared.utils.io.raise_warning(
403
- f"'{RulePolicy.__name__}' is not included in the model's "
404
- f"policy configuration. Default intents such as "
405
- f"'{USER_INTENT_RESTART}' and '{USER_INTENT_BACK}' will "
406
- f"not trigger actions '{ACTION_RESTART_NAME}' and "
407
- f"'{ACTION_BACK_NAME}'.",
408
- docs=DOCS_URL_DEFAULT_ACTIONS,
409
- )
390
+ # policies_handling_default_indents = (RulePolicy, FlowPolicy)
391
+ #
392
+ # contains_policy_handling_default_intents = any(
393
+ # issubclass(node.uses, policies_handling_default_indents)
394
+ # for node in self._policy_schema_nodes
395
+ # )
396
+ # if not contains_policy_handling_default_intents:
397
+ # rasa.shared.utils.io.raise_warning(
398
+ # f"'{RulePolicy.__name__}' is not included in the model's "
399
+ # f"policy configuration. Default intents such as "
400
+ # f"'{USER_INTENT_RESTART}' and '{USER_INTENT_BACK}' will "
401
+ # f"not trigger actions '{ACTION_RESTART_NAME}' and "
402
+ # f"'{ACTION_BACK_NAME}'.",
403
+ # docs=DOCS_URL_DEFAULT_ACTIONS,
404
+ # )
405
+ pass
410
406
 
411
407
  def _raise_if_domain_contains_form_names_but_no_rule_policy_given(
412
408
  self, domain: Domain
@@ -416,19 +412,20 @@ class DefaultV1RecipeValidator(GraphComponent):
416
412
  Raises:
417
413
  `InvalidConfigException` if domain and rule policies do not match
418
414
  """
419
- contains_rule_policy = any(
420
- schema_node
421
- for schema_node in self._graph_schema.nodes.values()
422
- if issubclass(schema_node.uses, RulePolicy)
423
- )
424
-
425
- if domain.form_names and not contains_rule_policy:
426
- raise InvalidDomain(
427
- "You have defined a form action, but have not added the "
428
- f"'{RulePolicy.__name__}' to your policy ensemble. "
429
- f"Either remove all forms from your domain or add the "
430
- f"'{RulePolicy.__name__}' to your policy configuration."
431
- )
415
+ pass
416
+ # contains_rule_policy = any(
417
+ # schema_node
418
+ # for schema_node in self._graph_schema.nodes.values()
419
+ # if issubclass(schema_node.uses, RulePolicy)
420
+ # )
421
+
422
+ # if domain.form_names and not contains_rule_policy:
423
+ # raise InvalidDomain(
424
+ # "You have defined a form action, but have not added the "
425
+ # f"'{RulePolicy.__name__}' to your policy ensemble. "
426
+ # f"Either remove all forms from your domain or add the "
427
+ # f"'{RulePolicy.__name__}' to your policy configuration."
428
+ # )
432
429
 
433
430
  def _raise_if_dm1_and_calm_policies_used_at_the_same_time(self) -> None:
434
431
  """Validates that there exists a rule policy if forms are defined.
@@ -447,11 +444,11 @@ class DefaultV1RecipeValidator(GraphComponent):
447
444
 
448
445
  # if we are using a flow policy, there shouldn't be any dm1 policies
449
446
  dm1_policies = (
450
- RulePolicy,
451
- TEDPolicy,
447
+ # RulePolicy,
448
+ # TEDPolicy,
452
449
  MemoizationPolicy,
453
450
  AugmentedMemoizationPolicy,
454
- UnexpecTEDIntentPolicy,
451
+ # UnexpecTEDIntentPolicy,
455
452
  )
456
453
 
457
454
  for schema_node in self._graph_schema.nodes.values():
@@ -472,10 +469,11 @@ class DefaultV1RecipeValidator(GraphComponent):
472
469
  `InvalidDomain` if domain and rule policies do not match
473
470
  """
474
471
  for schema_node in self._graph_schema.nodes.values():
475
- if schema_node.uses == RulePolicy:
476
- RulePolicy.raise_if_incompatible_with_domain(
477
- config=schema_node.config, domain=domain
478
- )
472
+ # if schema_node.uses == RulePolicy:
473
+ # RulePolicy.raise_if_incompatible_with_domain(
474
+ # config=schema_node.config, domain=domain
475
+ # )
476
+ pass
479
477
 
480
478
  def _validate_policy_priorities(self) -> None:
481
479
  """Checks if every policy has a valid priority value.
@@ -531,20 +529,22 @@ class DefaultV1RecipeValidator(GraphComponent):
531
529
  )
532
530
 
533
531
  if consuming_rule_data and not contains_rule_tracker:
534
- rasa.shared.utils.io.raise_warning(
535
- f"Found a rule-based policy in your configuration but "
536
- f"no rule-based training data. Please add rule-based "
537
- f"stories to your training data or "
538
- f"remove the rule-based policy "
539
- f"(`{RulePolicy.__name__}`) from your "
540
- f"your configuration.",
541
- docs=DOCS_URL_RULES,
542
- )
532
+ # rasa.shared.utils.io.raise_warning(
533
+ # f"Found a rule-based policy in your configuration but "
534
+ # f"no rule-based training data. Please add rule-based "
535
+ # f"stories to your training data or "
536
+ # f"remove the rule-based policy "
537
+ # f"(`{RulePolicy.__name__}`) from your "
538
+ # f"your configuration.",
539
+ # docs=DOCS_URL_RULES,
540
+ # )
541
+ pass
543
542
  elif not consuming_rule_data and contains_rule_tracker:
544
- rasa.shared.utils.io.raise_warning(
545
- f"Found rule-based training data but no policy supporting rule-based "
546
- f"data. Please add `{RulePolicy.__name__}` "
547
- f"or another rule-supporting "
548
- f"policy to the `policies` section in `{DEFAULT_CONFIG_PATH}`.",
549
- docs=DOCS_URL_RULES,
550
- )
543
+ # rasa.shared.utils.io.raise_warning(
544
+ # f"Found rule-based training data but no policy supporting rule-based "
545
+ # f"data. Please add `{RulePolicy.__name__}` "
546
+ # f"or another rule-supporting "
547
+ # f"policy to the `policies` section in `{DEFAULT_CONFIG_PATH}`.",
548
+ # docs=DOCS_URL_RULES,
549
+ # )
550
+ pass
rasa/hooks.py CHANGED
@@ -19,7 +19,7 @@ hookimpl = pluggy.HookimplMarker("rasa")
19
19
  logger = logging.getLogger(__name__)
20
20
 
21
21
 
22
- @hookimpl # type: ignore[misc]
22
+ @hookimpl
23
23
  def refine_cli(
24
24
  subparsers: "SubParsersAction",
25
25
  parent_parsers: List[argparse.ArgumentParser],
@@ -37,7 +37,7 @@ def refine_cli(
37
37
  return None
38
38
 
39
39
 
40
- @hookimpl # type: ignore[misc]
40
+ @hookimpl
41
41
  def configure_commandline(cmdline_arguments: argparse.Namespace) -> Optional[Text]:
42
42
  from rasa.cli import x as rasa_x
43
43
  from rasa.tracing import config
@@ -59,21 +59,21 @@ def configure_commandline(cmdline_arguments: argparse.Namespace) -> Optional[Tex
59
59
  return endpoints_file
60
60
 
61
61
 
62
- @hookimpl # type: ignore[misc]
62
+ @hookimpl
63
63
  def init_telemetry(endpoints_file: Optional[Text]) -> None:
64
64
  import rasa.telemetry
65
65
 
66
66
  rasa.telemetry.identify_endpoint_config_traits(endpoints_file)
67
67
 
68
68
 
69
- @hookimpl # type: ignore[misc]
69
+ @hookimpl
70
70
  def init_managers(endpoints_file: Optional[Text]) -> None:
71
71
  from rasa.core.secrets_manager.factory import load_secret_manager
72
72
 
73
73
  load_secret_manager(endpoints_file)
74
74
 
75
75
 
76
- @hookimpl # type: ignore[misc]
76
+ @hookimpl
77
77
  def create_tracker_store(
78
78
  endpoint_config: Union["TrackerStore", "EndpointConfig"],
79
79
  domain: "Domain",
@@ -61,9 +61,9 @@ def patch_invoke_llm_in_generators(mock_impl: Callable) -> Generator:
61
61
  try:
62
62
  # apply the monkey-patch everywhere
63
63
  for cls in originals:
64
- cls.invoke_llm = mock_impl # type: ignore[assignment]
64
+ cls.invoke_llm = mock_impl # type: ignore[method-assign]
65
65
  yield
66
66
  finally:
67
67
  # restore originals (even if an exception happened)
68
68
  for cls, orig in originals.items():
69
- cls.invoke_llm = orig # type: ignore[assignment]
69
+ cls.invoke_llm = orig # type: ignore[method-assign]
@@ -39,9 +39,11 @@ from rasa.model_manager.trainer_service import (
39
39
  update_training_status,
40
40
  )
41
41
  from rasa.model_manager.utils import (
42
+ InvalidPathException,
42
43
  get_logs_content,
43
44
  logs_base_path,
44
45
  models_base_path,
46
+ subpath,
45
47
  )
46
48
  from rasa.model_manager.warm_rasa_process import (
47
49
  initialize_warm_rasa_process,
@@ -51,7 +53,6 @@ from rasa.server import ErrorResponse
51
53
  from rasa.shared.exceptions import InvalidConfigException
52
54
  from rasa.shared.utils.yaml import dump_obj_as_yaml_to_string
53
55
  from rasa.studio.upload import build_calm_import_parts
54
- from rasa.utils.io import InvalidPathException, subpath
55
56
 
56
57
  dotenv.load_dotenv()
57
58
 
@@ -570,10 +571,10 @@ def external_blueprint() -> Blueprint:
570
571
  """Create a blueprint for the model manager API."""
571
572
  from rasa.core.channels.socketio import SocketBlueprint
572
573
 
573
- sio_server = AsyncServer(async_mode="sanic", cors_allowed_origins="*")
574
- bp = SocketBlueprint(sio_server, "", "model_api_external")
574
+ sio = AsyncServer(async_mode="sanic", cors_allowed_origins="*")
575
+ bp = SocketBlueprint(sio, "", "model_api_external")
575
576
 
576
- create_bridge_server(sio_server, running_bots)
577
+ create_bridge_server(sio, running_bots)
577
578
 
578
579
  @bp.get("/health")
579
580
  async def health(request: Request) -> response.HTTPResponse:
@@ -15,11 +15,11 @@ from rasa.model_manager import config
15
15
  from rasa.model_manager.utils import (
16
16
  logs_path,
17
17
  models_base_path,
18
+ subpath,
18
19
  write_encoded_data_to_file,
19
20
  )
20
21
  from rasa.model_manager.warm_rasa_process import start_rasa_process
21
22
  from rasa.studio.prompts import handle_prompts
22
- from rasa.utils.io import subpath
23
23
 
24
24
  structlogger = structlog.get_logger()
25
25
 
@@ -19,7 +19,7 @@ socket_proxy_clients = {}
19
19
 
20
20
 
21
21
  async def socketio_websocket_traffic_wrapper(
22
- sio_server: AsyncServer,
22
+ sio: AsyncServer,
23
23
  running_bots: Dict[str, BotSession],
24
24
  sid: str,
25
25
  auth: Optional[Dict],
@@ -55,9 +55,7 @@ async def socketio_websocket_traffic_wrapper(
55
55
  structlogger.error("model_runner.bot_not_alive", deployment_id=deployment_id)
56
56
  raise ConnectionRefusedError("model_runner.bot_not_alive")
57
57
 
58
- client = await create_bridge_client(
59
- sio_server, bot.internal_url, sid, deployment_id
60
- )
58
+ client = await create_bridge_client(sio, bot.internal_url, sid, deployment_id)
61
59
 
62
60
  if client.sid is not None:
63
61
  structlogger.debug(
@@ -72,24 +70,20 @@ async def socketio_websocket_traffic_wrapper(
72
70
  raise ConnectionRefusedError("model_runner.bot_connection_failed")
73
71
 
74
72
 
75
- def create_bridge_server(
76
- sio_server: AsyncServer, running_bots: Dict[str, BotSession]
77
- ) -> None:
73
+ def create_bridge_server(sio: AsyncServer, running_bots: Dict[str, BotSession]) -> None:
78
74
  """Create handlers for the socket server side.
79
75
 
80
76
  Forwards messages coming from the user to the bot.
81
77
  """
82
78
 
83
- @sio_server.on("connect")
79
+ @sio.on("connect")
84
80
  async def socketio_websocket_traffic(
85
81
  sid: str, environ: Dict, auth: Optional[Dict]
86
82
  ) -> bool:
87
83
  """Bridge websockets between user chat socket and bot server."""
88
- return await socketio_websocket_traffic_wrapper(
89
- sio_server, running_bots, sid, auth
90
- )
84
+ return await socketio_websocket_traffic_wrapper(sio, running_bots, sid, auth)
91
85
 
92
- @sio_server.on("disconnect")
86
+ @sio.on("disconnect")
93
87
  async def disconnect(sid: str) -> None:
94
88
  """Disconnect the bot connection."""
95
89
  structlogger.debug("model_runner.bot_disconnect", sid=sid)
@@ -97,7 +91,7 @@ def create_bridge_server(
97
91
  await socket_proxy_clients[sid].disconnect()
98
92
  del socket_proxy_clients[sid]
99
93
 
100
- @sio_server.on("*")
94
+ @sio.on("*")
101
95
  async def handle_message(event: str, sid: str, data: Dict[str, Any]) -> None:
102
96
  """Bridge messages between user and bot.
103
97
 
@@ -114,7 +108,7 @@ def create_bridge_server(
114
108
 
115
109
 
116
110
  async def create_bridge_client(
117
- sio_server: AsyncServer, url: str, sid: str, deployment_id: str
111
+ sio: AsyncServer, url: str, sid: str, deployment_id: str
118
112
  ) -> AsyncClient:
119
113
  """Create a new socket bridge client.
120
114
 
@@ -129,36 +123,36 @@ async def create_bridge_client(
129
123
  structlogger.debug(
130
124
  "model_runner.bot_session_confirmed", deployment_id=deployment_id
131
125
  )
132
- await sio_server.emit("session_confirm", room=sid)
126
+ await sio.emit("session_confirm", room=sid)
133
127
 
134
128
  @client.event # type: ignore[misc]
135
129
  async def bot_message(data: Dict[str, Any]) -> None:
136
130
  structlogger.debug("model_runner.bot_message", deployment_id=deployment_id)
137
- await sio_server.emit("bot_message", data, room=sid)
131
+ await sio.emit("bot_message", data, room=sid)
138
132
 
139
133
  @client.event # type: ignore[misc]
140
134
  async def error(data: Dict[str, Any]) -> None:
141
135
  structlogger.debug(
142
136
  "model_runner.bot_error", deployment_id=deployment_id, data=data
143
137
  )
144
- await sio_server.emit("error", data, room=sid)
138
+ await sio.emit("error", data, room=sid)
145
139
 
146
140
  @client.event # type: ignore[misc]
147
141
  async def tracker(data: Dict[str, Any]) -> None:
148
- await sio_server.emit("tracker", json.loads(data), room=sid)
142
+ await sio.emit("tracker", json.loads(data), room=sid)
149
143
 
150
144
  @client.event # type: ignore[misc]
151
145
  async def disconnect() -> None:
152
146
  structlogger.debug(
153
147
  "model_runner.bot_connection_closed", deployment_id=deployment_id
154
148
  )
155
- await sio_server.emit("disconnect", room=sid)
149
+ await sio.emit("disconnect", room=sid)
156
150
 
157
151
  @client.event # type: ignore[misc]
158
152
  async def connect_error() -> None:
159
153
  structlogger.error(
160
154
  "model_runner.bot_connection_error", deployment_id=deployment_id
161
155
  )
162
- await sio_server.emit("disconnect", room=sid)
156
+ await sio.emit("disconnect", room=sid)
163
157
 
164
158
  return client
@@ -14,6 +14,7 @@ from rasa.model_manager.utils import (
14
14
  ensure_base_directory_exists,
15
15
  logs_path,
16
16
  models_base_path,
17
+ subpath,
17
18
  write_encoded_data_to_file,
18
19
  )
19
20
  from rasa.model_manager.warm_rasa_process import (
@@ -21,7 +22,6 @@ from rasa.model_manager.warm_rasa_process import (
21
22
  )
22
23
  from rasa.model_training import generate_random_model_name
23
24
  from rasa.studio.prompts import handle_prompts
24
- from rasa.utils.io import subpath
25
25
 
26
26
  structlogger = structlog.get_logger()
27
27
 
@@ -53,15 +53,6 @@ class TrainingSession(BaseModel):
53
53
  """Check if the training is running."""
54
54
  return self.status == TrainingSessionStatus.RUNNING
55
55
 
56
- def has_just_finished(self) -> bool:
57
- if not self.is_status_indicating_alive():
58
- # skip if the training is not running
59
- return False
60
- if self.process.poll() is None:
61
- # process is still running
62
- return False
63
- return True
64
-
65
56
  def model_path(self) -> str:
66
57
  """Return the path to the model."""
67
58
  return subpath(models_base_path(), f"{self.model_name}.tar.gz")
@@ -98,8 +89,14 @@ def terminate_training(training: TrainingSession) -> None:
98
89
 
99
90
 
100
91
  def update_training_status(training: TrainingSession) -> None:
101
- if training.has_just_finished():
102
- complete_training(training)
92
+ if not training.is_status_indicating_alive():
93
+ # skip if the training is not running
94
+ return
95
+ if training.process.poll() is None:
96
+ # process is still running
97
+ return
98
+
99
+ complete_training(training)
103
100
 
104
101
 
105
102
  def complete_training(training: TrainingSession) -> None:
@@ -5,11 +5,15 @@ from typing import Optional
5
5
  import structlog
6
6
 
7
7
  from rasa.model_manager import config
8
- from rasa.utils.io import subpath
8
+ from rasa.shared.exceptions import RasaException
9
9
 
10
10
  structlogger = structlog.get_logger()
11
11
 
12
12
 
13
+ class InvalidPathException(RasaException):
14
+ """Raised if a path is invalid - e.g. path traversal is detected."""
15
+
16
+
13
17
  def write_encoded_data_to_file(encoded_data: bytes, file: str) -> None:
14
18
  """Write base64 encoded data to a file."""
15
19
  # create the directory if it does not exist of the parent directory
@@ -49,6 +53,30 @@ def logs_path(action_id: str) -> str:
49
53
  return subpath(logs_base_path(), f"{action_id}.txt")
50
54
 
51
55
 
56
+ def subpath(parent: str, child: str) -> str:
57
+ """Return the path to the child directory of the parent directory.
58
+
59
+ Ensures, that child doesn't navigate to parent directories. Prevents
60
+ path traversal. Raises an InvalidPathException if the path is invalid.
61
+
62
+ Based on Snyk's directory traversal mitigation:
63
+ https://learn.snyk.io/lesson/directory-traversal/
64
+ """
65
+ safe_path = os.path.abspath(os.path.join(parent, child))
66
+ parent = os.path.abspath(parent)
67
+
68
+ common_base = os.path.commonpath([parent, safe_path])
69
+ if common_base != parent:
70
+ raise InvalidPathException(f"Invalid path: {safe_path}")
71
+
72
+ if os.path.basename(safe_path) != child:
73
+ raise InvalidPathException(
74
+ f"Invalid path - path traversal detected: {safe_path}"
75
+ )
76
+
77
+ return safe_path
78
+
79
+
52
80
  def get_logs_content(action_id: str) -> Optional[str]:
53
81
  """Return the content of the log file for a given action id."""
54
82
  try: