xpander-sdk 2.0.227__py3-none-any.whl → 2.0.229__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.
@@ -689,6 +689,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
689
689
  api_key=get_llm_key("AGENTS_OPENAI_API_KEY")
690
690
  or get_llm_key("OPENAI_API_KEY"),
691
691
  temperature=0.0,
692
+ retries=3,
693
+ exponential_backoff=True,
692
694
  **llm_args
693
695
  )
694
696
  # Helicone
@@ -700,6 +702,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
700
702
  # Try xpander.ai-specific key first, fallback to standard OpenAI key
701
703
  api_key=get_llm_key("HELICONE_API_KEY"),
702
704
  base_url="https://ai-gateway.helicone.ai/v1",
705
+ retries=3,
706
+ exponential_backoff=True,
703
707
  **llm_args
704
708
  )
705
709
  # Nebius
@@ -710,6 +714,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
710
714
  id=agent.model_name,
711
715
  # Try xpander.ai-specific key first, fallback to standard OpenAI key
712
716
  api_key=get_llm_key("NEBIUS_API_KEY"),
717
+ retries=3,
718
+ exponential_backoff=True,
713
719
  **llm_args
714
720
  )
715
721
  # OpenRouter
@@ -720,6 +726,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
720
726
  id=agent.model_name,
721
727
  # Try xpander.ai-specific key first, fallback to standard OpenAI key
722
728
  api_key=get_llm_key("OPENROUTER_API_KEY"),
729
+ retries=3,
730
+ exponential_backoff=True,
723
731
  **llm_args
724
732
  )
725
733
  # Google AI Studio - supports gemini models
@@ -730,6 +738,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
730
738
  id=agent.model_name,
731
739
  # Try xpander.ai-specific key first, fallback to standard OpenAI key
732
740
  api_key=get_llm_key("GOOGLE_API_KEY"),
741
+ retries=3,
742
+ exponential_backoff=True,
733
743
  **llm_args
734
744
  )
735
745
  # Fireworks AI Provider
@@ -740,6 +750,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
740
750
  id=agent.model_name,
741
751
  # Try xpander.ai-specific key first, fallback to standard OpenAI key
742
752
  api_key=get_llm_key("FIREWORKS_API_KEY"),
753
+ retries=3,
754
+ exponential_backoff=True,
743
755
  **llm_args
744
756
  )
745
757
  # NVIDIA NIM Provider - supports NVIDIA's inference microservices
@@ -750,6 +762,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
750
762
  id=agent.model_name,
751
763
  api_key=get_llm_key("NVIDIA_API_KEY"),
752
764
  temperature=0.0,
765
+ retries=3,
766
+ exponential_backoff=True,
753
767
  **llm_args
754
768
  )
755
769
  # Amazon Bedrock Provider
@@ -760,6 +774,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
760
774
  return AwsBedrock(
761
775
  id=agent.model_name,
762
776
  temperature=0.0,
777
+ retries=3,
778
+ exponential_backoff=True,
763
779
  **llm_args
764
780
  )
765
781
 
@@ -772,6 +788,8 @@ def _load_llm_model(agent: Agent, override: Optional[Dict[str, Any]] = {}, task:
772
788
  id=agent.model_name,
773
789
  api_key=get_llm_key("ANTHROPIC_API_KEY"),
774
790
  temperature=0.0,
791
+ retries=3,
792
+ exponential_backoff=True,
775
793
  )
776
794
 
