@ovotech/genesys-web-messaging-tester-cli
Version:
71 lines (70 loc) • 3.35 kB
JavaScript
;
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;