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
rasa/utils/common.py CHANGED
@@ -1,5 +1,6 @@
1
1
  import copy
2
2
  import inspect
3
+ import json
3
4
  import logging
4
5
  import logging.config
5
6
  import logging.handlers
@@ -34,7 +35,9 @@ from rasa.constants import (
34
35
  ENV_LOG_LEVEL_KAFKA,
35
36
  ENV_LOG_LEVEL_LIBRARIES,
36
37
  ENV_LOG_LEVEL_MATPLOTLIB,
38
+ ENV_LOG_LEVEL_MCP,
37
39
  ENV_LOG_LEVEL_RABBITMQ,
40
+ ENV_MCP_LOGGING_ENABLED,
38
41
  )
39
42
  from rasa.shared.constants import DEFAULT_LOG_LEVEL, ENV_LOG_LEVEL, TCP_PROTOCOL
40
43
  from rasa.shared.exceptions import RasaException
@@ -281,6 +284,7 @@ def configure_library_logging() -> None:
281
284
  update_kafka_log_level(library_log_level)
282
285
  update_rabbitmq_log_level(library_log_level)
283
286
  update_websockets_log_level(library_log_level)
287
+ update_mcp_log_level()
284
288
 
285
289
 
286
290
  def update_apscheduler_log_level() -> None:
@@ -415,6 +419,56 @@ def update_websockets_log_level(library_log_level: Text) -> None:
415
419
  logging.getLogger("websockets").propagate = False
416
420
 
417
421
 
422
+ def update_mcp_log_level() -> None:
423
+ """Set the log level for MCP-related loggers.
424
+
425
+ This function configures logging levels for MCP (Model Context Protocol) related
426
+ loggers to reduce noise from HTTP and MCP client libraries.
427
+
428
+ Environment Variables:
429
+ LOG_LEVEL_MCP: Set the log level for MCP-related loggers.
430
+ Valid values: DEBUG, INFO, WARNING, ERROR, CRITICAL
431
+ Default: ERROR
432
+
433
+ MCP_LOGGING_ENABLED: Enable or disable MCP logging completely.
434
+ Valid values: true, false
435
+ Default: true
436
+
437
+ Examples:
438
+ # Show only ERROR and above for MCP logs
439
+ export LOG_LEVEL_MCP=ERROR
440
+
441
+ # Show DEBUG level MCP logs (very verbose)
442
+ export LOG_LEVEL_MCP=DEBUG
443
+
444
+ # Completely disable MCP logging
445
+ export MCP_LOGGING_ENABLED=false
446
+ """
447
+ # Check if MCP logging is completely disabled
448
+ mcp_logging_enabled = (
449
+ os.environ.get(ENV_MCP_LOGGING_ENABLED, "true").lower() == "true"
450
+ )
451
+
452
+ # Default to ERROR level for MCP logs to reduce noise
453
+ mcp_log_level: Union[int, str] = os.environ.get(ENV_LOG_LEVEL_MCP, "ERROR")
454
+ if not mcp_logging_enabled:
455
+ # Completely disable MCP logging
456
+ mcp_log_level = logging.CRITICAL + 1 # Higher than CRITICAL to disable all logs
457
+
458
+ # MCP client and HTTP-related loggers that are commonly noisy
459
+ mcp_loggers = [
460
+ "mcp.client.streamable_http",
461
+ "mcp.client",
462
+ "httpcore.connection",
463
+ "httpcore.http11",
464
+ "httpx",
465
+ ]
466
+
467
+ for logger_name in mcp_loggers:
468
+ logging.getLogger(logger_name).setLevel(mcp_log_level)
469
+ logging.getLogger(logger_name).propagate = False
470
+
471
+
418
472
  def sort_list_of_dicts_by_first_key(dicts: List[Dict]) -> List[Dict]:
419
473
  """Sorts a list of dictionaries by their first key."""
420
474
  return sorted(dicts, key=lambda d: next(iter(d.keys())))