777
795
  raise NotImplementedError(
@@ -1005,8 +1023,19 @@ async def _resolve_agent_tools(agent: Agent, task: Optional[Task] = None, auth_e
1005
1023
  # check if we have user tokens for this mcp
1006
1024
  graph_item = next((gi for gi in agent.graph.items if gi.type == AgentGraphItemType.MCP and gi.settings and gi.settings.mcp_settings and gi.settings.mcp_settings.url and gi.settings.mcp_settings.url == mcp.url), None)
1007
1025
  if graph_item and task.user_tokens and isinstance(task.user_tokens, dict) and graph_item.id in task.user_tokens:
1008
- mcp.api_key = task.user_tokens[graph_item.id]
1009
- else:
1026
+ if isinstance(task.user_tokens[graph_item.id], dict):
1027
+ graph_item_headers = task.user_tokens[graph_item.id]
1028
+ if "Authorization" in graph_item_headers:
1029
+ mcp.api_key = graph_item_headers["Authorization"]
1030
+ for k in graph_item_headers:
1031
+ if k != "Authorization":
1032
+ if not mcp.headers or not isinstance(mcp.headers, dict):
1033
+ mcp.headers = {}
1034
+ mcp.headers[k] = graph_item_headers[k]
1035
+ else:
1036
+ mcp.api_key = task.user_tokens[graph_item.id]
1037
+
1038
+ if not mcp.api_key:
1010
1039
  if not task.input.user or not task.input.user.id:
1011
1040
  raise ValueError("MCP server with OAuth authentication detected but user id not set on the task (task.input.user.id)")
1012
1041
 
@@ -1024,7 +1053,17 @@ async def _resolve_agent_tools(agent: Agent, task: Optional[Task] = None, auth_e
1024
1053
  # check if we have user tokens for this mcp
1025
1054
  graph_item = next((gi for gi in agent.graph.items if gi.type == AgentGraphItemType.MCP and gi.settings and gi.settings.mcp_settings and gi.settings.mcp_settings.url and gi.settings.mcp_settings.url == mcp.url), None)
1026
1055
  if graph_item and task.user_tokens and isinstance(task.user_tokens, dict) and graph_item.id in task.user_tokens:
1027
- mcp.api_key = task.user_tokens[graph_item.id]
1056
+ if isinstance(task.user_tokens[graph_item.id], dict):
1057
+ graph_item_headers = task.user_tokens[graph_item.id]
1058
+ if "Authorization" in graph_item_headers:
1059
+ mcp.api_key = graph_item_headers["Authorization"]
1060
+ for k in graph_item_headers:
1061
+ if k != "Authorization":
1062
+ if not mcp.headers or not isinstance(mcp.headers, dict):
1063
+ mcp.headers = {}
1064
+ mcp.headers[k] = graph_item_headers[k]
1065
+ else:
1066
+ mcp.api_key = task.user_tokens[graph_item.id]
1028
1067
 
1029
1068
  if not mcp.headers:
1030
1069
  mcp.headers = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.227
3
+ Version: 2.0.229
4
4
  Summary: xpander.ai Backend-as-a-service for AI Agents - SDK
5
5
  Home-page: https://www.xpander.ai
6
6
  Author: xpanderAI
@@ -36,7 +36,7 @@ xpander_sdk/modules/backend/events_registry.py,sha256=d0V-lsz3I3G1QB643EM1i-a5oJ
36
36
  xpander_sdk/modules/backend/decorators/__init__.py,sha256=ub9c8G0Ll6AuCvfcFB6rqR8iamMJxtcW7QjWw3WSkPU,106
37
37
  xpander_sdk/modules/backend/decorators/on_auth_event.py,sha256=Xt_x9nncujMcF_SgM5hG6M-iZ6B-rDS97EPmgZkGdMk,4715
38
38
  xpander_sdk/modules/backend/frameworks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- xpander_sdk/modules/backend/frameworks/agno.py,sha256=q0ImRrPYpYpGhZE2J0XqCYmXgZECRpgVqAGCkCVleDY,45336
39
+ xpander_sdk/modules/backend/frameworks/agno.py,sha256=I37cNia91wKg4otBp2mowlrEhMv_5KXgiRixVcHiCnw,47248
40
40
  xpander_sdk/modules/backend/frameworks/dispatch.py,sha256=ht9hT5-cHATofQbWsbWeTARx51Hne3TNNNjw6KECRtA,1814
41
41
  xpander_sdk/modules/backend/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  xpander_sdk/modules/backend/utils/mcp_oauth.py,sha256=5sYJcw557V3pSgutxUFzkBp5YxUJFUoB1V1rEe814pc,5430
@@ -90,8 +90,8 @@ xpander_sdk/utils/generic.py,sha256=XrRj2-L8c0YWpfPdDyXE-pVL-6lKF9VpyZzKHQ4wuCc,
90
90
  xpander_sdk/utils/tools.py,sha256=lyFkq2yP7DxBkyXYVlnFRwDhQCvf0fZZMDm5fBycze4,1244
91
91
  xpander_sdk/utils/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  xpander_sdk/utils/agents/compactization_agent.py,sha256=S_U1dSmDC7I0JUsp_THUYjfutEI5QMBaMPJEXGp0_Sw,14389
93
- xpander_sdk-2.0.227.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
94
- xpander_sdk-2.0.227.dist-info/METADATA,sha256=GsWF2uvdIA45EhMTa_hv_zGPnpLRDyTkLNjwI7T_kHg,17952
95
- xpander_sdk-2.0.227.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
96
- xpander_sdk-2.0.227.dist-info/top_level.txt,sha256=UCjnxQpsMy5Zoe7lmRuVDO6DI2V_6PgRFfm4oizRbVs,12
97
- xpander_sdk-2.0.227.dist-info/RECORD,,
93
+ xpander_sdk-2.0.229.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
94
+ xpander_sdk-2.0.229.dist-info/METADATA,sha256=HduRcJaUhP2L-NVwgtZKealrowNPaTBha_A4fFm6hVI,17952
95
+ xpander_sdk-2.0.229.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
96
+ xpander_sdk-2.0.229.dist-info/top_level.txt,sha256=UCjnxQpsMy5Zoe7lmRuVDO6DI2V_6PgRFfm4oizRbVs,12
97
+ xpander_sdk-2.0.229.dist-info/RECORD,,