@@ -60,10 +60,14 @@ import System.IO.Temp qualified as Temp
60
60
import System.Path qualified as Path
61
61
import Text.Megaparsec qualified as MP
62
62
import U.Codebase.Sqlite.Queries qualified as Queries
63
+ import Unison.Auth.CredentialManager qualified as AuthN
64
+ import Unison.Auth.HTTPClient qualified as AuthN
65
+ import Unison.Auth.Tokens qualified as AuthN
63
66
import Unison.Cli.ProjectUtils qualified as ProjectUtils
64
67
import Unison.Codebase (Codebase , CodebasePath )
65
68
import Unison.Codebase qualified as Codebase
66
69
import Unison.Codebase.Editor.Input qualified as Input
70
+ import Unison.Codebase.Editor.UCMVersion (UCMVersion )
67
71
import Unison.Codebase.Execute (execute )
68
72
import Unison.Codebase.Init (CodebaseInitOptions (.. ), InitError (.. ), InitResult (.. ), SpecifiedCodebase (.. ))
69
73
import Unison.Codebase.Init qualified as CodebaseInit
@@ -151,9 +155,12 @@ main version = do
151
155
PrintVersion ->
152
156
Text. putStrLn $ Text. pack progName <> " version: " <> Version. gitDescribeWithDate version
153
157
MCPServer -> do
158
+ let ucmVersion = Version. gitDescribeWithDate version
159
+ credMan <- AuthN. newCredentialManager
160
+ authenticatedHTTPClient <- initTranscriptAuthenticatedHTTPClient ucmVersion credMan
154
161
getCodebaseOrExit mCodePathOption SC. DontLock (SC. MigrateAfterPrompt SC. Backup SC. Vacuum ) \ (_initRes, _, theCodebase) -> do
155
162
withRuntimes RTI. Persistent \ (runtime, sbRuntime) -> do
156
- MCP. runOnStdIO theCodebase runtime sbRuntime currentDir ( Version. gitDescribeWithDate version)
163
+ MCP. runOnStdIO theCodebase runtime sbRuntime currentDir ucmVersion authenticatedHTTPClient
157
164
Init -> do
158
165
exitError
159
166
( P. lines
@@ -184,6 +191,9 @@ main version = do
184
191
let fileEvent = Input. UnisonFileChanged (Text. pack file) contents
185
192
let noOpCheckForChanges _ = pure ()
186
193
let serverUrl = Nothing
194
+ let ucmVersion = Version. gitDescribeWithDate version
195
+ credMan <- liftIO $ AuthN. newCredentialManager
196
+ authenticatedHTTPClient <- initTranscriptAuthenticatedHTTPClient ucmVersion credMan
187
197
startProjectPath <- Codebase. runTransaction theCodebase Codebase. expectCurrentProjectPath
188
198
launch
189
199
version
@@ -192,6 +202,8 @@ main version = do
192
202
sbrt
193
203
theCodebase
194
204
[Left fileEvent, Right $ Input. ExecuteI mainName args, Right Input. QuitI ]
205
+ authenticatedHTTPClient
206
+ credMan
195
207
serverUrl
196
208
(PP. toIds startProjectPath)
197
209
initRes
@@ -207,6 +219,9 @@ main version = do
207
219
let fileEvent = Input. UnisonFileChanged (Text. pack " <standard input>" ) contents
208
220
let noOpCheckForChanges _ = pure ()
209
221
let serverUrl = Nothing
222
+ let ucmVersion = Version. gitDescribeWithDate version
223
+ credMan <- liftIO $ AuthN. newCredentialManager
224
+ authenticatedHTTPClient <- initTranscriptAuthenticatedHTTPClient ucmVersion credMan
210
225
startProjectPath <- Codebase. runTransaction theCodebase Codebase. expectCurrentProjectPath
211
226
launch
212
227
version
@@ -215,6 +230,8 @@ main version = do
215
230
sbrt
216
231
theCodebase
217
232
[Left fileEvent, Right $ Input. ExecuteI mainName args, Right Input. QuitI ]
233
+ authenticatedHTTPClient
234
+ credMan
218
235
serverUrl
219
236
(PP. toIds startProjectPath)
220
237
initRes
@@ -322,8 +339,10 @@ main version = do
322
339
-- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/1224
323
340
void . Ki. fork scope $ LSP. spawnLsp lspFormattingConfig theCodebase runtime changeSignal
324
341
let isTest = False
325
- mcpServerConfig <-
326
- MCP. initServer theCodebase runtime sbRuntime (pure currentDir) $ Version. gitDescribeWithDate version
342
+ let ucmVersion = Version. gitDescribeWithDate version
343
+ credMan <- liftIO $ AuthN. newCredentialManager
344
+ authenticatedHTTPClient <- initTranscriptAuthenticatedHTTPClient ucmVersion credMan
345
+ mcpServerConfig <- MCP. initServer theCodebase runtime sbRuntime (Just currentDir) ucmVersion authenticatedHTTPClient
327
346
Server. startServer
328
347
isTest
329
348
Backend. BackendEnv {Backend. useNamesIndex = False }
@@ -358,14 +377,15 @@ main version = do
358
377
takeMVar mvar
359
378
WithCLI -> do
360
379
PT. putPrettyLn $ P. string " Now starting the Unison Codebase Manager (UCM)..."
361
-
362
380
launch
363
381
version
364
382
currentDir
365
383
runtime
366
384
sbRuntime
367
385
theCodebase
368
386
[]
387
+ authenticatedHTTPClient
388
+ credMan
369
389
mayBaseUrl
370
390
(PP. toIds startingProjectPath)
371
391
initRes
@@ -379,6 +399,9 @@ main version = do
379
399
RTI. withRuntime False mode (Version. gitDescribeWithDate version) \ runtime -> do
380
400
RTI. withRuntime True mode (Version. gitDescribeWithDate version) \ sbRuntime ->
381
401
action (runtime, sbRuntime)
402
+ initTranscriptAuthenticatedHTTPClient :: UCMVersion -> AuthN. CredentialManager -> IO AuthN. AuthenticatedHttpClient
403
+ initTranscriptAuthenticatedHTTPClient ucmVersion credMan = do
404
+ AuthN. newAuthenticatedHTTPClient (AuthN. newTokenProvider credMan) ucmVersion
382
405
383
406
isExitSuccess :: SomeException -> Bool
384
407
isExitSuccess =
@@ -583,13 +606,15 @@ launch ::
583
606
Rt. Runtime Symbol ->
584
607
Codebase. Codebase IO Symbol Ann ->
585
608
[Either Input. Event Input. Input ] ->
609
+ AuthN. AuthenticatedHttpClient ->
610
+ AuthN. CredentialManager ->
586
611
Maybe Server. BaseUrl ->
587
612
PP. ProjectPathIds ->
588
613
InitResult ->
589
614
(PP. ProjectPathIds -> IO () ) ->
590
615
CommandLine. ShouldWatchFiles ->
591
616
IO ()
592
- launch version dir runtime sbRuntime codebase inputs serverBaseUrl startingPath initResult lspCheckForChanges shouldWatchFiles = do
617
+ launch version dir runtime sbRuntime codebase inputs authenticatedHTTPClient credMan serverBaseUrl startingPath initResult lspCheckForChanges shouldWatchFiles = do
593
618
showWelcomeHint <- Codebase. runTransaction codebase Queries. doProjectsExist
594
619
let isNewCodebase = case initResult of
595
620
CreatedCodebase -> NewlyCreatedCodebase
@@ -606,6 +631,8 @@ launch version dir runtime sbRuntime codebase inputs serverBaseUrl startingPath
606
631
codebase
607
632
serverBaseUrl
608
633
ucmVersion
634
+ authenticatedHTTPClient
635
+ credMan
609
636
lspCheckForChanges
610
637
shouldWatchFiles
611
638
0 commit comments