From 797839c1355e0277572ea7a15f1a9dffab338342 Mon Sep 17 00:00:00 2001 From: David Snelling Date: Mon, 29 Sep 2025 09:50:59 -0700 Subject: [PATCH] chore: enforce consistent coding style and semicolon removal - Update ESLint configuration to enforce no semicolons (`semi: ['error', 'never']`) - Fix all instances of semicolons in `*.ts` files to align with style rules - Adjust related ESLint rules for `no-extra-semi` - Simplify unnecessary semicolon patterns in global variable assignments --- eslint.config.js | 8 +- src/cli/commands/neural.ts | 400 ++++++++++++------------- src/neural/naturalLanguageProcessor.ts | 2 +- src/setup.ts | 2 +- src/unified.ts | 2 +- 5 files changed, 207 insertions(+), 207 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index d42054aa..794422cd 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -38,12 +38,12 @@ export default [ argsIgnorePattern: '^_' } ], - // Semi rule removed - not available in v9 + // Semicolon rules - enforce no semicolons + 'semi': ['error', 'never'], // General rules 'no-unused-vars': 'off', // Using TypeScript rule instead - 'no-extra-semi': 'off', - 'semi': 'off', // Using TypeScript rule instead + 'no-extra-semi': 'error', 'no-undef': 'off', // TypeScript handles this 'no-redeclare': 'off', // TypeScript handles this @@ -83,4 +83,4 @@ export default [ 'bin/**' ] } -] \ No newline at end of file +] diff --git a/src/cli/commands/neural.ts b/src/cli/commands/neural.ts index de3b4c75..f292d4ea 100644 --- a/src/cli/commands/neural.ts +++ b/src/cli/commands/neural.ts @@ -4,13 +4,13 @@ * CLI interface for semantic similarity, clustering, and neural operations */ -import inquirer from 'inquirer'; -import chalk from 'chalk'; -import ora from 'ora'; -import fs from 'node:fs'; -import path from 'node:path'; -import { Brainy } from '../../brainyData.js'; -import { NeuralAPI } from '../../neural/neuralAPI.js'; +import inquirer from 'inquirer' +import chalk from 'chalk' +import ora from 'ora' +import fs from 'node:fs' +import path from 'node:path' +import { Brainy } from '../../brainyData.js' +import { NeuralAPI } from '../../neural/neuralAPI.js' interface CommandArguments { action?: string; @@ -90,52 +90,52 @@ export const neuralCommand = { type: 'boolean', default: false, alias: 'e' - }); + }) }, handler: async (argv: CommandArguments) => { - console.log(chalk.cyan('\n🧠 NEURAL SIMILARITY API')); - console.log(chalk.gray('━'.repeat(50))); + console.log(chalk.cyan('\n🧠 NEURAL SIMILARITY API')) + console.log(chalk.gray('━'.repeat(50))) // Initialize Brainy and Neural API - const brain = new Brainy(); - const neural = new NeuralAPI(brain); + const brain = new Brainy() + const neural = new NeuralAPI(brain) try { - const action = argv.action || await promptForAction(); + const action = argv.action || await promptForAction() switch (action) { case 'similar': - await handleSimilarCommand(neural, argv); - break; + await handleSimilarCommand(neural, argv) + break case 'clusters': - await handleClustersCommand(neural, argv); - break; + await handleClustersCommand(neural, argv) + break case 'hierarchy': - await handleHierarchyCommand(neural, argv); - break; + await handleHierarchyCommand(neural, argv) + break case 'neighbors': - await handleNeighborsCommand(neural, argv); - break; + await handleNeighborsCommand(neural, argv) + break case 'path': - await handlePathCommand(neural, argv); - break; + await handlePathCommand(neural, argv) + break case 'outliers': - await handleOutliersCommand(neural, argv); - break; + await handleOutliersCommand(neural, argv) + break case 'visualize': - await handleVisualizeCommand(neural, argv); - break; + await handleVisualizeCommand(neural, argv) + break default: - console.log(chalk.red(`❌ Unknown action: ${action}`)); - showHelp(); + console.log(chalk.red(`❌ Unknown action: ${action}`)) + showHelp() } } catch (error) { - console.error(chalk.red('πŸ’₯ Error:'), error instanceof Error ? error.message : error); - process.exit(1); + console.error(chalk.red('πŸ’₯ Error:'), error instanceof Error ? error.message : error) + process.exit(1) } } -}; +} async function promptForAction(): Promise { const answer = await inquirer.prompt([{ @@ -151,25 +151,25 @@ async function promptForAction(): Promise { { name: '🚨 Detect outliers', value: 'outliers' }, { name: 'πŸ“Š Generate visualization data', value: 'visualize' } ] - }]); + }]) - return answer.action; + return answer.action } async function handleSimilarCommand(neural: NeuralAPI, argv: CommandArguments): Promise { - const spinner = ora('🧠 Calculating semantic similarity...').start(); + const spinner = ora('🧠 Calculating semantic similarity...').start() try { - let itemA: string, itemB: string; + let itemA: string, itemB: string if (argv.id && argv.query) { - itemA = argv.id; - itemB = argv.query; + itemA = argv.id + itemB = argv.query } else if (argv._ && argv._.length >= 3) { - itemA = argv._[1]; - itemB = argv._[2]; + itemA = argv._[1] + itemB = argv._[2] } else { - spinner.stop(); + spinner.stop() const answers = await inquirer.prompt([ { type: 'input', @@ -183,179 +183,179 @@ async function handleSimilarCommand(neural: NeuralAPI, argv: CommandArguments): message: 'Second item (ID or text):', validate: (input: string) => input.length > 0 } - ]); - itemA = answers.itemA; - itemB = answers.itemB; - spinner.start(); + ]) + itemA = answers.itemA + itemB = answers.itemB + spinner.start() } const result = await neural.similar(itemA, itemB, { explain: argv.explain, includeBreakdown: argv.explain - }); + }) - spinner.succeed('βœ… Similarity calculated'); + spinner.succeed('βœ… Similarity calculated') if (typeof result === 'number') { - console.log(`\nπŸ”— Similarity: ${chalk.cyan((result * 100).toFixed(1))}%`); + console.log(`\nπŸ”— Similarity: ${chalk.cyan((result * 100).toFixed(1))}%`) } else { - console.log(`\nπŸ”— Similarity: ${chalk.cyan((result.score * 100).toFixed(1))}%`); + console.log(`\nπŸ”— Similarity: ${chalk.cyan((result.score * 100).toFixed(1))}%`) if (result.explanation) { - console.log(`πŸ’­ Explanation: ${result.explanation}`); + console.log(`πŸ’­ Explanation: ${result.explanation}`) } if (result.breakdown) { - console.log('\nπŸ“Š Breakdown:'); - console.log(` Semantic: ${chalk.yellow((result.breakdown.semantic! * 100).toFixed(1))}%`); + console.log('\nπŸ“Š Breakdown:') + console.log(` Semantic: ${chalk.yellow((result.breakdown.semantic! * 100).toFixed(1))}%`) if (result.breakdown.taxonomic !== undefined) { - console.log(` Taxonomic: ${chalk.yellow((result.breakdown.taxonomic * 100).toFixed(1))}%`); + console.log(` Taxonomic: ${chalk.yellow((result.breakdown.taxonomic * 100).toFixed(1))}%`) } if (result.breakdown.contextual !== undefined) { - console.log(` Contextual: ${chalk.yellow((result.breakdown.contextual * 100).toFixed(1))}%`); + console.log(` Contextual: ${chalk.yellow((result.breakdown.contextual * 100).toFixed(1))}%`) } } if (result.hierarchy) { console.log(`\n🌳 Hierarchy: ${result.hierarchy.sharedParent ? `Shared parent at distance ${result.hierarchy.distance}` : - 'No shared parent found'}`); + 'No shared parent found'}`) } } if (argv.output) { - await saveToFile(argv.output, result, argv.format!); + await saveToFile(argv.output, result, argv.format!) } } catch (error) { - spinner.fail('πŸ’₯ Failed to calculate similarity'); - throw error; + spinner.fail('πŸ’₯ Failed to calculate similarity') + throw error } } async function handleClustersCommand(neural: NeuralAPI, argv: CommandArguments): Promise { - const spinner = ora('🎯 Finding semantic clusters...').start(); + const spinner = ora('🎯 Finding semantic clusters...').start() try { const options = { algorithm: argv.algorithm as any, threshold: argv.threshold, maxClusters: argv.limit - }; + } - const clusters = await neural.clusters(argv.query || options); + const clusters = await neural.clusters(argv.query || options) - spinner.succeed(`βœ… Found ${clusters.length} clusters`); + spinner.succeed(`βœ… Found ${clusters.length} clusters`) if (argv.format === 'json') { - console.log(JSON.stringify(clusters, null, 2)); + console.log(JSON.stringify(clusters, null, 2)) } else { - console.log(`\n🎯 ${chalk.cyan(clusters.length)} Semantic Clusters:\n`); + console.log(`\n🎯 ${chalk.cyan(clusters.length)} Semantic Clusters:\n`) clusters.forEach((cluster, index) => { - console.log(`${chalk.yellow(`Cluster ${index + 1}:`)} ${cluster.label || cluster.id}`); - console.log(` πŸ“Š Confidence: ${chalk.green((cluster.confidence * 100).toFixed(1))}%`); - console.log(` πŸ‘₯ Members: ${cluster.members.length}`); + console.log(`${chalk.yellow(`Cluster ${index + 1}:`)} ${cluster.label || cluster.id}`) + console.log(` πŸ“Š Confidence: ${chalk.green((cluster.confidence * 100).toFixed(1))}%`) + console.log(` πŸ‘₯ Members: ${cluster.members.length}`) if (cluster.members.length <= 5) { cluster.members.forEach(member => { - console.log(` β€’ ${member}`); - }); + console.log(` β€’ ${member}`) + }) } else { cluster.members.slice(0, 3).forEach(member => { - console.log(` β€’ ${member}`); - }); - console.log(` ... and ${cluster.members.length - 3} more`); + console.log(` β€’ ${member}`) + }) + console.log(` ... and ${cluster.members.length - 3} more`) } - console.log(); - }); + console.log() + }) } if (argv.output) { - await saveToFile(argv.output, clusters, argv.format!); + await saveToFile(argv.output, clusters, argv.format!) } } catch (error) { - spinner.fail('πŸ’₯ Failed to find clusters'); - throw error; + spinner.fail('πŸ’₯ Failed to find clusters') + throw error } } async function handleHierarchyCommand(neural: NeuralAPI, argv: CommandArguments): Promise { - const spinner = ora('🌳 Building semantic hierarchy...').start(); + const spinner = ora('🌳 Building semantic hierarchy...').start() try { - const id = argv.id || argv._[1]; + const id = argv.id || argv._[1] if (!id) { - spinner.stop(); + spinner.stop() const answer = await inquirer.prompt([{ type: 'input', name: 'id', message: 'Enter item ID:', validate: (input: string) => input.length > 0 - }]); - spinner.start(); - const hierarchy = await neural.hierarchy(answer.id); - displayHierarchy(hierarchy); + }]) + spinner.start() + const hierarchy = await neural.hierarchy(answer.id) + displayHierarchy(hierarchy) } else { - const hierarchy = await neural.hierarchy(id); - spinner.succeed('βœ… Hierarchy built'); - displayHierarchy(hierarchy); + const hierarchy = await neural.hierarchy(id) + spinner.succeed('βœ… Hierarchy built') + displayHierarchy(hierarchy) } if (argv.output) { - const hierarchy = await neural.hierarchy(id || argv._[1]); - await saveToFile(argv.output, hierarchy, argv.format!); + const hierarchy = await neural.hierarchy(id || argv._[1]) + await saveToFile(argv.output, hierarchy, argv.format!) } } catch (error) { - spinner.fail('πŸ’₯ Failed to build hierarchy'); - throw error; + spinner.fail('πŸ’₯ Failed to build hierarchy') + throw error } } function displayHierarchy(hierarchy: any): void { - console.log(`\n🌳 Semantic Hierarchy for ${chalk.cyan(hierarchy.self.id)}:`); + console.log(`\n🌳 Semantic Hierarchy for ${chalk.cyan(hierarchy.self.id)}:`) if (hierarchy.root) { - console.log(`πŸ” Root: ${hierarchy.root.id} (${(hierarchy.root.similarity * 100).toFixed(1)}%)`); + console.log(`πŸ” Root: ${hierarchy.root.id} (${(hierarchy.root.similarity * 100).toFixed(1)}%)`) } if (hierarchy.grandparent) { - console.log(`πŸ‘΄ Grandparent: ${hierarchy.grandparent.id} (${(hierarchy.grandparent.similarity * 100).toFixed(1)}%)`); + console.log(`πŸ‘΄ Grandparent: ${hierarchy.grandparent.id} (${(hierarchy.grandparent.similarity * 100).toFixed(1)}%)`) } if (hierarchy.parent) { - console.log(`πŸ‘¨ Parent: ${hierarchy.parent.id} (${(hierarchy.parent.similarity * 100).toFixed(1)}%)`); + console.log(`πŸ‘¨ Parent: ${hierarchy.parent.id} (${(hierarchy.parent.similarity * 100).toFixed(1)}%)`) } - console.log(`🎯 ${chalk.bold('Self:')} ${hierarchy.self.id}`); + console.log(`🎯 ${chalk.bold('Self:')} ${hierarchy.self.id}`) if (hierarchy.siblings && hierarchy.siblings.length > 0) { - console.log(`πŸ‘₯ Siblings: ${hierarchy.siblings.length}`); + console.log(`πŸ‘₯ Siblings: ${hierarchy.siblings.length}`) hierarchy.siblings.forEach((sibling: any) => { - console.log(` β€’ ${sibling.id} (${(sibling.similarity * 100).toFixed(1)}%)`); - }); + console.log(` β€’ ${sibling.id} (${(sibling.similarity * 100).toFixed(1)}%)`) + }) } if (hierarchy.children && hierarchy.children.length > 0) { - console.log(`πŸ‘Ά Children: ${hierarchy.children.length}`); + console.log(`πŸ‘Ά Children: ${hierarchy.children.length}`) hierarchy.children.forEach((child: any) => { - console.log(` β€’ ${child.id} (${(child.similarity * 100).toFixed(1)}%)`); - }); + console.log(` β€’ ${child.id} (${(child.similarity * 100).toFixed(1)}%)`) + }) } } async function handleNeighborsCommand(neural: NeuralAPI, argv: CommandArguments): Promise { - const spinner = ora('πŸ•ΈοΈ Finding semantic neighbors...').start(); + const spinner = ora('πŸ•ΈοΈ Finding semantic neighbors...').start() try { - const id = argv.id || argv._[1]; + const id = argv.id || argv._[1] if (!id) { - spinner.stop(); + spinner.stop() const answer = await inquirer.prompt([{ type: 'input', name: 'id', message: 'Enter item ID:', validate: (input: string) => input.length > 0 - }]); - spinner.start(); + }]) + spinner.start() } const targetId = id || (await inquirer.prompt([{ @@ -363,52 +363,52 @@ async function handleNeighborsCommand(neural: NeuralAPI, argv: CommandArguments) name: 'id', message: 'Enter item ID:', validate: (input: string) => input.length > 0 - }])).id; + }])).id const graph = await neural.neighbors(targetId, { limit: argv.limit, includeEdges: true - }); + }) - spinner.succeed(`βœ… Found ${graph.neighbors.length} neighbors`); + spinner.succeed(`βœ… Found ${graph.neighbors.length} neighbors`) - console.log(`\nπŸ•ΈοΈ Neighbors of ${chalk.cyan(graph.center)}:`); + console.log(`\nπŸ•ΈοΈ Neighbors of ${chalk.cyan(graph.center)}:`) graph.neighbors.forEach((neighbor, index) => { - console.log(`${index + 1}. ${neighbor.id} (${(neighbor.similarity * 100).toFixed(1)}%)`); + console.log(`${index + 1}. ${neighbor.id} (${(neighbor.similarity * 100).toFixed(1)}%)`) if (neighbor.type) { - console.log(` Type: ${neighbor.type}`); + console.log(` Type: ${neighbor.type}`) } if (neighbor.connections) { - console.log(` Connections: ${neighbor.connections}`); + console.log(` Connections: ${neighbor.connections}`) } - }); + }) if (graph.edges && graph.edges.length > 0) { - console.log(`\nπŸ”— ${graph.edges.length} semantic connections found`); + console.log(`\nπŸ”— ${graph.edges.length} semantic connections found`) } if (argv.output) { - await saveToFile(argv.output, graph, argv.format!); + await saveToFile(argv.output, graph, argv.format!) } } catch (error) { - spinner.fail('πŸ’₯ Failed to find neighbors'); - throw error; + spinner.fail('πŸ’₯ Failed to find neighbors') + throw error } } async function handlePathCommand(neural: NeuralAPI, argv: CommandArguments): Promise { - const spinner = ora('πŸ›£οΈ Finding semantic path...').start(); + const spinner = ora('πŸ›£οΈ Finding semantic path...').start() try { - let fromId: string, toId: string; + let fromId: string, toId: string if (argv._ && argv._.length >= 3) { - fromId = argv._[1]; - toId = argv._[2]; + fromId = argv._[1] + toId = argv._[2] } else { - spinner.stop(); + spinner.stop() const answers = await inquirer.prompt([ { type: 'input', @@ -422,156 +422,156 @@ async function handlePathCommand(neural: NeuralAPI, argv: CommandArguments): Pro message: 'To item ID:', validate: (input: string) => input.length > 0 } - ]); - fromId = answers.from; - toId = answers.to; - spinner.start(); + ]) + fromId = answers.from + toId = answers.to + spinner.start() } - const path = await neural.semanticPath(fromId, toId); + const path = await neural.semanticPath(fromId, toId) if (path.length === 0) { - spinner.warn('🚫 No semantic path found'); - console.log(`No path found between ${chalk.cyan(fromId)} and ${chalk.cyan(toId)}`); + spinner.warn('🚫 No semantic path found') + console.log(`No path found between ${chalk.cyan(fromId)} and ${chalk.cyan(toId)}`) } else { - spinner.succeed(`βœ… Found path with ${path.length} hops`); + spinner.succeed(`βœ… Found path with ${path.length} hops`) - console.log(`\nπŸ›£οΈ Semantic Path from ${chalk.cyan(fromId)} to ${chalk.cyan(toId)}:`); - console.log(`${chalk.cyan(fromId)} (start)`); + console.log(`\nπŸ›£οΈ Semantic Path from ${chalk.cyan(fromId)} to ${chalk.cyan(toId)}:`) + console.log(`${chalk.cyan(fromId)} (start)`) path.forEach((hop, index) => { - console.log(`${' '.repeat(index + 1)}↓ ${(hop.similarity * 100).toFixed(1)}%`); - console.log(`${' '.repeat(index + 1)}${hop.id} (hop ${hop.hop})`); - }); + console.log(`${' '.repeat(index + 1)}↓ ${(hop.similarity * 100).toFixed(1)}%`) + console.log(`${' '.repeat(index + 1)}${hop.id} (hop ${hop.hop})`) + }) } if (argv.output) { - await saveToFile(argv.output, path, argv.format!); + await saveToFile(argv.output, path, argv.format!) } } catch (error) { - spinner.fail('πŸ’₯ Failed to find path'); - throw error; + spinner.fail('πŸ’₯ Failed to find path') + throw error } } async function handleOutliersCommand(neural: NeuralAPI, argv: CommandArguments): Promise { - const spinner = ora('🚨 Detecting semantic outliers...').start(); + const spinner = ora('🚨 Detecting semantic outliers...').start() try { - const outliers = await neural.outliers(argv.threshold); + const outliers = await neural.outliers(argv.threshold) - spinner.succeed(`βœ… Found ${outliers.length} outliers`); + spinner.succeed(`βœ… Found ${outliers.length} outliers`) if (outliers.length === 0) { - console.log('\nπŸŽ‰ No outliers detected - all items are well connected!'); + console.log('\nπŸŽ‰ No outliers detected - all items are well connected!') } else { - console.log(`\n🚨 ${chalk.red(outliers.length)} Semantic Outliers:`); + console.log(`\n🚨 ${chalk.red(outliers.length)} Semantic Outliers:`) outliers.forEach((outlier, index) => { - console.log(`${index + 1}. ${outlier}`); - }); + console.log(`${index + 1}. ${outlier}`) + }) - console.log(`\nπŸ’‘ These items have similarity < ${argv.threshold} to their nearest neighbors`); + console.log(`\nπŸ’‘ These items have similarity < ${argv.threshold} to their nearest neighbors`) } if (argv.output) { - await saveToFile(argv.output, outliers, argv.format!); + await saveToFile(argv.output, outliers, argv.format!) } } catch (error) { - spinner.fail('πŸ’₯ Failed to detect outliers'); - throw error; + spinner.fail('πŸ’₯ Failed to detect outliers') + throw error } } async function handleVisualizeCommand(neural: NeuralAPI, argv: CommandArguments): Promise { - const spinner = ora('πŸ“Š Generating visualization data...').start(); + const spinner = ora('πŸ“Š Generating visualization data...').start() try { const vizData = await neural.visualize({ dimensions: argv.dimensions as 2 | 3, maxNodes: argv.limit - }); + }) - spinner.succeed('βœ… Visualization data generated'); + spinner.succeed('βœ… Visualization data generated') - console.log(`\nπŸ“Š Visualization Data (${vizData.format} layout):`); - console.log(`πŸ“ Nodes: ${vizData.nodes.length}`); - console.log(`πŸ”— Edges: ${vizData.edges.length}`); - console.log(`🎯 Clusters: ${vizData.clusters?.length || 0}`); - console.log(`πŸ“ Dimensions: ${vizData.layout?.dimensions}D`); + console.log(`\nπŸ“Š Visualization Data (${vizData.format} layout):`) + console.log(`πŸ“ Nodes: ${vizData.nodes.length}`) + console.log(`πŸ”— Edges: ${vizData.edges.length}`) + console.log(`🎯 Clusters: ${vizData.clusters?.length || 0}`) + console.log(`πŸ“ Dimensions: ${vizData.layout?.dimensions}D`) if (argv.format === 'json') { - console.log('\nData:'); - console.log(JSON.stringify(vizData, null, 2)); + console.log('\nData:') + console.log(JSON.stringify(vizData, null, 2)) } else { - console.log('\n🎨 Style Settings:'); - console.log(` Node Colors: ${vizData.style?.nodeColors}`); - console.log(` Edge Width: ${vizData.style?.edgeWidth}`); - console.log(` Labels: ${vizData.style?.labels}`); + console.log('\n🎨 Style Settings:') + console.log(` Node Colors: ${vizData.style?.nodeColors}`) + console.log(` Edge Width: ${vizData.style?.edgeWidth}`) + console.log(` Labels: ${vizData.style?.labels}`) } if (argv.output) { - await saveToFile(argv.output, vizData, 'json'); - console.log(`\nπŸ’Ύ Visualization data saved to: ${chalk.green(argv.output)}`); + await saveToFile(argv.output, vizData, 'json') + console.log(`\nπŸ’Ύ Visualization data saved to: ${chalk.green(argv.output)}`) } else { - console.log(`\nπŸ’‘ Use --output to save visualization data for external tools`); + console.log(`\nπŸ’‘ Use --output to save visualization data for external tools`) } } catch (error) { - spinner.fail('πŸ’₯ Failed to generate visualization'); - throw error; + spinner.fail('πŸ’₯ Failed to generate visualization') + throw error } } async function saveToFile(filepath: string, data: any, format: string): Promise { - const dir = path.dirname(filepath); + const dir = path.dirname(filepath) if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); + fs.mkdirSync(dir, { recursive: true }) } - let output: string; + let output: string switch (format) { case 'json': - output = JSON.stringify(data, null, 2); - break; + output = JSON.stringify(data, null, 2) + break case 'table': - output = formatAsTable(data); - break; + output = formatAsTable(data) + break default: - output = JSON.stringify(data, null, 2); + output = JSON.stringify(data, null, 2) } - fs.writeFileSync(filepath, output, 'utf8'); - console.log(`πŸ’Ύ Saved to: ${chalk.green(filepath)}`); + fs.writeFileSync(filepath, output, 'utf8') + console.log(`πŸ’Ύ Saved to: ${chalk.green(filepath)}`) } function formatAsTable(data: any): string { // Simple table formatting - could be enhanced with a table library if (Array.isArray(data)) { - return data.map((item, index) => `${index + 1}. ${JSON.stringify(item)}`).join('\n'); + return data.map((item, index) => `${index + 1}. ${JSON.stringify(item)}`).join('\n') } - return JSON.stringify(data, null, 2); + return JSON.stringify(data, null, 2) } function showHelp(): void { - console.log('\n🧠 Neural Similarity API Commands:'); - console.log(''); - console.log(' brainy neural similar Calculate similarity'); - console.log(' brainy neural clusters Find semantic clusters'); - console.log(' brainy neural hierarchy Show item hierarchy'); - console.log(' brainy neural neighbors Find semantic neighbors'); - console.log(' brainy neural path Find semantic path'); - console.log(' brainy neural outliers Detect outliers'); - console.log(' brainy neural visualize Generate visualization data'); - console.log(''); - console.log('Options:'); - console.log(' --threshold, -t Similarity threshold (0-1)'); - console.log(' --format, -f Output format (json|table|tree|graph)'); - console.log(' --output, -o Save to file'); - console.log(' --limit, -l Maximum results'); - console.log(' --explain, -e Include explanations'); - console.log(''); + console.log('\n🧠 Neural Similarity API Commands:') + console.log('') + console.log(' brainy neural similar Calculate similarity') + console.log(' brainy neural clusters Find semantic clusters') + console.log(' brainy neural hierarchy Show item hierarchy') + console.log(' brainy neural neighbors Find semantic neighbors') + console.log(' brainy neural path Find semantic path') + console.log(' brainy neural outliers Detect outliers') + console.log(' brainy neural visualize Generate visualization data') + console.log('') + console.log('Options:') + console.log(' --threshold, -t Similarity threshold (0-1)') + console.log(' --format, -f Output format (json|table|tree|graph)') + console.log(' --output, -o Save to file') + console.log(' --limit, -l Maximum results') + console.log(' --explain, -e Include explanations') + console.log('') } -export default neuralCommand; \ No newline at end of file +export default neuralCommand \ No newline at end of file diff --git a/src/neural/naturalLanguageProcessor.ts b/src/neural/naturalLanguageProcessor.ts index ac192393..c3ab9cc0 100644 --- a/src/neural/naturalLanguageProcessor.ts +++ b/src/neural/naturalLanguageProcessor.ts @@ -1279,7 +1279,7 @@ export class NaturalLanguageProcessor { } if (options?.includeMetadata) { - ;(entity as any).metadata = { + (entity as any).metadata = { pattern: pattern.source, contextBefore: text.substring(Math.max(0, match.index - 20), match.index), contextAfter: text.substring(match.index + match[0].length, Math.min(text.length, match.index + match[0].length + 20)) diff --git a/src/setup.ts b/src/setup.ts index 3edef4f3..726c256b 100644 --- a/src/setup.ts +++ b/src/setup.ts @@ -34,7 +34,7 @@ if (globalObj) { } // Create special global constructors for library compatibility - ;(globalObj as any).__TextEncoder__ = TextEncoder + (globalObj as any).__TextEncoder__ = TextEncoder ;(globalObj as any).__TextDecoder__ = TextDecoder } diff --git a/src/unified.ts b/src/unified.ts index 03fbfed2..13cfbdd2 100644 --- a/src/unified.ts +++ b/src/unified.ts @@ -53,7 +53,7 @@ export const environment = { // Make environment information available globally if (typeof globalThis !== 'undefined') { - ;(globalThis as any).__ENV__ = environment + (globalThis as any).__ENV__ = environment } // Log the detected environment