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.
- {xpander_sdk-2.0.415/src/xpander_sdk.egg-info → xpander_sdk-2.0.416}/PKG-INFO +1 -1
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/setup.py +1 -1
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/__init__.py +1 -1
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/finalize_mode.py +2 -8
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/agno.py +5 -3
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/schemas.py +1 -1
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416/src/xpander_sdk.egg-info}/PKG-INFO +1 -1
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/LICENSE +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/README.md +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/pyproject.toml +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/setup.cfg +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/consts/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/consts/api_routes.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/action_ledger.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/compact_retry_result.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/completion_evidence.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/constants.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/context_optimizer.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/encryption.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/error_patterns.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/chunking.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/recent_actions.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/secrets.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/tool_result.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/helpers/xml_safety.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/mixins/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/mixins/map_reduce.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/multimodal_error_patterns.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/prompts.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/search.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/workspace_cache.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/module_base.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/state.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/xpander_api_client.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/exceptions/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/exceptions/module_exception.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/action_ledger.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/activity.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/compactization.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/configuration.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/context_status.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/deep_planning.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/events.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/frameworks.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/generic.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/notifications.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/orchestrations.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/shared.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/models/user.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/agents_module.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/agent.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/agent_list.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/knowledge_bases.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/sub_modules/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/sub_modules/agent.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/utils/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/utils/generic.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/backend_module.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/decorators/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/decorators/on_auth_event.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/events_registry.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/_anthropic_cache.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/_bedrock_cache.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/dispatch.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/extra_headers.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/mcp_connect.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/mcp_oauth.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/tool_call_events.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_boot.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_shutdown.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_task.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_tool.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/events_module.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/deployments.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/events.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/streaming_server.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/generic.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/git_init.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/knowledge_bases_module.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/models/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/models/knowledge_bases.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/sub_modules/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base.py +0 -0
- {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
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/utils/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/task.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/tasks_list.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/sub_modules/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/sub_modules/task.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/tasks_module.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/files.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/media.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/utils/model_capabilities.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/decorators/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/decorators/register_tool.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/models/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/models/mcp.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/models/tool_invocation_result.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/dynamic_tools.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/mcp_tool_proxy.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/sub_modules/tool.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/tools_repository_module.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/billing_context.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/generic.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/local_tools.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/utils/workspace_payload.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/agents/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/cache.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/db/__init__.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/db/engine_registry.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/env.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/event_loop.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/generic.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/json_parsing.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/utils/tools.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/SOURCES.txt +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/dependency_links.txt +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/requires.txt +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk.egg-info/top_level.txt +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_action_ledger_dedup.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_agent_instructions_render.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_aget_db_engine_registry.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_agno_cpu_hotpaths.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_anthropic_prompt_cache.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_auto_context_management_toggle.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_bedrock_prompt_cache.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_boot_shutdown_handlers.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_child_startup_perf.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_chunked.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_perf.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_recent_actions.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_status_events.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_unwrap.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_optimizer_window.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_retrieve_reoffload.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_search.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_context_window_detection.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_cross_subexec_decrypt.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_emergency_connectivity_breaker.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_encryption.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_engine_registry.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_headroom_l0.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_layer_1_cache_integration.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_connect_probe.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_oauth_events.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_parallel_connect.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_mcp_preflight_tail.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_parent_update_deep_planning.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_planning_tools_visibility.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_reasoning_inline_gateway.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_reasoning_plan_task_id.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_skills_instructions.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_spawn_bg.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_tool_call_events.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_weak_model_reasoning.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_workspace_cache.py +0 -0
- {xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/tests/test_workspace_tools_toggle.py +0 -0
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/finalize_mode.py
RENAMED
|
@@ -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
|
-
|
|
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
|
|
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
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/agno.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
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):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/__init__.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/action_ledger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/encryption.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/error_patterns.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/prompts.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/core/context_optimizer/search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/agent_list.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/models/knowledge_bases.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/sub_modules/__init__.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/sub_modules/agent.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/agents/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/backend_module.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/decorators/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/events_registry.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/frameworks/dispatch.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/__init__.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/extra_headers.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/mcp_connect.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/backend/utils/mcp_oauth.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/__init__.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_boot.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_shutdown.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_task.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/decorators/on_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/__init__.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/models/deployments.py
RENAMED
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/streaming_server.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/events/utils/git_init.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/knowledge_bases/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/models/tasks_list.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/sub_modules/__init__.py
RENAMED
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tasks/sub_modules/task.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xpander_sdk-2.0.415 → xpander_sdk-2.0.416}/src/xpander_sdk/modules/tools_repository/models/mcp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|