rasa-pro 3.14.0.dev5__py3-none-any.whl → 3.14.0.dev7__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 (477) 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 +38 -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 +685 -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 +77 -0
  20. rasa/agents/validation.py +484 -0
  21. rasa/api.py +14 -6
  22. rasa/cli/arguments/default_arguments.py +12 -0
  23. rasa/cli/arguments/run.py +2 -0
  24. rasa/cli/arguments/train.py +2 -0
  25. rasa/cli/dialogue_understanding_test.py +4 -0
  26. rasa/cli/e2e_test.py +4 -0
  27. rasa/cli/inspect.py +3 -0
  28. rasa/cli/interactive.py +2 -0
  29. rasa/cli/llm_fine_tuning.py +5 -0
  30. rasa/cli/project_templates/tutorial/config.yml +1 -2
  31. rasa/cli/run.py +4 -0
  32. rasa/cli/scaffold.py +2 -46
  33. rasa/cli/shell.py +3 -0
  34. rasa/cli/train.py +2 -0
  35. rasa/cli/utils.py +85 -1
  36. rasa/constants.py +6 -0
  37. rasa/core/actions/action.py +52 -10
  38. rasa/core/agent.py +19 -1
  39. rasa/core/available_agents.py +220 -0
  40. rasa/core/available_endpoints.py +30 -0
  41. rasa/core/channels/channel.py +3 -4
  42. rasa/core/channels/development_inspector.py +4 -4
  43. rasa/core/channels/hangouts.py +2 -2
  44. rasa/core/channels/inspector/dist/assets/{arc-18042c22.js → arc-cce7e0a8.js} +1 -1
  45. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-e2a49be7.js} +1 -1
  46. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-3def7895.js} +1 -1
  47. rasa/core/channels/inspector/dist/assets/channel-858c2c20.js +1 -0
  48. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-e66fe4df.js} +1 -1
  49. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-eb874aaa.js} +1 -1
  50. rasa/core/channels/inspector/dist/assets/clone-4b80996c.js +1 -0
  51. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-cf934643.js} +1 -1
  52. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-8fdf9155.js} +1 -1
  53. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-6106fb96.js} +1 -1
  54. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-4c2bb040.js} +1 -1
  55. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-f0ff96af.js} +1 -1
  56. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-16f09b7a.js +1 -0
  57. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-a21707ec.js} +1 -1
  58. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-c165acb1.js} +1 -1
  59. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-b0564cf1.js} +1 -1
  60. rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-e557e67a.js} +1 -1
  61. rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-1ce60e9e.js} +1 -1
  62. rasa/core/channels/inspector/dist/assets/index-996fe816.js +1353 -0
  63. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-893569e2.js} +1 -1
  64. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-c29c864f.js} +1 -1
  65. rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-649a5eae.js} +1 -1
  66. rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-0e5685ed.js} +1 -1
  67. rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-eaa320bd.js} +1 -1
  68. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-f35df9e6.js} +1 -1
  69. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-78339e96.js} +1 -1
  70. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-9b5f2f14.js} +1 -1
  71. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-d05ddb3a.js} +1 -1
  72. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-d9be5dfd.js} +1 -1
  73. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-0f1c4348.js} +1 -1
  74. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-9ddf63b3.js} +1 -1
  75. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-bc2b81ed.js} +1 -1
  76. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-0a287936.js} +1 -1
  77. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-e3941990.js} +1 -1
  78. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-ce4eca24.js} +1 -1
  79. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-d822b1a8.js} +1 -1
  80. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-e144c7a7.js} +1 -1
  81. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-ab7f4e14.js} +1 -1
  82. rasa/core/channels/inspector/dist/index.html +2 -2
  83. rasa/core/channels/inspector/index.html +1 -1
  84. rasa/core/channels/inspector/src/App.tsx +37 -12
  85. rasa/core/channels/inspector/src/components/DialogueAgentStack.tsx +108 -0
  86. rasa/core/channels/inspector/src/components/{DialogueStack.tsx → DialogueHistoryStack.tsx} +3 -2
  87. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +3 -12
  88. rasa/core/channels/inspector/src/helpers/formatters.test.ts +4 -0
  89. rasa/core/channels/inspector/src/helpers/formatters.ts +24 -3
  90. rasa/core/channels/inspector/src/helpers/utils.test.ts +127 -0
  91. rasa/core/channels/inspector/src/helpers/utils.ts +66 -1
  92. rasa/core/channels/inspector/src/theme/base/styles.ts +19 -1
  93. rasa/core/channels/inspector/src/types.ts +21 -0
  94. rasa/core/channels/socketio.py +51 -212
  95. rasa/core/channels/studio_chat.py +29 -49
  96. rasa/core/channels/voice_stream/genesys.py +1 -1
  97. rasa/core/channels/voice_stream/voice_channel.py +3 -5
  98. rasa/core/constants.py +4 -0
  99. rasa/core/policies/enterprise_search_policy.py +11 -6
  100. rasa/core/policies/flow_policy.py +4 -4
  101. rasa/core/policies/flows/flow_executor.py +519 -73
  102. rasa/core/policies/flows/mcp_tool_executor.py +277 -0
  103. rasa/core/policies/intentless_policy.py +1 -1
  104. rasa/core/policies/unexpected_intent_policy.py +1 -0
  105. rasa/core/processor.py +18 -15
  106. rasa/core/run.py +11 -14
  107. rasa/core/tracker_stores/tracker_store.py +3 -7
  108. rasa/core/train.py +1 -1
  109. rasa/core/training/interactive.py +16 -16
  110. rasa/core/training/story_conflict.py +5 -5
  111. rasa/core/utils.py +21 -1
  112. rasa/dialogue_understanding/commands/__init__.py +8 -0
  113. rasa/dialogue_understanding/commands/cancel_flow_command.py +19 -5
  114. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +11 -0
  115. rasa/dialogue_understanding/commands/clarify_command.py +10 -0
  116. rasa/dialogue_understanding/commands/continue_agent_command.py +91 -0
  117. rasa/dialogue_understanding/commands/knowledge_answer_command.py +11 -0
  118. rasa/dialogue_understanding/commands/restart_agent_command.py +162 -0
  119. rasa/dialogue_understanding/commands/start_flow_command.py +68 -7
  120. rasa/dialogue_understanding/commands/utils.py +124 -2
  121. rasa/dialogue_understanding/generator/command_parser.py +4 -0
  122. rasa/dialogue_understanding/generator/flow_retrieval.py +9 -10
  123. rasa/dialogue_understanding/generator/llm_based_command_generator.py +50 -12
  124. rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
  125. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
  126. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +61 -0
  127. 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
  128. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +81 -0
  129. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +81 -0
  130. rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +7 -6
  131. rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +7 -6
  132. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +41 -2
  133. rasa/dialogue_understanding/patterns/clarify.py +3 -14
  134. rasa/dialogue_understanding/patterns/continue_interrupted.py +239 -6
  135. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +46 -8
  136. rasa/dialogue_understanding/processor/command_processor.py +31 -15
  137. rasa/dialogue_understanding/stack/dialogue_stack.py +123 -2
  138. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +57 -0
  139. rasa/dialogue_understanding/stack/utils.py +57 -3
  140. rasa/dialogue_understanding/utils.py +24 -4
  141. rasa/dialogue_understanding_test/du_test_runner.py +7 -2
  142. rasa/e2e_test/e2e_test_runner.py +12 -2
  143. rasa/engine/caching.py +2 -2
  144. rasa/engine/recipes/default_components.py +10 -18
  145. rasa/engine/storage/local_model_storage.py +2 -45
  146. rasa/graph_components/validators/default_recipe_validator.py +134 -134
  147. rasa/hooks.py +5 -5
  148. rasa/llm_fine_tuning/utils.py +2 -2
  149. rasa/model_manager/model_api.py +5 -4
  150. rasa/model_manager/runner_service.py +1 -1
  151. rasa/model_manager/socket_bridge.py +14 -20
  152. rasa/model_manager/trainer_service.py +9 -12
  153. rasa/model_manager/utils.py +29 -1
  154. rasa/model_manager/warm_rasa_process.py +1 -1
  155. rasa/model_training.py +8 -6
  156. rasa/nlu/extractors/extractor.py +2 -1
  157. rasa/plugin.py +8 -8
  158. rasa/privacy/privacy_manager.py +11 -2
  159. rasa/server.py +14 -2
  160. rasa/shared/agents/utils.py +35 -0
  161. rasa/shared/constants.py +8 -0
  162. rasa/shared/core/constants.py +11 -1
  163. rasa/shared/core/domain.py +11 -58
  164. rasa/shared/core/events.py +327 -0
  165. rasa/shared/core/flows/flow_step.py +1 -7
  166. rasa/shared/core/flows/flows_list.py +15 -5
  167. rasa/shared/core/flows/flows_yaml_schema.json +112 -186
  168. rasa/shared/core/flows/steps/call.py +53 -5
  169. rasa/shared/core/flows/validation.py +177 -7
  170. rasa/shared/core/flows/yaml_flows_io.py +9 -17
  171. rasa/shared/core/slots.py +2 -6
  172. rasa/shared/core/trackers.py +5 -2
  173. rasa/shared/exceptions.py +4 -0
  174. rasa/shared/importers/importer.py +0 -6
  175. rasa/shared/importers/rasa.py +1 -1
  176. rasa/shared/importers/utils.py +10 -80
  177. rasa/shared/providers/_utils.py +44 -60
  178. rasa/shared/providers/embedding/default_litellm_embedding_client.py +0 -2
  179. rasa/shared/providers/llm/_base_litellm_client.py +39 -7
  180. rasa/shared/providers/llm/default_litellm_llm_client.py +0 -2
  181. rasa/shared/providers/llm/litellm_router_llm_client.py +8 -4
  182. rasa/shared/providers/llm/llm_client.py +7 -3
  183. rasa/shared/providers/llm/llm_response.py +66 -0
  184. rasa/shared/providers/llm/self_hosted_llm_client.py +8 -4
  185. rasa/shared/utils/health_check/health_check.py +7 -3
  186. rasa/shared/utils/llm.py +28 -5
  187. rasa/shared/utils/mcp/server_connection.py +186 -0
  188. rasa/shared/utils/schemas/events.py +42 -0
  189. rasa/shared/utils/yaml.py +3 -1
  190. rasa/studio/upload.py +47 -16
  191. rasa/telemetry.py +23 -97
  192. rasa/tracing/instrumentation/instrumentation.py +14 -10
  193. rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
  194. rasa/utils/common.py +79 -0
  195. rasa/utils/io.py +9 -27
  196. rasa/utils/json_utils.py +1 -6
  197. rasa/utils/log_utils.py +2 -6
  198. rasa/utils/ml_utils.py +1 -1
  199. rasa/utils/tensorflow/rasa_layers.py +1 -1
  200. rasa/utils/train_utils.py +15 -15
  201. rasa/validator.py +19 -21
  202. rasa/version.py +1 -1
  203. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/METADATA +14 -17
  204. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/RECORD +214 -442
  205. rasa/builder/README.md +0 -120
  206. rasa/builder/auth.py +0 -176
  207. rasa/builder/config.py +0 -115
  208. rasa/builder/copilot/constants.py +0 -25
  209. rasa/builder/copilot/copilot.py +0 -372
  210. rasa/builder/copilot/copilot_response_handler.py +0 -487
  211. rasa/builder/copilot/copilot_templated_message_provider.py +0 -58
  212. rasa/builder/copilot/exceptions.py +0 -20
  213. rasa/builder/copilot/models.py +0 -431
  214. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +0 -726
  215. rasa/builder/copilot/telemetry.py +0 -195
  216. rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +0 -16
  217. rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +0 -26
  218. rasa/builder/document_retrieval/constants.py +0 -15
  219. rasa/builder/document_retrieval/inkeep-rag-response-schema.json +0 -64
  220. rasa/builder/document_retrieval/inkeep_document_retrieval.py +0 -238
  221. rasa/builder/document_retrieval/models.py +0 -62
  222. rasa/builder/download.py +0 -140
  223. rasa/builder/exceptions.py +0 -55
  224. rasa/builder/guardrails/__init__.py +0 -1
  225. rasa/builder/guardrails/constants.py +0 -3
  226. rasa/builder/guardrails/exceptions.py +0 -4
  227. rasa/builder/guardrails/lakera.py +0 -206
  228. rasa/builder/guardrails/models.py +0 -199
  229. rasa/builder/guardrails/utils.py +0 -305
  230. rasa/builder/job_manager.py +0 -87
  231. rasa/builder/jobs.py +0 -234
  232. rasa/builder/llm_service.py +0 -246
  233. rasa/builder/logging_utils.py +0 -209
  234. rasa/builder/main.py +0 -174
  235. rasa/builder/models.py +0 -197
  236. rasa/builder/project_generator.py +0 -450
  237. rasa/builder/project_info.py +0 -72
  238. rasa/builder/scrape_rasa_docs.py +0 -97
  239. rasa/builder/service.py +0 -1142
  240. rasa/builder/shared/tracker_context.py +0 -212
  241. rasa/builder/skill_to_bot_prompt.jinja2 +0 -164
  242. rasa/builder/training_service.py +0 -132
  243. rasa/builder/validation_service.py +0 -93
  244. rasa/cli/project_templates/basic/actions/action_api.py +0 -15
  245. rasa/cli/project_templates/basic/actions/action_human_handoff.py +0 -44
  246. rasa/cli/project_templates/basic/config.yml +0 -23
  247. rasa/cli/project_templates/basic/credentials.yml +0 -34
  248. rasa/cli/project_templates/basic/data/general/feedback.yml +0 -20
  249. rasa/cli/project_templates/basic/data/general/goodbye.yml +0 -6
  250. rasa/cli/project_templates/basic/data/general/hello.yml +0 -7
  251. rasa/cli/project_templates/basic/data/general/help.yml +0 -6
  252. rasa/cli/project_templates/basic/data/general/human_handoff.yml +0 -16
  253. rasa/cli/project_templates/basic/data/general/welcome.yml +0 -9
  254. rasa/cli/project_templates/basic/data/system/pattern_completed.yml +0 -7
  255. rasa/cli/project_templates/basic/data/system/pattern_correction.yml +0 -7
  256. rasa/cli/project_templates/basic/data/system/pattern_search.yml +0 -8
  257. rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +0 -8
  258. rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +0 -65
  259. rasa/cli/project_templates/basic/docs/template.txt +0 -7
  260. rasa/cli/project_templates/basic/domain/general/assistant_details.yml +0 -12
  261. rasa/cli/project_templates/basic/domain/general/bot_identity.yml +0 -5
  262. rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +0 -5
  263. rasa/cli/project_templates/basic/domain/general/feedback.yml +0 -28
  264. rasa/cli/project_templates/basic/domain/general/goodbye.yml +0 -7
  265. rasa/cli/project_templates/basic/domain/general/help.yml +0 -5
  266. rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +0 -35
  267. rasa/cli/project_templates/basic/domain/general/utils.yml +0 -13
  268. rasa/cli/project_templates/basic/domain/general/welcome.yml +0 -7
  269. rasa/cli/project_templates/basic/endpoints.yml +0 -73
  270. rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
  271. rasa/cli/project_templates/finance/actions/__init__.py +0 -46
  272. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +0 -47
  273. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +0 -40
  274. rasa/cli/project_templates/finance/actions/action_session_start.py +0 -74
  275. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +0 -48
  276. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +0 -36
  277. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +0 -54
  278. rasa/cli/project_templates/finance/actions/database.py +0 -277
  279. rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
  280. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +0 -52
  281. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +0 -51
  282. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +0 -40
  283. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +0 -40
  284. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +0 -46
  285. rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +0 -18
  286. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +0 -49
  287. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +0 -19
  288. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +0 -36
  289. rasa/cli/project_templates/finance/config.yml +0 -21
  290. rasa/cli/project_templates/finance/credentials.yml +0 -32
  291. rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
  292. rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
  293. rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
  294. rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
  295. rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
  296. rasa/cli/project_templates/finance/csvs/payees.csv +0 -11
  297. rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
  298. rasa/cli/project_templates/finance/csvs/users.csv +0 -4
  299. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +0 -10
  300. rasa/cli/project_templates/finance/data/cards/block_card.yml +0 -66
  301. rasa/cli/project_templates/finance/data/cards/select_card.yml +0 -12
  302. rasa/cli/project_templates/finance/data/general/bot_identity.yml +0 -6
  303. rasa/cli/project_templates/finance/data/general/feedback.yml +0 -20
  304. rasa/cli/project_templates/finance/data/general/goodbye.yml +0 -6
  305. rasa/cli/project_templates/finance/data/general/hello.yml +0 -7
  306. rasa/cli/project_templates/finance/data/general/help.yml +0 -9
  307. rasa/cli/project_templates/finance/data/general/human_handoff.yml +0 -16
  308. rasa/cli/project_templates/finance/data/general/welcome.yml +0 -9
  309. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
  310. rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +0 -7
  311. rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +0 -7
  312. rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +0 -8
  313. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +0 -8
  314. rasa/cli/project_templates/finance/data/system/source/accounts.json +0 -51
  315. rasa/cli/project_templates/finance/data/system/source/advisors.json +0 -44
  316. rasa/cli/project_templates/finance/data/system/source/appointments.json +0 -1474
  317. rasa/cli/project_templates/finance/data/system/source/branches.json +0 -47
  318. rasa/cli/project_templates/finance/data/system/source/cards.json +0 -72
  319. rasa/cli/project_templates/finance/data/system/source/payees.json +0 -74
  320. rasa/cli/project_templates/finance/data/system/source/transactions.json +0 -492
  321. rasa/cli/project_templates/finance/data/system/source/users.json +0 -29
  322. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +0 -29
  323. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +0 -5
  324. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +0 -21
  325. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +0 -67
  326. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
  327. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
  328. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
  329. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
  330. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
  331. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
  332. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
  333. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
  334. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
  335. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
  336. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
  337. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
  338. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
  339. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
  340. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
  341. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
  342. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
  343. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
  344. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
  345. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
  346. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
  347. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
  348. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
  349. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
  350. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
  351. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
  352. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
  353. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
  354. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
  355. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
  356. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
  357. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
  358. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
  359. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
  360. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
  361. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
  362. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
  363. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
  364. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
  365. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
  366. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
  367. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
  368. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
  369. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
  370. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
  371. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
  372. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
  373. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
  374. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
  375. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
  376. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
  377. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
  378. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
  379. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
  380. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
  381. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
  382. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
  383. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
  384. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
  385. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
  386. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
  387. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
  388. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
  389. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
  390. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
  391. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
  392. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
  393. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
  394. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
  395. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
  396. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
  397. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
  398. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
  399. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
  400. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
  401. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
  402. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
  403. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
  404. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
  405. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
  406. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
  407. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +0 -11
  408. rasa/cli/project_templates/finance/domain/cards/block_card.yml +0 -101
  409. rasa/cli/project_templates/finance/domain/cards/select_card.yml +0 -12
  410. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +0 -12
  411. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +0 -5
  412. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +0 -5
  413. rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
  414. rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -28
  415. rasa/cli/project_templates/finance/domain/general/goodbye.yml +0 -7
  416. rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
  417. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +0 -30
  418. rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
  419. rasa/cli/project_templates/finance/domain/general/welcome.yml +0 -8
  420. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +0 -47
  421. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +0 -4
  422. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +0 -16
  423. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +0 -79
  424. rasa/cli/project_templates/finance/endpoints.yml +0 -63
  425. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
  426. rasa/cli/project_templates/telco/actions/__init__.py +0 -0
  427. rasa/cli/project_templates/telco/actions/actions_billing.py +0 -204
  428. rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +0 -48
  429. rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +0 -28
  430. rasa/cli/project_templates/telco/actions/actions_session_start.py +0 -18
  431. rasa/cli/project_templates/telco/config.yml +0 -25
  432. rasa/cli/project_templates/telco/credentials.yml +0 -33
  433. rasa/cli/project_templates/telco/csvs/billing.csv +0 -10
  434. rasa/cli/project_templates/telco/csvs/customers.csv +0 -5
  435. rasa/cli/project_templates/telco/data/flows/flow_global.yml +0 -5
  436. rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +0 -8
  437. rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +0 -7
  438. rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +0 -73
  439. rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +0 -45
  440. rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +0 -7
  441. rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +0 -6
  442. rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +0 -7
  443. rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +0 -9
  444. rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +0 -1
  445. rasa/cli/project_templates/telco/docs/restart_router.txt +0 -6
  446. rasa/cli/project_templates/telco/docs/run_speed_test.txt +0 -6
  447. rasa/cli/project_templates/telco/domain/domain_global.yml +0 -29
  448. rasa/cli/project_templates/telco/domain/domain_patterns.yml +0 -17
  449. rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +0 -20
  450. rasa/cli/project_templates/telco/domain/domain_reset_router.yml +0 -11
  451. rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +0 -24
  452. rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +0 -74
  453. rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +0 -102
  454. rasa/cli/project_templates/telco/endpoints.yml +0 -60
  455. rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +0 -62
  456. rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +0 -130
  457. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +0 -68
  458. rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +0 -13
  459. rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +0 -47
  460. rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +0 -21
  461. rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +0 -15
  462. rasa/core/channels/constants.py +0 -3
  463. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +0 -1
  464. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +0 -1
  465. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +0 -1
  466. rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +0 -1335
  467. rasa/utils/openapi.py +0 -144
  468. /rasa/{builder → agents}/__init__.py +0 -0
  469. /rasa/{builder/copilot → agents/core}/__init__.py +0 -0
  470. /rasa/{builder/copilot/prompts → agents/protocol/a2a}/__init__.py +0 -0
  471. /rasa/{builder/copilot/templated_messages → agents/protocol/mcp}/__init__.py +0 -0
  472. /rasa/{builder/document_retrieval → agents/templates}/__init__.py +0 -0
  473. /rasa/{cli/project_templates/finance/actions/accounts → shared/agents}/__init__.py +0 -0
  474. /rasa/{cli/project_templates/finance/actions/cards → shared/utils/mcp}/__init__.py +0 -0
  475. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/NOTICE +0 -0
  476. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/WHEEL +0 -0
  477. {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/entry_points.txt +0 -0
@@ -17,6 +17,9 @@ from rasa.shared.core.flows.steps.constants import END_STEP
17
17
  from rasa.shared.core.flows.steps.continuation import ContinueFlowStep
18
18
 
19
19
  if typing.TYPE_CHECKING:
20
+ from rasa.dialogue_understanding.patterns.continue_interrupted import (
21
+ ContinueInterruptedPatternFlowStackFrame,
22
+ )
20
23
  from rasa.shared.core.trackers import DialogueStateTracker
21
24
 
22
25
 
@@ -171,10 +174,40 @@ def user_flows_on_the_stack(dialogue_stack: DialogueStack) -> Set[str]:
171
174
  All user flows that are currently on the stack.
172
175
  """
173
176
  return {
174
- f.flow_id for f in dialogue_stack.frames if isinstance(f, UserFlowStackFrame)
177
+ frame.flow_id
178
+ for frame in user_frames_on_the_stack(
179
+ dialogue_stack, ignore_call_and_link_frames=False
180
+ )
175
181
  }
176
182
 
177
183
 
184
+ def user_frames_on_the_stack(
185
+ dialogue_stack: DialogueStack, ignore_call_and_link_frames: bool = True
186
+ ) -> List[UserFlowStackFrame]:
187
+ """Get all user frames that are currently on the stack.
188
+
189
+ Args:
190
+ dialogue_stack: The dialogue stack.
191
+ ignore_call_and_link_frames: Whether to ignore user frames of type `call`
192
+ and `link`. By default, these frames are ignored.
193
+
194
+ Returns:
195
+ All user frames that are currently on the stack.
196
+ """
197
+ return [
198
+ frame
199
+ for frame in dialogue_stack.frames
200
+ if isinstance(frame, UserFlowStackFrame)
201
+ and (
202
+ not ignore_call_and_link_frames
203
+ or (
204
+ frame.frame_type != FlowStackFrameType.CALL
205
+ and frame.frame_type != FlowStackFrameType.LINK
206
+ )
207
+ )
208
+ ]
209
+
210
+
178
211
  def end_top_user_flow(stack: DialogueStack) -> DialogueStack:
179
212
  """Ends all frames on top of the stack including the topmost user frame.
180
213
 
@@ -198,8 +231,9 @@ def end_top_user_flow(stack: DialogueStack) -> DialogueStack:
198
231
  def get_collect_steps_excluding_ask_before_filling_for_active_flow(
199
232
  dialogue_stack: DialogueStack, all_flows: FlowsList
200
233
  ) -> Set[str]:
201
- """Get all collect steps that are part of the current flow, without
202
- considering the collect steps that has to be asked before filling.
234
+ """Get all collect steps that are part of the current flow.
235
+
236
+ Collect steps that have to be asked before filling are not considered.
203
237
 
204
238
  Args:
205
239
  dialogue_stack: The dialogue stack.
@@ -230,3 +264,23 @@ def get_collect_steps_excluding_ask_before_filling_for_active_flow(
230
264
  for step in active_flow.get_collect_steps()
231
265
  if not step.ask_before_filling
232
266
  )
267
+
268
+
269
+ def is_continue_interrupted_flow_active(stack: DialogueStack) -> bool:
270
+ """Check if the continue interrupted flow is active."""
271
+ return get_active_continue_interrupted_pattern_frame(stack) is not None
272
+
273
+
274
+ def get_active_continue_interrupted_pattern_frame(
275
+ stack: DialogueStack,
276
+ ) -> Optional["ContinueInterruptedPatternFlowStackFrame"]:
277
+ from rasa.dialogue_understanding.patterns.continue_interrupted import (
278
+ ContinueInterruptedPatternFlowStackFrame,
279
+ )
280
+
281
+ for frame in reversed(stack.frames):
282
+ if isinstance(frame, ContinueInterruptedPatternFlowStackFrame):
283
+ return frame
284
+ if isinstance(frame, UserFlowStackFrame):
285
+ return None
286
+ return None
@@ -1,9 +1,9 @@
1
+ import typing
1
2
  from contextlib import contextmanager
2
3
  from typing import Any, Dict, Generator, List, Optional, Text
3
4
 
4
5
  import structlog
5
6
 
6
- from rasa.dialogue_understanding.commands import Command, NoopCommand, SetSlotCommand
7
7
  from rasa.dialogue_understanding.constants import (
8
8
  RASA_RECORD_COMMANDS_AND_PROMPTS_ENV_VAR_NAME,
9
9
  )
@@ -23,6 +23,9 @@ from rasa.shared.nlu.training_data.message import Message
23
23
  from rasa.shared.providers.llm.llm_response import LLMResponse
24
24
  from rasa.utils.common import get_bool_env_variable
25
25
 
26
+ if typing.TYPE_CHECKING:
27
+ from rasa.dialogue_understanding.commands import Command
28
+
26
29
  record_commands_and_prompts = get_bool_env_variable(
27
30
  RASA_RECORD_COMMANDS_AND_PROMPTS_ENV_VAR_NAME, False
28
31
  )
@@ -41,7 +44,7 @@ def set_record_commands_and_prompts() -> Generator:
41
44
 
42
45
 
43
46
  def add_commands_to_message_parse_data(
44
- message: Message, component_name: str, commands: List[Command]
47
+ message: Message, component_name: str, commands: List["Command"]
45
48
  ) -> None:
46
49
  """Add commands to the message parse data.
47
50
 
@@ -144,6 +147,11 @@ def _handle_via_nlu_in_coexistence(
144
147
  tracker: Optional[DialogueStateTracker], message: Message
145
148
  ) -> bool:
146
149
  """Check if the message should be handled by the NLU subsystem in coexistence mode.""" # noqa: E501
150
+ from rasa.dialogue_understanding.commands import (
151
+ NoopCommand,
152
+ SetSlotCommand,
153
+ )
154
+
147
155
  if not tracker:
148
156
  return False
149
157
 
@@ -156,8 +164,7 @@ def _handle_via_nlu_in_coexistence(
156
164
  "utils.handle_via_nlu_in_coexistence"
157
165
  ".tracker_missing_route_session_to_calm_slot",
158
166
  event_info=(
159
- f"Tracker doesn't have the '{ROUTE_TO_CALM_SLOT}' slot."
160
- f"Routing to CALM."
167
+ f"Tracker doesn't have the '{ROUTE_TO_CALM_SLOT}' slot.Routing to CALM."
161
168
  ),
162
169
  route_session_to_calm=commands,
163
170
  )
@@ -218,3 +225,16 @@ def _handle_via_nlu_in_coexistence(
218
225
  commands=commands,
219
226
  )
220
227
  return False
228
+
229
+
230
+ def assemble_options_string(names: List[str], conjunction: str = "and") -> str:
231
+ """Concatenate options to a human-readable string."""
232
+ option_message = ""
233
+ for i, name in enumerate(names):
234
+ if i == 0:
235
+ option_message += name
236
+ elif i == len(names) - 1:
237
+ option_message += f" {conjunction} {name}"
238
+ else:
239
+ option_message += f", {name}"
240
+ return option_message
@@ -1,10 +1,12 @@
1
1
  import asyncio
2
2
  import time
3
- from typing import Any, Dict, List, Optional, Text
3
+ from pathlib import Path
4
+ from typing import Any, Dict, List, Optional, Union
4
5
 
5
6
  import structlog
6
7
  from tqdm import tqdm
7
8
 
9
+ from rasa.core.available_agents import AvailableAgents
8
10
  from rasa.core.available_endpoints import AvailableEndpoints
9
11
  from rasa.core.channels import CollectingOutputChannel, UserMessage
10
12
  from rasa.core.exceptions import AgentNotReady
@@ -52,10 +54,11 @@ class DialogueUnderstandingTestRunner:
52
54
 
53
55
  def __init__(
54
56
  self,
55
- model_path: Optional[Text] = None,
57
+ model_path: Optional[str] = None,
56
58
  model_server: Optional[EndpointConfig] = None,
57
59
  remote_storage: Optional[StorageType] = None,
58
60
  endpoints: Optional[AvailableEndpoints] = None,
61
+ sub_agents_path: Optional[Union[Path, str]] = None,
59
62
  ) -> None:
60
63
  """Initializes the Dialogue Understanding test suite runner.
61
64
 
@@ -68,6 +71,7 @@ class DialogueUnderstandingTestRunner:
68
71
  import rasa.core.agent
69
72
 
70
73
  self._check_action_server(endpoints)
74
+ sub_agents = AvailableAgents.get_instance(sub_agents_path)
71
75
 
72
76
  self.agent = asyncio.run(
73
77
  rasa.core.agent.load_agent(
@@ -75,6 +79,7 @@ class DialogueUnderstandingTestRunner:
75
79
  model_server=model_server,
76
80
  remote_storage=remote_storage,
77
81
  endpoints=endpoints,
82
+ sub_agents=sub_agents,
78
83
  )
79
84
  )
80
85
  if not self.agent.is_ready():
@@ -13,6 +13,7 @@ import structlog
13
13
  from tqdm import tqdm
14
14
 
15
15
  import rasa.shared.utils.io
16
+ from rasa.core.available_agents import AvailableAgents
16
17
  from rasa.core.available_endpoints import AvailableEndpoints
17
18
  from rasa.core.channels import CollectingOutputChannel, UserMessage
18
19
  from rasa.core.constants import ACTIVE_FLOW_METADATA_KEY, STEP_ID_METADATA_KEY
@@ -65,6 +66,7 @@ class E2ETestRunner:
65
66
  model_server: Optional[EndpointConfig] = None,
66
67
  remote_storage: Optional[StorageType] = None,
67
68
  endpoints: Optional[AvailableEndpoints] = None,
69
+ sub_agents_path: Optional[Text] = None,
68
70
  **kwargs: Any,
69
71
  ) -> None:
