Repository navigation
Replies: 1 comment
|
@juliusmarminge tagging you for your agent's visibility :) This one is personal because I get monthly 50K+ credits on copilot but don't want to use that garbage cli thought maybe T3 code will finally allow me to consume those sitting tokens as well 😅 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem
GitHub Copilot subscribers can't use their subscription/quota in T3 Code. Prior requests (#193, #735, #282, #628, #288) are all closed, so there is currently no open tracking item. The workaround is OpenCode's
github-copilot/*models, not a first-class Copilot provider.Proposal
Add a first-class
copilotprovider driver that drives the Copilot CLI through the official Copilot SDK path (copilot --serverJSON-RPC, managed by@github/copilot-sdkfor TypeScript), withcopilot --acpas the interim/fallback transport.Suggested implementation (best way)
Recommended: new dedicated
CopilotDriver, modeled onPiDriver(the simplest recent driver), notCodexDriver(which carries managed-home/auth-overlay/reset-credit complexity we don't need for v1):packages/contracts/src/settings.ts: newCopilotSettingsviamakeProviderSettingsSchema—enabledoff by default (likepi/cursor/grok),binaryPathdefaultcopilot,launchArgs,customModels.apps/server/src/provider/Drivers/CopilotDriver.ts: implementProviderDriver<CopilotSettings, CopilotDriverEnv>, register inbuiltInDrivers.ts. Keep per-instance state increate()scope, no shared mutable state across instances.apps/server/src/provider/Layers/CopilotProvider.ts+CopilotInstallation.ts: snapshot/probe (copilot --version, auth status,models.list), followingLayers/PiProvider.ts+providerMaintenance.tswithmakePackageManagedProviderMaintenanceResolver({ npmPackageName: "@github/copilot" }).apps/server/src/orchestration-v2/Adapters/CopilotAdapterV2.ts: session/turn/approval runtime. Prefer the official@github/copilot-sdkTS client (it owns CLI process lifecycle, protocol v2–v3 negotiation,models.list, BYOK) over reimplementing JSON-RPC. Model the adapter shape onPiAdapterV2.textGeneration/CopilotTextGeneration.ts: commit/PR/branch/title generation via the same runtime, likePiTextGeneration/CodexTextGeneration.copilot login) as an ACP-styleterminalauth method plus env-var BYOK path, reusing the existingProviderAuthControllerpattern.apps/web/src/components/uistyling.Interim workaround worth documenting:
copilot --acpalready works through the genericAcpRegistryDriver. Note CLI 1.0.88 fixed managed settings for--acp/--server, so a registry entry is a reasonable stopgap until the native driver lands.Phasing I'd propose: (1) settings + snapshot/installation probe + disabled-by-default flag, (2) adapter turns/approvals via SDK server mode, (3) text generation + maintenance polish. Focused tests per behavior (
vp test run <files>), no repo-wide checks.Prior art / compatibility notes
github/copilot-sdkdocs: SDK and CLI compatibility).github/copilot-sdkcurrently has open CLI/SDK interop reports worth watching (e.g.session.idlesemantics, trace-span parenting across SDK/CLI,maxContextWindowTokenshandling, shutdowndestroyrejection on SDK 1.0.14/runtime 1.0.85).May I work on this? Happy to start with the settings + snapshot/probe spike behind the disabled-by-default flag and bring back a scoped proposal/PR per CONTRIBUTING.md.
All reactions