copilot.go

  1package models
  2
  3const (
  4	ProviderCopilot ModelProvider = "copilot"
  5
  6	// GitHub Copilot models
  7	CopilotGTP35Turbo      ModelID = "copilot.gpt-3.5-turbo"
  8	CopilotGPT4o           ModelID = "copilot.gpt-4o"
  9	CopilotGPT4oMini       ModelID = "copilot.gpt-4o-mini"
 10	CopilotGPT41           ModelID = "copilot.gpt-4.1"
 11	CopilotClaude35        ModelID = "copilot.claude-3.5-sonnet"
 12	CopilotClaude37        ModelID = "copilot.claude-3.7-sonnet"
 13	CopilotClaude4         ModelID = "copilot.claude-sonnet-4"
 14	CopilotO1              ModelID = "copilot.o1"
 15	CopilotO3Mini          ModelID = "copilot.o3-mini"
 16	CopilotO4Mini          ModelID = "copilot.o4-mini"
 17	CopilotGemini20        ModelID = "copilot.gemini-2.0-flash"
 18	CopilotGemini25        ModelID = "copilot.gemini-2.5-pro"
 19	CopilotGPT4            ModelID = "copilot.gpt-4"
 20	CopilotClaude37Thought ModelID = "copilot.claude-3.7-sonnet-thought"
 21)
 22
 23var CopilotAnthropicModels = []ModelID{
 24	CopilotClaude35,
 25	CopilotClaude37,
 26	CopilotClaude37Thought,
 27	CopilotClaude4,
 28}
 29
 30// GitHub Copilot models available through GitHub's API
 31var CopilotModels = map[ModelID]Model{
 32	CopilotGTP35Turbo: {
 33		ID:                  CopilotGTP35Turbo,
 34		Name:                "GitHub Copilot GPT-3.5-turbo",
 35		Provider:            ProviderCopilot,
 36		APIModel:            "gpt-3.5-turbo",
 37		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
 38		CostPer1MInCached:   0.0,
 39		CostPer1MOutCached:  0.0,
 40		CostPer1MOut:        0.0,
 41		ContextWindow:       16_384,
 42		DefaultMaxTokens:    4096,
 43		SupportsAttachments: true,
 44	},
 45	CopilotGPT4o: {
 46		ID:                  CopilotGPT4o,
 47		Name:                "GitHub Copilot GPT-4o",
 48		Provider:            ProviderCopilot,
 49		APIModel:            "gpt-4o",
 50		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
 51		CostPer1MInCached:   0.0,
 52		CostPer1MOutCached:  0.0,
 53		CostPer1MOut:        0.0,
 54		ContextWindow:       128_000,
 55		DefaultMaxTokens:    16384,
 56		SupportsAttachments: true,
 57	},
 58	CopilotGPT4oMini: {
 59		ID:                  CopilotGPT4oMini,
 60		Name:                "GitHub Copilot GPT-4o Mini",
 61		Provider:            ProviderCopilot,
 62		APIModel:            "gpt-4o-mini",
 63		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
 64		CostPer1MInCached:   0.0,
 65		CostPer1MOutCached:  0.0,
 66		CostPer1MOut:        0.0,
 67		ContextWindow:       128_000,
 68		DefaultMaxTokens:    4096,
 69		SupportsAttachments: true,
 70	},
 71	CopilotGPT41: {
 72		ID:                  CopilotGPT41,
 73		Name:                "GitHub Copilot GPT-4.1",
 74		Provider:            ProviderCopilot,
 75		APIModel:            "gpt-4.1",
 76		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
 77		CostPer1MInCached:   0.0,
 78		CostPer1MOutCached:  0.0,
 79		CostPer1MOut:        0.0,
 80		ContextWindow:       128_000,
 81		DefaultMaxTokens:    16384,
 82		CanReason:           true,
 83		SupportsAttachments: true,
 84	},
 85	CopilotClaude35: {
 86		ID:                  CopilotClaude35,
 87		Name:                "GitHub Copilot Claude 3.5 Sonnet",
 88		Provider:            ProviderCopilot,
 89		APIModel:            "claude-3.5-sonnet",
 90		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
 91		CostPer1MInCached:   0.0,
 92		CostPer1MOutCached:  0.0,
 93		CostPer1MOut:        0.0,
 94		ContextWindow:       90_000,
 95		DefaultMaxTokens:    8192,
 96		SupportsAttachments: true,
 97	},
 98	CopilotClaude37: {
 99		ID:                  CopilotClaude37,
100		Name:                "GitHub Copilot Claude 3.7 Sonnet",
101		Provider:            ProviderCopilot,
102		APIModel:            "claude-3.7-sonnet",
103		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
104		CostPer1MInCached:   0.0,
105		CostPer1MOutCached:  0.0,
106		CostPer1MOut:        0.0,
107		ContextWindow:       200_000,
108		DefaultMaxTokens:    16384,
109		SupportsAttachments: true,
110	},
111	CopilotClaude4: {
112		ID:                  CopilotClaude4,
113		Name:                "GitHub Copilot Claude Sonnet 4",
114		Provider:            ProviderCopilot,
115		APIModel:            "claude-sonnet-4",
116		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
117		CostPer1MInCached:   0.0,
118		CostPer1MOutCached:  0.0,
119		CostPer1MOut:        0.0,
120		ContextWindow:       128_000,
121		DefaultMaxTokens:    16000,
122		SupportsAttachments: true,
123	},
124	CopilotO1: {
125		ID:                  CopilotO1,
126		Name:                "GitHub Copilot o1",
127		Provider:            ProviderCopilot,
128		APIModel:            "o1",
129		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
130		CostPer1MInCached:   0.0,
131		CostPer1MOutCached:  0.0,
132		CostPer1MOut:        0.0,
133		ContextWindow:       200_000,
134		DefaultMaxTokens:    100_000,
135		CanReason:           true,
136		SupportsAttachments: false,
137	},
138	CopilotO3Mini: {
139		ID:                  CopilotO3Mini,
140		Name:                "GitHub Copilot o3-mini",
141		Provider:            ProviderCopilot,
142		APIModel:            "o3-mini",
143		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
144		CostPer1MInCached:   0.0,
145		CostPer1MOutCached:  0.0,
146		CostPer1MOut:        0.0,
147		ContextWindow:       200_000,
148		DefaultMaxTokens:    100_000,
149		CanReason:           true,
150		SupportsAttachments: false,
151	},
152	CopilotO4Mini: {
153		ID:                  CopilotO4Mini,
154		Name:                "GitHub Copilot o4-mini",
155		Provider:            ProviderCopilot,
156		APIModel:            "o4-mini",
157		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
158		CostPer1MInCached:   0.0,
159		CostPer1MOutCached:  0.0,
160		CostPer1MOut:        0.0,
161		ContextWindow:       128_000,
162		DefaultMaxTokens:    16_384,
163		CanReason:           true,
164		SupportsAttachments: true,
165	},
166	CopilotGemini20: {
167		ID:                  CopilotGemini20,
168		Name:                "GitHub Copilot Gemini 2.0 Flash",
169		Provider:            ProviderCopilot,
170		APIModel:            "gemini-2.0-flash-001",
171		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
172		CostPer1MInCached:   0.0,
173		CostPer1MOutCached:  0.0,
174		CostPer1MOut:        0.0,
175		ContextWindow:       1_000_000,
176		DefaultMaxTokens:    8192,
177		SupportsAttachments: true,
178	},
179	CopilotGemini25: {
180		ID:                  CopilotGemini25,
181		Name:                "GitHub Copilot Gemini 2.5 Pro",
182		Provider:            ProviderCopilot,
183		APIModel:            "gemini-2.5-pro",
184		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
185		CostPer1MInCached:   0.0,
186		CostPer1MOutCached:  0.0,
187		CostPer1MOut:        0.0,
188		ContextWindow:       128_000,
189		DefaultMaxTokens:    64000,
190		SupportsAttachments: true,
191	},
192	CopilotGPT4: {
193		ID:                  CopilotGPT4,
194		Name:                "GitHub Copilot GPT-4",
195		Provider:            ProviderCopilot,
196		APIModel:            "gpt-4",
197		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
198		CostPer1MInCached:   0.0,
199		CostPer1MOutCached:  0.0,
200		CostPer1MOut:        0.0,
201		ContextWindow:       32_768,
202		DefaultMaxTokens:    4096,
203		SupportsAttachments: true,
204	},
205	CopilotClaude37Thought: {
206		ID:                  CopilotClaude37Thought,
207		Name:                "GitHub Copilot Claude 3.7 Sonnet Thinking",
208		Provider:            ProviderCopilot,
209		APIModel:            "claude-3.7-sonnet-thought",
210		CostPer1MIn:         0.0, // Included in GitHub Copilot subscription
211		CostPer1MInCached:   0.0,
212		CostPer1MOutCached:  0.0,
213		CostPer1MOut:        0.0,
214		ContextWindow:       200_000,
215		DefaultMaxTokens:    16384,
216		CanReason:           true,
217		SupportsAttachments: true,
218	},
219}