xpander-sdk 2.0.415__tar.gz → 2.0.416__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 (179) hide show
  1. {xpander_sdk-2.0.415/src/xpander_sdk.egg-info → xpander_sdk-2.0.416}/PKG-INFO +1 -1
  2. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/setup.py +1 -1
  3. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/__init__.py +1 -1
  4. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/finalize_mode.py +2 -8
  5. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/agno.py +5 -3
  6. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/schemas.py +1 -1
  7. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416/src/xpander_sdk.egg-info}/PKG-INFO +1 -1
  8. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/LICENSE +0 -0
  9. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/README.md +0 -0
  10. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/pyproject.toml +0 -0
  11. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/setup.cfg +0 -0
  12. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/consts/__init__.py +0 -0
  13. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/consts/api_routes.py +0 -0
  14. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/__init__.py +0 -0
  15. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/__init__.py +0 -0
  16. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/action_ledger.py +0 -0
  17. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/compact_retry_result.py +0 -0
  18. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/completion_evidence.py +0 -0
  19. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/constants.py +0 -0
  20. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/context_optimizer.py +0 -0
  21. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/encryption.py +0 -0
  22. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/error_patterns.py +0 -0
  23. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/__init__.py +0 -0
  24. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/chunking.py +0 -0
  25. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/recent_actions.py +0 -0
  26. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/secrets.py +0 -0
  27. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/tool_result.py +0 -0
  28. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/xml_safety.py +0 -0
  29. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/mixins/__init__.py +0 -0
  30. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/mixins/map_reduce.py +0 -0
  31. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/multimodal_error_patterns.py +0 -0
  32. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/prompts.py +0 -0
  33. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/search.py +0 -0
  34. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/workspace_cache.py +0 -0
  35. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/module_base.py +0 -0
  36. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/state.py +0 -0
  37. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/xpander_api_client.py +0 -0
  38. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/exceptions/__init__.py +0 -0
  39. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/exceptions/module_exception.py +0 -0
  40. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/__init__.py +0 -0
  41. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/action_ledger.py +0 -0
  42. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/activity.py +0 -0
  43. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/compactization.py +0 -0
  44. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/configuration.py +0 -0
  45. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/context_status.py +0 -0
  46. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/deep_planning.py +0 -0
  47. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/events.py +0 -0
  48. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/frameworks.py +0 -0
  49. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/generic.py +0 -0
  50. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/notifications.py +0 -0
  51. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/orchestrations.py +0 -0
  52. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/shared.py +0 -0
  53. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/user.py +0 -0
  54. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/__init__.py +0 -0
  55. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/__init__.py +0 -0
  56. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/agents_module.py +0 -0
  57. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/__init__.py +0 -0
  58. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/agent.py +0 -0
  59. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/agent_list.py +0 -0
  60. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/knowledge_bases.py +0 -0
  61. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/sub_modules/__init__.py +0 -0
  62. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/sub_modules/agent.py +0 -0
  63. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/utils/__init__.py +0 -0
  64. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/utils/generic.py +0 -0
  65. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/__init__.py +0 -0
  66. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/backend_module.py +0 -0
  67. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/decorators/__init__.py +0 -0
  68. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/decorators/on_auth_event.py +0 -0
  69. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/events_registry.py +0 -0
  70. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/__init__.py +0 -0
  71. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/_anthropic_cache.py +0 -0
  72. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/_bedrock_cache.py +0 -0
  73. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/dispatch.py +0 -0
  74. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/__init__.py +0 -0
  75. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/extra_headers.py +0 -0
  76. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/mcp_connect.py +0 -0
  77. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/mcp_oauth.py +0 -0
  78. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/tool_call_events.py +0 -0
  79. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/__init__.py +0 -0
  80. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/__init__.py +0 -0
  81. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_boot.py +0 -0
  82. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_shutdown.py +0 -0
  83. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_task.py +0 -0
  84. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_tool.py +0 -0
  85. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/events_module.py +0 -0
  86. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/__init__.py +0 -0
  87. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/deployments.py +0 -0
  88. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/events.py +0 -0
  89. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/streaming_server.py +0 -0
  90. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/__init__.py +0 -0
  91. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/generic.py +0 -0
  92. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/git_init.py +0 -0
  93. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/__init__.py +0 -0
  94. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/knowledge_bases_module.py +0 -0
  95. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/models/__init__.py +0 -0
  96. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/models/knowledge_bases.py +0 -0
  97. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/sub_modules/__init__.py +0 -0
  98. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base.py +0 -0
  99. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base_document_item.py +0 -0
  100. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/utils/__init__.py +0 -0
  101. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/__init__.py +0 -0
  102. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/__init__.py +0 -0
  103. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/task.py +0 -0
  104. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/tasks_list.py +0 -0
  105. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/sub_modules/__init__.py +0 -0
  106. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/sub_modules/task.py +0 -0
  107. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/tasks_module.py +0 -0
  108. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/__init__.py +0 -0
  109. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/files.py +0 -0
  110. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/media.py +0 -0
  111. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/model_capabilities.py +0 -0
  112. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/__init__.py +0 -0
  113. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/decorators/__init__.py +0 -0
  114. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/decorators/register_tool.py +0 -0
  115. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/models/__init__.py +0 -0
  116. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/models/mcp.py +0 -0
  117. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/models/tool_invocation_result.py +0 -0
  118. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/__init__.py +0 -0
  119. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/dynamic_tools.py +0 -0
  120. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/mcp_tool_proxy.py +0 -0
  121. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/tool.py +0 -0
  122. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/tools_repository_module.py +0 -0
  123. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/__init__.py +0 -0
  124. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/billing_context.py +0 -0
  125. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/generic.py +0 -0
  126. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/local_tools.py +0 -0
  127. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/workspace_payload.py +0 -0
  128. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/__init__.py +0 -0
  129. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/agents/__init__.py +0 -0
  130. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/cache.py +0 -0
  131. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/db/__init__.py +0 -0
  132. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/db/engine_registry.py +0 -0
  133. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/env.py +0 -0
  134. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/event_loop.py +0 -0
  135. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/generic.py +0 -0
  136. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/json_parsing.py +0 -0
  137. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/tools.py +0 -0
  138. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/SOURCES.txt +0 -0
  139. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/dependency_links.txt +0 -0
  140. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/requires.txt +0 -0
  141. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/top_level.txt +0 -0
  142. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_action_ledger_dedup.py +0 -0
  143. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_agent_instructions_render.py +0 -0
  144. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_aget_db_engine_registry.py +0 -0
  145. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_agno_cpu_hotpaths.py +0 -0
  146. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_anthropic_prompt_cache.py +0 -0
  147. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_auto_context_management_toggle.py +0 -0
  148. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_bedrock_prompt_cache.py +0 -0
  149. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_boot_shutdown_handlers.py +0 -0
  150. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_child_startup_perf.py +0 -0
  151. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_chunked.py +0 -0
  152. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_perf.py +0 -0
  153. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_recent_actions.py +0 -0
  154. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_status_events.py +0 -0
  155. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_unwrap.py +0 -0
  156. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_window.py +0 -0
  157. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_retrieve_reoffload.py +0 -0
  158. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_search.py +0 -0
  159. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_window_detection.py +0 -0
  160. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_cross_subexec_decrypt.py +0 -0
  161. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_emergency_connectivity_breaker.py +0 -0
  162. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_encryption.py +0 -0
  163. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_engine_registry.py +0 -0
  164. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_headroom_l0.py +0 -0
  165. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_layer_1_cache_integration.py +0 -0
  166. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_connect_probe.py +0 -0
  167. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_oauth_events.py +0 -0
  168. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_parallel_connect.py +0 -0
  169. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_preflight_tail.py +0 -0
  170. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_parent_update_deep_planning.py +0 -0
  171. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_planning_tools_visibility.py +0 -0
  172. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_reasoning_inline_gateway.py +0 -0
  173. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_reasoning_plan_task_id.py +0 -0
  174. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_skills_instructions.py +0 -0
  175. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_spawn_bg.py +0 -0
  176. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_tool_call_events.py +0 -0
  177. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_weak_model_reasoning.py +0 -0
  178. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_workspace_cache.py +0 -0
  179. {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_workspace_tools_toggle.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.415
3
+ Version: 2.0.416
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.415",
8
+ version="2.0.416",
9
9
  author="xpanderAI",
10
10
  author_email="dev@xpander.ai",
11
11
  description="xpander.ai Backend-as-a-service for AI Agents - SDK",
@@ -15,7 +15,7 @@ Main Components:
15
15
  For more information, visit: https://xpander.ai
16
16
  """
17
17
 
18
- __version__ = "2.0.415"
18
+ __version__ = "2.0.416"
19
19
 
20
20
  # Backend-related imports
21
21
  from .modules.backend.backend_module import Backend
@@ -177,9 +177,7 @@ def build_finalize_tool(task: Any) -> Any:
177
177
  async def _entrypoint(
178
178
  payload: Optional[Union[Dict[str, Any], str]] = None,
179
179
  ) -> str:
180
- # LLMs sometimes emit the payload as a JSON string; validate_call
181
- # accepts it via the Union, we parse here. An unparseable string is
182
- # kept as the final answer — finalize must terminate, never bounce.
180
+ """Finalize the task; string payloads are parsed, unparseable ones become the final answer (finalize must terminate, never bounce)."""
183
181
  if isinstance(payload, str):
184
182
  parsed = parse_structured_string(payload)
185
183
  payload = parsed if isinstance(parsed, dict) else {"final_answer": payload}
@@ -276,11 +274,7 @@ async def _run_finalize(
276
274
  and getattr(task, "deep_planning", None)
277
275
  and task.deep_planning.tasks
278
276
  ):
279
- # Soft evidence gate: when the ledger recorded tool calls and every
280
- # single one failed, the LLM's completed_items claim is fabricated —
281
- # keep the items open and say so instead of rendering a green plan.
282
- # An absent/empty ledger can't distinguish "no tools needed" from
283
- # "ledger disabled", so it never blocks.
277
+ # Soft gate: every recorded call failed -> the completion claim is fabricated; an absent/empty ledger never blocks.
284
278
  ledger = get_attached_ledger(task)
285
279
  all_calls_failed = bool(
286
280
  ledger
@@ -549,8 +549,7 @@ def _build_compact_tool():
549
549
  from agno.tools.function import Function
550
550
 
551
551
  def _entrypoint(payload: Optional[Union[Dict[str, Any], str]] = None) -> str:
552
- # Stringified payloads are accepted (Union) and parsed here so a
553
- # malformed emission never fails the compaction request itself.
552
+ """Schedule compaction; stringified payloads are parsed so a malformed emission never fails the request."""
554
553
  if isinstance(payload, str):
555
554
  parsed = parse_structured_string(payload)
556
555
  payload = parsed if isinstance(parsed, dict) else {}
@@ -624,7 +623,10 @@ def reenvelope_sibling_args(arguments: Dict[str, Any]) -> bool:
624
623
  return False
625
624
  envelope = dict(payload_val) if isinstance(payload_val, dict) else {}
626
625
  for key in [k for k in list(arguments) if k != "payload"]:
627
- envelope.setdefault(key, arguments.pop(key))
626
+ sibling = arguments.pop(key)
627
+ # A real payload value wins; an empty placeholder ({}/None/"") loses to a non-empty sibling.
628
+ if key not in envelope or (not envelope.get(key) and sibling):
629
+ envelope[key] = sibling
628
630
  arguments["payload"] = envelope
629
631
  return True
630
632
 
@@ -28,7 +28,7 @@ class _CoercingPayloadBase(BaseModel):
28
28
 
29
29
  @model_validator(mode="before")
30
30
  @classmethod
31
- def _coerce_string_payload(cls, data):
31
+ def _coerce_string_payload(cls, data: Any) -> Any:
32
32
  if isinstance(data, str):
33
33
  parsed = parse_structured_string(data)
34
34
  if isinstance(parsed, dict):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.415
3
+ Version: 2.0.416
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