rasa-pro 3.14.0.dev8__py3-none-any.whl → 3.14.0.dev10__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.

@@ -40,7 +40,7 @@ class AgentFactory:
40
40
  )
41
41
  if not cls._is_valid_custom_agent(agent_class, protocol_type):
42
42
  raise ValueError(
43
- f"Agent class {agent_class} does not subclass the "
43
+ f"Agent class `{agent_class}` does not subclass the "
44
44
  f"{cls._get_agent_class_from_protocol(protocol_type).__name__} "
45
45
  f"agent class."
46
46
  )
@@ -87,7 +87,7 @@ class AgentFactory:
87
87
  protocol_class: The class that implements the protocol.
88
88
  """
89
89
  if cls.is_protocol_supported(protocol_type):
90
- raise ValueError(f"Protocol {protocol_type} already registered.")
90
+ raise ValueError(f"Protocol {protocol_type.name} already registered.")
91
91
  cls._protocols[protocol_type] = protocol_class
92
92
 
93
93
  @classmethod
@@ -50,6 +50,7 @@ from rasa.agents.core.agent_protocol import AgentProtocol
50
50
  from rasa.agents.core.types import AgentStatus, ProtocolType
51
51
  from rasa.agents.schemas import AgentInput, AgentOutput
52
52
  from rasa.core.available_agents import AgentConfig
53
+ from rasa.shared.agents.auth.agent_auth_manager import AgentAuthManager
53
54
  from rasa.shared.exceptions import (
54
55
  AgentInitializationException,
55
56
  InvalidParameterException,
@@ -78,12 +79,14 @@ class A2AAgent(AgentProtocol):
78
79
  agent_card_path: str,
79
80
  timeout: int,
80
81
  max_retries: int,
82
+ auth_config: Optional[Dict[str, Any]] = None,
81
83
  ) -> None:
82
84
  self._name = name
83
85
  self._description = description
84
86
  self._agent_card_path = agent_card_path
85
87
  self._timeout = timeout
86
88
  self._max_retries = max_retries
89
+ self._auth_config = auth_config
87
90
 
88
91
  self.agent_card: Optional[AgentCard] = None
89
92
  self._client: Optional[Client] = None
@@ -111,12 +114,14 @@ class A2AAgent(AgentProtocol):
111
114
  else AGENT_DEFAULT_MAX_RETRIES
112
115
  )
113
116
 
117
+ _auth_config = config.configuration.auth if config.configuration else None
114
118
  return cls(
115
119
  name=config.agent.name,
116
120
  description=config.agent.description,
117
121
  agent_card_path=agent_card_path,
118
122
  timeout=timeout,
119
123
  max_retries=max_retries,
124
+ auth_config=_auth_config,
120
125
  )
121
126
 
122
127
  @property
@@ -442,6 +447,16 @@ class A2AAgent(AgentProtocol):
442
447
  elif state == TaskState.submitted or state == TaskState.working:
443
448
  # The task is still in progress, return None to continue waiting for updates
444
449
  return None
450
+ elif state == TaskState.unknown:
451
+ # The task has an unknown state. Perhaps this is a transient condition.
452
+ # Return None to continue waiting for updates
453
+ structlogger.warning(
454
+ "a2a_agent.run_streaming_agent.unknown_task_state",
455
+ event_info="Task is in unknown state, continuing to wait for updates",
456
+ agent_name=self._name,
457
+ state=state,
458
+ )
459
+ return None
445
460
  else:
446
461
  structlogger.error(
447
462
  "a2a_agent.run_streaming_agent.unexpected_task_state",
@@ -606,21 +621,21 @@ class A2AAgent(AgentProtocol):
606
621
  In case of completed tasks, the final message might be in
607
622
  the task status message or in the artifacts (or both).
608
623
  """
609
- result = ""
624
+ # We need to preserve the order of the message,
625
+ # but also make sure to remove any duplicates.
626
+ result: List[str] = []
610
627
  if task.status.message:
