From 3c5e4aa68fbe39cf35145bd29e7810329a345d06 Mon Sep 17 00:00:00 2001 From: neubig Date: Sun, 23 Aug 2026 14:45:30 +0000 Subject: [PATCH 1/2] docs: document TypeScript client boundaries Clarify the client API boundary and related repository responsibilities. Fixes #355 Co-authored-by: openhands --- AGENTS.md | 8 ++++++++ CONTRIBUTING.md | 4 +++- README.md | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 07dc4a3..5ef53a4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,6 +6,14 @@ This repository contains a TypeScript client library for the OpenHands Agent Ser The client is designed to mirror the structure and functionality of the Python SDK (`software-agent-sdk`) while providing idiomatic TypeScript/JavaScript APIs with full type safety and modern development tooling. +## Cross-Repository Boundaries + +This repository owns the browser-compatible TypeScript client for the OpenHands Agent Server API. The canonical API implementation and behavior belong to [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk); [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) consumes this client for Agent Canvas UI; and [`OpenHands/automation`](https://github.com/OpenHands/automation) owns scheduling, webhooks, run history, and dispatching. + +The normal flow is SDK/Agent Server → OpenAPI contract → this client → Agent Canvas. Keep backend behavior and endpoints in the SDK, typed API access here, UI in Agent Canvas, and automation lifecycle behavior in `automation`. If a PR is opened in the wrong repository, explicitly recommend closing and moving it to the owning repository rather than merging it here. + +All pull requests must follow the repository's contribution and applicable code-review guidance. + ## Key Features - **Complete API Coverage**: Implements all endpoints from the OpenHands Agent Server OpenAPI specification diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8213cbd..e5571c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -62,8 +62,10 @@ python scripts/check-acp-drift.py ## Pull requests +- Confirm the change belongs in `typescript-client`: backend behavior and endpoints belong in [`software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk), UI belongs in [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands), and scheduling/webhooks/dispatch belong in [`OpenHands/automation`](https://github.com/OpenHands/automation). +- If a PR is opened in the wrong repository, recommend closing and moving it to the repository that owns the change. - Open focused PRs with a clear description of what changed and why. -- Make sure the relevant checks pass before requesting review. +- Follow the repository's applicable code-review guidance and make sure the relevant checks pass before requesting review. - Use conventional prefixes in the PR title when possible, such as `feat`, `fix`, `docs`, `refactor`, `test`, `build`, `ci`, or `chore`. - Include screenshots or recordings when changing user-facing example apps or diff --git a/README.md b/README.md index 87778ae..a2501c1 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,13 @@ Pinned PR CI is reproducible and required. A separate weekly `main` commit, records that SHA, and opens or updates an informational drift issue. Ordinary client PRs never generate from the moving SDK branch. + +## Repository boundaries + +This repository owns the browser-compatible typed client for the OpenHands Agent Server API. [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk) owns the canonical API implementation, Agent Server, and agent behavior; [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) consumes this client for Agent Canvas UI; and [`OpenHands/automation`](https://github.com/OpenHands/automation) owns scheduling, webhooks, run history, and dispatching. + +The normal flow is SDK/Agent Server → OpenAPI contract → this client → Agent Canvas. Add typed endpoint access here, backend behavior in the SDK, UI in Canvas, and automation lifecycle behavior in `automation`. A PR opened in the wrong repository should be closed and moved to the repository that owns the change. + ## Quick Start ### Start an AgentServer From 3a6383fda0b3406ab8e4688d50b907fd315ef8fa Mon Sep 17 00:00:00 2001 From: neubig Date: Sun, 23 Aug 2026 14:56:40 +0000 Subject: [PATCH 2/2] docs: include extensions repository boundary Keep the cross-repository ownership model consistent with OpenHands extensions. Co-authored-by: openhands --- AGENTS.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 5ef53a4..b41ee2a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,7 +8,7 @@ The client is designed to mirror the structure and functionality of the Python S ## Cross-Repository Boundaries -This repository owns the browser-compatible TypeScript client for the OpenHands Agent Server API. The canonical API implementation and behavior belong to [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk); [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) consumes this client for Agent Canvas UI; and [`OpenHands/automation`](https://github.com/OpenHands/automation) owns scheduling, webhooks, run history, and dispatching. +This repository owns the browser-compatible TypeScript client for the OpenHands Agent Server API. The canonical API implementation and behavior belong to [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk); [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) consumes this client for Agent Canvas UI; and [`OpenHands/extensions`](https://github.com/OpenHands/extensions) owns reusable skills, plugins, automations, and integrations; [`OpenHands/automation`](https://github.com/OpenHands/automation) owns scheduling, webhooks, run history, and dispatching. The normal flow is SDK/Agent Server → OpenAPI contract → this client → Agent Canvas. Keep backend behavior and endpoints in the SDK, typed API access here, UI in Agent Canvas, and automation lifecycle behavior in `automation`. If a PR is opened in the wrong repository, explicitly recommend closing and moving it to the owning repository rather than merging it here. diff --git a/README.md b/README.md index a2501c1..34a8bf3 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ issue. Ordinary client PRs never generate from the moving SDK branch. ## Repository boundaries -This repository owns the browser-compatible typed client for the OpenHands Agent Server API. [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk) owns the canonical API implementation, Agent Server, and agent behavior; [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) consumes this client for Agent Canvas UI; and [`OpenHands/automation`](https://github.com/OpenHands/automation) owns scheduling, webhooks, run history, and dispatching. +This repository owns the browser-compatible typed client for the OpenHands Agent Server API. [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk) owns the canonical API implementation, Agent Server, and agent behavior; [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) consumes this client for Agent Canvas UI; and [`OpenHands/extensions`](https://github.com/OpenHands/extensions) owns reusable skills, plugins, automations, and integrations; [`OpenHands/automation`](https://github.com/OpenHands/automation) owns scheduling, webhooks, run history, and dispatching. The normal flow is SDK/Agent Server → OpenAPI contract → this client → Agent Canvas. Add typed endpoint access here, backend behavior in the SDK, UI in Canvas, and automation lifecycle behavior in `automation`. A PR opened in the wrong repository should be closed and moved to the repository that owns the change.