OpenHands / OpenHands/software-agent-sdk

Replace settings and tool metadata probing with typed APIs

Open
#4,978 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement ready-for-dev sdk typing
Dominant language
Python
Stars
1.1k
Forks
542
Avg merge
1d 19h
Merged PRs (30d)
137

Description

Parent tracking issue: #4903

Desired Behavior

Settings variants, profiles, hook collections, tool registration, MCP schema aliases, invoke-skill actions, and skill resources should expose explicit typed APIs. Discriminators and class-level metadata should be declared through base classes, class variables, properties, or typed mappings rather than discovered or attached with getattr/setattr.

Scope

  • Settings models and profile discriminators
  • Tool registry/schema and invoke-skill metadata
  • Hook config collection and skill resource assignment
  • Excludes lazy package exports and platform compatibility helpers

Acceptance Criteria

  • Settings/profile discriminators are declared by their typed base hierarchy.
  • Tool registration and MCP schema alias metadata use declared class APIs.
  • Hook and skill resource collection uses typed mappings or direct fields.
  • Serialization and public schema output remain backward compatible, with targeted regression tests.
  • Relevant baseline entries are removed and persisted-settings/API compatibility checks pass.

This issue was created by an AI agent (OpenHands) on behalf of the user.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading parent issue #4903, then trace the settings/profile models, tool registry and schema metadata, hook config collection, and skill resource assignment named in this issue. Identify the existing probing and baseline entries before changing the APIs. Done means typed declarations replace discovery while serialization, public schemas, persisted-settings checks, and targeted regression tests remain compatible.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.