rasa-pro 3.14.0.dev20250901__py3-none-any.whl → 3.14.0.dev20250922__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 (361) hide show
  1. rasa/builder/config.py +1 -0
  2. rasa/builder/copilot/constants.py +3 -0
  3. rasa/builder/copilot/copilot.py +128 -54
  4. rasa/builder/copilot/models.py +39 -3
  5. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +183 -188
  6. rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +61 -0
  7. rasa/builder/copilot/telemetry.py +46 -20
  8. rasa/builder/document_retrieval/models.py +3 -3
  9. rasa/builder/download.py +1 -8
  10. rasa/builder/jobs.py +33 -21
  11. rasa/builder/main.py +38 -62
  12. rasa/builder/models.py +7 -7
  13. rasa/builder/project_generator.py +143 -147
  14. rasa/builder/service.py +42 -27
  15. rasa/builder/template_cache.py +69 -0
  16. rasa/builder/training_service.py +74 -4
  17. rasa/cli/project_templates/basic/README.md +23 -0
  18. rasa/cli/project_templates/basic/actions/actions.md +10 -0
  19. rasa/cli/project_templates/basic/config.yml +6 -4
  20. rasa/cli/project_templates/basic/data/data.md +5 -6
  21. rasa/cli/project_templates/basic/domain/domain.md +7 -5
  22. rasa/cli/project_templates/basic/domain/general/show_faqs.yml +1 -1
  23. rasa/cli/project_templates/basic/endpoints.yml +5 -1
  24. rasa/cli/project_templates/default/config.yml +4 -0
  25. rasa/cli/project_templates/default/endpoints.yml +4 -0
  26. rasa/cli/project_templates/finance/README.md +26 -0
  27. rasa/cli/project_templates/finance/actions/__init__.py +0 -46
  28. rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
  29. rasa/cli/project_templates/finance/actions/actions.md +15 -0
  30. rasa/cli/project_templates/finance/actions/{transfers/action_process_immediate_payment.py → cards/check_that_card_exists.py} +6 -3
  31. rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
  32. rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
  33. rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
  34. rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
  35. rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
  36. rasa/cli/project_templates/finance/actions/db.py +117 -0
  37. rasa/cli/project_templates/finance/actions/general/__init__.py +0 -0
  38. rasa/cli/project_templates/finance/actions/general/action_human_handoff.py +49 -0
  39. rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
  40. rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
  41. rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
  42. rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
  43. rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
  44. rasa/cli/project_templates/finance/config.yml +8 -0
  45. rasa/cli/project_templates/finance/credentials.yml +7 -6
  46. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +3 -4
  47. rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
  48. rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
  49. rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
  50. rasa/cli/project_templates/finance/data/cards/block_card.yml +37 -58
  51. rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
  52. rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
  53. rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
  54. rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
  55. rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
  56. rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
  57. rasa/cli/project_templates/finance/data/data.md +14 -0
  58. rasa/cli/project_templates/finance/data/general/bot_challenge.yml +6 -0
  59. rasa/cli/project_templates/finance/data/general/goodbye.yml +1 -1
  60. rasa/cli/project_templates/finance/data/general/hello.yml +1 -2
  61. rasa/cli/project_templates/finance/data/general/help.yml +2 -2
  62. rasa/cli/project_templates/finance/data/general/human_handoff.yml +2 -2
  63. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +1 -1
  64. rasa/cli/project_templates/finance/data/transfers/check_transfer_limit.yml +18 -0
  65. rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
  66. rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
  67. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +29 -62
  68. rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
  69. rasa/cli/project_templates/finance/db/cards.json +18 -0
  70. rasa/cli/project_templates/finance/db/contacts.json +10 -0
  71. rasa/cli/project_templates/finance/db/my_account.json +6 -0
  72. rasa/cli/project_templates/finance/db/transactions.json +22 -0
  73. rasa/cli/project_templates/finance/docs/docs.md +8 -0
  74. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
  75. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
  76. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
  77. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
  78. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
  79. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
  80. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
  81. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
  82. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
  83. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
  84. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +9 -5
  85. rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
  86. rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
  87. rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
  88. rasa/cli/project_templates/finance/domain/cards/block_card.yml +33 -90
  89. rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
  90. rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
  91. rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
  92. rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
  93. rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
  94. rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
  95. rasa/cli/project_templates/finance/domain/domain.md +18 -0
  96. rasa/cli/project_templates/finance/domain/general/_shared.yml +39 -0
  97. rasa/cli/project_templates/finance/domain/general/bot_challenge.yml +4 -0
  98. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -2
  99. rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -3
  100. rasa/cli/project_templates/finance/domain/general/goodbye.yml +6 -6
  101. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +10 -9
  102. rasa/cli/project_templates/finance/domain/general/welcome.yml +33 -2
  103. rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
  104. rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
  105. rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
  106. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +203 -61
  107. rasa/cli/project_templates/finance/endpoints.yml +8 -4
  108. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +31 -12
  109. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/check_balance.yml +9 -0
  110. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/download_statements.yml +43 -0
  111. rasa/cli/project_templates/finance/tests/e2e_test_cases/cards/block_card.yml +55 -0
  112. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  113. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/feedback.yml +46 -0
  114. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/goodbye.yml +9 -0
  115. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/hello.yml +8 -0
  116. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  117. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/patterns.yml +22 -0
  118. rasa/cli/project_templates/finance/tests/e2e_test_cases/transfers/transfer_money.yml +56 -0
  119. rasa/cli/project_templates/telco/README.md +25 -0
  120. rasa/cli/project_templates/telco/actions/actions.md +12 -0
  121. rasa/cli/project_templates/telco/config.yml +6 -4
  122. rasa/cli/project_templates/telco/data/data.md +11 -0
  123. rasa/cli/project_templates/telco/data/general/human_handoff.yml +1 -1
  124. rasa/cli/project_templates/telco/docs/docs.md +3 -0
  125. rasa/cli/project_templates/telco/domain/domain.md +13 -0
  126. rasa/cli/project_templates/telco/domain/general/human_handoff.yml +3 -6
  127. rasa/cli/project_templates/telco/endpoints.yml +5 -1
  128. rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +1 -1
  129. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing/understand_bill.yml +67 -0
  130. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  131. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/feedback.yml +46 -0
  132. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/goodbye.yml +9 -0
  133. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/hello.yml +8 -0
  134. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  135. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/patterns.yml +23 -0
  136. rasa/cli/project_templates/telco/tests/e2e_test_cases/network/solve_internet_issue.yml +57 -0
  137. rasa/core/actions/action_run_slot_rejections.py +1 -1
  138. rasa/core/actions/direct_custom_actions_executor.py +9 -2
  139. rasa/core/brokers/broker.py +1 -1
  140. rasa/core/brokers/kafka.py +52 -8
  141. rasa/core/channels/development_inspector.py +1 -21
  142. rasa/core/channels/hangouts.py +2 -2
  143. rasa/core/channels/inspector/dist/assets/{arc-18042c22.js → arc-35222594.js} +1 -1
  144. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-a0efbfd3.js} +1 -1
  145. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-0584c0f2.js} +1 -1
  146. rasa/core/channels/inspector/dist/assets/channel-8e08bed9.js +1 -0
  147. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-39f40dbe.js} +1 -1
  148. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-1ad755f3.js} +1 -1
  149. rasa/core/channels/inspector/dist/assets/clone-78c82dea.js +1 -0
  150. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-b0f4f0fe.js} +1 -1
  151. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-9039bff9.js} +1 -1
  152. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-65c9b127.js} +1 -1
  153. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-4f08b38e.js} +1 -1
  154. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-e95c362a.js} +1 -1
  155. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-2b08f601.js +1 -0
  156. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-703c3015.js} +1 -1
  157. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-699328ea.js} +1 -1
  158. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-04cf4b05.js} +1 -1
  159. rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-ee94449e.js} +1 -1
  160. rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-940162b4.js} +1 -1
  161. rasa/core/channels/inspector/dist/assets/{index-4d4bdf3a.js → index-c941dcb3.js} +132 -131
  162. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-c79c2866.js} +1 -1
  163. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-84489d30.js} +1 -1
  164. rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-a9aa9858.js} +1 -1
  165. rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-eb73cf26.js} +1 -1
  166. rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-b3399f9a.js} +1 -1
  167. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-b095bf1a.js} +1 -1
  168. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-07644b66.js} +1 -1
  169. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-573a3f9c.js} +1 -1
  170. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-d457e1e1.js} +1 -1
  171. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-9d26e1a2.js} +1 -1
  172. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-3a9cde10.js} +1 -1
  173. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-4f3e8cec.js} +1 -1
  174. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-e617e5bf.js} +1 -1
  175. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-eab30d2f.js} +1 -1
  176. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-09994be2.js} +1 -1
  177. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-b7110364.js} +1 -1
  178. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-3ebc92ad.js} +1 -1
  179. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-7d13d2f2.js} +1 -1
  180. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-488385e1.js} +1 -1
  181. rasa/core/channels/inspector/dist/index.html +1 -1
  182. rasa/core/channels/inspector/src/App.tsx +5 -31
  183. rasa/core/channels/inspector/src/components/Chat.tsx +2 -3
  184. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +9 -1
  185. rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +63 -35
  186. rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +14 -0
  187. rasa/core/channels/inspector/src/types.ts +32 -7
  188. rasa/core/channels/studio_chat.py +23 -41
  189. rasa/core/channels/voice_stream/asr/asr_event.py +1 -1
  190. rasa/core/channels/voice_stream/asr/azure.py +6 -3
  191. rasa/core/channels/voice_stream/asr/deepgram.py +1 -1
  192. rasa/core/channels/voice_stream/audiocodes.py +3 -0
  193. rasa/core/channels/voice_stream/browser_audio.py +55 -3
  194. rasa/core/channels/voice_stream/genesys.py +2 -1
  195. rasa/core/channels/voice_stream/jambonz.py +9 -1
  196. rasa/core/channels/voice_stream/twilio_media_streams.py +16 -0
  197. rasa/core/channels/voice_stream/voice_channel.py +61 -0
  198. rasa/core/concurrent_lock_store.py +66 -16
  199. rasa/core/constants.py +7 -0
  200. rasa/core/iam_credentials_providers/__init__.py +0 -0
  201. rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +226 -0
  202. rasa/core/iam_credentials_providers/credentials_provider_protocol.py +90 -0
  203. rasa/core/lock_store.py +46 -10
  204. rasa/core/nlg/generator.py +1 -1
  205. rasa/core/policies/flows/flow_executor.py +1 -1
  206. rasa/core/processor.py +32 -0
  207. rasa/core/redis_connection_factory.py +469 -0
  208. rasa/core/tracker_stores/redis_tracker_store.py +32 -14
  209. rasa/core/tracker_stores/sql_tracker_store.py +57 -1
  210. rasa/engine/graph.py +5 -1
  211. rasa/engine/loader.py +12 -0
  212. rasa/engine/storage/local_model_storage.py +41 -4
  213. rasa/model_manager/socket_bridge.py +1 -2
  214. rasa/model_manager/warm_rasa_process.py +13 -3
  215. rasa/shared/core/constants.py +1 -0
  216. rasa/shared/core/events.py +2 -0
  217. rasa/shared/core/flows/flow.py +1 -1
  218. rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
  219. rasa/utils/pypred.py +38 -0
  220. rasa/validator.py +12 -8
  221. rasa/version.py +1 -1
  222. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/METADATA +19 -16
  223. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/RECORD +231 -266
  224. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +0 -47
  225. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +0 -40
  226. rasa/cli/project_templates/finance/actions/action_session_start.py +0 -74
  227. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +0 -48
  228. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +0 -36
  229. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +0 -54
  230. rasa/cli/project_templates/finance/actions/database.py +0 -277
  231. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +0 -52
  232. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +0 -51
  233. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +0 -40
  234. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +0 -40
  235. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +0 -46
  236. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +0 -49
  237. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +0 -19
  238. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +0 -36
  239. rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
  240. rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
  241. rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
  242. rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
  243. rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
  244. rasa/cli/project_templates/finance/csvs/payees.csv +0 -11
  245. rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
  246. rasa/cli/project_templates/finance/csvs/users.csv +0 -4
  247. rasa/cli/project_templates/finance/data/cards/select_card.yml +0 -12
  248. rasa/cli/project_templates/finance/data/general/bot_identity.yml +0 -6
  249. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
  250. rasa/cli/project_templates/finance/data/system/source/accounts.json +0 -51
  251. rasa/cli/project_templates/finance/data/system/source/advisors.json +0 -44
  252. rasa/cli/project_templates/finance/data/system/source/appointments.json +0 -1474
  253. rasa/cli/project_templates/finance/data/system/source/branches.json +0 -47
  254. rasa/cli/project_templates/finance/data/system/source/cards.json +0 -72
  255. rasa/cli/project_templates/finance/data/system/source/payees.json +0 -74
  256. rasa/cli/project_templates/finance/data/system/source/transactions.json +0 -492
  257. rasa/cli/project_templates/finance/data/system/source/users.json +0 -29
  258. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +0 -29
  259. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +0 -5
  260. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +0 -21
  261. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
  262. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
  263. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
  264. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
  265. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
  266. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
  267. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
  268. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
  269. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
  270. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
  271. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
  272. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
  273. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
  274. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
  275. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
  276. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
  277. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
  278. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
  279. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
  280. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
  281. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
  282. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
  283. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
  284. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
  285. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
  286. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
  287. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
  288. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
  289. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
  290. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
  291. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
  292. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
  293. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
  294. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
  295. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
  296. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
  297. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
  298. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
  299. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
  300. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
  301. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
  302. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
  303. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
  304. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
  305. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
  306. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
  307. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
  308. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
  309. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
  310. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
  311. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
  312. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
  313. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
  314. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
  315. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
  316. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
  317. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
  318. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
  319. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
  320. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
  321. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
  322. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
  323. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
  324. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
  325. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
  326. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
  327. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
  328. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
  329. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
  330. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
  331. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
  332. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
  333. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
  334. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
  335. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
  336. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
  337. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
  338. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
  339. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
  340. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
  341. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
  342. rasa/cli/project_templates/finance/domain/cards/select_card.yml +0 -12
  343. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +0 -12
  344. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +0 -5
  345. rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
  346. rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
  347. rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
  348. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +0 -47
  349. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +0 -4
  350. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +0 -16
  351. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +0 -1
  352. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +0 -1
  353. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +0 -1
  354. /rasa/cli/project_templates/telco/domain/billing/{domain_undertand_bill.yml → understand_bill.yml} +0 -0
  355. /rasa/cli/project_templates/telco/domain/network/{domain_reboot_router.yml → reboot_router.yml} +0 -0
  356. /rasa/cli/project_templates/telco/domain/network/{domain_reset_router.yml → reset_router.yml} +0 -0
  357. /rasa/cli/project_templates/telco/domain/network/{domain_run_speed_test.yml → run_speed_test.yml} +0 -0
  358. /rasa/cli/project_templates/telco/domain/network/{domain_solve_internet_issue.yml → solve_internet_issue.yml} +0 -0
  359. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/NOTICE +0 -0
  360. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/WHEEL +0 -0
  361. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/entry_points.txt +0 -0