70
72
  """Initializes the E2E test suite runner.
@@ -94,12 +96,15 @@ class E2ETestRunner:
94
96
  if endpoints and not are_custom_actions_stubbed:
95
97
  self._action_server_is_reachable(endpoints)
96
98
 
99
+ sub_agents = AvailableAgents.get_instance(sub_agents_path)
100
+
97
101
  self.agent = asyncio.run(
98
102
  rasa.core.agent.load_agent(
99
103
  model_path=model_path,
100
104
  model_server=model_server,
101
105
  remote_storage=remote_storage,
102
106
  endpoints=endpoints,
107
+ sub_agents=sub_agents,
103
108
  )
104
109
  )
105
110
 
@@ -742,7 +747,7 @@ class E2ETestRunner:
742
747
  test_result = test_turns[index]
743
748
  if index in failure_points:
744
749
  diff_test_text, diff_actual_text = cls._handle_fail_diff(
745
- test_result, # type: ignore[arg-type]
750
+ test_result,
746
751
  latest_response,
747
752
  cls._select_bot_utter_turns(test_turns, index),
748
753
  ) # test_result can only be TestStep in failure_points
@@ -806,7 +811,12 @@ class E2ETestRunner:
806
811
  """
807
812
  # This will only be used when the TestCase is not started
