Skip to content

Add experimental copilot-sdk engine with port-based LLM gateway support#15642

Merged
pelikhan merged 20 commits intomainfrom
copilot/add-copilot-sdk-engine
Feb 14, 2026
Merged

Add experimental copilot-sdk engine with port-based LLM gateway support#15642
pelikhan merged 20 commits intomainfrom
copilot/add-copilot-sdk-engine

Conversation

Copy link
Contributor

Copilot AI commented Feb 14, 2026

Adds copilot-sdk engine that communicates with Copilot CLI via SDK instead of direct execution. The engine starts Copilot in headless mode on port 10002 (matching the LLM gateway port) and uses copilot-client.js as an SDK wrapper layer.

This PR also refactors the LLM gateway support across all engines from boolean to port-based configuration, enabling more flexible API proxy routing.

Changes

New copilot-sdk Engine

  • Engine implementation (copilot_sdk_engine.go)

    • Generates workflow with 3 steps: start headless CLI, configure client, execute wrapper
    • Uses http://host.docker.internal:10002 for Docker networking (updated to match LLM gateway port)
    • Configuration via GH_AW_COPILOT_CONFIG environment variable
    • LLM Gateway support on port 10002
    • Fails explicitly on configuration marshal errors instead of using fallback
  • copilot-client modifications (copilot-client/src/index.ts)

    • Reads config exclusively from GH_AW_COPILOT_CONFIG env var
    • Removed stdin support for simpler implementation
  • Engine registration

    • Added CopilotSDKEngine constant to pkg/constants/constants.go
    • Registered in NewEngineRegistry()
    • Updated JSON schema enums
    • Marked as experimental

LLM Gateway Refactoring

  • Changed SupportsLLMGateway from boolean to port-based (agentic_engine.go)

    • Updated interface signature: SupportsLLMGateway() boolSupportsLLMGateway() int
    • Returns port number for engines with LLM gateway support, -1 for unsupported
    • BaseEngine.SupportsLLMGateway() always returns -1 (engines override to return their port)
  • Port assignments:

    • Claude: 10000
    • Codex: 10001
    • Copilot-sdk: 10002
    • Copilot: -1 (not supported)
    • Custom: -1 (not supported)
  • AWF configuration updated (claude_engine.go, codex_engine.go)

    • Uses --enable-api-proxy flag to trigger api-proxy sidecar container
    • The api-proxy sidecar automatically handles port routing based on engine type
    • Validation uses strictly positive check (> 0 to enable)

Example Workflows

  • dev.md - Daily status report (schedule: daily at 9 AM UTC)
  • smoke-copilot-sdk.md - Smoke test (trigger: PR with "smoke" label)

Usage

---
engine: copilot-sdk
# Optional model override
# engine:
#   model: gpt-5.1-pro
---

The engine executes as:

  1. copilot --headless --port 10002 & → starts CLI server on LLM gateway port
  2. Build JSON config → set GH_AW_COPILOT_CONFIG env var
  3. node /opt/gh-aw/copilot/copilot-client.js → SDK client connects to server

MCP URLs automatically translated from localhost to host.docker.internal for container networking.

LLM Gateway Implementation

Engines with LLM gateway support use the --enable-api-proxy flag which triggers an api-proxy sidecar container. The sidecar automatically routes traffic to the correct ports (10000 for Claude, 10001 for Codex, 10002 for Copilot-sdk) based on the engine's SupportsLLMGateway() return value.

Testing

  • ✅ 11 new copilot-sdk engine tests
  • ✅ Updated 9 test files for port-based LLM gateway
  • ✅ All 152 workflows recompiled successfully
  • ✅ Merged with main branch
Original prompt

Add a new agentic engine named copilot-sdk to the list.

This engine is based on Copilot, but uses the SDK and the Copilot client that is being built. Instead of launching Copilot directly, add a step that starts Copilot in headless mode on port 3312.

In gh-aw, wrap a node call to copilot-client.js installed at:

/opt/gh-aw/copilot/copilot-client.js

Configure gh-aw with an environment variable named:

GH_AW_COPILOT_CONFIG

This variable contains a configuration JSON that the client reads.

Patch copilot-client.js so it reads this environment variable instead of reading configuration from stdin.

The URL passed to the configuration should use the Docker internal host domain instead of localhost.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 4 commits February 14, 2026 06:58
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Add new agentic engine named copilot-sdk to the list Add copilot-sdk engine with headless CLI and SDK client wrapper Feb 14, 2026
Copilot AI requested a review from pelikhan February 14, 2026 07:09
@pelikhan
Copy link
Contributor

