UNPKG

ai-ctrf

Version:

Generate AI summaries of test results using a wide range of AI models like OpenAI, Anthropic, Gemini, Mistral, Grok, DeepSeek, Azure, Perplexity, and OpenRouter

65 lines (61 loc) 2.37 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateCtrfFile = validateCtrfFile; exports.saveUpdatedReport = saveUpdatedReport; exports.ansiRegex = ansiRegex; exports.stripAnsi = stripAnsi; exports.generateFailedTestPrompt = generateFailedTestPrompt; const fs_1 = __importDefault(require("fs")); function validateCtrfFile(filePath) { var _a; try { const fileContent = fs_1.default.readFileSync(filePath, 'utf8'); const jsonData = JSON.parse(fileContent); if (!((_a = jsonData.results) === null || _a === void 0 ? void 0 : _a.summary) || !jsonData.results.tests) { console.warn('Warning: The file does not contain valid CTRF data.'); return null; } return jsonData; } catch (error) { console.error('Failed to read or process the file:', error); return null; } } function saveUpdatedReport(filePath, report) { try { fs_1.default.writeFileSync(filePath, JSON.stringify(report, null, 2), 'utf8'); console.log(`Updated report saved to ${filePath}`); } catch (error) { console.error('Failed to save the updated report:', error); } } function ansiRegex({ onlyFirst = false } = {}) { const pattern = [ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' ].join('|'); return new RegExp(pattern, onlyFirst ? undefined : 'g'); } function stripAnsi(message) { if (typeof message !== 'string') { throw new TypeError(`Expected a \`string\`, got \`${typeof message}\``); } return message.replace(ansiRegex(), ''); } function generateFailedTestPrompt(test, report) { return `Analyze this test failure: Test Name: ${test.name} Test Tool: ${report.results.tool.name} ${report.results.environment ? `Environment: ${report.results.environment}` : ""} Failure Details: ${JSON.stringify(test, null, 2)} What I need: 1. What specifically failed in this test 2. The likely root cause based on the error messages and context 3. The potential impact of this failure on the system`; }