Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 📚
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

Expand Down
2 changes: 1 addition & 1 deletion docs/features/index.md
Original file line number Diff line number Diff line change
@@ -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 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.

Expand Down
2 changes: 1 addition & 1 deletion docs/integrations/microsoft-agent-framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
29 changes: 22 additions & 7 deletions docs/observability/opentelemetry.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,30 @@ var client = new CopilotClient(new CopilotClientOptions()

</details>

<details>
<summary><strong>Rust</strong></summary>

<!-- docs-validate: skip -->
```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?;
```

</details>

### 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 |
Comment thread
stephentoub marked this conversation as resolved.

### Trace context propagation

Expand Down
2 changes: 1 addition & 1 deletion docs/troubleshooting/mcp-debugging.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions test/scenarios/README.md
Original file line number Diff line number Diff line change
@@ -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.
Comment thread
stephentoub marked this conversation as resolved.

## Structure

Expand Down Expand Up @@ -35,4 +35,4 @@ COPILOT_CLI_PATH=/path/to/copilot GITHUB_TOKEN=$(gh auth token) bash <category>/

- **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.11+**, **Go 1.24+**, **.NET 8+**, **Rust 1.94+** (per language)
4 changes: 2 additions & 2 deletions test/scenarios/prompts/attachments/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion test/scenarios/prompts/attachments/sample-data.txt
Original file line number Diff line number Diff line change
@@ -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
6 changes: 3 additions & 3 deletions test/scenarios/transport/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.11+, Go 1.24+, .NET 8+, Rust 1.94+)

## Verification

Expand Down
Loading