@@ -646,3 +700,28 @@ def get_bool_env_variable(variable_name: str, default_variable_value: bool) -> b
646
700
  f"Available values are `{true_values + false_values}`"
647
701
  )
648
702
  return value.lower() in true_values
703
+
704
+
705
+ def try_parse_json(value: Any) -> Any:
706
+ """If value is a JSON string, parse it into a dict/list, else return as-is."""
707
+ if isinstance(value, str):
708
+ try:
709
+ return json.loads(value)
710
+ except json.JSONDecodeError:
711
+ return value
712
+ return value
713
+
714
+
715
+ def ensure_jsonified_iterable(value: Any) -> Any:
716
+ """Convert iterables to JSON strings, flatten nested JSON strings in dicts/lists."""
717
+ if isinstance(value, dict):
718
+ # Recursively process dict values
719
+ return {
720
+ key: ensure_jsonified_iterable(try_parse_json(val))
721
+ for key, val in value.items()
722
+ }
723
+ elif isinstance(value, list):
724
+ # Recursively process each item
725
+ return [ensure_jsonified_iterable(try_parse_json(val)) for val in value]
726
+ # Keep primitives as-is
727
+ return value
rasa/utils/io.py CHANGED
@@ -26,7 +26,6 @@ from typing_extensions import Protocol
26
26
 
27
27
  import rasa.shared.constants
28
28
  import rasa.shared.utils.io
29
- from rasa.shared.exceptions import RasaException
30
29
 
31
30
  if TYPE_CHECKING:
32
31
  from prompt_toolkit.validation import Validator
@@ -125,7 +124,9 @@ def create_path(file_path: Text) -> None:
125
124
  def file_type_validator(
126
125
  valid_file_types: List[Text], error_message: Text
127
126
  ) -> Type["Validator"]:
128
- """Creates a file type validator class for the questionary package."""
127
+ """Creates a `Validator` class which can be used with `questionary` to validate
128
+ file paths.
129
+ """
129
130
 
130
131
  def is_valid(path: Text) -> bool:
