UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types โ€” generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

83 lines โ€ข 3.23 kB
/** * Complete Setup Integration for NeuroLink CLI * * Orchestrates the entire setup process: interactive wizard, environment management, * provider testing, and summary display. */ import { runInteractiveSetup, testProviderConnectivity, displaySetupSummary, } from "./interactiveSetup.js"; import { updateEnvFile, displayEnvUpdateSummary } from "./envManager.js"; import chalk from "chalk"; import { logger } from "../../utils/logger.js"; /** * Run the complete interactive setup process */ export async function runCompleteSetup(quiet = false) { try { // Step 1: Run interactive setup wizard if (!quiet) { logger.always(chalk.blue("๐Ÿš€ Starting NeuroLink Configuration Setup...\n")); } const setupResult = await runInteractiveSetup(quiet); // If no providers selected, exit early if (setupResult.selectedProviders.length === 0) { if (!quiet) { logger.always(chalk.yellow("โš ๏ธ No providers selected. Setup cancelled.")); } return setupResult; } // Step 2: Update environment file with credentials if (Object.keys(setupResult.credentials).length > 0) { if (!quiet) { logger.always(chalk.blue("\n๐Ÿ’พ Updating environment configuration...\n")); } try { const envResult = updateEnvFile(setupResult.credentials, ".env", true); setupResult.envFileBackup = envResult.backup.backupPath; if (!quiet) { displayEnvUpdateSummary(envResult, false); } // Update process.env for immediate testing for (const [key, value] of Object.entries(setupResult.credentials)) { process.env[key] = value; } } catch (error) { if (!quiet) { logger.error(chalk.red(`โŒ Failed to update environment file: ${error instanceof Error ? error.message : String(error)}`)); } throw error; } } // Step 3: Test provider connectivity if (!quiet) { logger.always(chalk.blue("\n๐Ÿงช Testing configured providers...\n")); } setupResult.testResults = await testProviderConnectivity(setupResult.selectedProviders, quiet); // Step 4: Display summary displaySetupSummary(setupResult, quiet); return setupResult; } catch (error) { if (!quiet) { logger.error(chalk.red(`โŒ Setup failed: ${error instanceof Error ? error.message : String(error)}`)); logger.always(chalk.yellow("๐Ÿ’ก You can retry setup with: neurolink config setup")); } throw error; } } /** * Wrapper for config setup command */ export async function configSetup(quiet = false) { await runCompleteSetup(quiet); } /** * Wrapper for config init command (alias for setup) */ export async function configInit(quiet = false) { if (!quiet) { logger.always(chalk.gray("๐Ÿ“ config init is an alias for config setup\n")); } await runCompleteSetup(quiet); } //# sourceMappingURL=completeSetup.js.map