openhands-sdk 1.58.0__tar.gz → 1.58.1__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.
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/PKG-INFO +2 -1
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/call_context.py +14 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/options/chat_options.py +2 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/options/common.py +12 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/options/responses_options.py +2 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands_sdk.egg-info/PKG-INFO +2 -1
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands_sdk.egg-info/requires.txt +1 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/pyproject.toml +2 -1
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/acp_agent.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/acp_contracts.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/acp_file_credentials.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/acp_model_discovery.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/acp_models.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/acp_tracing.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/agent.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/critic_mixin.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/parallel_executor.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/response_dispatch.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/stream_context.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/agent/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/automation/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/banner.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/agent_context.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/llm_summarizing_condenser.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/no_op_condenser.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/pipeline_condenser.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/prompts/summarizing_events.j2 +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/prompts/summarizing_system.j2 +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/memory.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/presets.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/prompt.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/registry.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/section.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/dynamic.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/planning.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/static.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/templates/ask_agent_template.j2 +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/templates/skill_knowledge_info.j2 +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/manipulation_indices.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/properties/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/properties/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/properties/batch_atomicity.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/properties/observation_uniqueness.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/properties/tool_call_matching.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/properties/tool_loop_atomicity.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/view.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/cancellation.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/conversation.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/conversation_stats.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/event_store.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/events_list_base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/exceptions.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/fifo_lock.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/goal/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/goal/controller.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/goal/judge.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/goal/prompts.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/goal/runner.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/impl/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/impl/local_conversation.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/impl/remote_conversation.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/message_request.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/persistence_const.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/request.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/resource_lock_manager.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/response_utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/secret_registry.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/state.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/stuck_detector.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/title_utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/types.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/visualizer/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/visualizer/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/visualizer/default.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/credential.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/agent_finished.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/api/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/api/chat_template.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/api/client.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/api/critic.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/api/taxonomy.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/empty_patch.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/pass_critic.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/result.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/acp_tool_call.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/condenser.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/conversation_error.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/conversation_state.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/error_classification.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/hook_execution.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_completion_log.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/action.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/message.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/observation.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/reasoning_utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/system.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/resume_transcript.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/security.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/streaming_delta.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/token.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/types.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/user_action.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/fetch.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/info.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/interface.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/manager.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/metadata.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/git/cached_repo.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/git/exceptions.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/git/git_changes.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/git/git_commits.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/git/git_diff.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/git/models.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/git/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/hooks/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/hooks/config.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/hooks/conversation_hooks.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/hooks/executor.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/hooks/manager.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/hooks/types.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/io/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/io/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/io/cache.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/io/local.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/io/memory.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/launch/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/launch/errors.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/launch/finalize.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/launch/preview.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/launch/resolve.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/_message_normalization.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/_response_stream.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/_tokenizer.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/auth/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/auth/credentials.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/auth/openai.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/cleanup_profile.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/exceptions/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/exceptions/classifier.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/exceptions/mapping.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/exceptions/types.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/fallback_strategy.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/llm.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/llm_profile_store.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/llm_registry.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/llm_response.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/message.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/meta_profile_store.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/mixins/fn_call_converter.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/mixins/fn_call_examples.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/mixins/non_native_fc.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/options/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/provider_connection_store.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/router/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/router/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/router/impl/multimodal.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/router/impl/random.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/streaming.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/image_inline.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/image_resize.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/litellm_provider.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/metrics.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/model_features.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/model_info.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/model_prompt_spec.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/openhands_provider.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/providers/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/providers/openrouter.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/responses_serialization.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/retry_mixin.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/runtime_metadata.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/telemetry.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/unverified_models.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/verified_models.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/utils/vertex_preflight.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/logger/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/logger/_rich_handler.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/logger/logger.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/logger/rolling.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/marketplace/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/marketplace/registration.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/marketplace/registry.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/marketplace/types.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/client.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/config.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/definition.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/exceptions.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/oauth.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/tool.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/mcp/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/observability/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/observability/laminar.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/observability/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/discovery.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/fetch.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/format/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/format/agent_plugins.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/format/agent_plugins_mcp.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/format/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/format/claude_code.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/format/schemas/mcp-1.0.0.schema.json +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/format/schemas/plugin-1.0.0.schema.json +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/installed.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/loader.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/paths.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/plugin.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/source.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/strict_fetch.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/plugin/types.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/profiles/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/profiles/agent_profile.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/profiles/agent_profile_store.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/profiles/profile_refs.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/profiles/resolver.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/profiles/seed.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/py.typed +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/secret/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/secret/secrets.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/_shell_ast.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/analyzer.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/confirmation_policy.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/defense_in_depth/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/defense_in_depth/pattern.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/defense_in_depth/policy_rails.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/defense_in_depth/shell_semantics.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/defense_in_depth/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/ensemble.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/grayswan/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/grayswan/analyzer.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/grayswan/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/llm_analyzer.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/risk.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/shell_parser.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/toolshield_helpers.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/security/toolshield_llm_analyzer.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/settings/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/settings/acp_install_catalog.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/settings/acp_providers.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/settings/api_models.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/settings/metadata.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/settings/model.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/exceptions.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/execute.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/fetch.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/installed.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/skill.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/trigger.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/types.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/skills/utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/subagent/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/subagent/load.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/subagent/registry.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/subagent/schema.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/subagent/scope.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/testing/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/testing/test_llm.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/builtins/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/builtins/classify_and_switch_llm.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/builtins/finish.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/builtins/invoke_skill.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/builtins/switch_llm.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/builtins/think.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/builtins/vision_inspect.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/client_tool.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/defaults.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/registry.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/schema.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/spec.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/tool/tool.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/async_executor.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/async_utils.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/cipher.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/command.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/datetime.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/deprecation.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/files.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/github.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/json.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/masking.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/models.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/paging.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/path.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/pydantic_secrets.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/redact.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/truncate.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/utils/visualize.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/local.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/models.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/remote/__init__.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/remote/async_remote_workspace.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/remote/base.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/remote/remote_workspace_mixin.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/repo.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/workspace/workspace.py +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands_sdk.egg-info/SOURCES.txt +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands_sdk.egg-info/dependency_links.txt +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands_sdk.egg-info/top_level.txt +0 -0
- {openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openhands-sdk
|
|
3
|
-
Version: 1.58.
|
|
3
|
+
Version: 1.58.1
|
|
4
4
|
Summary: OpenHands SDK - Core functionality for building AI agents
|
|
5
5
|
Project-URL: Source, https://github.com/OpenHands/software-agent-sdk
|
|
6
6
|
Project-URL: Homepage, https://github.com/OpenHands/software-agent-sdk
|
|
@@ -8,6 +8,7 @@ Project-URL: Documentation, https://docs.openhands.dev/sdk
|
|
|
8
8
|
Project-URL: Bug Tracker, https://github.com/OpenHands/software-agent-sdk/issues
|
|
9
9
|
Requires-Python: >=3.12
|
|
10
10
|
Requires-Dist: agent-client-protocol<0.13.0,>=0.12.1
|
|
11
|
+
Requires-Dist: certifi>=2026.10.19
|
|
11
12
|
Requires-Dist: deprecation>=2.1.0
|
|
12
13
|
Requires-Dist: fakeredis[lua]>=2.32.1
|
|
13
14
|
Requires-Dist: fastmcp<4,>=3.2.0
|
|
@@ -69,12 +69,19 @@ def apply_llm_call_context(
|
|
|
69
69
|
context: LLMCallContext,
|
|
70
70
|
*,
|
|
71
71
|
supports_prompt_cache_key: bool = False,
|
|
72
|
+
openrouter: bool = False,
|
|
72
73
|
) -> None:
|
|
73
74
|
"""Apply SDK-owned call context to provider request options in one place.
|
|
74
75
|
|
|
75
76
|
``prompt_cache_key`` is only sent to providers that accept it as an OpenAI
|
|
76
77
|
param (OpenAI Responses/Chat). Anthropic and Gemini reject it with a 400
|
|
77
78
|
``UnsupportedParamsError`` when litellm validates non-default params.
|
|
79
|
+
|
|
80
|
+
``openrouter`` selects OpenRouter's own affinity parameter: OpenRouter keys
|
|
81
|
+
sticky routing off ``session_id``, so later turns of a conversation return
|
|
82
|
+
to the endpoint holding the warm prompt cache. Without it OpenRouter derives
|
|
83
|
+
the routing key by hashing the opening messages, which agent conversations
|
|
84
|
+
rewrite as they compact, so affinity is lost mid-run.
|
|
78
85
|
"""
|
|
79
86
|
if context.prompt_cache_key and supports_prompt_cache_key:
|
|
80
87
|
options["prompt_cache_key"] = context.prompt_cache_key
|
|
@@ -84,3 +91,10 @@ def apply_llm_call_context(
|
|
|
84
91
|
**existing,
|
|
85
92
|
"x-litellm-session-id": context.session_id,
|
|
86
93
|
}
|
|
94
|
+
if openrouter:
|
|
95
|
+
# Merge rather than replace: extra_body may already carry caller
|
|
96
|
+
# routing (e.g. provider.only) that must survive. An explicit
|
|
97
|
+
# session_id from the caller wins over the conversation id.
|
|
98
|
+
extra_body = dict(options.get("extra_body") or {})
|
|
99
|
+
extra_body.setdefault("session_id", context.session_id)
|
|
100
|
+
options["extra_body"] = extra_body
|
|
@@ -10,6 +10,7 @@ from openhands.sdk.llm.options.common import (
|
|
|
10
10
|
apply_defaults_if_absent,
|
|
11
11
|
apply_extra_body,
|
|
12
12
|
apply_extra_headers,
|
|
13
|
+
is_openrouter,
|
|
13
14
|
)
|
|
14
15
|
|
|
15
16
|
|
|
@@ -96,6 +97,7 @@ def select_chat_options(
|
|
|
96
97
|
out,
|
|
97
98
|
context,
|
|
98
99
|
supports_prompt_cache_key=model_features.supports_prompt_cache_key,
|
|
100
|
+
openrouter=is_openrouter(llm),
|
|
99
101
|
)
|
|
100
102
|
|
|
101
103
|
return out
|
|
@@ -55,3 +55,15 @@ def apply_extra_body(user_kwargs: dict[str, Any], llm: LLM) -> dict[str, Any]:
|
|
|
55
55
|
if llm.litellm_extra_body:
|
|
56
56
|
out["extra_body"] = llm.litellm_extra_body
|
|
57
57
|
return out
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def is_openrouter(llm: LLM) -> bool:
|
|
61
|
+
"""Return whether this LLM routes through OpenRouter.
|
|
62
|
+
|
|
63
|
+
Matches the ``openrouter/`` model prefix and the ``openrouter.ai`` base URL
|
|
64
|
+
that the OpenRouter runtime-metadata resolver also keys off, so the two
|
|
65
|
+
agree on what counts as OpenRouter.
|
|
66
|
+
"""
|
|
67
|
+
model = llm.model or ""
|
|
68
|
+
base_url = llm.base_url or ""
|
|
69
|
+
return model.startswith("openrouter/") or "openrouter.ai" in base_url
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/options/responses_options.py
RENAMED
|
@@ -10,6 +10,7 @@ from openhands.sdk.llm.options.common import (
|
|
|
10
10
|
apply_defaults_if_absent,
|
|
11
11
|
apply_extra_body,
|
|
12
12
|
apply_extra_headers,
|
|
13
|
+
is_openrouter,
|
|
13
14
|
)
|
|
14
15
|
|
|
15
16
|
|
|
@@ -90,6 +91,7 @@ def select_responses_options(
|
|
|
90
91
|
out,
|
|
91
92
|
context,
|
|
92
93
|
supports_prompt_cache_key=model_features.supports_prompt_cache_key,
|
|
94
|
+
openrouter=is_openrouter(llm),
|
|
93
95
|
)
|
|
94
96
|
|
|
95
97
|
return out
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openhands-sdk
|
|
3
|
-
Version: 1.58.
|
|
3
|
+
Version: 1.58.1
|
|
4
4
|
Summary: OpenHands SDK - Core functionality for building AI agents
|
|
5
5
|
Project-URL: Source, https://github.com/OpenHands/software-agent-sdk
|
|
6
6
|
Project-URL: Homepage, https://github.com/OpenHands/software-agent-sdk
|
|
@@ -8,6 +8,7 @@ Project-URL: Documentation, https://docs.openhands.dev/sdk
|
|
|
8
8
|
Project-URL: Bug Tracker, https://github.com/OpenHands/software-agent-sdk/issues
|
|
9
9
|
Requires-Python: >=3.12
|
|
10
10
|
Requires-Dist: agent-client-protocol<0.13.0,>=0.12.1
|
|
11
|
+
Requires-Dist: certifi>=2026.10.19
|
|
11
12
|
Requires-Dist: deprecation>=2.1.0
|
|
12
13
|
Requires-Dist: fakeredis[lua]>=2.32.1
|
|
13
14
|
Requires-Dist: fastmcp<4,>=3.2.0
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "openhands-sdk"
|
|
3
|
-
version = "1.58.
|
|
3
|
+
version = "1.58.1"
|
|
4
4
|
description = "OpenHands SDK - Core functionality for building AI agents"
|
|
5
5
|
|
|
6
6
|
requires-python = ">=3.12"
|
|
7
7
|
dependencies = [
|
|
8
8
|
"agent-client-protocol>=0.12.1,<0.13.0", # 0.11.0 reordered prompt() args, broke the client (#4830)
|
|
9
|
+
"certifi>=2026.10.19", # eMudhra CA distrust: GHSA-6q48-6c7w-9gw2
|
|
9
10
|
"deprecation>=2.1.0",
|
|
10
11
|
"fakeredis[lua]>=2.32.1", # Explicit dependency for docket/fastmcp background tasks
|
|
11
12
|
# 3.2.0 reads back the stored absolute OAuth token expiry; 4.x requires
|
|
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
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/no_op_condenser.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/condenser/pipeline_condenser.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
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/__init__.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/dynamic.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/planning.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/prompts/sections/static.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/manipulation_indices.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/context/view/properties/__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
|
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/conversation_stats.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/events_list_base.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
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/impl/local_conversation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/impl/remote_conversation.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/persistence_const.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/resource_lock_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/visualizer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/conversation/visualizer/default.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/critic/impl/api/chat_template.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
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/message.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/observation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/event/llm_convertible/reasoning_utils.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
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/interface.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/manager.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/metadata.py
RENAMED
|
File without changes
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/extensions/installation/utils.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
|
{openhands_sdk-1.58.0 → openhands_sdk-1.58.1}/openhands/sdk/llm/provider_connection_store.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
|