diff --git a/src/createClient.ts b/src/createClient.ts index 71e6d8a..b00a577 100644 --- a/src/createClient.ts +++ b/src/createClient.ts @@ -5,7 +5,7 @@ import { flag } from "cmd-ts"; import inquirer from "inquirer"; import { platform } from "os"; import { getCliPref } from "./cliPref"; -import { getLogLevelMap, type LogLevelArgs, type LogLevelMap } from "./logLevel"; +import { type LogLevelArgs, type LogLevelMap } from "./logLevel"; import { checkHttpServer, getServerLastStatus, @@ -165,21 +165,21 @@ export async function createClient( ) { const { noLaunch, yes } = args; let port: number; - const selfDeletingLogger = createSelfDeletingLogger(logger, getLogLevelMap(args)); + // const selfDeletingLogger = createSelfDeletingLogger(logger, getLogLevelMap(args)); try { - const lastStatus = await getServerLastStatus(selfDeletingLogger); + const lastStatus = await getServerLastStatus(logger); port = lastStatus.port; } catch (e) { - selfDeletingLogger.debug("Failed to get last server status", e); + logger.debug("Failed to get last server status", e); port = 1234; } - if (!(await checkHttpServer(selfDeletingLogger, port))) { - if (!(await maybeTryStartServer(selfDeletingLogger, { port, noLaunch, yes }))) { + if (!(await checkHttpServer(logger, port))) { + if (!(await maybeTryStartServer(logger, { port, noLaunch, yes, useReducedLogging: true }))) { process.exit(1); } } const baseUrl = `ws://127.0.0.1:${port}`; - selfDeletingLogger.debug(`Connecting to server with baseUrl ${port}`); + logger.debug(`Connecting to server with baseUrl ${port}`); process.stderr.clearLine(0); return new LMStudioClient({ baseUrl, diff --git a/src/subcommands/server.ts b/src/subcommands/server.ts index deb51de..1903490 100644 --- a/src/subcommands/server.ts +++ b/src/subcommands/server.ts @@ -167,10 +167,11 @@ export interface StartServerOpts { cors?: boolean; noLaunch?: boolean; yes?: boolean; + useReducedLogging?: boolean; } export async function startServer( logger: SimpleLogger, - { port, cors, noLaunch, yes }: StartServerOpts = {}, + { port, cors, noLaunch, yes, useReducedLogging }: StartServerOpts = {}, ): Promise { if (port === undefined) { try { @@ -189,10 +190,16 @@ export async function startServer( CORS is enabled. This means any website you visit can use the LM Studio server. `; } - logger.info(`Attempting to start the server on port ${port}...`); + logger.logAtLevel( + useReducedLogging ? "debug" : "info", + `Attempting to start the server on port ${port}...`, + ); await writeToServerCtl(logger, { type: "start", port, cors }); if (await waitForCtlFileClear(logger, 100, 10)) { - logger.info(`Requested the server to be started on port ${port}.`); + logger.logAtLevel( + useReducedLogging ? "debug" : "info", + `Requested the server to be started on port ${port}.`, + ); } else { if (platform() === "linux") { // Sorry, linux users :( @@ -261,7 +268,10 @@ export async function startServer( // At this point, LM Studio is launching. Once it is ready, it will consume the control file // and start the server. Let's wait for that to happen. if (await waitForCtlFileClear(logger, 1000, 10)) { - logger.info(`Requested the server to be started on port ${port}.`); + logger.logAtLevel( + useReducedLogging ? "debug" : "info", + `Requested the server to be started on port ${port}.`, + ); } else { logger.error(`Failed to start the server on port ${port}`); process.exit(1); @@ -274,10 +284,16 @@ export async function startServer( return false; } } - logger.info("Verifying the server is running..."); + logger.logAtLevel(useReducedLogging ? "debug" : "info", "Verifying the server is running..."); if (await checkHttpServerWithRetries(logger, port, 5)) { - logger.info(`Verification succeeded. The server is running on port ${port}.`); + logger.logAtLevel( + useReducedLogging ? "debug" : "info", + `Verification succeeded. The server is running on port ${port}.`, + ); + if (useReducedLogging) { + logger.info("Successfully started the server and verified it is running."); + } return true; } else { logger.error("Failed to verify the server is running. Please try to use another port.");