UNPKG

@ovotech/genesys-web-messaging-tester-cli

Version:
71 lines (70 loc) 3.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Ui = void 0; const chalk_1 = __importDefault(require("chalk")); class Ui { /** * Given the extensive use of Chalk in here, this utility method makes it clear * that trailing newlines are safer encoded outside the Chalk string. * * @see https://github.com/ovotech/genesys-web-messaging-tester/issues/20#issuecomment-1246630078 */ static trailingNewline(text, count = 1) { return `${text}${'\n'.repeat(count)}`; } validatingOpenAiEnvValidationFailed(error) { return Ui.trailingNewline(chalk_1.default.red(error?.message ?? 'Failed to validate environment variables containing Genesys OAuth Client credentials')); } onlyOnePromptSupported(totalPrompts) { return Ui.trailingNewline(chalk_1.default.red(`Only one prompt is currently supported. You have defined ${totalPrompts}`)); } validatingSessionConfigFailed(error) { return Ui.trailingNewline(chalk_1.default.red(error?.message ?? 'Failed to validate Session config')); } errorDeterminingAiProvider() { return Ui.trailingNewline(chalk_1.default.red(`AI provider was not recognised`)); } validatingGcpProjectLocationConfigFailed(error) { return Ui.trailingNewline(chalk_1.default.red(error?.message ?? 'Failed to validate Google Vertex AI Location and Project config. Provide these in the config file or via environment variables.')); } errorReadingTestScriptFile(error) { return Ui.trailingNewline(chalk_1.default.red(error.message)); } validatingPromptScriptFailed(error) { return Ui.trailingNewline(chalk_1.default.red(error?.message ?? 'Failed to validate Prompt Script')); } preflightCheckFailure(aiProvider, error) { return Ui.trailingNewline(chalk_1.default.red(`The check to ensure ${aiProvider} can be used failed due to:\n${error.reasonForError}`)); } displayPlaceholders({ placeholderValues }) { const values = Object.entries(placeholderValues); return Ui.trailingNewline(chalk_1.default.grey(values.map(([key, value]) => `${key}: ${value}`).join('\n')), 2); } conversationStartHeader() { return Ui.trailingNewline(['Conversation', '------------'].join('\n')); } testResult(result) { const resultMessage = result.reason.type === 'pass' ? [chalk_1.default.bold.green('PASSED'), chalk_1.default.green(result.reason.description)] : [chalk_1.default.bold.red('FAILED'), chalk_1.default.red(result.reason.description)]; return Ui.trailingNewline(['\n---------------------', ...resultMessage].join('\n')); } messageTranscribed(msg) { const utterance = `${msg.who}: ${msg.message}`; if (msg.who === 'AI') { return Ui.trailingNewline(chalk_1.default.bold.green(utterance)); } else { return Ui.trailingNewline(utterance); } } savingOutputFailed(result) { return Ui.trailingNewline(chalk_1.default.yellow(['\nFailed to save output file:', result.reasonForFailure].join('\n'))); } } exports.Ui = Ui;