Skip to content

Python SDK: typed local client and lifecycle API #165

Description

@SarthakWade

Scope

Publish a Python SDK generated from or validated against the canonical SDK schema.

Provide synchronous and asynchronous clients for host lifecycle, sessions, navigation, semantic inspection, interactions, waits, capture, diagnostics, capabilities, typed errors, cancellation, and timeouts. It should use the existing local transport and require no network service.

Constraints

  • Do not maintain handwritten protocol definitions separate from the canonical schema.
  • Preserve untrusted-content markings in public result types.
  • Credential operations use aliases and challenge IDs only.
  • Subprocess cleanup must work after cancellation, exceptions, signals, and interpreter shutdown.
  • Unsupported capabilities fail explicitly.

Acceptance criteria

  • Supported Python versions and operating systems are documented.
  • Formatting, static typing, packaging, unit tests, and integration tests pass.
  • Golden fixtures prove parity with the Swift protocol and TypeScript SDK.
  • Tests cover startup failure, timeout, cancellation, malformed response, protocol mismatch, and cleanup.
  • Source distributions and wheels contain only intended files and include provenance and compatibility metadata.
  • Examples demonstrate both synchronous and asynchronous usage.

Blocked by #163.

Activity

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

    area:core-protocolHeadlessProtocol: wire protocol, validation, transportarea:mcpstdio MCP server and harness integrationpriority:mediumScheduled, not blockingstatus:blockedWaiting on another item or an owner decisiontype:featureNew capability or command

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions