Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
b8a836b
Add session event subscription tests for all SDKs (#16)
SteveSandersonMS Jan 15, 2026
dc49827
Update `@github/copilot` to latest (#20)
devm33 Jan 15, 2026
1e23513
React to CLI update and Anthropic response format changes (#27)
SteveSandersonMS Jan 16, 2026
cd198b5
Add sendAndWait API for all SDKs (#28)
SteveSandersonMS Jan 16, 2026
ac0e763
Fix StreamJsonRpc dependency to be transitive for consumers (#37)
SteveSandersonMS Jan 16, 2026
86c1a46
Add Go submodule version tags for reproducible builds (#33)
Copilot Jan 19, 2026
4b1d5d4
Correct backtick code block formatting (#43)
leereilly Jan 19, 2026
9f6b764
Add minor updates to python sdk (#45)
sugatoray Jan 19, 2026
f1583e3
Add tests to verify forward compatibility for unknown session event t…
Copilot Jan 19, 2026
35d3710
feat: Refactor session event handler management to use unique IDs for…
nathfavour Jan 19, 2026
d4ca58f
Fix Go e2e tests not running in CI (#47)
SteveSandersonMS Jan 19, 2026
af66bfd
Fix JSON-RPC pipe reads >64KB by handling short reads (#31)
Copilot Jan 19, 2026
a22c886
Update @github/copilot to 0.0.387 (#54)
devm33 Jan 20, 2026
51f1933
Update client.ts (#56)
doggy8088 Jan 20, 2026
d0b15ef
Allow issue triage workflow to run for all users (#32)
Copilot Jan 20, 2026
a4ffbf0
Improve abort tests across all SDKs; add Go unsubscribe tests (#48)
SteveSandersonMS Jan 20, 2026
ed0182b
Add config dir to session options (#15)
devm33 Jan 20, 2026
24724f7
Update some snapshots; remove redundant ones (#52)
SteveSandersonMS Jan 20, 2026
2415f6f
feat: add skillDirectories and disabledSkills to all SDKs (#57)
friggeri Jan 21, 2026
5731c68
Fix and unskip some skills E2E tests (#69)
SteveSandersonMS Jan 21, 2026
cb80f83
Use STJ's polymorphism support instead of custom converter (#70)
stephentoub Jan 21, 2026
0aebae6
Update CONTRIBUTING.md to clarify contribution types (#68)
SteveSandersonMS Jan 21, 2026
f26e999
Copilot SDK Cookbook (#80)
aaronpowell Jan 22, 2026
afdcdcf
Clear timeout immedatel instead of in finally (#63)
burkeholland Jan 22, 2026
3bb865d
Update README title and add demos folder (#75)
ashleywolf Jan 22, 2026
693c857
Move docs to correct folder (#82)
patniko Jan 22, 2026
e426c17
Move examples and demos docs (#83)
patniko Jan 22, 2026
2005d79
Moving files into the correct locations (#84)
aaronpowell Jan 22, 2026
85754ea
Update README structure and add samples folder (#85)
ashleywolf Jan 22, 2026
8c61cb9
feat: add status, auth, and models metadata APIs to all SDKs (#77)
friggeri Jan 22, 2026
f28a23e
Adding FAQ section to the README (#86)
aaronpowell Jan 22, 2026
4e7319e
Make the .NET library NativeAOT compatible (#81)
stephentoub Jan 22, 2026
ca5a268
Fix code formatting (#90)
SteveSandersonMS Jan 22, 2026
2c3ceb4
fix: correct broken links in cookbook documentation (#93)
GeekTrainer Jan 22, 2026
1f06cf5
Fix .NET SDK prerequisites in CONTRIBUTING.md (#87)
Copilot Jan 22, 2026
a11b23b
fix: remove temporary README.md replacement step from publish workflo…
patniko Jan 23, 2026
41f0071
Modify npm init command for module type (#132)
sinedied Jan 23, 2026
f7b7f50
Document external CLI server connection (#103)
Copilot Jan 23, 2026
c8fee95
Add agentic workflow for cross-SDK consistency enforcement (#95)
Copilot Jan 23, 2026
badba6c
Bump Python minimum version to 3.9+ (#151)
Copilot Jan 23, 2026
8f3e4ba
Add missing list_sessions() method to Python SDK client (#153)
Copilot Jan 23, 2026
17f54a7
Re-run uv lock and fix Python tests (#157)
friggeri Jan 23, 2026
22eba84
Document image attachment support in SDK READMEs (#150)
Copilot Jan 23, 2026
067f075
Bump githubnext/gh-aw from 0.36.0 to 0.37.1 (#66)
dependabot[bot] Jan 23, 2026
c019e17
Adding .NET to the devcontainer (#88)
aaronpowell Jan 23, 2026
8b70d1d
Use Pydantic for weather parameters in get_weather (#120)
adityagesh Jan 23, 2026
0f4ed59
Add uv sync as alternative installation option (#146)
harupy Jan 23, 2026
7a3dcf3
feat: Infinite Sessions (#76)
jmoseley Jan 24, 2026
27531f3
Fix BYOK FAQ: clarify it refers to API keys, not encryption keys (#174)
Jan 25, 2026
6db2abf
Include community SDKs in README (#178)
brunoborges Jan 26, 2026
505b6b5
docs: add MCP server usage documentation (#98)
AnassKartit Jan 26, 2026
76fcc82
Add download badges to README (#156)
Copilot Jan 26, 2026
19a1d09
docs: add .NET example for interactive weather assistant (#119)
vicperdana Jan 26, 2026
f902b76
chore: Update generated events to match schemas. (#208)
jmoseley Jan 26, 2026
d51def4
Add ListSessions and DeleteSession methods to Go SDK (#213)
Copilot Jan 27, 2026
0554463
Remove samples directory, link to awesome-copilot resources (#210)
Copilot Jan 27, 2026
b5826ca
Hide StreamJsonRpc implementation detail behind IOException (#202)
Copilot Jan 27, 2026
6e6e639
Simplify Node.js example (#221)
SteveSandersonMS Jan 27, 2026
380554a
Bump actions/download-artifact from 6.0.0 to 7.0.0 (#65)
dependabot[bot] Jan 27, 2026
b9669a4
Bump actions/checkout from 5.0.1 to 6.0.1 (#67)
dependabot[bot] Jan 27, 2026
c34e9e7
Fixes #227 - Premium requests consumed while running py dev test (#228)
vivganes Jan 27, 2026
24da763
Bump githubnext/gh-aw from 0.37.13 to 0.37.31 (#240)
dependabot[bot] Jan 28, 2026
63f9c23
Consistently use Dataclasses in Python SDK (#216)
Copilot Jan 28, 2026
d405910
Fix .NET CLI server mode code samples - add missing UseStdio = false …
Copilot Jan 28, 2026
87ff551
Configure Copilot agent environment to match devcontainer (#236)
Copilot Jan 28, 2026
e26c442
Add provider info to docs (#257)
patniko Jan 29, 2026
d8f3425
Fix formatting and update README structure (#258)
doggy8088 Jan 29, 2026
ea2a69a
Update docs to reflect you need version for Azure Foundry (#260)
patniko Jan 29, 2026
fc9b54e
Optimize CI: Split into separate workflows with native path filtering…
Copilot Jan 29, 2026
2fe7352
Add githubToken and useLoggedInUser options to all SDK clients (#237)
friggeri Jan 29, 2026
2fa6a92
feat: add hooks and user input handlers to all SDKs with e2e tests (#…
friggeri Jan 29, 2026
a76dffc
Add lsp config for dotnet. (#234)
jmoseley Jan 29, 2026
a124990
docs: add hooks, user input, and auth options to SDK READMEs (#270)
friggeri Jan 29, 2026
828cec1
Add paths-ignore filters to SDK test workflows (#271)
Copilot Jan 29, 2026
0b004e0
feat(nodejs): add typed event filtering to session.on() (#272)
friggeri Jan 29, 2026
ccb7d5f
Add dependabot monitoring for npm, pip, gomod, and nuget (#273)
Copilot Jan 29, 2026
f21ac2d
set default vscode formatter for Go (#295)
qmuntal Jan 30, 2026
82dbb15
[go] Honor ClientOptions.UseStdio = false (#296)
qmuntal Jan 30, 2026
6e4daa9
[go] Honor empty ClientOptions.Env (#297)
qmuntal Jan 30, 2026
3d3055c
Bump githubnext/gh-aw from 0.37.31 to 0.38.2 (#274)
dependabot[bot] Jan 30, 2026
8d29f3d
Bump @types/node from 25.0.3 to 25.1.0 in /test/harness (#275)
dependabot[bot] Jan 30, 2026
84af042
Bump openai from 6.15.0 to 6.17.0 in /test/harness (#276)
dependabot[bot] Jan 30, 2026
b0448f8
Consolidate path filters in SDK test workflows per GitHub Actions spe…
Copilot Jan 30, 2026
c39a129
feat: add reasoning_effort support to all SDK clients (#302)
friggeri Jan 30, 2026
a552ae4
Cache list_models across all SDK languages to prevent rate limiting u…
Copilot Jan 31, 2026
bf95d2d
rewrite interface{} to any (#298)
qmuntal Feb 2, 2026
53669cd
Removing cookbook from sdk repo (#316)
aaronpowell Feb 2, 2026
ce25e31
cleanup Go Client implementation (#321)
qmuntal Feb 2, 2026
e6e4dec
fix ask-user test snapshots (#319)
qmuntal Feb 2, 2026
92c30b7
Add a new line after the model generates final text response after to…
moonshade9 Feb 2, 2026
258ce73
Replace Literal model type with string in Python SessionConfig (#325)
Copilot Feb 2, 2026
9e7795d
Create Issues111
stomde Feb 2, 2026
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
3 changes: 2 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
"ghcr.io/devcontainers/features/go:1": {},
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers-extra/features/uv:1": {},
"ghcr.io/schlich/devcontainer-features/just:0": {}
"ghcr.io/schlich/devcontainer-features/just:0": {},
"ghcr.io/devcontainers/features/dotnet:2": {}
}

// Features to add to the dev container. More info: https://containers.dev/features.
Expand Down
4 changes: 4 additions & 0 deletions .github/actions/setup-copilot/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
name: "Setup Copilot"
description: "Setup Copilot based on the project's package.json file."
outputs:
cli-path:
description: "Path to the Copilot CLI"
value: ${{ steps.cli-path.outputs.path }}
runs:
using: "composite"
steps:
Expand Down
24 changes: 24 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,27 @@ updates:
directory: '/'
schedule:
interval: 'weekly'
# Node.js dependencies
- package-ecosystem: 'npm'
directory: '/nodejs'
schedule:
interval: 'weekly'
- package-ecosystem: 'npm'
directory: '/test/harness'
schedule:
interval: 'weekly'
# Python dependencies
- package-ecosystem: 'pip'
directory: '/python'
schedule:
interval: 'weekly'
# Go dependencies
- package-ecosystem: 'gomod'
directory: '/go'
schedule:
interval: 'weekly'
# .NET dependencies
- package-ecosystem: 'nuget'
directory: '/dotnet'
schedule:
interval: 'weekly'
1 change: 1 addition & 0 deletions .github/instructions/Issues111
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/badges/shields/issues/11583
26 changes: 26 additions & 0 deletions .github/lsp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"lspServers": {
"csharp": {
"command": "dotnet",
"args": [
"tool",
"run",
"roslyn-language-server",
"--stdio",
"--autoLoadProjects"
],
"fileExtensions": {
".cs": "csharp"
},
"rootUri": "dotnet"
},
"go": {
"command": "${HOME}/go/bin/gopls",
"args": ["serve"],
"fileExtensions": {
".go": "go"
},
"rootUri": "go"
}
}
}
91 changes: 88 additions & 3 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
name: "Copilot Setup Steps"

# This workflow configures the environment for GitHub Copilot Agent with gh-aw MCP server
# This workflow configures the environment for GitHub Copilot Agent
# Automatically run the setup steps when they are changed to allow for easy validation
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml

jobs:
# The job MUST be called 'copilot-setup-steps' to be recognized by GitHub Copilot Agent
Expand All @@ -18,8 +22,89 @@ jobs:
contents: read

steps:
# Checkout the repository to install dependencies
- name: Checkout code
uses: actions/checkout@v6.0.2

# Setup Node.js (for TypeScript/JavaScript SDK and tooling)
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: "npm"
cache-dependency-path: |
./nodejs/package-lock.json
./test/harness/package-lock.json

# Setup Python (for Python SDK)
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

# Setup uv (Python package manager used in this repo)
- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

# Setup Go (for Go SDK)
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.23"

# Setup .NET (for .NET SDK)
- name: Set up .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"

# Install just command runner
- name: Install just
uses: extractions/setup-just@v3

# Install gh-aw extension for advanced GitHub CLI features
- name: Install gh-aw extension
run: |
curl -fsSL https://github.com/raw/githubnext/gh-aw/refs/heads/main/install-gh-aw.sh | bash
- name: Verify gh-aw installation
run: gh aw version

# Install JavaScript dependencies
- name: Install Node.js dependencies
working-directory: ./nodejs
run: npm ci --ignore-scripts

# Install Python dependencies
- name: Install Python dependencies
working-directory: ./python
run: uv sync --locked --all-extras --dev

# Install Go dependencies
- name: Install Go dependencies
working-directory: ./go
run: go mod download

# Restore .NET dependencies
- name: Restore .NET dependencies
working-directory: ./dotnet
run: dotnet restore

# Install test harness dependencies
- name: Install test harness dependencies
working-directory: ./test/harness
run: npm ci --ignore-scripts

# Verify installations
- name: Verify tool installations
run: |
echo "=== Verifying installations ==="
node --version
npm --version
python --version
uv --version
go version
dotnet --version
just --version
gh --version
gh aw version
echo "✅ All tools installed successfully"
82 changes: 82 additions & 0 deletions .github/workflows/dotnet-sdk-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: ".NET SDK Tests"

on:
pull_request:
paths:
- 'dotnet/**'
- 'test/**'
- 'nodejs/package.json'
- '.github/workflows/dotnet-sdk-tests.yml'
- '.github/actions/setup-copilot/**'
- '!**/*.md'
- '!**/LICENSE*'
- '!**/.gitignore'
- '!**/.editorconfig'
- '!**/*.png'
- '!**/*.jpg'
- '!**/*.jpeg'
- '!**/*.gif'
- '!**/*.svg'
workflow_dispatch:
merge_group:

permissions:
contents: read

jobs:
test:
name: ".NET SDK Tests"
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
working-directory: ./dotnet
steps:
- uses: actions/checkout@v6.0.2
- uses: ./.github/actions/setup-copilot
id: setup-copilot
- uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
- uses: actions/setup-node@v6
with:
cache: "npm"
cache-dependency-path: "./nodejs/package-lock.json"

- name: Install Node.js dependencies (for CLI)
working-directory: ./nodejs
run: npm ci --ignore-scripts

- name: Restore .NET dependencies
run: dotnet restore

- name: Run dotnet format check
if: runner.os == 'Linux'
run: |
dotnet format --verify-no-changes
if [ $? -ne 0 ]; then
echo "❌ dotnet format produced changes. Please run 'dotnet format' in dotnet"
exit 1
fi
echo "✅ dotnet format produced no changes"

- name: Build SDK
run: dotnet build --no-restore

- name: Install test harness dependencies
working-directory: ./test/harness
run: npm ci --ignore-scripts

- name: Warm up PowerShell
if: runner.os == 'Windows'
run: pwsh.exe -Command "Write-Host 'PowerShell ready'"

- name: Run .NET SDK tests
env:
COPILOT_HMAC_KEY: ${{ secrets.COPILOT_DEVELOPER_CLI_INTEGRATION_HMAC_KEY }}
COPILOT_CLI_PATH: ${{ steps.setup-copilot.outputs.cli-path }}
run: dotnet test --no-build -v n
78 changes: 78 additions & 0 deletions .github/workflows/go-sdk-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: "Go SDK Tests"

on:
pull_request:
paths:
- 'go/**'
- 'test/**'
- 'nodejs/package.json'
- '.github/workflows/go-sdk-tests.yml'
- '.github/actions/setup-copilot/**'
- '!**/*.md'
- '!**/LICENSE*'
- '!**/.gitignore'
- '!**/.editorconfig'
- '!**/*.png'
- '!**/*.jpg'
- '!**/*.jpeg'
- '!**/*.gif'
- '!**/*.svg'
workflow_dispatch:
merge_group:

permissions:
contents: read

jobs:
test:
name: "Go SDK Tests"
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
working-directory: ./go
steps:
- uses: actions/checkout@v6.0.2
- uses: ./.github/actions/setup-copilot
id: setup-copilot
- uses: actions/setup-go@v6
with:
go-version: "1.23"

- name: Run go fmt
if: runner.os == 'Linux'
working-directory: ./go
run: |
go fmt ./...
if [ -n "$(git status --porcelain)" ]; then
echo "❌ go fmt produced changes. Please run 'go fmt ./...' in go"
git --no-pager diff
exit 1
fi
echo "✅ go fmt produced no changes"

- name: Install golangci-lint
if: runner.os == 'Linux'
uses: golangci/golangci-lint-action@v9
with:
working-directory: ./go
version: latest
args: --timeout=5m

- name: Install test harness dependencies
working-directory: ./test/harness
run: npm ci --ignore-scripts

- name: Warm up PowerShell
if: runner.os == 'Windows'
run: pwsh.exe -Command "Write-Host 'PowerShell ready'"

- name: Run Go SDK tests
env:
COPILOT_HMAC_KEY: ${{ secrets.COPILOT_DEVELOPER_CLI_INTEGRATION_HMAC_KEY }}
COPILOT_CLI_PATH: ${{ steps.setup-copilot.outputs.cli-path }}
run: /bin/bash test.sh
Loading