@@ -4,12 +4,19 @@ from datetime import datetime
4
4
  from typing import Any, Dict, Iterable, Optional, Text
5
5
 
6
6
  import structlog
7
+ from pydantic import ValidationError
7
8
 
8
9
  import rasa.shared
9
10
  from rasa.core.brokers.broker import EventBroker
11
+ from rasa.core.redis_connection_factory import (
12
+ DeploymentMode,
13
+ RedisConfig,
14
+ RedisConnectionFactory,
15
+ )
10
16
  from rasa.core.tracker_stores.tracker_store import SerializedTrackerAsText, TrackerStore
11
17
  from rasa.shared.core.domain import Domain
12
18
  from rasa.shared.core.trackers import DialogueStateTracker
19
+ from rasa.shared.exceptions import RasaException
13
20
 
14
21
  structlogger = structlog.get_logger(__name__)
15
22
 
@@ -35,23 +42,34 @@ class RedisTrackerStore(TrackerStore, SerializedTrackerAsText):
35
42
  ssl_keyfile: Optional[Text] = None,
36
43
  ssl_certfile: Optional[Text] = None,
37
44
  ssl_ca_certs: Optional[Text] = None,
45
+ deployment_mode: Text = DeploymentMode.STANDARD.value,
46
+ endpoints: Optional[list] = None,
47
+ sentinel_service: Optional[Text] = None,
38
48
  **kwargs: Dict[Text, Any],
