Skip to content

Commit b526087

Browse files
committed
Merge branch 'feature/codeium-enterprise' into develop
2 parents 34ecb5d + 91980c0 commit b526087

File tree

4 files changed

+71
-15
lines changed

4 files changed

+71
-15
lines changed

Core/Sources/CodeiumService/CodeiumAuthService.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,14 @@ public final class CodeiumAuthService {
3434
}
3535

3636
func generate(token: String) async throws -> String {
37-
var request = URLRequest(url: URL(string: "https://api.codeium.com/register_user/")!)
37+
var registerUserUrl = URL(string: "https://api.codeium.com/register_user/")
38+
let apiUrl = UserDefaults.shared.value(for: \.codeiumApiUrl)
39+
if UserDefaults.shared.value(for: \.codeiumEnterpriseMode), apiUrl != "" {
40+
registerUserUrl =
41+
URL(string: apiUrl + "/exa.api_server_pb.ApiServerService/RegisterUser")
42+
}
43+
44+
var request = URLRequest(url: registerUserUrl!)
3845
request.httpMethod = "POST"
3946
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
4047
let requestBody = GenerateKeyRequestBody(firebase_id_token: token)

Core/Sources/CodeiumService/CodeiumLanguageServer.swift

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,23 @@ final class CodeiumLanguageServer {
4242

4343
process.executableURL = languageServerExecutableURL
4444

45+
let isEnterpriseMode = UserDefaults.shared.value(for: \.codeiumEnterpriseMode)
46+
var apiServerUrl = "https://server.codeium.com"
47+
if isEnterpriseMode, UserDefaults.shared.value(for: \.codeiumApiUrl) != "" {
48+
apiServerUrl = UserDefaults.shared.value(for: \.codeiumApiUrl)
49+
}
50+
4551
process.arguments = [
4652
"--api_server_url",
47-
"https://server.codeium.com",
53+
apiServerUrl,
4854
"--manager_dir",
4955
managerDirectoryURL.path,
5056
]
5157

58+
if isEnterpriseMode {
59+
process.arguments?.append("--enterprise_mode")
60+
}
61+
5262
process.currentDirectoryURL = supportURL
5363

5464
process.terminationHandler = { [weak self] task in
@@ -120,7 +130,7 @@ final class CodeiumLanguageServer {
120130
self.port = port
121131
launchHandler?()
122132
}
123-
133+
124134
func terminate() {
125135
process.terminationHandler = nil
126136
if process.isRunning {

Core/Sources/HostApp/AccountSettings/CodeiumView.swift

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ struct CodeiumView: View {
1010
@Published var installationStatus: CodeiumInstallationManager.InstallationStatus
1111
@Published var installationStep: CodeiumInstallationManager.InstallationStep?
1212
@AppStorage(\.codeiumVerboseLog) var codeiumVerboseLog
13+
@AppStorage(\.codeiumEnterpriseMode) var codeiumEnterpriseMode
14+
@AppStorage(\.codeiumPortalUrl) var codeiumPortalUrl
15+
@AppStorage(\.codeiumApiUrl) var codeiumApiUrl
1316

1417
init() {
1518
isSignedIn = codeiumAuthService.isSignedIn
@@ -28,6 +31,13 @@ struct CodeiumView: View {
2831
}
2932

3033
func generateAuthURL() -> URL {
34+
if codeiumEnterpriseMode && (codeiumPortalUrl != "") {
35+
return URL(
36+
string: codeiumPortalUrl +
37+
"/profile?response_type=token&redirect_uri=show-auth-token&state=\(UUID().uuidString)&scope=openid%20profile%20email&redirect_parameters_type=query"
38+
)!
39+
}
40+
3141
return URL(
3242
string: "https://www.codeium.com/profile?response_type=token&redirect_uri=show-auth-token&state=\(UUID().uuidString)&scope=openid%20profile%20email&redirect_parameters_type=query"
3343
)!
@@ -149,10 +159,10 @@ struct CodeiumView: View {
149159
updateButton
150160
}
151161
}
152-
162+
153163
if viewModel.isSignedIn {
154164
Text("Status: Signed In")
155-
165+
156166
Button(action: {
157167
Task {
158168
do {
@@ -166,7 +176,7 @@ struct CodeiumView: View {
166176
}
167177
} else {
168178
Text("Status: Not Signed In")
169-
179+
170180
Button(action: {
171181
isSignInPanelPresented = true
172182
}) {
@@ -197,9 +207,23 @@ struct CodeiumView: View {
197207
}
198208
}
199209
}
200-
210+
211+
Divider()
212+
213+
Form {
214+
Toggle("Codeium Enterprise Mode", isOn: $viewModel.codeiumEnterpriseMode)
215+
TextField("Codeium Portal URL", text: $viewModel.codeiumPortalUrl)
216+
TextField("Codeium API URL", text: $viewModel.codeiumApiUrl)
217+
}
218+
.padding(8)
219+
.frame(maxWidth: .infinity, alignment: .leading)
220+
.overlay {
221+
RoundedRectangle(cornerRadius: 8)
222+
.stroke(Color(nsColor: .separatorColor), style: .init(lineWidth: 1))
223+
}
224+
201225
Divider()
202-
226+
203227
Form {
204228
Toggle("Verbose Log", isOn: $viewModel.codeiumVerboseLog)
205229
}
@@ -233,13 +257,13 @@ struct CodeiumSignInView: View {
233257

234258
HStack {
235259
Spacer()
236-
260+
237261
Button(action: {
238262
isPresented = false
239263
}) {
240264
Text("Cancel")
241265
}
242-
266+
243267
Button(action: {
244268
isGeneratingKey = true
245269
Task {

Tool/Sources/Preferences/Keys.swift

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,18 @@ public extension UserDefaultPreferenceKeys {
189189
var codeiumVerboseLog: PreferenceKey<Bool> {
190190
.init(defaultValue: false, key: "CodeiumVerboseLog")
191191
}
192+
193+
var codeiumEnterpriseMode: PreferenceKey<Bool> {
194+
.init(defaultValue: false, key: "CodeiumEnterpriseMode")
195+
}
196+
197+
var codeiumPortalUrl: PreferenceKey<String> {
198+
.init(defaultValue: "", key: "CodeiumPortalUrl")
199+
}
200+
201+
var codeiumApiUrl: PreferenceKey<String> {
202+
.init(defaultValue: "", key: "CodeiumApiUrl")
203+
}
192204
}
193205

194206
// MARK: - Prompt to Code
@@ -217,7 +229,7 @@ public extension UserDefaultPreferenceKeys {
217229
var realtimeSuggestionToggle: PreferenceKey<Bool> {
218230
.init(defaultValue: true, key: "RealtimeSuggestionToggle")
219231
}
220-
232+
221233
var suggestionDisplayCompactMode: PreferenceKey<Bool> {
222234
.init(defaultValue: false, key: "SuggestionDisplayCompactMode")
223235
}
@@ -249,7 +261,7 @@ public extension UserDefaultPreferenceKeys {
249261
var realtimeSuggestionDebounce: PreferenceKey<Double> {
250262
.init(defaultValue: 0, key: "RealtimeSuggestionDebounce")
251263
}
252-
264+
253265
var acceptSuggestionWithTab: PreferenceKey<Bool> {
254266
.init(defaultValue: false, key: "AcceptSuggestionWithTab")
255267
}
@@ -409,13 +421,16 @@ public extension UserDefaultPreferenceKeys {
409421
var enableXcodeInspectorDebugMenu: FeatureFlag {
410422
.init(defaultValue: false, key: "FeatureFlag-EnableXcodeInspectorDebugMenu")
411423
}
412-
424+
413425
var disableFunctionCalling: FeatureFlag {
414426
.init(defaultValue: false, key: "FeatureFlag-DisableFunctionCalling")
415427
}
416-
428+
417429
var disableGitHubCopilotSettingsAutoRefreshOnAppear: FeatureFlag {
418-
.init(defaultValue: false, key: "FeatureFlag-DisableGitHubCopilotSettingsAutoRefreshOnAppear")
430+
.init(
431+
defaultValue: false,
432+
key: "FeatureFlag-DisableGitHubCopilotSettingsAutoRefreshOnAppear"
433+
)
419434
}
420435
}
421436

0 commit comments

Comments
 (0)