openhands-sdk 1.52.0__tar.gz → 1.53.0__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.52.0 → openhands_sdk-1.53.0}/PKG-INFO +1 -1
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/observability/laminar.py +6 -13
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/skill.py +26 -3
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands_sdk.egg-info/PKG-INFO +1 -1
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/pyproject.toml +1 -1
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/acp_agent.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/acp_file_credentials.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/acp_models.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/acp_tracing.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/agent.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/critic_mixin.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/parallel_executor.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/response_dispatch.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/stream_context.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/agent/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/automation/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/banner.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/agent_context.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/llm_summarizing_condenser.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/no_op_condenser.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/pipeline_condenser.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/prompts/summarizing_events.j2 +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/prompts/summarizing_system.j2 +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/memory.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/presets.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/prompt.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/registry.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/section.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/dynamic.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/planning.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/static.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/templates/ask_agent_template.j2 +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/templates/skill_knowledge_info.j2 +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/manipulation_indices.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/properties/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/properties/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/properties/batch_atomicity.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/properties/observation_uniqueness.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/properties/tool_call_matching.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/properties/tool_loop_atomicity.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/view.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/cancellation.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/conversation.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/conversation_stats.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/event_store.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/events_list_base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/exceptions.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/fifo_lock.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/goal/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/goal/controller.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/goal/judge.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/goal/prompts.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/goal/runner.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/impl/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/impl/local_conversation.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/impl/remote_conversation.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/persistence_const.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/request.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/resource_lock_manager.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/response_utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/secret_registry.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/state.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/stuck_detector.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/title_utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/types.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/visualizer/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/visualizer/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/visualizer/default.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/credential.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/agent_finished.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/api/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/api/chat_template.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/api/client.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/api/critic.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/api/taxonomy.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/empty_patch.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/impl/pass_critic.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/critic/result.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/acp_tool_call.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/condenser.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/conversation_error.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/conversation_state.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/error_classification.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/hook_execution.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_completion_log.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/action.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/message.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/observation.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/reasoning_utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/system.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/resume_transcript.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/streaming_delta.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/token.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/types.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/user_action.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/fetch.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/info.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/interface.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/manager.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/metadata.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/git/cached_repo.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/git/exceptions.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/git/git_changes.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/git/git_commits.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/git/git_diff.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/git/models.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/git/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/hooks/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/hooks/config.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/hooks/conversation_hooks.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/hooks/executor.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/hooks/manager.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/hooks/types.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/io/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/io/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/io/cache.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/io/local.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/io/memory.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/launch/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/launch/errors.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/launch/finalize.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/launch/preview.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/launch/resolve.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/auth/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/auth/credentials.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/auth/openai.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/call_context.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/cleanup_profile.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/exceptions/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/exceptions/classifier.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/exceptions/mapping.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/exceptions/types.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/fallback_strategy.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/llm.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/llm_profile_store.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/llm_registry.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/llm_response.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/message.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/meta_profile_store.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/mixins/fn_call_converter.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/mixins/fn_call_examples.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/mixins/non_native_fc.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/options/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/options/chat_options.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/options/common.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/options/responses_options.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/provider_connection_store.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/router/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/router/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/router/impl/multimodal.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/router/impl/random.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/streaming.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/image_inline.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/image_resize.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/litellm_provider.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/metrics.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/model_features.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/model_info.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/model_prompt_spec.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/openhands_provider.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/providers/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/providers/openrouter.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/responses_serialization.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/retry_mixin.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/runtime_metadata.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/telemetry.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/unverified_models.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/verified_models.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/utils/vertex_preflight.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/logger/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/logger/logger.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/logger/rolling.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/marketplace/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/marketplace/registration.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/marketplace/registry.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/marketplace/types.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/client.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/config.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/definition.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/exceptions.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/oauth.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/tool.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/mcp/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/observability/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/observability/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/discovery.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/fetch.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/format/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/format/agent_plugins.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/format/agent_plugins_mcp.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/format/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/format/claude_code.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/format/schemas/mcp-1.0.0.schema.json +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/format/schemas/plugin-1.0.0.schema.json +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/installed.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/loader.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/plugin.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/source.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/plugin/types.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/profiles/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/profiles/agent_profile.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/profiles/agent_profile_store.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/profiles/profile_refs.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/profiles/resolver.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/profiles/seed.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/py.typed +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/secret/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/secret/secrets.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/_shell_ast.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/analyzer.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/confirmation_policy.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/defense_in_depth/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/defense_in_depth/pattern.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/defense_in_depth/policy_rails.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/defense_in_depth/shell_semantics.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/defense_in_depth/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/ensemble.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/grayswan/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/grayswan/analyzer.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/grayswan/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/llm_analyzer.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/risk.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/shell_parser.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/toolshield_helpers.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/security/toolshield_llm_analyzer.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/settings/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/settings/acp_install_catalog.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/settings/acp_providers.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/settings/api_models.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/settings/metadata.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/settings/model.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/exceptions.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/execute.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/fetch.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/installed.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/trigger.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/types.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/skills/utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/subagent/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/subagent/load.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/subagent/registry.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/subagent/schema.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/subagent/scope.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/testing/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/testing/test_llm.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/builtins/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/builtins/classify_and_switch_llm.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/builtins/finish.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/builtins/invoke_skill.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/builtins/switch_llm.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/builtins/think.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/builtins/vision_inspect.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/client_tool.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/defaults.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/registry.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/schema.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/spec.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/tool/tool.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/async_executor.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/async_utils.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/cipher.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/command.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/datetime.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/deprecation.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/files.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/github.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/json.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/masking.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/models.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/paging.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/path.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/pydantic_secrets.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/redact.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/truncate.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/utils/visualize.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/local.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/models.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/remote/__init__.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/remote/async_remote_workspace.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/remote/base.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/remote/remote_workspace_mixin.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/repo.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/workspace/workspace.py +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands_sdk.egg-info/SOURCES.txt +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands_sdk.egg-info/dependency_links.txt +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands_sdk.egg-info/requires.txt +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands_sdk.egg-info/top_level.txt +0 -0
- {openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openhands-sdk
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.53.0
|
|
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
|
|
@@ -152,18 +152,6 @@ def _get_int_env(key: str) -> int | None:
|
|
|
152
152
|
return None
|
|
153
153
|
|
|
154
154
|
|
|
155
|
-
def _get_bool_env(key: str) -> bool:
|
|
156
|
-
"""Read an environment variable as a boolean.
|
|
157
|
-
|
|
158
|
-
Returns True if the value is 'true', '1', 'yes', 'on' (case-insensitive).
|
|
159
|
-
Returns False otherwise.
|
|
160
|
-
"""
|
|
161
|
-
val = get_env(key)
|
|
162
|
-
if val is None:
|
|
163
|
-
return False
|
|
164
|
-
return val.lower() in ("true", "1", "yes", "on")
|
|
165
|
-
|
|
166
|
-
|
|
167
155
|
def maybe_init_laminar():
|
|
168
156
|
"""Initialize Laminar if the environment variables are set.
|
|
169
157
|
|
|
@@ -205,7 +193,12 @@ def maybe_init_laminar():
|
|
|
205
193
|
return
|
|
206
194
|
|
|
207
195
|
base_url = get_env("LMNR_BASE_URL") or None
|
|
208
|
-
force_http =
|
|
196
|
+
force_http = (get_env("LMNR_FORCE_HTTP") or "").lower() in (
|
|
197
|
+
"true",
|
|
198
|
+
"1",
|
|
199
|
+
"yes",
|
|
200
|
+
"on",
|
|
201
|
+
)
|
|
209
202
|
instruments_env = get_env("LMNR_INSTRUMENTS")
|
|
210
203
|
instruments = None
|
|
211
204
|
if instruments_env is not None:
|
|
@@ -850,6 +850,7 @@ def load_skills_from_dir(
|
|
|
850
850
|
strict: bool = True,
|
|
851
851
|
recursive: bool = True,
|
|
852
852
|
root: Path | None = None,
|
|
853
|
+
exclude_dirs: set[Path] | None = None,
|
|
853
854
|
) -> tuple[dict[str, Skill], dict[str, Skill], dict[str, Skill]]:
|
|
854
855
|
"""Load all skills from the given directory.
|
|
855
856
|
|
|
@@ -868,6 +869,8 @@ def load_skills_from_dir(
|
|
|
868
869
|
children of skill_dir.
|
|
869
870
|
root: If given, skill paths that resolve outside it (e.g. through a
|
|
870
871
|
symlink) are skipped. Plugins pass their root here.
|
|
872
|
+
exclude_dirs: Directories whose regular .md files are not loaded as
|
|
873
|
+
skills (e.g. managed installed packages inside a user skills dir).
|
|
871
874
|
|
|
872
875
|
Returns:
|
|
873
876
|
Tuple of (repo_skills, knowledge_skills, agent_skills) dictionaries.
|
|
@@ -889,7 +892,17 @@ def load_skills_from_dir(
|
|
|
889
892
|
# doesn't exist.
|
|
890
893
|
skill_md_files = find_skill_md_directories(skill_dir, root)
|
|
891
894
|
skill_md_dirs = {skill_md.parent for skill_md in skill_md_files}
|
|
892
|
-
|
|
895
|
+
# Rebase exclusions onto skill_dir so they still match when skill_dir is
|
|
896
|
+
# reached through a symlink (e.g. ~/.agents/skills -> ~/.openhands/skills).
|
|
897
|
+
real_skill_dir = skill_dir.resolve()
|
|
898
|
+
rebased_exclude_dirs = {
|
|
899
|
+
skill_dir / real.relative_to(real_skill_dir)
|
|
900
|
+
for d in exclude_dirs or ()
|
|
901
|
+
if (real := d.resolve()).is_relative_to(real_skill_dir)
|
|
902
|
+
}
|
|
903
|
+
regular_md_files = find_regular_md_files(
|
|
904
|
+
skill_dir, skill_md_dirs | rebased_exclude_dirs, recursive, root
|
|
905
|
+
)
|
|
893
906
|
|
|
894
907
|
# Load SKILL.md files (auto-detected and validated in Skill.load)
|
|
895
908
|
# Wrap each load in try/except to ensure one bad skill doesn't break all loading
|
|
@@ -956,10 +969,18 @@ def load_user_skills() -> list[Skill]:
|
|
|
956
969
|
List of Skill objects loaded from user directories.
|
|
957
970
|
Returns empty list if no skills found or loading fails.
|
|
958
971
|
"""
|
|
972
|
+
from openhands.sdk.skills.installed import get_installed_skills_dir
|
|
973
|
+
|
|
959
974
|
all_skills: list[Skill] = []
|
|
960
975
|
seen_names: set[str] = set()
|
|
961
976
|
|
|
962
|
-
_load_and_merge_from_dirs(
|
|
977
|
+
_load_and_merge_from_dirs(
|
|
978
|
+
USER_SKILLS_DIRS,
|
|
979
|
+
seen_names,
|
|
980
|
+
all_skills,
|
|
981
|
+
"user skills",
|
|
982
|
+
exclude_dirs={get_installed_skills_dir()},
|
|
983
|
+
)
|
|
963
984
|
|
|
964
985
|
# Load enabled installed skills (lower precedence than user skills)
|
|
965
986
|
try:
|
|
@@ -1013,6 +1034,7 @@ def _load_and_merge_from_dirs(
|
|
|
1013
1034
|
seen_names: set[str],
|
|
1014
1035
|
all_skills: list[Skill],
|
|
1015
1036
|
source_label: str,
|
|
1037
|
+
exclude_dirs: set[Path] | None = None,
|
|
1016
1038
|
) -> None:
|
|
1017
1039
|
"""Load skills from multiple directories, merging with deduplication.
|
|
1018
1040
|
|
|
@@ -1025,6 +1047,7 @@ def _load_and_merge_from_dirs(
|
|
|
1025
1047
|
seen_names: Set of already-seen skill names (mutated in place).
|
|
1026
1048
|
all_skills: Accumulator list of skills (mutated in place).
|
|
1027
1049
|
source_label: Human-readable label for log messages (e.g. "user skills").
|
|
1050
|
+
exclude_dirs: Passed through to load_skills_from_dir().
|
|
1028
1051
|
"""
|
|
1029
1052
|
for skills_dir in dirs:
|
|
1030
1053
|
if not skills_dir.exists():
|
|
@@ -1034,7 +1057,7 @@ def _load_and_merge_from_dirs(
|
|
|
1034
1057
|
try:
|
|
1035
1058
|
logger.debug(f"Loading {source_label} from {skills_dir}")
|
|
1036
1059
|
repo_skills, knowledge_skills, agent_skills = load_skills_from_dir(
|
|
1037
|
-
skills_dir
|
|
1060
|
+
skills_dir, exclude_dirs=exclude_dirs
|
|
1038
1061
|
)
|
|
1039
1062
|
_merge_loaded_skills(
|
|
1040
1063
|
source_dir=skills_dir,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openhands-sdk
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.53.0
|
|
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
|
|
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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/condenser/no_op_condenser.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/__init__.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/dynamic.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/planning.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/prompts/sections/static.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/context/view/manipulation_indices.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/conversation_stats.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/impl/local_conversation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/impl/remote_conversation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/persistence_const.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/conversation/visualizer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/message.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/event/llm_convertible/observation.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/interface.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/manager.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/openhands/sdk/extensions/installation/metadata.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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.52.0 → openhands_sdk-1.53.0}/openhands/sdk/llm/options/responses_options.py
RENAMED
|
File without changes
|
{openhands_sdk-1.52.0 → openhands_sdk-1.53.0}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|