808
813
  # with a user step
809
- latest_response: ActualStepOutput = test_turns[-1] # type: ignore[assignment]
814
+ latest_response_event = test_turns[-1]
815
+ if not isinstance(latest_response_event, ActualStepOutput):
816
+ raise ValueError(
817
+ f"Expected ActualStepOutput, got {type(latest_response_event)}"
818
+ )
819
+ latest_response: ActualStepOutput = latest_response_event
810
820
  failures = []
811
821
  match = None
812
822
  for position in range(last_user_step_position, len(test_turns) - 1):
rasa/engine/caching.py CHANGED
@@ -5,7 +5,7 @@ import logging
5
5
  import shutil
6
6
  from datetime import datetime
7
7
  from pathlib import Path
8
- from typing import Any, List, Optional, Text, Tuple
8
+ from typing import Any, List, Optional, Text, Tuple, Union
9
9
 
10
10
  import sqlalchemy as sa
11
11
  import sqlalchemy.orm
@@ -294,7 +294,7 @@ class LocalTrainingCache(TrainingCache):
294
294
 
295
295
  def _cache_output_to_disk(
296
296
  self, output: Cacheable, model_storage: ModelStorage
297
- ) -> Tuple[Optional[Text], Optional[Text]]:
297
+ ) -> Tuple[Optional[Union[Path, Text]], Optional[Text]]:
298
298
  tempdir_name = rasa.utils.common.get_temp_dir_name()
