openhands-sdk 1.44.0__tar.gz → 1.44.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.44.0 → openhands_sdk-1.44.1}/PKG-INFO +2 -2
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/acp_agent.py +15 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/verified_models.py +2 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/profiles/agent_profile.py +3 -3
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/profiles/resolver.py +24 -17
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/registry.py +6 -1
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands_sdk.egg-info/PKG-INFO +2 -2
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands_sdk.egg-info/requires.txt +1 -1
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/pyproject.toml +2 -2
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/acp_file_credentials.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/acp_models.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/acp_tracing.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/agent.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/critic_mixin.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/parallel_executor.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/response_dispatch.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/agent/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/banner.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/agent_context.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/llm_summarizing_condenser.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/no_op_condenser.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/pipeline_condenser.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/prompts/summarizing_prompt.j2 +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/memory.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/presets.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/prompt.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/registry.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/section.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/dynamic.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/planning.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/static.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/templates/ask_agent_template.j2 +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/templates/skill_knowledge_info.j2 +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/manipulation_indices.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/properties/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/properties/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/properties/batch_atomicity.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/properties/observation_uniqueness.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/properties/tool_call_matching.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/properties/tool_loop_atomicity.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/view.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/cancellation.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/conversation.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/conversation_stats.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/event_store.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/events_list_base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/exceptions.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/fifo_lock.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/goal/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/goal/controller.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/goal/judge.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/goal/prompts.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/goal/runner.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/impl/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/impl/local_conversation.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/impl/remote_conversation.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/persistence_const.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/request.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/resource_lock_manager.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/response_utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/secret_registry.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/state.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/stuck_detector.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/title_utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/types.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/visualizer/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/visualizer/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/visualizer/default.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/credential.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/agent_finished.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/api/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/api/chat_template.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/api/client.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/api/critic.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/api/taxonomy.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/empty_patch.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/impl/pass_critic.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/critic/result.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/acp_tool_call.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/condenser.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/conversation_error.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/conversation_state.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/error_classification.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/hook_execution.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_completion_log.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/action.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/message.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/observation.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/reasoning_utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/system.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/resume_transcript.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/streaming_delta.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/token.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/types.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/user_action.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/fetch.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/info.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/interface.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/manager.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/metadata.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/git/cached_repo.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/git/exceptions.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/git/git_changes.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/git/git_commits.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/git/git_diff.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/git/models.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/git/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/hooks/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/hooks/config.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/hooks/conversation_hooks.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/hooks/executor.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/hooks/manager.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/hooks/types.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/io/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/io/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/io/cache.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/io/local.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/io/memory.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/auth/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/auth/credentials.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/auth/openai.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/cleanup_profile.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/exceptions/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/exceptions/classifier.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/exceptions/mapping.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/exceptions/types.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/fallback_strategy.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/llm.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/llm_profile_store.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/llm_registry.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/llm_response.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/message.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/mixins/fn_call_converter.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/mixins/fn_call_examples.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/mixins/non_native_fc.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/options/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/options/chat_options.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/options/common.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/options/responses_options.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/provider_connection_store.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/router/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/router/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/router/impl/multimodal.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/router/impl/random.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/streaming.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/image_inline.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/image_resize.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/litellm_provider.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/metrics.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/model_features.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/model_info.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/model_prompt_spec.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/openhands_provider.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/providers/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/providers/openrouter.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/responses_serialization.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/retry_mixin.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/runtime_metadata.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/telemetry.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/unverified_models.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/llm/utils/vertex_preflight.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/logger/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/logger/logger.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/logger/rolling.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/marketplace/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/marketplace/registration.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/marketplace/registry.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/marketplace/types.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/mcp/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/mcp/client.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/mcp/config.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/mcp/definition.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/mcp/exceptions.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/mcp/tool.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/mcp/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/observability/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/observability/laminar.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/observability/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/discovery.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/fetch.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/format/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/format/agent_plugins.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/format/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/format/claude_code.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/format/schemas/plugin-1.0.0.schema.json +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/installed.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/loader.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/plugin.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/source.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/plugin/types.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/profiles/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/profiles/agent_profile_store.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/profiles/profile_refs.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/profiles/seed.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/py.typed +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/secret/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/secret/secrets.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/_shell_ast.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/analyzer.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/confirmation_policy.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/defense_in_depth/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/defense_in_depth/pattern.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/defense_in_depth/policy_rails.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/defense_in_depth/shell_semantics.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/defense_in_depth/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/ensemble.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/grayswan/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/grayswan/analyzer.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/grayswan/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/llm_analyzer.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/risk.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/shell_parser.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/toolshield_helpers.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/security/toolshield_llm_analyzer.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/settings/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/settings/acp_providers.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/settings/api_models.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/settings/metadata.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/settings/model.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/exceptions.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/execute.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/fetch.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/installed.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/skill.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/trigger.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/types.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/skills/utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/subagent/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/subagent/load.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/subagent/registry.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/subagent/schema.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/testing/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/testing/test_llm.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/builtins/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/builtins/finish.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/builtins/invoke_skill.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/builtins/switch_llm.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/builtins/think.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/builtins/vision_inspect.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/client_tool.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/defaults.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/schema.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/spec.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/tool/tool.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/async_executor.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/async_utils.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/cipher.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/command.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/datetime.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/deprecation.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/files.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/github.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/json.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/models.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/paging.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/path.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/pydantic_secrets.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/redact.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/truncate.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/utils/visualize.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/local.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/models.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/remote/__init__.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/remote/async_remote_workspace.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/remote/base.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/remote/remote_workspace_mixin.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/repo.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/workspace/workspace.py +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands_sdk.egg-info/SOURCES.txt +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands_sdk.egg-info/dependency_links.txt +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands_sdk.egg-info/top_level.txt +0 -0
- {openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openhands-sdk
|
|
3
|
-
Version: 1.44.
|
|
3
|
+
Version: 1.44.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
|
|
@@ -22,7 +22,7 @@ Requires-Dist: python-frontmatter>=1.1.0
|
|
|
22
22
|
Requires-Dist: python-json-logger>=3.3.0
|
|
23
23
|
Requires-Dist: tenacity>=9.1.2
|
|
24
24
|
Requires-Dist: websockets>=12
|
|
25
|
-
Requires-Dist: lmnr<0.8.0,>=0.7.
|
|
25
|
+
Requires-Dist: lmnr<0.8.0,>=0.7.60
|
|
26
26
|
Requires-Dist: tree-sitter>=0.25
|
|
27
27
|
Requires-Dist: tree-sitter-bash>=0.25
|
|
28
28
|
Provides-Extra: boto3
|
|
@@ -1699,6 +1699,21 @@ class ACPAgent(AgentBase):
|
|
|
1699
1699
|
),
|
|
1700
1700
|
)
|
|
1701
1701
|
|
|
1702
|
+
@field_validator("agent_context")
|
|
1703
|
+
@classmethod
|
|
1704
|
+
def _drop_project_skills(cls, value: AgentContext | None) -> AgentContext | None:
|
|
1705
|
+
"""Clear ``load_project_skills`` — ACP CLIs read the repo themselves.
|
|
1706
|
+
|
|
1707
|
+
Claude Code, Codex and Gemini already ingest ``AGENTS.md`` / ``CLAUDE.md``
|
|
1708
|
+
and their own project skills from the session cwd, so loading them here
|
|
1709
|
+
too would put that content in the prompt twice. Normalised rather than
|
|
1710
|
+
rejected: callers legitimately set the flag on a shared context they also
|
|
1711
|
+
use for OpenHands agents (#4019).
|
|
1712
|
+
"""
|
|
1713
|
+
if value is None or not value.load_project_skills:
|
|
1714
|
+
return value
|
|
1715
|
+
return value.model_copy(update={"load_project_skills": False})
|
|
1716
|
+
|
|
1702
1717
|
def model_post_init(self, __context: object) -> None:
|
|
1703
1718
|
super().model_post_init(__context)
|
|
1704
1719
|
# Propagate the actual model name to the sentinel LLM and its
|
|
@@ -69,6 +69,7 @@ VERIFIED_DEEPSEEK_MODELS = [
|
|
|
69
69
|
"deepseek-chat",
|
|
70
70
|
"deepseek-v3.2-reasoner",
|
|
71
71
|
"deepseek-v4-pro",
|
|
72
|
+
"deepseek-v4-flash",
|
|
72
73
|
]
|
|
73
74
|
|
|
74
75
|
VERIFIED_MOONSHOT_MODELS = [
|
|
@@ -131,6 +132,7 @@ VERIFIED_OPENHANDS_MODELS = [
|
|
|
131
132
|
"deepseek-chat",
|
|
132
133
|
"deepseek-v3.2-reasoner",
|
|
133
134
|
"deepseek-v4-pro",
|
|
135
|
+
"deepseek-v4-flash",
|
|
134
136
|
"kimi-k3",
|
|
135
137
|
"kimi-k2-thinking",
|
|
136
138
|
"kimi-k2.6",
|
|
@@ -224,9 +224,9 @@ class ACPAgentProfile(AgentProfileBase):
|
|
|
224
224
|
),
|
|
225
225
|
)
|
|
226
226
|
# No skill-selection field: ACP agents own their tooling and prompt
|
|
227
|
-
# construction
|
|
228
|
-
#
|
|
229
|
-
#
|
|
227
|
+
# construction. Project skills never reach one (the CLI reads the repo
|
|
228
|
+
# itself, #4019); whether any managed skill does is a deployment choice the
|
|
229
|
+
# caller expresses through ``resolve_agent_profile``'s ``available_skills``.
|
|
230
230
|
acp_server: ACPServerKind = Field(
|
|
231
231
|
default="claude-code",
|
|
232
232
|
description=(
|
|
@@ -261,18 +261,21 @@ def _build_openhands_settings(
|
|
|
261
261
|
def _build_acp_settings(
|
|
262
262
|
profile: ACPAgentProfile,
|
|
263
263
|
mcp_config: dict[str, MCPServer],
|
|
264
|
+
managed_skills: list[Skill],
|
|
264
265
|
) -> AgentSettingsConfig:
|
|
265
266
|
"""Compose the resolved ``ACPAgentSettings`` from a profile.
|
|
266
267
|
|
|
267
268
|
``acp_command`` is stored as a shell string and split into the settings'
|
|
268
269
|
token list. No credential is set — provider creds ride
|
|
269
|
-
``state.secret_registry``.
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
270
|
+
``state.secret_registry``.
|
|
271
|
+
|
|
272
|
+
``load_project_skills`` stays ``False``: an ACP CLI reads ``AGENTS.md`` /
|
|
273
|
+
``CLAUDE.md`` and its own project skills from the session cwd, so loading
|
|
274
|
+
them here would duplicate that content in the prompt (#4019).
|
|
275
|
+
``managed_skills`` is what the *deployment* chose to inject — empty when the
|
|
276
|
+
ACP CLI can reach its own host configuration, non-empty in a container where
|
|
277
|
+
it cannot. ``current_datetime=None`` matches ACP's no-timestamp convention.
|
|
278
|
+
A ``custom`` server has no default command, so one must be supplied.
|
|
276
279
|
"""
|
|
277
280
|
command = shlex.split(profile.acp_command) if profile.acp_command else []
|
|
278
281
|
if profile.acp_server == "custom" and not command:
|
|
@@ -281,7 +284,7 @@ def _build_acp_settings(
|
|
|
281
284
|
"default launch command to fall back to"
|
|
282
285
|
)
|
|
283
286
|
agent_context = AgentContext(
|
|
284
|
-
skills=
|
|
287
|
+
skills=managed_skills, current_datetime=None, load_project_skills=False
|
|
285
288
|
)
|
|
286
289
|
payload = {
|
|
287
290
|
"schema_version": AGENT_SETTINGS_SCHEMA_VERSION,
|
|
@@ -313,10 +316,10 @@ def resolve_agent_profile(
|
|
|
313
316
|
decrypted by the caller (the agent-server runs settings decryption
|
|
314
317
|
before calling). ``available_skills`` is the server-discovered skill catalog
|
|
315
318
|
(the agent-server caller passes the result of ``load_all_skills``); an
|
|
316
|
-
OpenHands profile keeps all of it except the names in ``disabled_skills
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
319
|
+
OpenHands profile keeps all of it except the names in ``disabled_skills``,
|
|
320
|
+
and an ACP profile keeps all of it (it has no deny-list). ``None`` means the
|
|
321
|
+
caller injected no catalog — discovery was not run, failed, or, for ACP, the
|
|
322
|
+
deployment leaves skill sourcing to the CLI. Unlike the ``mcp_server_refs``
|
|
320
323
|
allow-list, the ``disabled_skills`` deny-list can never dangle, so this
|
|
321
324
|
never raises for skills. ``cipher`` decrypts the referenced LLM profile.
|
|
322
325
|
|
|
@@ -340,7 +343,9 @@ def resolve_agent_profile(
|
|
|
340
343
|
) from e
|
|
341
344
|
return _build_openhands_settings(profile, llm, filtered_mcp, filtered_skills)
|
|
342
345
|
|
|
343
|
-
return _build_acp_settings(
|
|
346
|
+
return _build_acp_settings(
|
|
347
|
+
profile, filtered_mcp, _apply_disabled_skills(available_skills, [])
|
|
348
|
+
)
|
|
344
349
|
|
|
345
350
|
|
|
346
351
|
def resolve_agent_profile_dry_run(
|
|
@@ -375,15 +380,17 @@ def resolve_agent_profile_dry_run(
|
|
|
375
380
|
"MCP server(s) not configured: " + ", ".join(dangling)
|
|
376
381
|
)
|
|
377
382
|
|
|
378
|
-
# Skill selection report
|
|
379
|
-
#
|
|
383
|
+
# Skill selection report. Deny-list semantics: the catalog minus disabled
|
|
384
|
+
# names, never dangling. An ACP profile has no deny-list of its own — its
|
|
385
|
+
# catalog is whatever the deployment injects (empty unless the caller passes
|
|
386
|
+
# one), and never includes project skills (#4019).
|
|
380
387
|
if isinstance(profile, OpenHandsAgentProfile):
|
|
381
388
|
filtered_skills = _apply_disabled_skills(
|
|
382
389
|
available_skills, profile.disabled_skills
|
|
383
390
|
)
|
|
384
391
|
diagnostics.disabled_skills = profile.disabled_skills
|
|
385
392
|
else:
|
|
386
|
-
filtered_skills = []
|
|
393
|
+
filtered_skills = _apply_disabled_skills(available_skills, [])
|
|
387
394
|
diagnostics.resolved_skills = [s.name for s in filtered_skills]
|
|
388
395
|
|
|
389
396
|
llm: LLM | None = None
|
|
@@ -431,7 +438,7 @@ def resolve_agent_profile_dry_run(
|
|
|
431
438
|
profile, llm, filtered_mcp, filtered_skills
|
|
432
439
|
)
|
|
433
440
|
else:
|
|
434
|
-
settings = _build_acp_settings(profile, filtered_mcp)
|
|
441
|
+
settings = _build_acp_settings(profile, filtered_mcp, filtered_skills)
|
|
435
442
|
# No expose context => secrets redacted (mcp env/headers, llm api_key).
|
|
436
443
|
diagnostics.resolved_settings = settings.model_dump(mode="json")
|
|
437
444
|
except Exception as e:
|
|
@@ -153,7 +153,12 @@ def resolve_tool(
|
|
|
153
153
|
resolver = _REG.get(tool_spec.name)
|
|
154
154
|
|
|
155
155
|
if resolver is None:
|
|
156
|
-
|
|
156
|
+
from openhands.sdk.tool.builtins import BUILT_IN_TOOL_CLASSES
|
|
157
|
+
|
|
158
|
+
tool_class = BUILT_IN_TOOL_CLASSES.get(tool_spec.name)
|
|
159
|
+
if tool_class is None:
|
|
160
|
+
raise KeyError(f"ToolDefinition '{tool_spec.name}' is not registered")
|
|
161
|
+
resolver = _resolver_from_subclass(tool_spec.name, tool_class)
|
|
157
162
|
|
|
158
163
|
params = dict(tool_spec.params)
|
|
159
164
|
response_schema = params.pop("response_schema", None)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openhands-sdk
|
|
3
|
-
Version: 1.44.
|
|
3
|
+
Version: 1.44.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
|
|
@@ -22,7 +22,7 @@ Requires-Dist: python-frontmatter>=1.1.0
|
|
|
22
22
|
Requires-Dist: python-json-logger>=3.3.0
|
|
23
23
|
Requires-Dist: tenacity>=9.1.2
|
|
24
24
|
Requires-Dist: websockets>=12
|
|
25
|
-
Requires-Dist: lmnr<0.8.0,>=0.7.
|
|
25
|
+
Requires-Dist: lmnr<0.8.0,>=0.7.60
|
|
26
26
|
Requires-Dist: tree-sitter>=0.25
|
|
27
27
|
Requires-Dist: tree-sitter-bash>=0.25
|
|
28
28
|
Provides-Extra: boto3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "openhands-sdk"
|
|
3
|
-
version = "1.44.
|
|
3
|
+
version = "1.44.1"
|
|
4
4
|
description = "OpenHands SDK - Core functionality for building AI agents"
|
|
5
5
|
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -20,7 +20,7 @@ dependencies = [
|
|
|
20
20
|
"python-json-logger>=3.3.0",
|
|
21
21
|
"tenacity>=9.1.2",
|
|
22
22
|
"websockets>=12",
|
|
23
|
-
"lmnr>=0.7.
|
|
23
|
+
"lmnr>=0.7.60,<0.8.0",
|
|
24
24
|
"tree-sitter>=0.25",
|
|
25
25
|
"tree-sitter-bash>=0.25",
|
|
26
26
|
]
|
|
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.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/condenser/no_op_condenser.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.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
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/__init__.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/dynamic.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/planning.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/prompts/sections/static.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/context/view/manipulation_indices.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.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.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/conversation_stats.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.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.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/impl/local_conversation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/impl/remote_conversation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/persistence_const.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.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.44.0 → openhands_sdk-1.44.1}/openhands/sdk/conversation/visualizer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.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.44.0 → openhands_sdk-1.44.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.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/message.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/event/llm_convertible/observation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.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
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/interface.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/manager.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.1}/openhands/sdk/extensions/installation/metadata.py
RENAMED
|
File without changes
|
{openhands_sdk-1.44.0 → openhands_sdk-1.44.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
|