|
|
@@ -7,6 +7,9 @@ import open from "open"
|
|
|
import { UI } from "../ui"
|
|
|
import { ModelsDev } from "../../provider/models"
|
|
|
import { map, pipe, sortBy, values } from "remeda"
|
|
|
+import path from "path"
|
|
|
+import os from "os"
|
|
|
+import { Global } from "../../global"
|
|
|
|
|
|
export const AuthCommand = cmd({
|
|
|
command: "auth",
|
|
|
@@ -26,16 +29,46 @@ export const AuthListCommand = cmd({
|
|
|
describe: "list providers",
|
|
|
async handler() {
|
|
|
UI.empty()
|
|
|
- prompts.intro("Credentials")
|
|
|
+ const authPath = path.join(Global.Path.data, "auth.json")
|
|
|
+ const homedir = os.homedir()
|
|
|
+ const displayPath = authPath.startsWith(homedir)
|
|
|
+ ? authPath.replace(homedir, "~")
|
|
|
+ : authPath
|
|
|
+ prompts.intro(`Credentials ${UI.Style.TEXT_DIM}${displayPath}`)
|
|
|
const results = await Auth.all().then((x) => Object.entries(x))
|
|
|
const database = await ModelsDev.get()
|
|
|
|
|
|
for (const [providerID, result] of results) {
|
|
|
const name = database[providerID]?.name || providerID
|
|
|
- prompts.log.info(`${name} ${UI.Style.TEXT_DIM}(${result.type})`)
|
|
|
+ prompts.log.info(`${name} ${UI.Style.TEXT_DIM}${result.type}`)
|
|
|
}
|
|
|
|
|
|
prompts.outro(`${results.length} credentials`)
|
|
|
+
|
|
|
+ // Environment variables section
|
|
|
+ const activeEnvVars: Array<{ provider: string, envVar: string }> = []
|
|
|
+
|
|
|
+ for (const [providerID, provider] of Object.entries(database)) {
|
|
|
+ for (const envVar of provider.env) {
|
|
|
+ if (process.env[envVar]) {
|
|
|
+ activeEnvVars.push({
|
|
|
+ provider: provider.name || providerID,
|
|
|
+ envVar
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (activeEnvVars.length > 0) {
|
|
|
+ UI.empty()
|
|
|
+ prompts.intro("Environment")
|
|
|
+
|
|
|
+ for (const { provider, envVar } of activeEnvVars) {
|
|
|
+ prompts.log.info(`${provider} ${UI.Style.TEXT_DIM}${envVar}`)
|
|
|
+ }
|
|
|
+
|
|
|
+ prompts.outro(`${activeEnvVars.length} environment variables`)
|
|
|
+ }
|
|
|
},
|
|
|
})
|
|
|
|