299
299
 
300
300
  # Use `TempDirectoryPath` instead of `tempfile.TemporaryDirectory` as this
@@ -1,10 +1,7 @@
1
1
  from rasa.core.policies.enterprise_search_policy import EnterpriseSearchPolicy
2
2
  from rasa.core.policies.flow_policy import FlowPolicy
3
3
  from rasa.core.policies.intentless_policy import IntentlessPolicy
4
- from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
5
- from rasa.core.policies.rule_policy import RulePolicy
6
- from rasa.core.policies.ted_policy import TEDPolicy
7
- from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
4
+ from rasa.core.policies.memoization import AugmentedMemoizationPolicy
8
5
  from rasa.dialogue_understanding.coexistence.intent_based_router import (
9
6
  IntentBasedRouter,
10
7
  )
@@ -13,7 +10,6 @@ from rasa.dialogue_understanding.generator import (
13
10
  LLMCommandGenerator,
14
11
  )
15
12
  from rasa.dialogue_understanding.generator.nlu_command_adapter import NLUCommandAdapter
16
- from rasa.nlu.classifiers.diet_classifier import DIETClassifier
17
13
  from rasa.nlu.classifiers.fallback_classifier import FallbackClassifier
18
14
  from rasa.nlu.classifiers.keyword_intent_classifier import KeywordIntentClassifier
