@@ -10,6 +10,7 @@ import { Effect } from "effect";
1010import { Command } from "effect/unstable/cli" ;
1111
1212import {
13+ checkCopilotProviderStatus ,
1314 checkCodexProviderStatus ,
1415 checkClaudeProviderStatus ,
1516} from "./provider/Layers/ProviderHealth" ;
@@ -32,6 +33,7 @@ const AUTH_LABELS: Record<string, string> = {
3233const PROVIDER_LABELS : Record < string , string > = {
3334 codex : "Codex (OpenAI)" ,
3435 claudeAgent : "Claude (Anthropic)" ,
36+ copilot : "GitHub Copilot" ,
3537} ;
3638
3739function printStatus ( status : ServerProviderStatus ) : void {
@@ -65,9 +67,12 @@ const doctorProgram = Effect.gen(function* () {
6567 console . log ( "" ) ;
6668 console . log ( "Checking provider health..." ) ;
6769
68- const statuses = yield * Effect . all ( [ checkCodexProviderStatus , checkClaudeProviderStatus ] , {
69- concurrency : "unbounded" ,
70- } ) ;
70+ const statuses = yield * Effect . all (
71+ [ checkCodexProviderStatus , checkClaudeProviderStatus , checkCopilotProviderStatus ] ,
72+ {
73+ concurrency : "unbounded" ,
74+ } ,
75+ ) ;
7176
7277 for ( const status of statuses ) {
7378 printStatus ( status ) ;
@@ -80,6 +85,7 @@ const doctorProgram = Effect.gen(function* () {
8085 console . log ( "" ) ;
8186 console . log ( " Codex: npm install -g @openai/codex && codex login" ) ;
8287 console . log ( " Claude: npm install -g @anthropic-ai/claude-code && claude auth login" ) ;
88+ console . log ( " Copilot: npm install -g @github/copilot && copilot login" ) ;
8389 } else if ( readyCount === statuses . length ) {
8490 console . log ( "All providers are ready." ) ;
8591 } else {
0 commit comments