611
- result += (
612
- A2AAgent._generate_response_message_from_parts(
613
- task.status.message.parts
614
- )
615
- + "\n"
628
+ message = A2AAgent._generate_response_message_from_parts(
629
+ task.status.message.parts
616
630
  )
631
+ if message and message not in result:
632
+ result.append(message)
617
633
  if task.artifacts:
618
634
  for artifact in task.artifacts:
619
- result += (
620
- A2AAgent._generate_response_message_from_parts(artifact.parts)
621
- + "\n"
622
- )
623
- return result.strip()
635
+ message = A2AAgent._generate_response_message_from_parts(artifact.parts)
636
+ if message and message not in result:
637
+ result.append(message)
638
+ return "\n".join(result)
624
639
 
625
640
  @staticmethod
626
641
  def _generate_structured_results_from_artifacts(
@@ -746,9 +761,13 @@ class A2AAgent(AgentProtocol):
746
761
  )
747
762
 
748
763
  def _init_client(self) -> Client:
764
+ _agent_manager = AgentAuthManager.load_auth(self._auth_config)
765
+ auth_strategy = _agent_manager.get_auth() if _agent_manager else None
749
766
  factory = ClientFactory(
750
767
  config=ClientConfig(
751
- httpx_client=httpx.AsyncClient(timeout=self._timeout),
768
+ httpx_client=httpx.AsyncClient(
769
+ timeout=self._timeout, auth=auth_strategy
770
+ ),
752
771
  streaming=True,
753
772
  supported_transports=[
754
773
  TransportProtocol.jsonrpc,
@@ -1,5 +1,6 @@
1
1
  import json
2
2
  from abc import abstractmethod
3
+ from datetime import datetime
3
4
  from inspect import isawaitable
4
5
  from typing import Any, Dict, List, Optional, Tuple
5
6
 
@@ -493,11 +494,25 @@ class MCPBaseAgent(AgentProtocol):
493
494
  # LLM & Prompt Management
494
495
  # ============================================================================
495
496
 
497
+ def _get_current_date_time_day(self) -> Tuple[str, str, str]:
498
+ """Get the current date, time, and day in standard formats."""
499
+ now = datetime.now()
500
+ current_date = now.strftime("%Y-%m-%d") # e.g. 2025-09-14
501
+ current_time = now.strftime("%H:%M:%S") # e.g. 16:45:12
502
+ current_day = now.strftime("%A") # e.g. Sunday
503
+ return current_date, current_time, current_day
504
+
496
505
  def render_prompt_template(self, context: AgentInput) -> str:
497
506
  """Render the prompt template with the provided inputs."""
507
+ # Current date, time, and weekday in standard formats
508
+ current_date, current_time, current_day = self._get_current_date_time_day()
509
+
498
510
  return Template(self.prompt_template).render(
499
511
  **context.model_dump(exclude={"id", "timestamp", "events"}),
500
512
  description=self._description,
513
+ current_date=current_date,
514
+ current_time=current_time,
515
+ current_day=current_day,
501
516
  )
502
517
 
503
518
  def build_messages_for_llm_request(
@@ -253,11 +253,15 @@ class MCPTaskAgent(MCPBaseAgent):
253
253
  def render_prompt_template(self, context: AgentInput) -> str:
254
254
  """Render the prompt template with the provided inputs."""
255
255
  slot_names = self._get_slot_names_from_exit_conditions(context)
256
+ current_date, current_time, current_day = self._get_current_date_time_day()
256
257
 
257
258
  return Template(self.prompt_template).render(
258
259
  **context.model_dump(exclude={"id", "timestamp", "events"}),
259
260
  description=self._description,
260
261
  slot_names=slot_names,
262
+ current_date=current_date,
263
+ current_time=current_time,
264
+ current_day=current_day,
261
265
  )
262
266
 
263
267
  async def send_message(self, agent_input: AgentInput) -> AgentOutput:
@@ -1,10 +1,11 @@
1
- from rasa.agents.schemas.agent_input import AgentInput
1
+ from rasa.agents.schemas.agent_input import AgentInput, AgentInputSlot
2
2
  from rasa.agents.schemas.agent_output import AgentOutput
3
3
  from rasa.agents.schemas.agent_tool_result import AgentToolResult
4
4
  from rasa.agents.schemas.agent_tool_schema import AgentToolSchema, CustomToolSchema
5
5
 
6
6
  __all__ = [
7
7
  "AgentInput",
8
+ "AgentInputSlot",
8
9
  "AgentOutput",
9
10
  "AgentToolSchema",
10
11
  "AgentToolResult",
@@ -1,5 +1,10 @@
1
1
  You are a helpful assistant that should assist the user in the best possible way.
2
2
 
3
+ ### Context
4
+ - Current date: {{ current_date }} (YYYY-MM-DD)
5
+ - Current time: {{ current_time }} (HH:MM:SS, 24-hour format)
6
+ - Current day: {{ current_day }} (Day of week)
7
+
3
8
  ### Primary Task
4
9
  {{ description }}
5
10
 
@@ -1,5 +1,10 @@
1
1
  You are a helpful assistant that should assist the user in the best possible way.
2
2
 
3
+ ### Context
4
+ - Current date: {{ current_date }} (YYYY-MM-DD)
5
+ - Current time: {{ current_time }} (HH:MM:SS, 24-hour format)
6
+ - Current day: {{ current_day }} (Day of week)
7
+
3
8
  ### Description of your capabilities
4
9
  {{ description }}
5
10
 
rasa/agents/validation.py CHANGED
@@ -84,7 +84,7 @@ def _validate_mcp_config(agent_config: AgentConfig) -> None:
84
84
  if agent_config.connections is None or agent_config.connections.mcp_servers is None:
85
85
  raise ValidationError(
86
86
  code="agent.validation.mcp.missing_connections",
87
- event_info=f"For protocol 'MCP', agent '{agent_name}' must have "
87
+ event_info=f"For protocol 'RASA', agent '{agent_name}' must have "
88
88
  "'connections.mcp_servers' configured.",
89
89
  )
90
90
 
@@ -92,7 +92,7 @@ def _validate_mcp_config(agent_config: AgentConfig) -> None:
92
92
  if not agent_config.connections.mcp_servers:
93
93
  raise ValidationError(
94
94
  code="agent.validation.mcp.empty_servers_list",
95
- event_info=f"For protocol 'MCP', agent '{agent_name}' must have "
95
+ event_info=f"For protocol 'RASA', agent '{agent_name}' must have "
96
96
  "at least one MCP server configured in 'connections.mcp_servers'.",
97
97
  )
98
98
 
@@ -101,7 +101,7 @@ def _validate_mcp_config(agent_config: AgentConfig) -> None:
101
101
  if not server.name:
102
102
  raise ValidationError(
103
103
  code="agent.validation.mcp.server_missing_name",
104
- event_info=f"For protocol 'MCP', agent '{agent_name}' MCP server "
104
+ event_info=f"For protocol 'RASA', agent '{agent_name}' MCP server "
105
105
  f"at index {i} must have a 'name' field.",
106
106
  )
107
107
 
@@ -400,7 +400,7 @@ def validate_agent_config(agent_config: AgentConfig) -> None:
400
400
  protocol = agent_config.agent.protocol
401
401
 
402
402
  # Run protocol-specific validation
403
- if protocol == ProtocolConfig.MCP:
403
+ if protocol == ProtocolConfig.RASA:
404
404
  _validate_mcp_config(agent_config)
405
405
  elif protocol == ProtocolConfig.A2A:
406
406
  _validate_a2a_config(agent_config)
@@ -19,7 +19,7 @@ structlogger = structlog.get_logger()
19
19
  class ProtocolConfig(str, Enum):
20
20
  """Supported protocols for agents."""
21
21
 
22
- MCP = "MCP"
22
+ RASA = "RASA"
23
23
  A2A = "A2A"
24
24
 
25
25
 
@@ -28,7 +28,8 @@ class AgentInfo(BaseModel):
28
28
 
29
29
  name: str = Field(..., description="Agent name")
30
30
  protocol: ProtocolConfig = Field(
31
- ..., description="Protocol used to communicate with the agent."
31
+ default=ProtocolConfig.RASA,
32
+ description="Protocol used to communicate with the agent.",
32
33
  )
33
34
  description: str = Field(..., description="Agent description")
34
35
 
@@ -41,9 +42,9 @@ class AgentInfo(BaseModel):
41
42
  if isinstance(protocol_value, str):
42
43
  # Map lowercase protocol names to uppercase enum values
43
44
  protocol_mapping = {
44
- "mcp": ProtocolConfig.MCP,
45
+ "rasa": ProtocolConfig.RASA,
45
46
  "a2a": ProtocolConfig.A2A,
46
- "MCP": ProtocolConfig.MCP,
47
+ "RASA": ProtocolConfig.RASA,
47
48
  "A2A": ProtocolConfig.A2A,
48
49
  }
49
50
 
@@ -65,6 +66,7 @@ class AgentConfiguration(BaseModel):
65
66
  timeout: Optional[int] = None # timeout in seconds
66
67
  max_retries: Optional[int] = None
67
68
  agent_card: Optional[str] = None
69
+ auth: Optional[Dict[str, Any]] = None
68
70
 
69
71
 
70
72
  class AgentConnections(BaseModel):
@@ -122,7 +124,7 @@ class AvailableAgents(metaclass=Singleton):
122
124
  return cls(agents)
123
125
 
124
126
  # First, load all agent configs into a temporary list for validation
125
- agent_configs = []
127
+ agent_configs: List[AgentConfig] = []
126
128
  for agent_name in os.listdir(agent_folder):
127
129
  config_path = os.path.join(agent_folder, agent_name, "config.yml")
128
130
  if not os.path.isfile(config_path):
@@ -77,8 +77,8 @@ from rasa.shared.core.constants import (
77
77
  ACTION_METADATA_MESSAGE_KEY,
78
78
  ACTION_METADATA_TEXT_KEY,
79
79
  ACTION_SEND_TEXT_NAME,
80
- FLOW_HASHES_SLOT,
81
80
  SILENCE_TIMEOUT_SLOT,
81
+ SLOTS_EXCLUDED_FOR_AGENT,
82
82
  )
83
83
  from rasa.shared.core.events import (
84
84
  AgentCancelled,
@@ -120,7 +120,6 @@ MAX_NUMBER_OF_STEPS = 250
120
120
  MAX_AGENT_RETRIES = 3
121
121
 
122
122
  # Slots that should not be forwarded to sub-agents via AgentInput
123
- SLOTS_EXCLUDED_FOR_AGENT = [FLOW_HASHES_SLOT]
124
123
 
125
124
 
126
125
  def render_template_variables(text: str, context: Dict[Text, Any]) -> str:
@@ -195,8 +195,9 @@ async def _connect_to_mcp_server(
195
195
  return None
196
196
 
197
197
  mcp_server_config = mcp_server_configs[0]
198
- mcp_server_connection = MCPServerConnection(
199
- mcp_server_config.name, mcp_server_config.url, mcp_server_config.type
198
+
199
+ mcp_server_connection = MCPServerConnection.from_config(
200
+ mcp_server_config.model_dump()
200
201
  )
201
202
 
202
203
  # Ensure the connection is established and return the connection object
@@ -51,7 +51,9 @@ class AgentAuthManager:
51
51
  )
52
52
 
53
53
  @classmethod
54
- def load_auth(cls, config: Dict[str, Any]) -> "AgentAuthManager":
54
+ def load_auth(
55
+ cls, config: Optional[Dict[str, Any]]
56
+ ) -> Optional["AgentAuthManager"]:
55
57
  """Connect to authentication using specified strategy type and persist
56
58
  the auth instance to the manager in a ready-to-use state.
57
59
 
@@ -61,7 +63,8 @@ class AgentAuthManager:
61
63
  Raises:
62
64
  AgentAuthInitializationException: If the authentication connection fails.
63
65
  """
64
- config = config or {}
66
+ if not config:
67
+ return None
65
68
  try:
66
69
  auth_type = AgentAuthManager.detect_auth_type(config)
67
70
 
@@ -83,4 +86,4 @@ class AgentAuthManager:
83
86
  event_info=event_info,
84
87
  config=config,
85
88
  )
86
- raise AgentAuthInitializationException(e)
89
+ raise AgentAuthInitializationException(e) from e
@@ -10,6 +10,7 @@ from rasa.shared.agents.auth.auth_strategy import AgentAuthStrategy
10
10
  from rasa.shared.agents.auth.constants import (
11
11
  CONFIG_CLIENT_ID_KEY,
12
12
  CONFIG_CLIENT_SECRET_KEY,
13
+ CONFIG_OAUTH_KEY,
13
14
  CONFIG_SCOPE_KEY,
14
15
  CONFIG_TIMEOUT_KEY,
15
16
  CONFIG_TOKEN_URL_KEY,
@@ -56,11 +57,18 @@ class OAuth2AuthStrategy(AgentAuthStrategy):
56
57
  @classmethod
57
58
  def from_config(cls, config: Dict[str, Any]) -> "OAuth2AuthStrategy":
58
59
  """Create OAuth2AuthStrategy from configuration dictionary."""
59
- token_url = config.get(CONFIG_TOKEN_URL_KEY)
60
- client_id = config.get(CONFIG_CLIENT_ID_KEY)
61
- client_secret = config.get(CONFIG_CLIENT_SECRET_KEY)
62
- scope = config.get(CONFIG_SCOPE_KEY)
63
- timeout = config.get(CONFIG_TIMEOUT_KEY) or cls.DEFAULT_ACCESS_TOKEN_TIMEOUT
60
+ # Extract OAuth2 config from nested "oauth" key if present
61
+ oauth_config = config.get(CONFIG_OAUTH_KEY, config)
62
+ if not oauth_config:
63
+ raise ValueError("OAuth2 configuration is required")
64
+
65
+ token_url = oauth_config.get(CONFIG_TOKEN_URL_KEY)
66
+ client_id = oauth_config.get(CONFIG_CLIENT_ID_KEY)
67
+ client_secret = oauth_config.get(CONFIG_CLIENT_SECRET_KEY)
68
+ scope = oauth_config.get(CONFIG_SCOPE_KEY)
69
+ timeout = (
70
+ oauth_config.get(CONFIG_TIMEOUT_KEY) or cls.DEFAULT_ACCESS_TOKEN_TIMEOUT
71
+ )
64
72
 
65
73
  if not token_url:
66
74
  raise ValueError("Token URL is required for OAuth2 authentication")
@@ -129,7 +129,7 @@ GLOBAL_SILENCE_TIMEOUT_KEY = "global_silence_timeout"
129
129
  SILENCE_TIMEOUT_SLOT = "silence_timeout"
130
130
  SLOT_CONSECUTIVE_SILENCE_TIMEOUTS = "consecutive_silence_timeouts"
131
131
  GLOBAL_SILENCE_TIMEOUT_DEFAULT_VALUE = 7.0
132
- SILENCE_SLOTS = [SILENCE_TIMEOUT_SLOT, SLOT_CONSECUTIVE_SILENCE_TIMEOUTS]
132
+ SILENCE_SLOTS = {SILENCE_TIMEOUT_SLOT, SLOT_CONSECUTIVE_SILENCE_TIMEOUTS}
133
133
  # slots for knowledge base
134
134
  SLOT_LISTED_ITEMS = "knowledge_base_listed_objects"
135
135
  SLOT_LAST_OBJECT = "knowledge_base_last_object"
@@ -148,6 +148,10 @@ DEFAULT_SLOT_NAMES = {
148
148
  FLOW_HASHES_SLOT,
149
149
  }
150
150
 
151
+ SLOTS_EXCLUDED_FOR_AGENT = (
152
+ SILENCE_SLOTS | DEFAULT_SLOT_NAMES | KNOWLEDGE_BASE_SLOT_NAMES
153
+ )
154
+
151
155
  SLOT_MAPPINGS = "mappings"
152
156
  MAPPING_CONDITIONS = "conditions"
153
157
  KEY_MAPPING_TYPE = "type"
@@ -67,7 +67,7 @@ class MCPServerConnection:
67
67
  def from_config(cls, server_config: Dict[str, Any]) -> "MCPServerConnection":
68
68
  """Initialize the MCP server connection from a configuration dictionary."""
69
69
  auth_config = server_config.get("additional_params")
70
- _auth_manager = AgentAuthManager.load_auth(auth_config) if auth_config else None
70
+ _auth_manager = AgentAuthManager.load_auth(auth_config)
71
71
  return cls(
72
72
  server_config["name"],
73
73
  server_config["url"],
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.dev8"
3
+ __version__ = "3.14.0.dev10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rasa-pro
3
- Version: 3.14.0.dev8
3
+ Version: 3.14.0.dev10
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
@@ -1,7 +1,7 @@
1
1
  rasa/__init__.py,sha256=YXG8RzVxiSJ__v-AewtV453YoCbmzWlHsU_4S0O2XpE,206
2
2
  rasa/__main__.py,sha256=TVYPpDdKKnTxC9RRaPxAaoDosH8-UDMBPfd-UP7YBGg,6645
3
3
  rasa/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- rasa/agents/agent_factory.py,sha256=7v7mdMrTnG5KEg6gCmwPtlT637I6xight90h--syh_c,4675
4
+ rasa/agents/agent_factory.py,sha256=JNYSowiznY3Ua4xH1IgnxcGlUMLCywlfhO2YQk4SuQQ,4682
5
5
  rasa/agents/agent_manager.py,sha256=VbGiow--R9kFqZJ2_STvgbyo_b0pw3WJDOc-jOHEaWY,6050
6
6
  rasa/agents/constants.py,sha256=9pJ_HRYZYMtNk5-1ThdmDuVKrhS9wJeLRYbDqGRnDwk,1157
7
7
  rasa/agents/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -10,21 +10,21 @@ rasa/agents/core/types.py,sha256=5Ht6m5lgaNAtdmeCybBTA6MUoNeGPWaGgQgPsBCoYUw,216
10
10
  rasa/agents/exceptions.py,sha256=gde7ty-InaeVRIXSbuJoxCFZK6DZSCqGcDBBrxtEVfo,1214
11
11
  rasa/agents/protocol/__init__.py,sha256=rDR_QdaWuHvkHTKF1MmgzjIk7T8m__KJIK9wtjQnGQ8,242
12
12
  rasa/agents/protocol/a2a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- rasa/agents/protocol/a2a/a2a_agent.py,sha256=piY11ebPr35ZqJNWWbAc6fb3upuRu15LajEluqnJTeg,31307
13
+ rasa/agents/protocol/a2a/a2a_agent.py,sha256=YYul61KcPcxiCWtlkGsSZCz3l44oUDhm99IbTGwdFz4,32460
14
14
  rasa/agents/protocol/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- rasa/agents/protocol/mcp/mcp_base_agent.py,sha256=bFwH0hrCT_e0OCjI_vvX_BcoB1lxQT-FGEHeLprLXKE,27493
15
+ rasa/agents/protocol/mcp/mcp_base_agent.py,sha256=koXIs4VN-eBEGFAVp8nDMjVTNd8KUTwTks7yL8DReu8,28195
16
16
  rasa/agents/protocol/mcp/mcp_open_agent.py,sha256=6llNPbLSQxE4N2GKy4kXnZjxXYww2vqAIOAbX54VUok,12680
17
- rasa/agents/protocol/mcp/mcp_task_agent.py,sha256=Vi7l0XO6sK7JrA5gDCxcQns6iUhxbPsFtI0ywB7xxec,20985
18
- rasa/agents/schemas/__init__.py,sha256=6iNKhFCh3UTFTfIeYJpRyMKvENucXpBZ7IiqNGOaM_Q,384
17
+ rasa/agents/protocol/mcp/mcp_task_agent.py,sha256=tTPRlJwRPKLc1XGmbp19CdLplJWjMBs8oOXLt4DkgrY,21184
18
+ rasa/agents/schemas/__init__.py,sha256=ubFluIAybA-uGoUMOYQOVrHfqK0Ol4SExJC0lEs4tBA,422
19
19
  rasa/agents/schemas/agent_input.py,sha256=11LK0cMnuU29gwZD-zs0BOepnVfxxeWuY0Ax4nb6LPE,970
20
20
  rasa/agents/schemas/agent_output.py,sha256=NzsjnsQhcahxSMIV9NzoJRhIUD2zNEpSBwt0r92Tbx0,790
21
21
  rasa/agents/schemas/agent_tool_result.py,sha256=Kc66JPvvGOuRP4UESkXSzLPwGb7yErNNGOqD2ZHZhhw,2376
22
22
  rasa/agents/schemas/agent_tool_schema.py,sha256=V79xiei2Dkkuy_ivBKkoA7R3Z_bR7VbfvULguFP7JAk,4586
23
23
  rasa/agents/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2,sha256=2sW5_oO1xqMdeLTd93ONLclN4CmNexu9py0nHg3gj5w,1139
25
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2,sha256=EW5qB0Fx5SGcLvbn5776SJyaTRqXTqq61KF8kYjJrMI,878
24
+ rasa/agents/templates/mcp_open_agent_prompt_template.jinja2,sha256=cPzyOET3-7Rrx8uRB3pVgrua8a1pmPggBinZE8bYfnM,1317
25
+ rasa/agents/templates/mcp_task_agent_prompt_template.jinja2,sha256=HhYhdKbhF-v2LwDB_Xb1j0b6ZDOCpgQKE1lckWuV2e4,1056
26
26
  rasa/agents/utils.py,sha256=k_kCRNpAh_zyPyBtxyR9ySSqe2MpT6ZBwV_9eLD1LkQ,5467
27
- rasa/agents/validation.py,sha256=njG1zk7IU49cCyYhPwMSeE5HNccK7iitCWvz2hOoYcU,17491
27
+ rasa/agents/validation.py,sha256=pni2OSn6g5nnuxV6SIvbV46EMkxvlE3I30D3aWmxQ1I,17495
28
28
  rasa/api.py,sha256=hojQLbFoKMtQdwK-kgPTPL7E1HHDeAzrxcLXdvNDrCE,6658
29
29
  rasa/builder/README.md,sha256=7WYioSzBHFY25h1QCFellv7bIOW9VLH7Gf7dwQEc1k0,3715
30
30
  rasa/builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -416,7 +416,7 @@ rasa/core/actions/http_custom_action_executor.py,sha256=oC5OM-p11wHOXXVl7vrTUjhw
416
416
  rasa/core/actions/loops.py,sha256=3-kt_Sn_Y05PLYoYMsnuIn9e5mxYp31DJIx2omqy0dU,3531
417
417
  rasa/core/actions/two_stage_fallback.py,sha256=k8PkD25fvH3kThG9lpC6oLMK7o15kV4yEbv2E2nyans,6065
418
418
  rasa/core/agent.py,sha256=9355XYsXPeOZhIpuwJQdFaFtq0N69otseeXUnI7CcZ0,22543
419
- rasa/core/available_agents.py,sha256=24toul2y4mV9Bo1AKIq5ZorfPU2w_bYokjpNs7hTfnM,7836
419
+ rasa/core/available_agents.py,sha256=IDPpRLE3f4Sg-tJ7E6PqzQsMTX-Ar4XyFDfX0pykYFs,7936
420
420
  rasa/core/available_endpoints.py,sha256=AUkOMP49k7bo-l2NUSL6ke7gYS1WqLFwoTxMsB5ulZE,7259
421
421
  rasa/core/brokers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
422
422
  rasa/core/brokers/broker.py,sha256=ff6qgy3-Xy7PFUgfwdMQddpY09DIi48yRT6B4TvTJ4s,4399
@@ -654,9 +654,9 @@ rasa/core/policies/enterprise_search_prompt_with_relevancy_check_and_citation_te
654
654
  rasa/core/policies/flow_policy.py,sha256=Ulh3pjc1Yi4oJ4oLdmMgv9_SxcqO39m2AohhZaOEJgM,7510
655
655
  rasa/core/policies/flows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
656
656
  rasa/core/policies/flows/flow_exceptions.py,sha256=_FQuN-cerQDM1pivce9bz4zylh5UYkljvYS1gjDukHI,1527
657
- rasa/core/policies/flows/flow_executor.py,sha256=GALSii8mNV4ap3lNeyN_HxTCJv2qmI1VVjBgrTPHguo,46146
657
+ rasa/core/policies/flows/flow_executor.py,sha256=zePM0npAlU-cSt4NLDnycyPcr0ma1KGF_tAQiR8Lk3I,46108
658
658
  rasa/core/policies/flows/flow_step_result.py,sha256=agjPrD6lahGSe2ViO5peBeoMdI9ngVGRSgtytgxmJmg,1360
659
- rasa/core/policies/flows/mcp_tool_executor.py,sha256=EUyJ5puyYnClGMAeP2zebQ4dQYjH8DHFMJAVo-ZuRow,9384
659
+ rasa/core/policies/flows/mcp_tool_executor.py,sha256=HmJ45voYI3Hr0DR_in4D5BGdmsjLE8yui-7rBufWAx0,9358
660
660
  rasa/core/policies/intentless_policy.py,sha256=14jQ3D6yXxzYXhlmr1ffO7RKgW5DFUJOgP906L_tKCE,38048
661
661
  rasa/core/policies/intentless_prompt_template.jinja2,sha256=KhIL3cruMmkxhrs5oVbqgSvK6ZiN_6TQ_jXrgtEB-ZY,677
662
662
  rasa/core/policies/memoization.py,sha256=CX2d3yP7FehSMW92Wi9NYLZei7tBzoT3T6yybu-Nb5s,19377
@@ -977,19 +977,19 @@ rasa/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
977
977
  rasa/shared/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
978
978
  rasa/shared/agents/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
979
979
  rasa/shared/agents/auth/agent_auth_factory.py,sha256=k1LFYs_Os9Uxv4VRdf-_AdP_NgpiBFXlknyVAxE4ptc,2669
980
- rasa/shared/agents/auth/agent_auth_manager.py,sha256=Mg4V_cg8vm-qzIvjgkVgBdyUIox_QlV3f3RroCHCTJ4,3048
980
+ rasa/shared/agents/auth/agent_auth_manager.py,sha256=YdgmOeE4RzqDSf4VngHqy80W0y4AvWCiTXTUwYWKGGE,3106
981
981
  rasa/shared/agents/auth/auth_strategy/__init__.py,sha256=XjTLRSWzcHB0S2_bA8lewqjiPZBF_-T0fJiTnle8mZA,568
982
982
  rasa/shared/agents/auth/auth_strategy/agent_auth_strategy.py,sha256=EmWtNe6ubGCaIg11L9nYbdwmp-zmswj2D60YfYnGz6c,1609
983
983
  rasa/shared/agents/auth/auth_strategy/api_key_auth_strategy.py,sha256=K44K0FioGNbFeZHjjynEXHV4fUrrqlkPZvryCiWS7ac,1454
984
984
  rasa/shared/agents/auth/auth_strategy/bearer_token_auth_strategy.py,sha256=PXbNbRb246jQqMOu_92FyTaTlCbTtH9uLN3wI361IiQ,965
985
- rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py,sha256=_1hfJdToyxy4ufjEcd2h1i6tWbsgOpzYprpB4-YSF_0,5828
985
+ rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py,sha256=bW41A78Nj4heAaok3aMCBI8y1SLb9eSgvrUMwfMzKQ0,6126
986
986
  rasa/shared/agents/auth/constants.py,sha256=ivyeKUG0h5Pyt8IHWbloSNZNksMiQRU-k5S4thdEXNo,375
987
987
  rasa/shared/agents/auth/types.py,sha256=VZwUhRX8sAoUCPNRXp9hiER_Q0jDFnUaDbaiGwQqarg,272
988
988
  rasa/shared/agents/utils.py,sha256=Dux_STACmYlni-c4c8EpdBX9SmcFofaJI8prwsKlNeM,1011
989
989
  rasa/shared/constants.py,sha256=HMHc0UKJKWpZYP98lDU7vk034gPunXoKzHXt_jxYoJA,13066
990
990
  rasa/shared/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
991
991
  rasa/shared/core/command_payload_reader.py,sha256=aWmEe6NyGdGZ8qaCPxGZu1frLROv04SFbwPpZNrtj7Q,3741
992
- rasa/shared/core/constants.py,sha256=WsES9sRpH-gkz1X-L6pe0vX8vMTu1LXZWWmL6QEmfGw,6901
992
+ rasa/shared/core/constants.py,sha256=tS9KFgugebij53XAUsbUFyZoyG3fahVnaWA2znWaIeY,7000
993
993
  rasa/shared/core/conversation.py,sha256=0nUhcbQkPDnO3_Rig7oiinrWmPy5fsVQs_U6Fx1hG5c,1384
994
994
  rasa/shared/core/domain.py,sha256=_0rYtm9m_NJGadFOoq2SsJvSGZj4F_owXxdQTXXIyI0,88498
995
995
  rasa/shared/core/events.py,sha256=0sjB89ONNtybSZJ2_LQwMhAzMn4gSpD1488Hl7Zowpo,100824
@@ -1122,7 +1122,7 @@ rasa/shared/utils/health_check/llm_health_check_mixin.py,sha256=ANP5Q68TRX8p4wWk
1122
1122
  rasa/shared/utils/io.py,sha256=AhuECoXGO367NvWRCBu99utEtTQnyxWVJyKOOpLePpg,15917
1123
1123
  rasa/shared/utils/llm.py,sha256=TgbtTxLS3EB9s4TvjgswCoNlzwwgHyGBME-rdbZJRhs,41536
1124
1124
  rasa/shared/utils/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1125
- rasa/shared/utils/mcp/server_connection.py,sha256=PrvUqZHAMoGSrolmQo4KbseMSzSTk2yWqyCOfoDdEqY,9424
1125
+ rasa/shared/utils/mcp/server_connection.py,sha256=PnNgBfLYBxeMC3VsbxoR9EenMWCnKQ_IvzFh7_I2EuI,9399
1126
1126
  rasa/shared/utils/mcp/utils.py,sha256=2HC2BT0jY9kCdw33jKJoyOfD_9r2978aEVfIWO8u2JI,580
1127
1127
  rasa/shared/utils/pykwalify_extensions.py,sha256=g3BUbL1gbV8_6oCvCkinqUfA7ybu5w9QlC4RpxQ0JhM,1487
1128
1128
  rasa/shared/utils/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1196,9 +1196,9 @@ rasa/utils/train_utils.py,sha256=LJO7mM6ptYvLMZr4HDl3fBkPHb7-BVFXuuZseh4Pp68,224
1196
1196
  rasa/utils/url_tools.py,sha256=dZ1HGkVdWTJB7zYEdwoDIrEuyX9HE5WsxKKFVsXBLE0,1218
1197
1197
  rasa/utils/yaml.py,sha256=KjbZq5C94ZP7Jdsw8bYYF7HASI6K4-C_kdHfrnPLpSI,2000
1198
1198
  rasa/validator.py,sha256=1abU_NTP0UTRBNwmSr1Ba0f3tj-rrJdKzeIknF9pynI,83298
1199
- rasa/version.py,sha256=6zT-xxdz2c8GxJYermTmBMfNouOi6tC7OAAn1rTwXGY,122
1200
- rasa_pro-3.14.0.dev8.dist-info/METADATA,sha256=jhEfT6WzhZb4KILEIjufjtUESiCr9uz9u4obPitEPxY,12105
1201
- rasa_pro-3.14.0.dev8.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
1202
- rasa_pro-3.14.0.dev8.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
1203
- rasa_pro-3.14.0.dev8.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
1204
- rasa_pro-3.14.0.dev8.dist-info/RECORD,,
1199
+ rasa/version.py,sha256=yXwCzejVXDKbJgygAyKKBvUCuFrknyBsAEulO6npjIY,123
1200
+ rasa_pro-3.14.0.dev10.dist-info/METADATA,sha256=zGxMTPraaZLOnGNwP-bUtZ3qN80cvpqDMoJWg6qo8ho,12106
1201
+ rasa_pro-3.14.0.dev10.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
1202
+ rasa_pro-3.14.0.dev10.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
1203
+ rasa_pro-3.14.0.dev10.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
1204
+ rasa_pro-3.14.0.dev10.dist-info/RECORD,,