Skip to content

Add typed/Pydantic models for OpenShell specs #1822

Closed as not planned
Closed as not planned

Description

@dhirajsb

Motivation

Constructing OpenShell specs directly from raw protobuf objects can be verbose and hard to validate. Typed Python models would improve developer experience and make configuration errors easier to understand.

Proposed change

Add typed models, potentially Pydantic-based, for common OpenShell spec construction. These models should validate user input and convert explicitly to the existing protobuf types.

Acceptance criteria

  • Add typed model(s) for common sandbox/session/spec construction paths.
  • Provide clear validation errors for invalid inputs.
  • Keep protobuf interop explicit and backward compatible.
  • Add unit tests for valid construction, invalid values, and protobuf conversion.
  • Document at least one end-to-end example.

Notes

This is primarily a Python SDK developer-experience improvement and should not require gateway/proto changes.

Activity

  1. dhirajsb commented on Aug 4, 2026

    @dhirajsb
    ContributorAuthor

    @NVIDIA/openshell-codeowners, could you please help with triage on this SDK request?

    Would typed, validated Python models for common OpenShell specs be useful as part of the supported SDK surface? If so, may I revise my experimental branch to the preferred model strategy and submit it as a PR?

    The current spike uses dataclasses, while this issue mentions Pydantic-style validation. I would appreciate direction on that choice and on whether RFC-0008 (#1764), #2565, or another SDK effort already owns these public models.

  2. removed
    state:triage-neededOpened without agent diagnostics and needs triage
    on Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions