xpander-sdk 2.0.175__tar.gz → 2.0.177__tar.gz

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.
Files changed (104) hide show
  1. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/PKG-INFO +2 -1
  2. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/setup.py +2 -1
  3. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/backend/frameworks/agno.py +16 -1
  4. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk.egg-info/PKG-INFO +2 -1
  5. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk.egg-info/requires.txt +1 -0
  6. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/LICENSE +0 -0
  7. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/README.md +0 -0
  8. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/pyproject.toml +0 -0
  9. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/setup.cfg +0 -0
  10. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/__init__.py +0 -0
  11. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/consts/__init__.py +0 -0
  12. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/consts/api_routes.py +0 -0
  13. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/core/__init__.py +0 -0
  14. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/core/module_base.py +0 -0
  15. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/core/state.py +0 -0
  16. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/core/xpander_api_client.py +0 -0
  17. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/exceptions/__init__.py +0 -0
  18. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/exceptions/module_exception.py +0 -0
  19. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/__init__.py +0 -0
  20. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/activity.py +0 -0
  21. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/compactization.py +0 -0
  22. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/configuration.py +0 -0
  23. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/deep_planning.py +0 -0
  24. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/events.py +0 -0
  25. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/frameworks.py +0 -0
  26. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/shared.py +0 -0
  27. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/models/user.py +0 -0
  28. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/__init__.py +0 -0
  29. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/__init__.py +0 -0
  30. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/agents_module.py +0 -0
  31. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/models/__init__.py +0 -0
  32. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/models/agent.py +0 -0
  33. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/models/agent_list.py +0 -0
  34. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/models/knowledge_bases.py +0 -0
  35. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/sub_modules/__init__.py +0 -0
  36. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/sub_modules/agent.py +0 -0
  37. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/utils/__init__.py +0 -0
  38. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/agents/utils/generic.py +0 -0
  39. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/backend/__init__.py +0 -0
  40. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/backend/backend_module.py +0 -0
  41. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/backend/frameworks/__init__.py +0 -0
  42. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/backend/frameworks/dispatch.py +0 -0
  43. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/backend/utils/__init__.py +0 -0
  44. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/backend/utils/mcp_oauth.py +0 -0
  45. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/__init__.py +0 -0
  46. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/decorators/__init__.py +0 -0
  47. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/decorators/on_boot.py +0 -0
  48. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/decorators/on_shutdown.py +0 -0
  49. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/decorators/on_task.py +0 -0
  50. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/events_module.py +0 -0
  51. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/models/__init__.py +0 -0
  52. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/models/deployments.py +0 -0
  53. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/models/events.py +0 -0
  54. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/utils/__init__.py +0 -0
  55. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/utils/generic.py +0 -0
  56. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/events/utils/git_init.py +0 -0
  57. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/__init__.py +0 -0
  58. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/knowledge_bases_module.py +0 -0
  59. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/models/__init__.py +0 -0
  60. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/models/knowledge_bases.py +0 -0
  61. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/sub_modules/__init__.py +0 -0
  62. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base.py +0 -0
  63. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base_document_item.py +0 -0
  64. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/knowledge_bases/utils/__init__.py +0 -0
  65. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/__init__.py +0 -0
  66. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/models/__init__.py +0 -0
  67. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/models/task.py +0 -0
  68. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/models/tasks_list.py +0 -0
  69. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/sub_modules/__init__.py +0 -0
  70. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/sub_modules/task.py +0 -0
  71. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/tasks_module.py +0 -0
  72. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/utils/__init__.py +0 -0
  73. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tasks/utils/files.py +0 -0
  74. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/__init__.py +0 -0
  75. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/decorators/__init__.py +0 -0
  76. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/decorators/register_tool.py +0 -0
  77. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/models/__init__.py +0 -0
  78. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/models/mcp.py +0 -0
  79. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/models/tool_invocation_result.py +0 -0
  80. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/sub_modules/__init__.py +0 -0
  81. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/sub_modules/tool.py +0 -0
  82. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/tools_repository_module.py +0 -0
  83. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/utils/__init__.py +0 -0
  84. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/utils/generic.py +0 -0
  85. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/utils/local_tools.py +0 -0
  86. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/modules/tools_repository/utils/schemas.py +0 -0
  87. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/utils/__init__.py +0 -0
  88. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/utils/agents/__init__.py +0 -0
  89. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/utils/agents/compactization_agent.py +0 -0
  90. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/utils/env.py +0 -0
  91. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/utils/event_loop.py +0 -0
  92. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/utils/generic.py +0 -0
  93. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk/utils/tools.py +0 -0
  94. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk.egg-info/SOURCES.txt +0 -0
  95. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk.egg-info/dependency_links.txt +0 -0
  96. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/src/xpander_sdk.egg-info/top_level.txt +0 -0
  97. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_agents_module.py +0 -0
  98. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_api_client.py +0 -0
  99. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_backend_module.py +0 -0
  100. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_boot_shutdown_handlers.py +0 -0
  101. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_configuration.py +0 -0
  102. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_knowledge_bases_module.py +0 -0
  103. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_tasks_module.py +0 -0
  104. {xpander_sdk-2.0.175 → xpander_sdk-2.0.177}/tests/test_tools_repository.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.175