131
132
  return path is not None and any(
@@ -136,7 +137,9 @@ def file_type_validator(
136
137
 
137
138
 
138
139
  def not_empty_validator(error_message: Text) -> Type["Validator"]:
139
- """Creates a not empty validator class for the questionary package."""
140
+ """Creates a `Validator` class which can be used with `questionary` to validate
141
+ that the user entered something other than whitespace.
142
+ """
140
143
 
141
144
  def is_valid(input: Text) -> bool:
142
145
  return input is not None and input.strip() != ""
@@ -147,7 +150,9 @@ def not_empty_validator(error_message: Text) -> Type["Validator"]:
147
150
  def create_validator(
148
151
  function: Callable[[Text], bool], error_message: Text
149
152
  ) -> Type["Validator"]:
150
- """Helper method to create a validator class from a callable function."""
153
+ """Helper method to create `Validator` classes from callable functions. Should be
154
+ removed when questionary supports `Validator` objects.
155
+ """
151
156
  from prompt_toolkit.document import Document
152
157
  from prompt_toolkit.validation import ValidationError, Validator
153
158
 
@@ -245,26 +250,3 @@ def write_yaml(
245
250
 
246
251
  with Path(target).open("w", encoding="utf-8") as outfile:
247
252
  dumper.dump(data, outfile, transform=transform)
248
-
249
-
250
- class InvalidPathException(RasaException):
251
- """Raised if a path is invalid - e.g. path traversal is detected."""
252
-
253
-
254
- def subpath(parent: str, child: str) -> str:
255
- """Return the path to the child directory of the parent directory.
256
-
257
- Ensures, that child doesn't navigate to parent directories. Prevents
258
- path traversal. Raises an InvalidPathException if the path is invalid.
259
-
260
- Based on Snyk's directory traversal mitigation:
261
- https://learn.snyk.io/lesson/directory-traversal/
262
- """
263
- safe_path = os.path.abspath(os.path.join(parent, child))
264
- parent = os.path.abspath(parent)
265
-
266
- common_base = os.path.commonpath([parent, safe_path])
267
- if common_base != parent:
268
- raise InvalidPathException(f"Invalid path: {safe_path}")
269
-
270
- return safe_path
rasa/utils/json_utils.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import json
2
2
  from decimal import Decimal
3
- from typing import Any, Dict, List, Text
3
+ from typing import Any, Text
4
4
 
5
5
 
6
6
  class DecimalEncoder(json.JSONEncoder):
@@ -58,8 +58,3 @@ def replace_decimals_with_floats(obj: Any) -> Any:
58
58
  Input `obj` with all `Decimal` types replaced by `float`s.
59
59
  """
60
60
  return json.loads(json.dumps(obj, cls=DecimalEncoder))
61
-
62
-
63
- def extract_values(data: Dict, keys: List[Text]) -> Dict:
64
- """Extracts values for given keys from a dictionary."""
65
- return {key: data.get(key) for key in keys if data.get(key)}
rasa/utils/log_utils.py CHANGED
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import logging
4
4
  import os
5
5
  import sys
6
- from typing import Any, List, Optional
6
+ from typing import Any, Optional
7
7
 
8
8
  import structlog
9
9
  from structlog.dev import ConsoleRenderer
@@ -37,7 +37,6 @@ class HumanConsoleRenderer(ConsoleRenderer):
37
37
  def configure_structlog(
38
38
  log_level: Optional[int] = None,
39
39
  include_time: bool = False,
40
- additional_processors: Optional[List[structlog.typing.Processor]] = None,
41
40
  ) -> None:
42
41
  """Configure logging of the server."""
43
42
  if log_level is None: # Log level NOTSET is 0 so we use `is None` here
@@ -76,9 +75,6 @@ def configure_structlog(
76
75
  if include_time:
77
76
  shared_processors.append(structlog.processors.TimeStamper(fmt="iso"))
78
77
 
79
- if additional_processors:
80
- shared_processors.extend(additional_processors)
81
-
82
78
  if not FORCE_JSON_LOGGING and sys.stderr.isatty():
83
79
  # Pretty printing when we run in a terminal session.
84
80
  # Automatically prints pretty tracebacks when "rich" is installed
@@ -94,7 +90,7 @@ def configure_structlog(
94
90
  ]
95
91
 
96
92
  structlog.configure(
97
- processors=processors, # type: ignore
93
+ processors=processors,
98
94
  context_class=dict,
99
95
  # `logger_factory` is used to create wrapped loggers that are used for
100
96
  # OUTPUT. This one returns a `logging.Logger`. The final value (a JSON
rasa/utils/ml_utils.py CHANGED
@@ -119,7 +119,7 @@ def response_for_template(
119
119
  rsps = responses.get(template_name, [])
120
120
  usuable_responses = [r for r in rsps if r.get(KEY_RESPONSES_TEXT)]
121
121
  if usuable_responses:
122
- selected_response = np.random.choice(usuable_responses) # type: ignore
122
+ selected_response = np.random.choice(usuable_responses)
123
123
  return selected_response.get(KEY_RESPONSES_TEXT)
124
124
  else:
125
125
  structlogger.warning(
@@ -291,7 +291,7 @@ class ConcatenateSparseDenseFeatures(RasaCustomLayer):
291
291
  [
292
292
  config[DENSE_DIMENSION][attribute]
293
293
  if signature.is_sparse
294
- else signature.units
294
+ else (signature.units or 0)
295
295
  for signature in feature_type_signature
296
296
  ]
297
297
  )
rasa/utils/train_utils.py CHANGED
@@ -11,7 +11,7 @@ from rasa.nlu.constants import NUMBER_OF_SUB_TOKENS
11
11
  from rasa.shared.constants import NEXT_MAJOR_VERSION_FOR_DEPRECATIONS
12
12
  from rasa.shared.exceptions import InvalidConfigException
13
13
  from rasa.shared.nlu.constants import SPLIT_ENTITIES_BY_COMMA
14
- from rasa.utils.tensorflow.callback import RasaModelCheckpoint, RasaTrainingLogger
14
+ from rasa.utils.tensorflow.callback import RasaModelCheckpoint
15
15
  from rasa.utils.tensorflow.constants import (
16
16
  AUTO,
17
17
  CHECKPOINT_MODEL,
@@ -371,20 +371,20 @@ def create_common_callbacks(
371
371
  Returns:
372
372
  A list of callbacks.
373
373
  """
374
- import tensorflow as tf
375
-
376
- callbacks = [RasaTrainingLogger(epochs, silent=False)]
377
-
378
- if tensorboard_log_dir:
379
- callbacks.append(
380
- tf.keras.callbacks.TensorBoard(
381
- log_dir=tensorboard_log_dir,
382
- update_freq=tensorboard_log_level,
383
- write_graph=True,
384
- write_images=True,
385
- histogram_freq=10,
386
- )
387
- )
374
+ # import tensorflow as tf
375
+
376
+ callbacks = []
377
+
378
+ # if tensorboard_log_dir:
379
+ # callbacks.append(
380
+ # tf.keras.callbacks.TensorBoard(
381
+ # log_dir=tensorboard_log_dir,
382
+ # update_freq=tensorboard_log_level,
383
+ # write_graph=True,
384
+ # write_images=True,
385
+ # histogram_freq=10,
386
+ # )
387
+ # )
388
388
 
389
389
  if checkpoint_dir:
390
390
  callbacks.append(RasaModelCheckpoint(checkpoint_dir))
rasa/validator.py CHANGED
@@ -9,7 +9,7 @@ from jinja2 import Template
9
9
  from pypred import Predicate
10
10
  from pypred.ast import CompareOperator, Literal, NegateOperator
11
11
 
12
- import rasa.core.training.story_conflict
12
+ # import rasa.core.training.story_conflict
13
13
  import rasa.shared.nlu.constants
14
14
  import rasa.shared.utils.cli
15
15
  import rasa.shared.utils.io
@@ -60,7 +60,8 @@ from rasa.shared.core.flows.utils import (
60
60
  get_invalid_slot_persistence_config_error_message,
61
61
  warn_deprecated_collect_step_config,
62
62
  )
63
- from rasa.shared.core.generator import TrainingDataGenerator
63
+
64
+ # from rasa.shared.core.generator import TrainingDataGenerator
64
65
  from rasa.shared.core.slot_mappings import CoexistenceSystemType
65
66
  from rasa.shared.core.slots import BooleanSlot, CategoricalSlot, ListSlot, Slot
66
67
  from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
@@ -70,7 +71,7 @@ from rasa.shared.core.training_data.structures import StoryGraph
70
71
  from rasa.shared.data import create_regex_pattern_reader
71
72
  from rasa.shared.exceptions import RasaException
72
73
  from rasa.shared.importers.importer import TrainingDataImporter
73
- from rasa.shared.nlu.constants import COMMANDS
74
+ from rasa.shared.nlu.constants import COMMANDS, INTENT
74
75
  from rasa.shared.nlu.training_data.message import Message
75
76
  from rasa.shared.nlu.training_data.training_data import TrainingData
76
77
  from rasa.telemetry import track_validation_error_log
@@ -130,7 +131,7 @@ class Validator:
130
131
  """Compares list of intents in domain with intents in NLU training data."""
131
132
  everything_is_alright = True
132
133
 
133
- nlu_data_intents = {e.data["intent"] for e in self.intents.intent_examples}
134
+ nlu_data_intents = {e.data[INTENT] for e in self.intents.intent_examples}
134
135
 
135
136
  for intent in self._non_default_intents():
136
137
  if intent not in nlu_data_intents:
@@ -172,7 +173,7 @@ class Validator:
172
173
  duplication_hash = defaultdict(set)
173
174
  for example in self.intents.intent_examples:
174
175
  text = example.get(rasa.shared.nlu.constants.TEXT)
175
- duplication_hash[text].add(example.get("intent"))
176
+ duplication_hash[text].add(example.get(INTENT))
176
177
 
177
178
  for text, intents in duplication_hash.items():
178
179
  if len(duplication_hash[text]) > 1:
@@ -446,17 +447,18 @@ class Validator:
446
447
  event_info="Story structure validation...",
447
448
  )
448
449
 
449
- trackers = TrainingDataGenerator(
450
- self.story_graph,
451
- domain=self.domain,
452
- remove_duplicates=False,
453
- augmentation_factor=0,
454
- ).generate_story_trackers()
450
+ # trackers = TrainingDataGenerator(
451
+ # self.story_graph,
452
+ # domain=self.domain,
453
+ # remove_duplicates=False,
454
+ # augmentation_factor=0,
455
+ # ).generate_story_trackers()
455
456
 
456
457
  # Create a list of `StoryConflict` objects
457
- conflicts = rasa.core.training.story_conflict.find_story_conflicts(
458
- trackers, self.domain, max_history
459
- )
458
+ # conflicts = rasa.core.training.story_conflict.find_story_conflicts(
459
+ # trackers, self.domain, max_history
460
+ # )
461
+ conflicts = None
460
462
 
461
463
  if not conflicts:
462
464
  structlogger.info(
@@ -629,14 +631,11 @@ class Validator:
629
631
  flow_id: str,
630
632
  ) -> bool:
631
633
  """Validates that a collect step can have either an action or an utterance.
632
-
633
634
  Also logs an error if neither an action nor an utterance is defined.
634
635
 
635
636
  Args:
636
637
  collect: the name of the slot to collect
637
638
  all_good: boolean value indicating the validation status
638
- domain_slots: the slots of the domain
639
- flow_id: the id of the flow
640
639
 
641
640
  Returns:
642
641
  False, if validation failed, true, otherwise
@@ -685,10 +684,9 @@ class Validator:
685
684
  has_action_defined=has_action_defined,
686
685
  flow=flow_id,
687
686
  event_info=(
688
- f"The collect step '{collect.collect}' has neither a response "
689
- f"nor an action defined, nor an initial value defined in the "
690
- f"domain. You can fix this by adding a response named "
691
- f"'{collect.utter}' used in the collect step."
687
+ f"The collect step '{collect.collect}' has neither an utterance "
688
+ f"nor an action defined, or an initial value defined in the domain."
689
+ f"You need to define either an utterance or an action."
692
690
  ),
693
691
  )
694
692
  all_good = False
rasa/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  # this file will automatically be changed,
2
2
  # do not add anything but the version number here!
3
- __version__ = "3.14.0.dev5"
3
+ __version__ = "3.14.0.dev7"
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rasa-pro
3
- Version: 3.14.0.dev5
3
+ Version: 3.14.0.dev7
4
4
  Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
5
5
  Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
6
6
  Author: Rasa Technologies GmbH
7
7
  Author-email: hi@rasa.com
8
8
  Maintainer: Tom Bocklisch
9
9
  Maintainer-email: tom@rasa.com
10
- Requires-Python: >=3.9.2,<3.12
10
+ Requires-Python: >=3.10,<3.12
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Programming Language :: Python :: 3
@@ -24,9 +24,10 @@ Provides-Extra: transformers
24
24
  Requires-Dist: CacheControl (>=0.14.2,<0.15.0)
25
25
  Requires-Dist: PyJWT[crypto] (>=2.8.0,<3.0.0)
26
26
  Requires-Dist: SQLAlchemy (>=2.0.42,<2.1.0)
27
+ Requires-Dist: a2a-sdk (>=0.3.2,<0.4.0)
27
28
  Requires-Dist: absl-py (>=2.0,<2.1)
28
29
  Requires-Dist: aio-pika (>=8.2.3,<9.4.4)
29
- Requires-Dist: aiogram (>=3.15,<3.16)
30
+ Requires-Dist: aiogram (>=3.20.0,<3.21.0)
30
31
  Requires-Dist: aiohttp (>=3.10,<3.11)
31
32
  Requires-Dist: apscheduler (>=3.10,<3.11)
32
33
  Requires-Dist: attrs (>=23.1,<23.2)
@@ -60,33 +61,34 @@ Requires-Dist: jinja2 (>=3.1.6,<3.2.0)
60
61
  Requires-Dist: jsonpatch (>=1.33,<2.0)
61
62
  Requires-Dist: jsonpickle (>=3.3.0,<3.4)
62
63
  Requires-Dist: jsonschema (>=4.22)
63
- Requires-Dist: keras (==2.14.0)
64
+ Requires-Dist: keras (>=3.5.0,<3.6.0)
64
65
  Requires-Dist: langchain (>=0.2.17,<0.3.0)
65
66
  Requires-Dist: langchain-community (>=0.2.19,<0.3.0)
66
67
  Requires-Dist: langcodes (>=3.5.0,<4.0.0)
67
68
  Requires-Dist: litellm (>=1.69.0,<1.70.0)
68
69
  Requires-Dist: matplotlib (>=3.9.4,<3.10.0)
69
70
  Requires-Dist: mattermostwrapper (>=2.2,<2.3)
71
+ Requires-Dist: mcp (>=1.12.0,<1.13.0)
70
72
  Requires-Dist: networkx (>=3.1,<3.2)
71
73
  Requires-Dist: numpy (>=1.26.4,<1.27.0)
72
74
  Requires-Dist: onnxruntime (==1.19.2) ; extra == "pii"
73
75
  Requires-Dist: openai (>=1.68.2,<1.69.0)
74
76
  Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
75
- Requires-Dist: opentelemetry-api (>=1.16.0,<1.17.0)
76
- Requires-Dist: opentelemetry-exporter-jaeger (>=1.16.0,<1.17.0)
77
- Requires-Dist: opentelemetry-exporter-otlp (>=1.16.0,<1.17.0)
78
- Requires-Dist: opentelemetry-sdk (>=1.16.0,<1.17.0)
77
+ Requires-Dist: opentelemetry-api (>=1.33.0,<1.34.0)
78
+ Requires-Dist: opentelemetry-exporter-jaeger (>=1.21.0,<1.22.0)
79
+ Requires-Dist: opentelemetry-exporter-otlp (>=1.33.0,<1.34.0)
80
+ Requires-Dist: opentelemetry-sdk (>=1.33.0,<1.34.0)
79
81
  Requires-Dist: packaging (>=23.2,<23.3)
80
82
  Requires-Dist: pep440-version-utils (>=1.1.0,<1.2.0)
81
83
  Requires-Dist: pluggy (>=1.2.0,<2.0.0)
82
84
  Requires-Dist: portalocker (>=2.7.0,<3.0.0)
83
85
  Requires-Dist: prompt-toolkit (>=3.0.28,<3.0.29)
84
- Requires-Dist: protobuf (>=4.25.8,<4.26.0)
86
+ Requires-Dist: protobuf (>=5.29.5,<5.30.0)
85
87
  Requires-Dist: psutil (>=5.9.5,<6.0.0)
86
88
  Requires-Dist: psycopg2-binary (>=2.9.10,<2.10.0)
87
89
  Requires-Dist: pydot (>=1.4,<1.5)
88
90
  Requires-Dist: pykwalify (>=1.8,<1.9)
89
- Requires-Dist: pymilvus (>=2.4.1,<2.4.2)
91
+ Requires-Dist: pymilvus (>=2.5.0,<2.6.0)
90
92
  Requires-Dist: pymongo (>=4.10.1,<4.11.0)
91
93
  Requires-Dist: pypred (>=0.4.0,<0.5.0)
92
94
  Requires-Dist: python-dateutil (>=2.8.2,<2.9.0)
@@ -99,7 +101,7 @@ Requires-Dist: pyyaml (>=6.0.2,<6.1.0)
99
101
  Requires-Dist: qdrant-client (>=1.9.1,<1.10.0)
100
102
  Requires-Dist: questionary (>=1.10.0,<2.1.0)
101
103
  Requires-Dist: randomname (>=0.2.1,<0.3.0)
102
- Requires-Dist: rasa-sdk (==3.14.0.dev2)
104
+ Requires-Dist: rasa-sdk (==3.14.0.dev3)
103
105
  Requires-Dist: redis (>=4.6.0,<6.0)
104
106
  Requires-Dist: regex (>=2024.7.24,<2024.8.0)
105
107
  Requires-Dist: requests (>=2.32.3,<2.33.0)
@@ -110,7 +112,6 @@ Requires-Dist: safetensors (>=0.4.5,<0.5.0)
110
112
  Requires-Dist: sanic (>=22.12,<22.13)
111
113
  Requires-Dist: sanic-cors (>=2.2.0,<2.3.0)
112
114
  Requires-Dist: sanic-jwt (>=1.8.0,<2.0.0)
113
- Requires-Dist: sanic-openapi (>=21.12.0,<22.0.0)
114
115
  Requires-Dist: sanic-routing (>=22.8.0,<23.0.0)
115
116
  Requires-Dist: scikit-learn (>=1.6.1,<1.7.0)
116
117
  Requires-Dist: scipy (>=1.13.1,<1.14.0)
@@ -125,15 +126,10 @@ Requires-Dist: structlog (>=25.4.0,<25.5.0)
125
126
  Requires-Dist: structlog-sentry (>=2.0.3,<2.1.0)
126
127
  Requires-Dist: tarsafe (>=0.0.5,<0.0.6)
127
128
  Requires-Dist: tenacity (>=8.4.1,<8.5.0)
128
- Requires-Dist: tensorflow (==2.14.1) ; sys_platform != "darwin" or platform_machine != "arm64"
129
- Requires-Dist: tensorflow-cpu-aws (==2.14.1) ; sys_platform == "linux" and (platform_machine == "arm64" or platform_machine == "aarch64")
130
- Requires-Dist: tensorflow-intel (==2.14.1) ; sys_platform == "win32"
131
129
  Requires-Dist: tensorflow-io-gcs-filesystem (==0.31) ; sys_platform == "win32"
132
130
  Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; sys_platform == "darwin" and platform_machine != "arm64"
133
131
  Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; sys_platform == "linux"
134
- Requires-Dist: tensorflow-macos (==2.14.1) ; sys_platform == "darwin" and platform_machine == "arm64"
135
132
  Requires-Dist: tensorflow-metal (==1.1.0) ; (sys_platform == "darwin" and platform_machine == "arm64") and (extra == "metal")
136
- Requires-Dist: tensorflow-text (==2.14.0) ; sys_platform != "win32" and platform_machine != "arm64" and platform_machine != "aarch64"
137
133
  Requires-Dist: tensorflow_hub (>=0.13.0,<0.14.0)
138
134
  Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
139
135
  Requires-Dist: tiktoken (>=0.9.0,<0.10.0)
@@ -146,6 +142,7 @@ Requires-Dist: typing-utils (>=0.1.0,<0.2.0)
146
142
  Requires-Dist: ujson (>=5.8,<6.0)
147
143
  Requires-Dist: webexteamssdk (>=1.6.1,<1.7.0)
148
144
  Requires-Dist: websockets (>=10.4,<11.0)
145
+ Requires-Dist: werkzeug (>=1.0.1)
149
146
  Requires-Dist: wheel (>=0.40.0)
150
147
  Project-URL: Documentation, https://rasa.com/docs
151
148
  Project-URL: Homepage, https://rasa.com