39
49
  ) -> None:
40
50
  """Initializes the tracker store."""
41
- import redis
42
-
43
- self.red = redis.StrictRedis(
44
- host=host,
45
- port=port,
46
- db=db,
47
- username=username,
48
- password=password,
49
- ssl=use_ssl,
50
- ssl_keyfile=ssl_keyfile,
51
- ssl_certfile=ssl_certfile,
52
- ssl_ca_certs=ssl_ca_certs,
53
- decode_responses=True,
54
- )
51
+
52
+ # Create Redis connection using the factory directly
53
+ try:
54
+ config = RedisConfig(
55
+ host=host,
56
+ port=port,
57
+ db=db,
58
+ username=username,
59
+ password=password,
60
+ use_ssl=use_ssl,
61
+ ssl_keyfile=ssl_keyfile,
62
+ ssl_certfile=ssl_certfile,
63
+ ssl_ca_certs=ssl_ca_certs,
64
+ deployment_mode=deployment_mode,
65
+ endpoints=endpoints,
66
+ sentinel_service=sentinel_service,
67
+ decode_responses=True,
68
+ )
69
+ self.red = RedisConnectionFactory.create_connection(config)
70
+ except ValidationError as e:
71
+ raise RasaException(f"Invalid Redis configuration: {e}")
72
+
55
73
  self.record_exp = record_exp
