From 3605f1337f22c1f3cb8dfb56ee064327bb0ab56d Mon Sep 17 00:00:00 2001 From: Copilot <223556219+Copilot@users.noreply.github.com> Date: Wed, 20 May 2026 14:22:04 -0400 Subject: [PATCH 1/2] Add Rust (and C# where missing) to SDK language lists in docs Update documentation, READMEs, copilot instructions, and test scenario files to include Rust in all language listings where it was missing. Also add C# to test scenario docs where implementations already exist but were not listed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/copilot-instructions.md | 2 +- CONTRIBUTING.md | 2 +- docs/features/index.md | 2 +- docs/integrations/microsoft-agent-framework.md | 2 +- docs/observability/opentelemetry.md | 14 +++++++------- docs/troubleshooting/mcp-debugging.md | 2 +- test/scenarios/README.md | 4 ++-- test/scenarios/prompts/attachments/README.md | 4 ++-- test/scenarios/prompts/attachments/sample-data.txt | 2 +- test/scenarios/transport/README.md | 6 +++--- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 1dad5f95c..f9ca4db84 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -4,7 +4,7 @@ ## Big picture 🔧 -- The repo implements language SDKs (Node/TS, Python, Go, .NET) that speak to the **Copilot CLI** via **JSON‑RPC** (see `README.md` and `nodejs/src/client.ts`). +- The repo implements language SDKs (Node/TS, Python, Go, .NET, Rust) that speak to the **Copilot CLI** via **JSON‑RPC** (see `README.md` and `nodejs/src/client.ts`). - Typical flow: your App → SDK client → JSON-RPC → Copilot CLI (server mode). The CLI must be installed or you can connect to an external CLI server via the `CLI URL option (language-specific casing)` (Node: `cliUrl`, Go: `CLIUrl`, .NET: `CliUrl`, Python: `cli_url`). ## Most important files to read first 📚 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7dbe1b492..2fa57dbe6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ Thanks for your interest in contributing! -This repository contains the Copilot SDK, a set of multi-language SDKs (Node/TypeScript, Python, Go, .NET) for building applications with the GitHub Copilot agent, maintained by the GitHub Copilot team. +This repository contains the Copilot SDK, a set of multi-language SDKs (Node/TypeScript, Python, Go, .NET, Rust) for building applications with the GitHub Copilot agent, maintained by the GitHub Copilot team. Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE). diff --git a/docs/features/index.md b/docs/features/index.md index 5c97a007b..0b1b3a2e2 100644 --- a/docs/features/index.md +++ b/docs/features/index.md @@ -1,6 +1,6 @@ # Features -These guides cover the capabilities you can add to your Copilot SDK application. Each guide includes examples in all supported languages (TypeScript, Python, Go, .NET, and Java). +These guides cover the capabilities you can add to your Copilot SDK application. Each guide includes examples in all supported languages (TypeScript, Python, Go, .NET, Java, and Rust). > **New to the SDK?** Start with the [Getting Started tutorial](../getting-started.md) first, then come back here to add more capabilities. diff --git a/docs/integrations/microsoft-agent-framework.md b/docs/integrations/microsoft-agent-framework.md index 4c74092ee..4da47104c 100644 --- a/docs/integrations/microsoft-agent-framework.md +++ b/docs/integrations/microsoft-agent-framework.md @@ -14,7 +14,7 @@ The Microsoft Agent Framework is the unified successor to Semantic Kernel and Au | **A2A protocol** | Agent-to-Agent communication standard supported by the framework | > [!NOTE] -> MAF integration packages are available for **.NET** and **Python**. For TypeScript, Go, and Java, use the Copilot SDK directly—the standard SDK APIs already provide tool calling, streaming, and custom agents. +> MAF integration packages are available for **.NET** and **Python**. For TypeScript, Go, Java, and Rust, use the Copilot SDK directly—the standard SDK APIs already provide tool calling, streaming, and custom agents. ## Prerequisites diff --git a/docs/observability/opentelemetry.md b/docs/observability/opentelemetry.md index 8ef04c832..d98314b2b 100644 --- a/docs/observability/opentelemetry.md +++ b/docs/observability/opentelemetry.md @@ -86,13 +86,13 @@ var client = new CopilotClient(new CopilotClientOptions() ### TelemetryConfig options -| Option | Node.js | Python | Go | .NET | Java | Description | -|---|---|---|---|---|---|---| -| OTLP endpoint | `otlpEndpoint` | `otlp_endpoint` | `OTLPEndpoint` | `OtlpEndpoint` | `otlpEndpoint` | OTLP HTTP endpoint URL | -| File path | `filePath` | `file_path` | `FilePath` | `FilePath` | `filePath` | File path for JSON-lines trace output | -| Exporter type | `exporterType` | `exporter_type` | `ExporterType` | `ExporterType` | `exporterType` | `"otlp-http"` or `"file"` | -| Source name | `sourceName` | `source_name` | `SourceName` | `SourceName` | `sourceName` | Instrumentation scope name | -| Capture content | `captureContent` | `capture_content` | `CaptureContent` | `CaptureContent` | `captureContent` | Whether to capture message content | +| Option | Node.js | Python | Go | .NET | Java | Rust | Description | +|---|---|---|---|---|---|---|---| +| OTLP endpoint | `otlpEndpoint` | `otlp_endpoint` | `OTLPEndpoint` | `OtlpEndpoint` | `otlpEndpoint` | `otlp_endpoint` | OTLP HTTP endpoint URL | +| File path | `filePath` | `file_path` | `FilePath` | `FilePath` | `filePath` | `file_path` | File path for JSON-lines trace output | +| Exporter type | `exporterType` | `exporter_type` | `ExporterType` | `ExporterType` | `exporterType` | `exporter_type` | `"otlp-http"` or `"file"` | +| Source name | `sourceName` | `source_name` | `SourceName` | `SourceName` | `sourceName` | `source_name` | Instrumentation scope name | +| Capture content | `captureContent` | `capture_content` | `CaptureContent` | `CaptureContent` | `captureContent` | `capture_content` | Whether to capture message content | ### Trace context propagation diff --git a/docs/troubleshooting/mcp-debugging.md b/docs/troubleshooting/mcp-debugging.md index fe001a13f..eb98eb1bd 100644 --- a/docs/troubleshooting/mcp-debugging.md +++ b/docs/troubleshooting/mcp-debugging.md @@ -446,7 +446,7 @@ When opening an issue or asking for help, collect: * [ ] SDK language and version * [ ] CLI version (`copilot --version`) -* [ ] MCP server type (Node.js, Python, .NET, Go, etc.) +* [ ] MCP server type (Node.js, Python, .NET, Go, Rust, etc.) * [ ] Full MCP server configuration (redact secrets) * [ ] Result of manual `initialize` test * [ ] Result of manual `tools/list` test diff --git a/test/scenarios/README.md b/test/scenarios/README.md index e45aac32f..ceb94a29d 100644 --- a/test/scenarios/README.md +++ b/test/scenarios/README.md @@ -1,6 +1,6 @@ # SDK E2E Scenario Tests -End-to-end scenario tests for the Copilot SDK. Each scenario demonstrates a specific SDK capability with implementations in TypeScript, Python, and Go. +End-to-end scenario tests for the Copilot SDK. Each scenario demonstrates a specific SDK capability with implementations in TypeScript, Python, Go, C#, and Rust. ## Structure @@ -35,4 +35,4 @@ COPILOT_CLI_PATH=/path/to/copilot GITHUB_TOKEN=$(gh auth token) bash / - **Copilot CLI** — set `COPILOT_CLI_PATH` - **GitHub token** — set `GITHUB_TOKEN` or use `gh auth login` -- **Node.js 20+**, **Python 3.10+**, **Go 1.24+** (per language) +- **Node.js 20+**, **Python 3.10+**, **Go 1.24+**, **.NET 8+**, **Rust 1.94+** (per language) diff --git a/test/scenarios/prompts/attachments/README.md b/test/scenarios/prompts/attachments/README.md index 145239f08..4c6918f35 100644 --- a/test/scenarios/prompts/attachments/README.md +++ b/test/scenarios/prompts/attachments/README.md @@ -7,7 +7,7 @@ Demonstrates sending **file attachments** alongside a prompt using the Copilot S 1. Creates a session with a custom system prompt in `replace` mode 2. Resolves the path to `sample-data.txt` (a small text file in the scenario root) 3. Sends: _"What languages are listed in the attached file?"_ with the file as an attachment -4. Prints the response — which should list TypeScript, Python, and Go +4. Prints the response — which should list TypeScript, Python, Go, C#, and Rust ## Attachment Format @@ -51,7 +51,7 @@ The `sample-data.txt` file contains basic project metadata used as the attachmen Project: Copilot SDK Samples Version: 1.0.0 Description: Minimal buildable samples demonstrating the Copilot SDK -Languages: TypeScript, Python, Go +Languages: TypeScript, Python, Go, C#, Rust ``` ## Run diff --git a/test/scenarios/prompts/attachments/sample-data.txt b/test/scenarios/prompts/attachments/sample-data.txt index ea82ad2d3..449dec12c 100644 --- a/test/scenarios/prompts/attachments/sample-data.txt +++ b/test/scenarios/prompts/attachments/sample-data.txt @@ -1,4 +1,4 @@ Project: Copilot SDK Samples Version: 1.0.0 Description: Minimal buildable samples demonstrating the Copilot SDK -Languages: TypeScript, Python, Go +Languages: TypeScript, Python, Go, C#, Rust diff --git a/test/scenarios/transport/README.md b/test/scenarios/transport/README.md index d986cc7ad..a7d48a52b 100644 --- a/test/scenarios/transport/README.md +++ b/test/scenarios/transport/README.md @@ -6,8 +6,8 @@ Minimal samples organized by **transport model** — the wire protocol used to c | Transport | Description | Languages | |-----------|-------------|-----------| -| **[stdio](stdio/)** | SDK spawns `copilot` as a child process and communicates via stdin/stdout | TypeScript, Python, Go | -| **[tcp](tcp/)** | SDK connects to a pre-running `copilot` TCP server | TypeScript, Python, Go | +| **[stdio](stdio/)** | SDK spawns `copilot` as a child process and communicates via stdin/stdout | TypeScript, Python, Go, C#, Rust | +| **[tcp](tcp/)** | SDK connects to a pre-running `copilot` TCP server | TypeScript, Python, Go, C#, Rust | | **[wasm](wasm/)** | SDK loads `copilot` as an in-process WASM module | TypeScript | ## How They Differ @@ -23,7 +23,7 @@ Minimal samples organized by **transport model** — the wire protocol used to c - **Authentication** — set `GITHUB_TOKEN`, or run `gh auth login` - **Copilot CLI** — required for stdio and tcp (set `COPILOT_CLI_PATH`) -- Language toolchains as needed (Node.js 20+, Python 3.10+, Go 1.24+) +- Language toolchains as needed (Node.js 20+, Python 3.10+, Go 1.24+, .NET 8+, Rust 1.94+) ## Verification From ba8f8a9b99587b291085dd0d452a79c33fbf0b43 Mon Sep 17 00:00:00 2001 From: Copilot <223556219+Copilot@users.noreply.github.com> Date: Wed, 20 May 2026 14:32:46 -0400 Subject: [PATCH 2/2] Address review feedback: fix Python version, soften features wording, add Rust OTel example - Fix Python version from 3.10+ to 3.11+ in scenario prerequisite docs (matches pyproject.toml requires-python >= 3.11) - Soften docs/features/index.md wording to 'where available' since not all guides have Rust examples yet - Add Rust TelemetryConfig snippet to opentelemetry.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/features/index.md | 2 +- docs/observability/opentelemetry.md | 15 +++++++++++++++ test/scenarios/README.md | 2 +- test/scenarios/transport/README.md | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/docs/features/index.md b/docs/features/index.md index 0b1b3a2e2..2fa11b76e 100644 --- a/docs/features/index.md +++ b/docs/features/index.md @@ -1,6 +1,6 @@ # Features -These guides cover the capabilities you can add to your Copilot SDK application. Each guide includes examples in all supported languages (TypeScript, Python, Go, .NET, Java, and Rust). +These guides cover the capabilities you can add to your Copilot SDK application. Each guide includes examples in supported languages (TypeScript, Python, Go, .NET, Java, and Rust) where available. > **New to the SDK?** Start with the [Getting Started tutorial](../getting-started.md) first, then come back here to add more capabilities. diff --git a/docs/observability/opentelemetry.md b/docs/observability/opentelemetry.md index d98314b2b..42a5c6e96 100644 --- a/docs/observability/opentelemetry.md +++ b/docs/observability/opentelemetry.md @@ -84,6 +84,21 @@ var client = new CopilotClient(new CopilotClientOptions() +
+Rust + + +```rust +use github_copilot_sdk::{Client, ClientOptions, TelemetryConfig}; + +let client = Client::start(ClientOptions::new() + .with_telemetry(TelemetryConfig::new() + .with_otlp_endpoint("http://localhost:4318")) +).await?; +``` + +
+ ### TelemetryConfig options | Option | Node.js | Python | Go | .NET | Java | Rust | Description | diff --git a/test/scenarios/README.md b/test/scenarios/README.md index ceb94a29d..30be29c44 100644 --- a/test/scenarios/README.md +++ b/test/scenarios/README.md @@ -35,4 +35,4 @@ COPILOT_CLI_PATH=/path/to/copilot GITHUB_TOKEN=$(gh auth token) bash / - **Copilot CLI** — set `COPILOT_CLI_PATH` - **GitHub token** — set `GITHUB_TOKEN` or use `gh auth login` -- **Node.js 20+**, **Python 3.10+**, **Go 1.24+**, **.NET 8+**, **Rust 1.94+** (per language) +- **Node.js 20+**, **Python 3.11+**, **Go 1.24+**, **.NET 8+**, **Rust 1.94+** (per language) diff --git a/test/scenarios/transport/README.md b/test/scenarios/transport/README.md index a7d48a52b..25067158a 100644 --- a/test/scenarios/transport/README.md +++ b/test/scenarios/transport/README.md @@ -23,7 +23,7 @@ Minimal samples organized by **transport model** — the wire protocol used to c - **Authentication** — set `GITHUB_TOKEN`, or run `gh auth login` - **Copilot CLI** — required for stdio and tcp (set `COPILOT_CLI_PATH`) -- Language toolchains as needed (Node.js 20+, Python 3.10+, Go 1.24+, .NET 8+, Rust 1.94+) +- Language toolchains as needed (Node.js 20+, Python 3.11+, Go 1.24+, .NET 8+, Rust 1.94+) ## Verification