Introduced `generateRandomGraph` method to create randomized graphs with configurable entity counts and types, supporting automated testing and experimentation. Enhanced metadata vectorization logic to handle various metadata formats reliably, ensuring compatibility and fallback mechanisms during embedding. Updated `README.md` with detailed feature descriptions and usage guides.
56 lines
1.7 KiB
JavaScript
Executable file
56 lines
1.7 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
/**
|
|
* CLI Wrapper Script
|
|
*
|
|
* This script serves as a wrapper for the Brainy CLI, ensuring that command-line arguments
|
|
* are properly passed to the CLI when invoked through npm scripts.
|
|
*/
|
|
|
|
import { spawn } from 'child_process'
|
|
import { fileURLToPath } from 'url'
|
|
import { dirname, join } from 'path'
|
|
import fs from 'fs'
|
|
|
|
// Get the directory of the current module
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const __dirname = dirname(__filename)
|
|
|
|
// Path to the actual CLI script
|
|
const cliPath = join(__dirname, 'dist', 'cli.js')
|
|
|
|
// Check if the CLI script exists
|
|
if (!fs.existsSync(cliPath)) {
|
|
console.error(`Error: CLI script not found at ${cliPath}`)
|
|
console.error('Make sure you have built the project with "npm run build"')
|
|
process.exit(1)
|
|
}
|
|
|
|
// Special handling for version flags
|
|
if (process.argv.includes('--version') || process.argv.includes('-V')) {
|
|
// Read version directly from package.json to ensure it's always correct
|
|
try {
|
|
const packageJsonPath = join(__dirname, 'package.json')
|
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
|
|
console.log(packageJson.version)
|
|
process.exit(0)
|
|
} catch (error) {
|
|
console.error('Error loading version information:', error.message)
|
|
process.exit(1)
|
|
}
|
|
}
|
|
|
|
// Forward all arguments to the CLI script
|
|
const args = process.argv.slice(2)
|
|
|
|
// Check if npm is passing --force flag
|
|
// When npm runs with --force, it sets the npm_config_force environment variable
|
|
if (process.env.npm_config_force === 'true' && args.includes('clear') && !args.includes('--force') && !args.includes('-f')) {
|
|
args.push('--force')
|
|
}
|
|
|
|
const cli = spawn('node', [cliPath, ...args], { stdio: 'inherit' })
|
|
|
|
cli.on('close', (code) => {
|
|
process.exit(code)
|
|
})
|