56
74
 
57
75
  self.key_prefix = DEFAULT_REDIS_TRACKER_STORE_KEY_PREFIX
@@ -27,6 +27,13 @@ from rasa.core.constants import (
27
27
  POSTGRESQL_MAX_OVERFLOW,
28
28
  POSTGRESQL_POOL_SIZE,
29
29
  POSTGRESQL_SCHEMA,
30
+ SQL_TRACKER_STORE_SSL_MODE_ENV_VAR_NAME,
31
+ SQL_TRACKER_STORE_SSL_ROOT_CERTIFICATE_ENV_VAR_NAME,
32
+ )
33
+ from rasa.core.iam_credentials_providers.credentials_provider_protocol import (
34
+ IAMCredentialsProviderInput,
35
+ SupportedServiceType,
36
+ create_iam_credentials_provider,
30
37
  )
31
38
  from rasa.core.tracker_stores.tracker_store import (
32
39
  SerializedTrackerAsText,
@@ -85,6 +92,21 @@ def is_postgresql_url(url: Union[Text, "URL"]) -> bool:
85
92
  return url.drivername == "postgresql"
86
93
 
87
94
 
95
+ def get_ssl_args() -> Dict[str, Any]:
96
+ """Get SSL arguments for PostgreSQL connection from environment variables."""
97
+ ssl_mode = os.getenv(SQL_TRACKER_STORE_SSL_MODE_ENV_VAR_NAME)
98
+ ssl_root_cert = os.getenv(SQL_TRACKER_STORE_SSL_ROOT_CERTIFICATE_ENV_VAR_NAME)
99
+ ssl_args = {}
100
+
101
+ if ssl_mode:
102
+ ssl_args["sslmode"] = ssl_mode
103
+
104
+ if ssl_root_cert:
105
+ ssl_args["sslrootcert"] = ssl_root_cert
106
+
107
+ return ssl_args
108
+
109
+
88
110
  def create_engine_kwargs(url: Union[Text, "URL"]) -> Dict[Text, Any]:
89
111
  """Get `sqlalchemy.create_engine()` kwargs.
90
112
 
@@ -119,6 +141,14 @@ def create_engine_kwargs(url: Union[Text, "URL"]) -> Dict[Text, Any]:
119
141
  os.environ.get(POSTGRESQL_MAX_OVERFLOW, POSTGRESQL_DEFAULT_MAX_OVERFLOW)
120
142
  )
121
143
 
144
+ ssl_args = get_ssl_args()
145
+
146
+ if ssl_args:
147
+ if "connect_args" in kwargs:
148
+ kwargs["connect_args"].update(ssl_args)
149
+ else:
150
+ kwargs["connect_args"] = ssl_args
151
+
122
152
  return kwargs
123
153
 
124
154
 
@@ -197,6 +227,32 @@ class SQLTrackerStore(TrackerStore, SerializedTrackerAsText):
197
227
 
198
228
  port = validate_port(port)
199
229
 
230
+ iam_credentials_provider = create_iam_credentials_provider(
231
+ IAMCredentialsProviderInput(
232
+ service_name=SupportedServiceType.TRACKER_STORE,
233
+ username=username,
234
+ host=host,
235
+ port=port,
236
+ )
237
+ )
238
+ if iam_credentials_provider is not None:
239
+ credentials = iam_credentials_provider.get_temporary_credentials()
240
+ if credentials.auth_token:
241
+ password = credentials.auth_token
242
+ structlogger.debug(
243
+ "sql_tracker_store.iam_credentials_provider",
244
+ event_info="Using temporary auth token from "
245
+ "IAM credentials provider.",
246
+ )
247
+ else:
248
+ structlogger.warning(
249
+ "sql_tracker_store.iam_credentials_provider.no_auth_token",
250
+ event_info=(
251
+ "IAM credentials provider did not return an auth token. "
252
+ "Falling back to provided password or no password."
253
+ ),
254
+ )
255
+
200
256
  engine_url = self.get_db_url(
201
257
  dialect, host, port, db, username, password, login_db, query
202
258
  )
@@ -272,7 +328,7 @@ class SQLTrackerStore(TrackerStore, SerializedTrackerAsText):
272
328
  host: Database network host.
273
329
  port: Database network port.
274
330
  db: Database name.
275
- username: User name to use when connecting to the database.
331
+ username: Username to use when connecting to the database.
276
332
  password: Password for database user.
277
333
  login_db: Alternative database name to which initially connect, and create
278
334
  the database specified by `db` (PostgreSQL only).
rasa/engine/graph.py CHANGED
@@ -69,6 +69,7 @@ class SchemaNode:
69
69
 
70
70
  def matches_type(self, node_type: Type, include_subtypes: bool = True) -> bool:
71
71
  """Checks if schema node's 'uses' is of specified node type.
72
+
72
73
  By default, it also checks for subtypes of the specified node type.
73
74
  """
74
75
  return (self.uses is node_type) or (
@@ -171,6 +172,7 @@ class GraphSchema:
171
172
 
172
173
  def has_node(self, node_type: Type, include_subtypes: bool = True) -> bool:
173
174
  """Checks if the graph schema contains a node of the specified node type.
175
+
174
176
  By default, it also checks for subtypes of the specified node type.
175
177
  """
176
178
  for node in self.nodes.values():
@@ -181,7 +183,7 @@ class GraphSchema:
181
183
  def count_nodes_of_a_given_type(
182
184
  self, node_type: Type, include_subtypes: bool = True
183
185
  ) -> int:
184
- """Counts the number of the nodes of specified class"""
186
+ """Counts the number of the nodes of specified class."""
185
187
  counter = 0
186
188
  for node in self.nodes.values():
187
189
  if (node.uses is node_type) or (
@@ -353,6 +355,7 @@ class ExecutionContext:
353
355
 
354
356
  def has_node(self, node_type: Type, include_subtypes: bool = True) -> bool:
355
357
  """Checks if the graph node of the given type is present in the graph schema.
358
+
356
359
  By default, it also checks for subtypes of the specified node type.
357
360
  """
358
361
  return self.graph_schema.has_node(node_type, include_subtypes)
@@ -555,6 +558,7 @@ class GraphNode:
555
558
  structlogger.error(
556
559
  "graph.node.error_running_component",
557
560
  node_name=self._node_name,
561
+ error=str(e),
558
562
  )
559
563
  raise
560
564
 
rasa/engine/loader.py CHANGED
@@ -1,6 +1,8 @@
1
1
  from pathlib import Path
2
2
  from typing import Tuple, Type
3
3
 
4
+ import structlog
5
+
4
6
  from rasa.engine.graph import ExecutionContext
5
7
  from rasa.engine.runner.interface import GraphRunner
6
8
  from rasa.engine.storage.storage import ModelMetadata, ModelStorage
@@ -9,6 +11,8 @@ from rasa.engine.validation import (
9
11
  validate_model_group_configuration_setup,
10
12
  )
11
13
 
14
+ structlogger = structlog.get_logger()
15
+
12
16
 
13
17
  def load_predict_graph_runner(
14
18
  storage_path: Path,
@@ -30,6 +34,10 @@ def load_predict_graph_runner(
30
34
  model_storage, model_metadata = model_storage_class.from_model_archive(
31
35
  storage_path=storage_path, model_archive_path=model_archive_path
32
36
  )
37
+ structlogger.debug(
38
+ "engine.loader.load_predict_graph_runner.success",
39
+ model_id=model_metadata.model_id,
40
+ )
33
41
 
34
42
  # Components using LLMs or embeddings can reference model groups defined in
35
43
  # the endpoints.yml file for their client configurations. To ensure they will work
@@ -38,6 +46,10 @@ def load_predict_graph_runner(
38
46
  validate_model_group_configuration_setup()
39
47
  validate_model_client_configuration_setup_during_inference_time(model_metadata)
40
48
 
49
+ structlogger.debug(
50
+ "engine.loader.config.validation.success",
51
+ model_id=model_metadata.model_id,
52
+ )
41
53
  runner = graph_runner_class.create(
42
54
  graph_schema=model_metadata.predict_schema,
43
55
  model_storage=model_storage,
@@ -10,7 +10,7 @@ import uuid
10
10
  from contextlib import contextmanager
11
11
  from datetime import datetime
12
12
  from pathlib import Path
13
- from typing import Callable, Generator, Optional, Text, Tuple, Union
13
+ from typing import Callable, Generator, List, Optional, Text, Tuple, Union
14
14
 
15
15
  from tarsafe import TarSafe
16
16
 
@@ -158,16 +158,24 @@ class LocalModelStorage(ModelStorage):
158
158
  # before trying the \\?\ prefix approach first
159
159
  prev_filter = getattr(tar, "extraction_filter", None)
160
160
  tar.extraction_filter = create_combined_filter(prev_filter)
161
- tar.extractall(f"\\\\?\\{temporary_directory}")
161
+ tar.extractall(
162
+ f"\\\\?\\{temporary_directory}",
163
+ members=yield_safe_members(tar.getmembers()),
164
+ )
162
165
  except Exception:
163
166
  # Fallback for Python versions with tarfile security fix
164
167
  logger.warning(
165
168
  "Failed to extract model archive with long path support. "
166
169
  "Falling back to regular extraction."
167
170
  )
168
- tar.extractall(temporary_directory)
171
+ tar.extractall(
172
+ temporary_directory,
173
+ members=yield_safe_members(tar.getmembers()),
174
+ )
169
175
  else:
170
- tar.extractall(temporary_directory)
176
+ tar.extractall(
177
+ temporary_directory, members=yield_safe_members(tar.getmembers())
178
+ )
171
179
  LocalModelStorage._assert_not_rasa2_archive(temporary_directory)
172
180
 
173
181
  @staticmethod
@@ -287,3 +295,32 @@ class LocalModelStorage(ModelStorage):
287
295
  core_target=model_configuration.core_target,
288
296
  nlu_target=model_configuration.nlu_target,
289
297
  )
298
+
299
+
300
+ def yield_safe_members(
301
+ members: List[tarfile.TarInfo],
302
+ ) -> Generator[tarfile.TarInfo, None, None]:
303
+ """
304
+ Filter function for tar.extractall members parameter.
305
+ Validates each member and yields only safe ones.
306
+
307
+ Args:
308
+ members: Iterator of TarInfo objects from tar.getmembers()
309
+
310
+ Yields:
311
+ TarInfo: Safe members to extract
312
+ """
313
+ for member in members:
314
+ # Skip absolute paths
315
+ if Path(member.name).is_absolute():
316
+ continue
317
+
318
+ # Skip paths with directory traversal sequences
319
+ if ".." in member.name or "\\.." in member.name:
320
+ continue
321
+
322
+ # Skip special file types unless you need them
323
+ if member.isdev() or member.issym():
324
+ continue
325
+
326
+ yield member
@@ -1,4 +1,3 @@
1
- import json
2
1
  from typing import Any, Dict, Optional
3
2
 
4
3
  import structlog
@@ -145,7 +144,7 @@ async def create_bridge_client(
145
144
 
146
145
  @client.event # type: ignore[misc]
147
146
  async def tracker(data: Dict[str, Any]) -> None:
148
- await sio_server.emit("tracker", json.loads(data), room=sid)
147
+ await sio_server.emit("tracker", data, room=sid)
149
148
 
150
149
  @client.event # type: ignore[misc]
151
150
  async def disconnect() -> None:
@@ -1,6 +1,7 @@
1
1
  import os
2
2
  import shlex
3
3
  import subprocess
4
+ import time
4
5
  import uuid
5
6
  from dataclasses import dataclass
6
7
  from typing import List
@@ -149,19 +150,28 @@ def warmup() -> None:
149
150
  We import them now, so that the training / deployment can later
150
151
  directly start.
151
152
  """
153
+ start_time = time.time()
152
154
  try:
153
155
  import langchain # noqa: F401
154
156
  import litellm # noqa: F401
155
157
  import matplotlib # noqa: F401
156
158
  import numpy # noqa: F401
157
159
  import pandas # noqa: F401
158
- import presidio_analyzer # noqa: F401
159
- import spacy # noqa: F401
160
160
  import tensorflow # noqa: F401
161
161
 
162
162
  import rasa.validator # noqa: F401
163
- except ImportError:
163
+ except ImportError as e:
164
+ structlogger.warning(
165
+ "model_trainer.warmup_error",
166
+ error=str(e),
167
+ )
164
168
  pass
169
+ finally:
170
+ end_time = time.time()
171
+ structlogger.debug(
172
+ "model_trainer.warmup_time",
173
+ time_in_seconds=end_time - start_time,
174
+ )
165
175
 
166
176
 
167
177
  def warm_rasa_main() -> None:
@@ -55,6 +55,7 @@ ACTION_REPEAT_BOT_MESSAGES = "action_repeat_bot_messages"
55
55
 
56
56
  ACTION_METADATA_EXECUTION_SUCCESS = "execution_success"
57
57
  ACTION_METADATA_EXECUTION_ERROR_MESSAGE = "execution_error_message"
58
+ ACTION_METADATA_EXECUTION_TIME = "execution_times"
58
59
 
59
60
 
60
61
  DEFAULT_ACTION_NAMES = [
@@ -35,6 +35,7 @@ from rasa.shared.core.constants import (
35
35
  ACTION_LISTEN_NAME,
36
36
  ACTION_METADATA_EXECUTION_ERROR_MESSAGE,
37
37
  ACTION_METADATA_EXECUTION_SUCCESS,
38
+ ACTION_METADATA_EXECUTION_TIME,
38
39
  ACTION_NAME_SENDER_ID_CONNECTOR_STR,
39
40
  ACTION_SESSION_START_NAME,
40
41
  ENTITY_LABEL_SEPARATOR,
@@ -1815,6 +1816,7 @@ class ActionExecuted(Event):
1815
1816
  items_to_ignore = [
1816
1817
  ACTION_METADATA_EXECUTION_SUCCESS,
1817
1818
  ACTION_METADATA_EXECUTION_ERROR_MESSAGE,
1819
+ ACTION_METADATA_EXECUTION_TIME,
1818
1820
  ]
1819
1821
  meta_no_nones = {
1820
1822
  k: v
@@ -8,7 +8,6 @@ from typing import Any, Dict, List, Optional, Set, Text, Tuple, Union
8
8
 
9
9
  import structlog
10
10
  from pydantic import BaseModel
11
- from pypred import Predicate
12
11
 
13
12
  import rasa.shared.utils.io
14
13
  from rasa.engine.language import Language
@@ -53,6 +52,7 @@ from rasa.shared.core.flows.steps.constants import (
53
52
  )
54
53
  from rasa.shared.core.flows.steps.continuation import ContinueFlowStep
55
54
  from rasa.shared.core.slots import Slot
55
+ from rasa.utils.pypred import Predicate
56
56
 
57
57
  structlogger = structlog.get_logger()
58
58
 
@@ -72,6 +72,9 @@ schema;responses:
72
72
  allowempty: True
73
73
  channel:
74
74
  type: "str"
75
+ allow_interruptions:
76
+ type: "bool"
77
+ required: False
75
78
  metadata:
76
79
  type: "any"
77
80
  condition:
rasa/utils/pypred.py ADDED
@@ -0,0 +1,38 @@
1
+ """Wrapper module for pypred that provides a fixed Predicate class.
2
+
3
+ This module should be used instead of importing directly from pypred.
4
+
5
+ This patch fixes an issue where pypred creates excessive logs of being unable
6
+ to write a file when run in an environment with no write access is given.
7
+
8
+ https://rasahq.atlassian.net/browse/ATO-1925
9
+
10
+ The solution is based on https://github.com/FreeCAD/FreeCAD/issues/6315
11
+ """
12
+
13
+ from typing import Any
14
+
15
+ import ply.yacc
16
+ import pypred.parser
17
+ from pypred import Predicate as OriginalPredicate # noqa: TID251
18
+
19
+ # Store the original yacc function
20
+ _original_yacc = ply.yacc.yacc
21
+
22
+
23
+ def patched_yacc(*args: Any, **kwargs: Any) -> Any:
24
+ # Disable generation of debug ('parser.out') and table
25
+ # cache ('parsetab.py'), as it requires a writable location.
26
+ kwargs["write_tables"] = False
27
+ kwargs["module"] = pypred.parser
28
+ return _original_yacc(*args, **kwargs)
29
+
30
+
31
+ # Apply the patch
32
+ ply.yacc.yacc = patched_yacc
33
+
34
+
35
+ class Predicate(OriginalPredicate):
36
+ """Fixed version of pypred.Predicate that uses the patched yacc parser."""
37
+
38
+ pass
rasa/validator.py CHANGED
@@ -6,7 +6,6 @@ from typing import Any, Dict, List, Optional, Set, Text, Tuple
6
6
 
7
7
  import structlog
8
8
  from jinja2 import Template
9
- from pypred import Predicate
10
9
  from pypred.ast import CompareOperator, Literal, NegateOperator
11
10
 
12
11
  import rasa.core.training.story_conflict
@@ -74,6 +73,7 @@ from rasa.shared.nlu.constants import COMMANDS
74
73
  from rasa.shared.nlu.training_data.message import Message
75
74
  from rasa.shared.nlu.training_data.training_data import TrainingData
76
75
  from rasa.telemetry import track_validation_error_log
76
+ from rasa.utils.pypred import Predicate
77
77
 
78
78
  logger = logging.getLogger(__name__)
79
79
 
@@ -1183,23 +1183,27 @@ class Validator:
1183
1183
  )
1184
1184
 
1185
1185
  if isinstance(step, CollectInformationFlowStep):
1186
- predicates = [predicate.if_ for predicate in step.rejections]
1187
- for predicate in predicates:
1186
+ dumped_predicates = [predicate.if_ for predicate in step.rejections]
1187
+ for dumped_predicate in dumped_predicates:
1188
1188
  all_good = self._verify_namespaces(
1189
- predicate, step.id, flow.id, all_good
1189
+ dumped_predicate, step.id, flow.id, all_good
1190
1190
  )
1191
1191
 
1192
- pred, all_good = self._construct_predicate(
1193
- predicate, step.id, context, is_step=True, all_good=all_good
1192
+ predicate, all_good = self._construct_predicate(
1193
+ dumped_predicate,
1194
+ step.id,
1195
+ context,
1196
+ is_step=True,
1197
+ all_good=all_good,
1194
1198
  )
1195
- if pred and not pred.is_valid():
1199
+ if predicate and not predicate.is_valid():
1196
1200
  structlogger.error(
1197
1201
  "validator.verify_predicates.invalid_rejection",
1198
1202
  step=step.id,
1199
1203
  rejection=predicate,
1200
1204
  flow=flow.id,
1201
1205
  event_info=(
1202
- f"Detected invalid rejection '{predicate}' "
1206
+ f"Detected invalid rejection '{dumped_predicate}' "
1203
1207
  f"at `collect` step '{step.id}' "
1204
1208
  f"for flow id '{flow.id}'. "
1205
1209
  f"Please make sure that all conditions are valid."
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.dev20250901"
3
+ __version__ = "3.14.0.dev20250922"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rasa-pro
3
- Version: 3.14.0.dev20250901
3
+ Version: 3.14.0.dev20250922
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
@@ -26,20 +26,22 @@ Requires-Dist: PyJWT[crypto] (>=2.8.0,<3.0.0)
26
26
  Requires-Dist: SQLAlchemy (>=2.0.42,<2.1.0)
27
27
  Requires-Dist: absl-py (>=2.0,<2.1)
28
28
  Requires-Dist: aio-pika (>=8.2.3,<9.4.4)
29
- Requires-Dist: aiogram (>=3.15,<3.16)
29
+ Requires-Dist: aiogram (>=3.22.0,<3.23.0)
30
30
  Requires-Dist: aiohttp (>=3.10,<3.11)
31
+ Requires-Dist: aioshutil (>=1.5,<1.6)
31
32
  Requires-Dist: apscheduler (>=3.10,<3.11)
32
33
  Requires-Dist: attrs (>=23.1,<23.2)
33
- Requires-Dist: azure-identity (>=1.19.0,<1.20.0)
34
- Requires-Dist: azure-storage-blob (>=12.16.0,<12.17.0)
35
- Requires-Dist: boto3 (>=1.35.15,<1.36.0)
34
+ Requires-Dist: aws-msk-iam-sasl-signer-python (>=1.0.2,<1.1.0)
35
+ Requires-Dist: azure-identity (>=1.24.0,<1.25.0)
36
+ Requires-Dist: azure-storage-blob (>=12.26.0,<12.27.0)
37
+ Requires-Dist: boto3 (>=1.40.21,<1.41.0)
36
38
  Requires-Dist: certifi (>=2024.07.04)
37
39
  Requires-Dist: colorama (>=0.4.6,<0.5.0) ; sys_platform == "win32"
38
40
  Requires-Dist: colorclass (>=2.2,<2.3)
39
41
  Requires-Dist: coloredlogs (>=15,<16)
40
42
  Requires-Dist: colorhash (>=2.0,<2.1.0)
41
43
  Requires-Dist: confluent-kafka (>=2.11.0,<3.0.0)
42
- Requires-Dist: cryptography (>=44.0.1)
44
+ Requires-Dist: cryptography (>=45.0.6,<45.1.0)
43
45
  Requires-Dist: cvg-python-sdk (>=0.5.1,<0.6.0)
44
46
  Requires-Dist: dask (>=2024.8.0,<2024.9.0)
45
47
  Requires-Dist: demoji (>=1.1.0,<2.0.0)
@@ -50,9 +52,9 @@ Requires-Dist: fbmessenger (>=6.0.0,<6.1.0)
50
52
  Requires-Dist: github3.py (>=3.2.0,<3.3.0) ; extra == "gh-release-notes"
51
53
  Requires-Dist: gitpython (>=3.1.41,<3.2.0) ; extra == "full"
52
54
  Requires-Dist: gliner (>=0.2.20,<0.3.0) ; extra == "pii"
53
- Requires-Dist: google-auth (>=2.23.4,<3)
55
+ Requires-Dist: google-auth (>=2.40.3,<2.41.0)
54
56
  Requires-Dist: google-cloud-storage (>=2.14.0,<2.15.0)
55
- Requires-Dist: hvac (>=1.2.1,<2.0.0)
57
+ Requires-Dist: hvac (>=2.3.0,<2.4.0)
56
58
  Requires-Dist: importlib-metadata (>=8.5.0,<8.6.0)
57
59
  Requires-Dist: importlib-resources (==6.1.3)
58
60
  Requires-Dist: jieba (>=0.42.1,<0.43) ; extra == "jieba" or extra == "full"
@@ -61,8 +63,8 @@ Requires-Dist: jsonpatch (>=1.33,<2.0)
61
63
  Requires-Dist: jsonpickle (>=3.3.0,<3.4)
62
64
  Requires-Dist: jsonschema (>=4.22)
63
65
  Requires-Dist: keras (==2.14.0)
64
- Requires-Dist: langchain (>=0.2.17,<0.3.0)
65
- Requires-Dist: langchain-community (>=0.2.19,<0.3.0)
66
+ Requires-Dist: langchain (>=0.3.27,<0.4.0)
67
+ Requires-Dist: langchain-community (>=0.3.29,<0.4.0)
66
68
  Requires-Dist: langcodes (>=3.5.0,<4.0.0)
67
69
  Requires-Dist: litellm (>=1.69.0,<1.70.0)
68
70
  Requires-Dist: matplotlib (>=3.9.4,<3.10.0)
@@ -92,17 +94,17 @@ Requires-Dist: pypred (>=0.4.0,<0.5.0)
92
94
  Requires-Dist: python-dateutil (>=2.8.2,<2.9.0)
93
95
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
94
96
  Requires-Dist: python-engineio (>=4.12.2,<4.13.0)
95
- Requires-Dist: python-keycloak (>=3.12.0,<4.0.0)
97
+ Requires-Dist: python-keycloak (>=5.8.1,<5.9.0)
96
98
  Requires-Dist: python-socketio (>=5.13,<6)
97
99
  Requires-Dist: pytz (>=2022.7.1,<2023.0)
98
100
  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.0a1)
103
105
  Requires-Dist: redis (>=4.6.0,<6.0)
104
106
  Requires-Dist: regex (>=2024.7.24,<2024.8.0)
105
- Requires-Dist: requests (>=2.32.3,<2.33.0)
107
+ Requires-Dist: requests (>=2.32.5,<2.33.0)
106
108
  Requires-Dist: rich (>=13.4.2,<14.0.0)
107
109
  Requires-Dist: rocketchat_API (>=1.32.0,<1.33.0)
108
110
  Requires-Dist: ruamel.yaml (>=0.17.21,<0.17.22)
@@ -118,8 +120,8 @@ Requires-Dist: sentencepiece[sentencepiece] (>=0.1.99,<0.2.0) ; extra == "transf
118
120
  Requires-Dist: sentry-sdk (>=2.8.0,<3)
119
121
  Requires-Dist: setuptools (>=78.1.1,<78.2.0)
120
122
  Requires-Dist: sklearn-crfsuite (>=0.5.0,<0.6.0)
121
- Requires-Dist: skops (>=0.11.0,<0.12.0)
122
- Requires-Dist: slack-sdk (>=3.27.1,<3.28.0)
123
+ Requires-Dist: skops (>=0.13.0,<0.14.0)
124
+ Requires-Dist: slack-sdk (>=3.36.0,<3.37.0)
123
125
  Requires-Dist: spacy (>=3.5.4,<4.0.0) ; extra == "spacy" or extra == "full"
124
126
  Requires-Dist: structlog (>=25.4.0,<25.5.0)
125
127
  Requires-Dist: structlog-sentry (>=2.0.3,<2.1.0)
@@ -139,7 +141,8 @@ Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
139
141
  Requires-Dist: tiktoken (>=0.9.0,<0.10.0)
140
142
  Requires-Dist: tqdm (>=4.66.2,<5.0.0)
141
143
  Requires-Dist: transformers (>=4.38.2,<4.39.0) ; extra == "transformers" or extra == "full"
142
- Requires-Dist: twilio (>=8.4,<8.5)
144
+ Requires-Dist: twilio (>=9.7.2,<9.8.0)
145
+ Requires-Dist: types-cachetools (>=6.2.0.20250827,<6.3.0.0)
143
146
  Requires-Dist: types-protobuf (==4.25.0.20240417)
144
147
  Requires-Dist: typing-extensions (>=4.7.1,<5.0.0)
145
148
  Requires-Dist: typing-utils (>=0.1.0,<0.2.0)