@copilot remove stdin support copilot client and into support the env var. update copilot-client.yml

…IG env var

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 14, 2026

@copilot remove stdin support copilot client and into support the env var. update copilot-client.yml

Done. Removed stdin support from copilot-client - now only reads from GH_AW_COPILOT_CONFIG environment variable. Updated copilot-sdk-ci.yml to use env var instead of piping config via stdin.

Changes in commit 743ba2e:

  • copilot-client/src/index.ts - removed stdin fallback, now requires env var
  • copilot-client/src/cli.ts - updated comment
  • .github/workflows/copilot-sdk-ci.yml - changed test to use export GH_AW_COPILOT_CONFIG='{...}' instead of cat config.json |
  • Rebuilt and deployed actions/setup/js/copilot-client.js

@@ -0,0 +1,40 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot delete file and move content to dev.md instead

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Deleted example-copilot-sdk.md and example-copilot-sdk.lock.yml, moved content to dev.md with usage examples for the copilot-sdk engine.

Changes in commit 39c3f44:

  • Deleted .github/workflows/example-copilot-sdk.md and its lock file
  • Added copilot-sdk documentation section to .github/workflows/dev.md with basic and advanced configuration examples

@pelikhan
Copy link
Contributor

@copilot mark copilot-sdk engine as experimental

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 14, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/user
    • Triggering command: /usr/bin/gh gh api user --jq .login (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 14, 2026

@copilot mark copilot-sdk engine as experimental

Done. Marked copilot-sdk engine as experimental.

Changes in commit 24637b0:

  • Set experimental: true in pkg/workflow/copilot_sdk_engine.go
  • Updated test to assert IsExperimental() returns true

Copilot AI changed the title Add copilot-sdk engine with headless CLI and SDK client wrapper Add experimental copilot-sdk engine with headless CLI and SDK client wrapper Feb 14, 2026
@pelikhan
Copy link
Contributor

@copilot update dev.md to use copilot-sdk and implement a daily report status workflow. Remove the rest. Recompile

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 14, 2026

@copilot keep working

Done. Removed invalid --api-proxy-port flag from AWF commands.

Changes in commit 0fe1b5f:

  • Removed --api-proxy-port=<port> flag from Claude and Codex engines (AWF doesn't support this flag)
  • Kept --enable-api-proxy flag which triggers the api-proxy sidecar container
  • The api-proxy sidecar automatically handles port routing (10000 for Claude, 10001 for Codex, 10002 for Copilot-sdk)
  • Updated tests to not check for the removed flag
  • Recompiled all 152 workflows successfully

The api-proxy container is automatically added as a sidecar when SupportsLLMGateway() > 0 and handles the port routing internally.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw /alias/alias.go .org/toolchain@v-bool ux-amd64/pkg/too-buildtags conf�� urve25519.go _cgo_.o ux-amd64/pkg/tool/linux_amd64/compile credential.helpesh (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw 5606689/b044/ mpile ux-amd64/pkg/too-buildtags conf�� 0.1-go1.25.0.lin-errorsas mpile ux-amd64/pkg/tool/linux_amd64/compile credential.usernsh (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v2 --jq .object.sha g_.a -trimpath 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet 9/field/fe_amd64git util mpile 0.1-go1.25.0.linconfig abis�� rg/toolchain@v0.remote.origin.url 5606689/b132/ pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.lin-lang=go1.24 /tmp/ccqVGwh1.s GOAMD64_v1 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v2 --jq .object.sha njkz4S2jq rg/toolchain@v0.0.1-go1.25.0.linux-amd64/src/cry-Wl,--no-gc-sections 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -p encoding l/linux_amd64/coxterm-color 0.1-go1.25.0.linux-amd64/pkg/too-buildtags go_.�� rg/toolchain@v0.0.1-go1.25.0.lin-errorsas om/xo/terminfo@v0.0.0-2022091000-ifaceassert r: $owner, name: $name) { hasDiscussionsEnabled } } /tmp/ccqVGwh1.s g/x/crypto/crypt-C -nolocalimports 05.o (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.lin/tmp/go-build4075606689/b231/ AC_C/o_Qi4ZKC_EnE06EHAC_C 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -p ions =0 0.1-go1.25.0.linux-amd64/pkg/too-buildtags go_.�� -graphql@v0.0.4/graphql.go -graphql@v0.0.4/query.go rg/toolchain@v0.0.1-go1.25.0.lin-nilfunc -p hash/fnv -lang=go1.25 rg/toolchain@v0.0.1-go1.25.0.lin-tests (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha 5606689/b157/_pkg_.a rg/toolchain@v0.0.1-go1.25.0.linux-amd64/src/cry--gdwarf2 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -p bracelet/bubbles-1 l/linux_amd64/coxterm-color 0.1-go1.25.0.linux-amd64/pkg/too-buildtags go_.�� rg/toolchain@v0.0.1-go1.25.0.lin-errorsas pkg/mod/golang.org/toolchain@v0.-ifaceassert 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -g&#34; io/fs -lang=go1.25 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.linux-amd64/src/net-p SUON/ua_LuL1meKN7bWwBSUON 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -p 5606689/b133/ -lang=go1.25 0.1-go1.25.0.linconfig 5606�� pkg/mod/golang.oremote.origin.url pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.lin-nolocalimports rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet /tmp/go-build407git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha 8.0/blake2b/blake2bAVX2_amd64.s 8.0/blake2b/blake2b_amd64.s 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet 5606689/b132/ internal/filepat-C ctor 0.1-go1.25.0.linconfig -I g_.a pkg/mod/github.com/mitchellh/hashstructure/v2@v2-nolocalimports rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet --gdwarf-5 --64 m rg/toolchain@v0.0.1-go1.25.0.linconfig (http block)
  • https://api.github.com/repos/actions/download-artifact/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-c _5E4iyelA ux-amd64/pkg/tool/linux_amd64/vet 4.s /strconv mpile ux-amd64/pkg/too-buildtags ortc�� g/catmsg.go g/codec.go ux-amd64/pkg/tool/linux_amd64/vet pull.rebase 5606689/b090/ (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v6 --jq .object.sha g_.a mpile rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet --gdwarf-5 age/message.go mpile rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/too/tmp/go-build526640234/b185/vet.cfg -I 5606689/b189/importcfg cfg r: $owner, name: $name) { hasDiscussionsEnabled } } --gdwarf-5 --64 -o rg/toolchain@v0.0.1-go1.25.0.lin-f (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v6 --jq .object.sha g_.a /libexec/gcc/x86_64-linux-gnu/13/lto-wrapper rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet s-through=-lgcc /encode.go mpile rg/toolchain@v0.config s-th�� dod-zBi_3 cfg rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -p github.com/cli/g-1 (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v7
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha .go --global ux-amd64/pkg/tool/linux_amd64/vet credential.usern/home/REDACTED/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/toobuild (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin--gdwarf-5 m ux-amd64/pkg/tool/linux_amd64/vet credential.usern/home/REDACTED/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet o-gh/v2/internal-atomic m ux-amd64/pkg/too-buildtags conf�� 0.1-go1.25.0.lin-errorsas ux-amd64/src/tex-ifaceassert ux-amd64/pkg/tool/linux_amd64/asm pull.rebase (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-errorsas pkg/mod/golang.org/toolchain@v0.-ifaceassert 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -g&#34; io/fs -lang=go1.25 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -o pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.lin-c=4 ctor rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet pkg/mod/golang.oinfocmp crypto/internal/-1 mpile rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/too/tmp/go-build526640234/b168/vet.cfg (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha .go .go rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/compile -D_FORTIFY_SOURCinfocmp til -dumpdir rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/too-trimpath 5606�� g_.a -I rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet --gdwarf-5 --64 -o rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/too/tmp/go-build526640234/b195/vet.cfg (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-c=4 0.1-go1.25.0.linux-amd64/src/emb-nolocalimports 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-c=4 (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha -graphql@v0.0.4/-c=4 credential.helpe-nolocalimports ux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.-errorsas user.name ux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin. rg/toolchain@v0.0.1-go1.25.0.lin-imultiarch ux-amd64/pkg/tool/linux_amd64/vet --depth /syscall m ux-amd64/pkg/too-buildtags conf�� roup.go 0.1-go1.25.0.lin-ifaceassert ux-amd64/pkg/tool/linux_amd64/vet pull.rebase randutil (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.-c=4 credential.usern-nolocalimports ux-amd64/pkg/tool/linux_amd64/vet s (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.-c=4 user.name ux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.-errorsas user.name ux-amd64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-p 0.1-go1.25.0.linux-amd64/src/crygithub.com/charmbracelet/lipgloss/tree ux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha /textarea/textar-errorsas 0.1-go1.25.0.lin-ifaceassert ux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha /list/defaultitem.go /list/keys.go ux-amd64/pkg/tool/linux_amd64/vet amd64.s (http block)
  • https://api.github.com/repos/anchore/sbom-action/git/ref/tags/v0
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha rg/toolchain@v0.remote.origin.url l/linux_amd64/compile 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/compile -D GOAMD64_v1 mpile 0.1-go1.25.0.linconfig -I y1305 mpile r: $owner, name: $name) { hasDiscussionsEnabled } } --gdwarf-5 --64 mpile rg/toolchain@v0.config (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha 8.0/nacl/secretbremote.origin.url -importpath 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/link -import_runtime_infocmp 5606689/b189/ -ldflags=&#34;-O2&#34; &#34;xterm-color 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/link -I g_.a -I rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet --gdwarf-5 --64 mpile rU/zILtWQFlI1a7iconfig (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha rg/toolchain@v0.remote.origin.url 5606689/b132/ pkg/mod/golang.org/toolchain@v0.-nilfunc /tmp/ccqVGwh1.s -c=4 (http block)
  • https://api.github.com/repos/docker/build-push-action/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha 8.0/curve25519/cremote.origin.url 075606689/b132//_cgo_.o 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/compile -p tants 5606689/b132/ 0.1-go1.25.0.linconfig -I y1305 pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.lin-c=4 rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet 5606689/b132/ --64 mpile rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/too/tmp/go-build526640234/b167/vet.cfg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha rotocol/go-sdk@vremote.origin.url rotocol/go-sdk@v1.3.0/mcp/cmd.go-ifaceassert rg/toolchain@v0.0.1-go1.25.0.lin-nilfunc -x c - rg/toolchain@v0.config 5606�� g_.a /libexec/gcc/x86_64-linux-gnu/13/lto-wrapper rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet s-through=-lgcc /encode.go mpile rg/toolchain@v0.config (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-errorsas 5606689/b132/ r: $owner, name: $name) { hasDiscussionsEnabled } } /tmp/ccqVGwh1.s go -o 05.o 5606�� cp .github/aw/actions-lock.json pkg/workflow/data/action_pins.json; \ echo &#34;��� Action pins syngh -I rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet --gdwarf-5 g/x/crypto/inter-C -o rg/toolchain@v0.config (http block)
  • https://api.github.com/repos/docker/login-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha tty@v0.1.4/interremote.origin.url -trimpath rg/toolchain@v0.0.1-go1.25.0.lin-nilfunc -p o-gh/v2/pkg/auth-C -lang=go1.24 rg/toolchain@v0.config -o g_.a -trimpath r: $owner, name: $name) { hasDiscussionsEnabled } } -p go-sdk/auth mpile rg/toolchain@v0.0.1-go1.25.0.linconfig (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha g_.a rg/toolchain@v0.0.1-go1.25.0.lin-ifaceassert rg/toolchain@v0.0.1-go1.25.0.lin-nilfunc -p util -lang=go1.25 rg/toolchain@v0.0.1-go1.25.0.lin-tests 5606�� g_.a /libexec/gcc/x86_64-linux-gnu/13/lto-wrapper rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet s-through=-lgcc flow o rg/toolchain@v0.config (http block)
  • https://api.github.com/repos/docker/metadata-action/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha -graphql@v0.0.4/graphql.go -graphql@v0.0.4/query.go rg/toolchain@v0.0.1-go1.25.0.lin-nilfunc -p hash/fnv -lang=go1.25 rg/toolchain@v0.0.1-go1.25.0.lin-tests 5606�� g_.a 5XaqGFB5Ie3dsgSF5e rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -p rm/composition.g-1 mpile rg/toolchain@v0.0.1-go1.25.0.linconfig (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha rg/toolchain@v0.remote.origin.url 5606689/b132/ pkg/mod/golang.org/toolchain@v0.0.1-go1.25.0.lin-lang=go1.24 /tmp/ccqVGwh1.s GOAMD64_v1 (http block)
  • https://api.github.com/repos/docker/setup-buildx-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-errorsas -trimpath 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -p regexp -lang=go1.25 0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet ut-3�� afb4995f3 pkg/mod/github.com/muesli/termenv@v0.16.0/color.go/parser rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet ctor --64 o/pkg/mod/golang/home/REDACTED/work/gh-aw/gh-aw/.github/workflows rg/toolchain@v0.config (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-errorsas 0.1-go1.25.0.linux-amd64/src/net-ifaceassert rg/toolchain@v0.0.1-go1.25.0.lin-nilfunc -p image 5606689/b132/ rg/toolchain@v0.0.1-go1.25.0.lin-tests ctor�� g_.a -fPIC rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/tool/linux_amd64/vet -pthread ut-512636295.c mpile rg/toolchain@v0.0.1-go1.25.0.linconfig (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha rg/toolchain@v0.0.1-go1.25.0.lin-errorsas 5606689/b132/ rg/toolchain@v0.0.1-go1.25.0.lin-nilfunc /tmp/ccqVGwh1.s GOAMD64_v1 -gensymabis rg/toolchain@v0.config 5606�� /a.out om/charmbracelet/lipgloss@v1.1.1-0.2025031913395-nolocalimports r: $owner, name: $name) { hasDiscussionsEnabled } } --gdwarf-5 aPCr3UlxkgthEZx3-1 -o rg/toolchain@v0.0.1-go1.25.0.linux-amd64/pkg/too/tmp/go-build526640234/b197/vet.cfg (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/c4e091835c7a94dc7d3acb8ed3ae145afb4995f3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/c4e091835c7a94dc7d3acb8ed3ae145afb4995f3 --jq .object.sha ux-amd64/src/run-errorsas ux-amd64/src/run-ifaceassert ux-amd64/pkg/tool/linux_amd64/cgo pull.rebase (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/-
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha g_.a (http block)
  • https://api.github.com/user
    • Triggering command: /usr/bin/gh gh api user --jq .login /textinput/texti-c=4 D4i5CFkF2 ux-amd64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api user --jq .login om/catppuccin/go@v0.3.0/frappe.g. rg/toolchain@v0.0.1-go1.25.0.lin--gdwarf2 ux-amd64/pkg/tool/linux_amd64/vet --depth /cgroup mpile ux-amd64/pkg/too/tmp/go-build526640234/b302/vet.cfg conf�� @v6.0.2/kind/kind.go mpile ux-amd64/pkg/tool/linux_amd64/vet credential.helpe/bin/sh erhouse/uax29/v2-c (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2026

Changeset Generator failed. Please review the logs for details.

@github-actions
Copy link
Contributor

🧪 Smoke Project is now testing project operations...

@github-actions
Copy link
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2026

Smoke Copilot SDK failed. Please review the logs for details.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2026

🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation...

@github-actions
Copy link
Contributor

🧪 Smoke Temporary ID is now testing temporary ID functionality...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.52.0
jq 1.7
yq 4.52.2
curl 8.5.0
gh 2.86.0
node 20.20.0
python3 3.12.3
go 1.24.13
java 21.0.10
dotnet 10.0.102

Result: 12/12 tools available ✅

All required development tools are accessible in the agent container environment.

AI generated by Agent Container Smoke Test

@github-actions
Copy link
Contributor

Smoke Temporary ID completed successfully. Temporary ID validation passed.

@github-actions
Copy link
Contributor

Smoke Project completed successfully. All project operations validated.

@github-actions
Copy link
Contributor

Smoke Test: Copilot - Run 22021153414

✅ GitHub MCP | ✅ Safe Inputs GH CLI | ❌ Serena MCP | ❌ Playwright
✅ File Writing | ✅ Bash | ✅ Discussion | ✅ Build gh-aw
✅ Discussion Creation | ✅ Workflow Dispatch | ✅ PR Review

Status: ⚠️ PARTIAL PASS (9/11 tests)

@pelikhan @Copilot

AI generated by Smoke Copilot

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Smoke test review complete. Port-based LLM gateway implementation looks solid with clean interface design.

📰 BREAKING: Report filed by Smoke Copilot for issue #15642

func (e *BaseEngine) SupportsLLMGateway() int {
// Engines that support LLM gateway must override this method
// to return their specific port number (e.g., 10000, 10001, 10002)
return -1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good simplification - returning -1 as the default "not supported" value makes the interface cleaner.

// SupportsLLMGateway returns the LLM gateway port for Copilot SDK engine
func (e *CopilotSDKEngine) SupportsLLMGateway() int {
return 10002 // Copilot SDK uses port 10002 for LLM gateway
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Port 10002 assignment for copilot-sdk looks correct and matches the gateway configuration.

@github-actions
Copy link
Contributor

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@pelikhan pelikhan merged commit bb8c9da into main Feb 14, 2026
47 of 49 checks passed
@pelikhan pelikhan deleted the copilot/add-copilot-sdk-engine branch February 14, 2026 17:16
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💥 Automated smoke test review - all systems nominal! This PR demonstrates excellent documentation structure and security considerations.

💥 [THE END] — Illustrated by Smoke Claude for issue #15642

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments