@ace-sdk/cli
Version:
ACE CLI - Command-line tool for intelligent pattern learning and playbook management
48 lines ⢠1.96 kB
JavaScript
/**
* Search results formatter
*/
import chalk from 'chalk';
/**
* Format search results for human-readable output
*/
export function formatSearchResults(patterns, options = {}) {
if (options.query) {
console.log(chalk.bold(`\nš Search Results for: "${options.query}"\n`));
}
patterns.forEach((pattern, index) => {
const rank = options.showRank ? chalk.dim(`#${index + 1} `) : '';
const score = pattern.helpful ? chalk.green(`+${pattern.helpful}`) :
pattern.harmful ? chalk.red(`-${pattern.harmful}`) :
chalk.dim('0');
console.log(`${rank}${score} ${pattern.content}`);
if (options.verbose) {
if (pattern.similarity !== undefined) {
console.log(chalk.dim(` Similarity: ${(pattern.similarity * 100).toFixed(1)}%`));
}
if (pattern.confidence !== undefined) {
console.log(chalk.dim(` Confidence: ${(pattern.confidence * 100).toFixed(1)}%`));
}
if (pattern.section) {
const sectionLabel = pattern.section.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
console.log(chalk.dim(` Section: ${sectionLabel}`));
}
if (pattern.evidence && pattern.evidence.length > 0) {
console.log(chalk.dim(` Evidence: ${pattern.evidence.join(', ')}`));
}
if (pattern.id) {
console.log(chalk.dim(` ID: ${pattern.id}`));
}
}
console.log('');
});
console.log(chalk.dim(`Found ${patterns.length} pattern(s)\n`));
}
/**
* Format similarity score as a visual bar
*/
export function formatSimilarityBar(similarity, width = 20) {
const filled = Math.round(similarity * width);
const empty = width - filled;
return chalk.green('ā'.repeat(filled)) + chalk.dim('ā'.repeat(empty));
}
//# sourceMappingURL=search-formatter.js.map