xpander-sdk 2.0.183__tar.gz → 2.0.185__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 (108) hide show
  1. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/PKG-INFO +1 -1
  2. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/setup.py +1 -1
  3. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/events_module.py +7 -1
  4. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/utils/generic.py +1 -1
  5. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk.egg-info/PKG-INFO +1 -1
  6. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/LICENSE +0 -0
  7. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/README.md +0 -0
  8. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/pyproject.toml +0 -0
  9. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/setup.cfg +0 -0
  10. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/__init__.py +0 -0
  11. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/consts/__init__.py +0 -0
  12. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/consts/api_routes.py +0 -0
  13. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/core/__init__.py +0 -0
  14. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/core/module_base.py +0 -0
  15. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/core/state.py +0 -0
  16. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/core/xpander_api_client.py +0 -0
  17. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/exceptions/__init__.py +0 -0
  18. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/exceptions/module_exception.py +0 -0
  19. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/__init__.py +0 -0
  20. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/activity.py +0 -0
  21. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/compactization.py +0 -0
  22. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/configuration.py +0 -0
  23. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/deep_planning.py +0 -0
  24. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/events.py +0 -0
  25. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/frameworks.py +0 -0
  26. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/shared.py +0 -0
  27. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/models/user.py +0 -0
  28. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/__init__.py +0 -0
  29. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/__init__.py +0 -0
  30. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/agents_module.py +0 -0
  31. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/models/__init__.py +0 -0
  32. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/models/agent.py +0 -0
  33. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/models/agent_list.py +0 -0
  34. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/models/knowledge_bases.py +0 -0
  35. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/sub_modules/__init__.py +0 -0
  36. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/sub_modules/agent.py +0 -0
  37. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/utils/__init__.py +0 -0
  38. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/agents/utils/generic.py +0 -0
  39. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/__init__.py +0 -0
  40. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/backend_module.py +0 -0
  41. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/decorators/__init__.py +0 -0
  42. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/decorators/on_auth_event.py +0 -0
  43. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/events_registry.py +0 -0
  44. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/frameworks/__init__.py +0 -0
  45. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/frameworks/agno.py +0 -0
  46. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/frameworks/dispatch.py +0 -0
  47. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/utils/__init__.py +0 -0
  48. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/backend/utils/mcp_oauth.py +0 -0
  49. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/__init__.py +0 -0
  50. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/decorators/__init__.py +0 -0
  51. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/decorators/on_boot.py +0 -0
  52. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/decorators/on_shutdown.py +0 -0
  53. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/decorators/on_task.py +0 -0
  54. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/decorators/on_tool.py +0 -0
  55. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/models/__init__.py +0 -0
  56. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/models/deployments.py +0 -0
  57. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/models/events.py +0 -0
  58. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/utils/__init__.py +0 -0
  59. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/utils/generic.py +0 -0
  60. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/events/utils/git_init.py +0 -0
  61. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/__init__.py +0 -0
  62. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/knowledge_bases_module.py +0 -0
  63. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/models/__init__.py +0 -0
  64. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/models/knowledge_bases.py +0 -0
  65. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/sub_modules/__init__.py +0 -0
  66. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base.py +0 -0
  67. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base_document_item.py +0 -0
  68. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/knowledge_bases/utils/__init__.py +0 -0
  69. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/__init__.py +0 -0
  70. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/models/__init__.py +0 -0
  71. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/models/task.py +0 -0
  72. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/models/tasks_list.py +0 -0
  73. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/sub_modules/__init__.py +0 -0
  74. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/sub_modules/task.py +0 -0
  75. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/tasks_module.py +0 -0
  76. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/utils/__init__.py +0 -0
  77. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tasks/utils/files.py +0 -0
  78. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/__init__.py +0 -0
  79. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/decorators/__init__.py +0 -0
  80. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/decorators/register_tool.py +0 -0
  81. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/models/__init__.py +0 -0
  82. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/models/mcp.py +0 -0
  83. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/models/tool_invocation_result.py +0 -0
  84. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/sub_modules/__init__.py +0 -0
  85. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/sub_modules/tool.py +0 -0
  86. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/tools_repository_module.py +0 -0
  87. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/utils/__init__.py +0 -0
  88. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/utils/local_tools.py +0 -0
  89. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/modules/tools_repository/utils/schemas.py +0 -0
  90. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/utils/__init__.py +0 -0
  91. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/utils/agents/__init__.py +0 -0
  92. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/utils/agents/compactization_agent.py +0 -0
  93. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/utils/env.py +0 -0
  94. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/utils/event_loop.py +0 -0
  95. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/utils/generic.py +0 -0
  96. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk/utils/tools.py +0 -0
  97. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk.egg-info/SOURCES.txt +0 -0
  98. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk.egg-info/dependency_links.txt +0 -0
  99. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk.egg-info/requires.txt +0 -0
  100. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/src/xpander_sdk.egg-info/top_level.txt +0 -0
  101. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/tests/test_agents_module.py +0 -0
  102. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/tests/test_api_client.py +0 -0
  103. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/tests/test_backend_module.py +0 -0
  104. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/tests/test_boot_shutdown_handlers.py +0 -0
  105. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/tests/test_configuration.py +0 -0
  106. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/tests/test_knowledge_bases_module.py +0 -0
  107. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/tests/test_tasks_module.py +0 -0
  108. {xpander_sdk-2.0.183 → xpander_sdk-2.0.185}/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.183
3
+ Version: 2.0.185
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
@@ -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.183",
8
+ version="2.0.185",
9
9
  author="xpanderAI",
10
10
  author_email="dev@xpander.ai",
11
11
  description="xpander.ai Backend-as-a-service for AI Agents - SDK",
@@ -81,6 +81,7 @@ class Events(ModuleBase):
81
81
 
82
82
  worker: Optional[DeployedAsset] = None
83
83
  test_task: Optional[LocalTaskTest] = None
84
+ _heartbeat_task: Optional[asyncio.Task] = None
84
85
 
85
86
  # Class-level registries for boot and shutdown handlers
86
87
  _boot_handlers: List[BootHandler] = []
@@ -500,7 +501,12 @@ class Events(ModuleBase):
500
501
  )
501
502
  )
502
503
 
503
- self.track(asyncio.create_task(self.heartbeat_loop(agent_worker.id)))
504
+ # Cancel previous heartbeat task if it exists and start a new one
505
+ if self._heartbeat_task and not self._heartbeat_task.done():
506
+ logger.debug(f"Canceling previous heartbeat task for worker {agent_worker.id}")
507
+ self._heartbeat_task.cancel()
508
+ self._heartbeat_task = asyncio.create_task(self.heartbeat_loop(agent_worker.id))
509
+ self.track(self._heartbeat_task)
504
510
 
505
511
  elif event.event == EventType.AgentExecution:
506
512
  task = Task(**json.loads(event.data), configuration=self.configuration)
@@ -39,7 +39,7 @@ def json_type_to_python(json_type: str, prop_schema: dict = None):
39
39
  return List[item_type]
40
40
 
41
41
  if isinstance(json_type, list) and len(json_type) > 1:
42
- json_type = next((t for t in json_type if t != "null"))
42
+ json_type = next((t for t in json_type if t != "null"), None)
43
43
 
44
44
  return {
45
45
  "string": str,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.183
3
+ Version: 2.0.185
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
File without changes
File without changes
File without changes