19
15
  from rasa.nlu.classifiers.logistic_regression_classifier import (
@@ -21,14 +17,11 @@ from rasa.nlu.classifiers.logistic_regression_classifier import (
21
17
  )
22
18
  from rasa.nlu.classifiers.mitie_intent_classifier import MitieIntentClassifier
23
19
  from rasa.nlu.classifiers.sklearn_intent_classifier import SklearnIntentClassifier
24
- from rasa.nlu.extractors.crf_entity_extractor import CRFEntityExtractor
25
20
  from rasa.nlu.extractors.duckling_entity_extractor import DucklingEntityExtractor
26
21
  from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
27
22
  from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
28
23
  from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
29
24
  from rasa.nlu.extractors.spacy_entity_extractor import SpacyEntityExtractor
30
- from rasa.nlu.featurizers.dense_featurizer.convert_featurizer import ConveRTFeaturizer
31
- from rasa.nlu.featurizers.dense_featurizer.lm_featurizer import LanguageModelFeaturizer
32
25
  from rasa.nlu.featurizers.dense_featurizer.mitie_featurizer import MitieFeaturizer
33
26
  from rasa.nlu.featurizers.dense_featurizer.spacy_featurizer import SpacyFeaturizer
34
27
  from rasa.nlu.featurizers.sparse_featurizer.count_vectors_featurizer import (
@@ -38,7 +31,6 @@ from rasa.nlu.featurizers.sparse_featurizer.lexical_syntactic_featurizer import
38
31
  LexicalSyntacticFeaturizer,
39
32
  )
40
33
  from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
41
- from rasa.nlu.selectors.response_selector import ResponseSelector
42
34
  from rasa.nlu.tokenizers.jieba_tokenizer import JiebaTokenizer
43
35
  from rasa.nlu.tokenizers.mitie_tokenizer import MitieTokenizer
44
36
  from rasa.nlu.tokenizers.spacy_tokenizer import SpacyTokenizer
@@ -48,7 +40,7 @@ from rasa.nlu.utils.spacy_utils import SpacyNLP
48
40
 
49
41
  DEFAULT_COMPONENTS = [
50
42
  # Message Classifiers
51
- DIETClassifier,
43
+ # DIETClassifier,
52
44
  FallbackClassifier,
53
45
  KeywordIntentClassifier,
54
46
  MitieIntentClassifier,
@@ -59,9 +51,9 @@ DEFAULT_COMPONENTS = [
59
51
  LLMBasedRouter,
60
52
  IntentBasedRouter,
61
53
  # Response Selectors
62
- ResponseSelector,
54
+ # ResponseSelector,
63
55
  # Message Entity Extractors
64
- CRFEntityExtractor,
56
+ # CRFEntityExtractor,
65
57
  DucklingEntityExtractor,
66
58
  EntitySynonymMapper,
67
59
  MitieEntityExtractor,
@@ -69,11 +61,11 @@ DEFAULT_COMPONENTS = [
69
61
  RegexEntityExtractor,
70
62
  # Message Feauturizers
71
63
  LexicalSyntacticFeaturizer,
72
- ConveRTFeaturizer,
64
+ # ConveRTFeaturizer,
73
65
  MitieFeaturizer,
74
66
  SpacyFeaturizer,
75
67
  CountVectorsFeaturizer,
76
- LanguageModelFeaturizer,
68
+ # LanguageModelFeaturizer,
77
69
  RegexFeaturizer,
78
70
  # Tokenizers
79
71
  JiebaTokenizer,
@@ -84,10 +76,10 @@ DEFAULT_COMPONENTS = [
84
76
  MitieNLP,
85
77
  SpacyNLP,
86
78
  # Dialogue Management Policies
87
- TEDPolicy,
88
- UnexpecTEDIntentPolicy,
89
- RulePolicy,
90
- MemoizationPolicy,
79
+ # TEDPolicy,
80
+ # UnexpecTEDIntentPolicy,
81
+ # RulePolicy,
82
+ # MemoizationPolicy,
91
83
  AugmentedMemoizationPolicy,
92
84
  FlowPolicy,
93
85
  EnterpriseSearchPolicy,
@@ -1,16 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- import os
5
4
  import shutil
6
5
  import sys
7
- import tarfile
8
6
  import tempfile
9
7
  import uuid
10
8
  from contextlib import contextmanager
11
9
  from datetime import datetime
12
10
  from pathlib import Path
13
- from typing import Callable, Generator, Optional, Text, Tuple, Union
11
+ from typing import Generator, Optional, Text, Tuple, Union
14
12
 
15
13
  from tarsafe import TarSafe
16
14
 
@@ -59,35 +57,6 @@ def windows_safe_temporary_directory(
59
57
  yield temporary_directory
60
58
 
61
59
 
62
- def filter_normpath(member: tarfile.TarInfo, dest_path: str) -> tarfile.TarInfo:
63
- """Normalize tar member paths for safe extraction"""
64
- if member.name:
65
- member.name = os.path.normpath(member.name)
66
- return member
67
-
68
-
69
- FilterFunction = Callable[[tarfile.TarInfo, str], Optional[tarfile.TarInfo]]
70
-
71
-
72
- def create_combined_filter(existing_filter: Optional[FilterFunction]) -> FilterFunction:
73
- """Create a filter that combines existing filter with path normalization"""
74
-
75
- def combined_filter(
76
- member: tarfile.TarInfo, dest_path: str
77
- ) -> Optional[tarfile.TarInfo]:
78
- """Apply existing filter first, then path normalization"""
79
- if existing_filter is not None:
80
- filtered_member = existing_filter(member, dest_path)
81
- if filtered_member is None:
82
- return None # Rejected by existing filter
83
- member = filtered_member # Use the filtered result
84
-
85
- # Apply our path normalization
86
- return filter_normpath(member, dest_path)
87
-
88
- return combined_filter
89
-
90
-
91
60
  class LocalModelStorage(ModelStorage):
92
61
  """Stores and provides output of `GraphComponents` on local disk."""
93
62
 
@@ -153,19 +122,7 @@ class LocalModelStorage(ModelStorage):
153
122
  # this restriction in environments where it's not possible
154
123
  # to override this behavior, mostly for internal policy reasons
155
124
  # reference: https://stackoverflow.com/a/49102229
156
- try:
157
- # Use extraction filter to normalize paths for compatibility
158
- # before trying the \\?\ prefix approach first
159
- prev_filter = getattr(tar, "extraction_filter", None)
160
- tar.extraction_filter = create_combined_filter(prev_filter)
161
- tar.extractall(f"\\\\?\\{temporary_directory}")
162
- except Exception:
163
- # Fallback for Python versions with tarfile security fix
164
- logger.warning(
165
- "Failed to extract model archive with long path support. "
166
- "Falling back to regular extraction."
167
- )
168
- tar.extractall(temporary_directory)
125
+ tar.extractall(f"\\\\?\\{temporary_directory}")
169
126
  else:
170
127
  tar.extractall(temporary_directory)
171
128
  LocalModelStorage._assert_not_rasa2_archive(temporary_directory)