3
+ Version: 2.0.177
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
@@ -20,6 +20,7 @@ Requires-Dist: httpx_sse
20
20
  Requires-Dist: nest-asyncio
21
21
  Requires-Dist: strands-agents
22
22
  Requires-Dist: openai-agents
23
+ Requires-Dist: python-toon
23
24
  Provides-Extra: agno
24
25
  Requires-Dist: agno; extra == "agno"
25
26
  Requires-Dist: sqlalchemy; extra == "agno"
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setup(
7
7
  name="xpander-sdk",
8
- version="2.0.175",
8
+ version="2.0.177",
9
9
  author="xpanderAI",
10
10
  author_email="dev@xpander.ai",
11
11
  description="xpander.ai Backend-as-a-service for AI Agents - SDK",
@@ -24,6 +24,7 @@ setup(
24
24
  "nest-asyncio",
25
25
  "strands-agents",
26
26
  "openai-agents",
27
+ "python-toon",
27
28
  ],
28
29
  extras_require={
29
30
  "agno": ["agno", "sqlalchemy" ,"psycopg[binary,pool]", "greenlet"],
@@ -1,10 +1,11 @@
1
1
  import asyncio
2
+ import json
2
3
  import shlex
3
4
  from os import getenv, environ
4
5
  from typing import Any, Callable, Dict, List, Optional
5
6
 
6
7
  from loguru import logger
7
-
8
+ from toon import encode as toon_encode
8
9
  from xpander_sdk import Configuration
9
10
  from xpander_sdk.models.shared import OutputFormat, ThinkMode
10
11
  from xpander_sdk.modules.agents.agents_module import Agents
@@ -19,6 +20,7 @@ from xpander_sdk.modules.tools_repository.models.mcp import (
19
20
  MCPServerTransport,
20
21
  MCPServerType,
21
22
  )
23
+ from xpander_sdk.modules.tools_repository.models.tool_invocation_result import ToolInvocationResult
22
24
  from xpander_sdk.modules.tools_repository.sub_modules.tool import Tool
23
25
  from xpander_sdk.modules.tools_repository.utils.schemas import build_model_from_schema
24
26
  from agno.agent import Agent as AgnoAgent
@@ -199,6 +201,19 @@ async def build_agent_args(
199
201
  except Exception:
200
202
  pass
201
203
 
204
+ # try toon optimization if compression enabled
205
+ if xpander_agent and xpander_agent and xpander_agent.agno_settings and xpander_agent.agno_settings.tool_calls_compression and xpander_agent.agno_settings.tool_calls_compression.enabled and not function_name.startswith("xp"):
206
+ try:
207
+ if isinstance(result, ToolInvocationResult):
208
+ json_result = json.loads(result.result) if isinstance(result.result, str) else result.result
209
+ result.result = toon_encode(json_result)
210
+ elif hasattr(result, "content"):
211
+ json_result = json.loads(result.content)
212
+ result.content = toon_encode(json_result)
213
+ except Exception:
214
+ pass
215
+
216
+
202
217
  # Return the result
203
218
  return result
204
219
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.175
3
+ Version: 2.0.177
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
@@ -20,6 +20,7 @@ Requires-Dist: httpx_sse
20
20
  Requires-Dist: nest-asyncio
21
21
  Requires-Dist: strands-agents
22
22
  Requires-Dist: openai-agents
23
+ Requires-Dist: python-toon
23
24
  Provides-Extra: agno
24
25
  Requires-Dist: agno; extra == "agno"
25
26
  Requires-Dist: sqlalchemy; extra == "agno"
@@ -7,6 +7,7 @@ httpx_sse
7
7
  nest-asyncio
8
8
  strands-agents
9
9
  openai-agents
10
+ python-toon
10
11
 
11
12
  [agno]
12
13
  agno
File without changes
File without changes
File without changes