specmem-hardwicksoftware 3.5.26 → 3.5.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of specmem-hardwicksoftware might be problematic. Click here for more details.
package/package.json
CHANGED
|
@@ -53,6 +53,31 @@ const MODELS_DIR = path.join(SPECMEM_DIR, 'models');
|
|
|
53
53
|
const OPTIMIZED_DIR = path.join(MODELS_DIR, 'optimized');
|
|
54
54
|
const BASE_MODEL_DIR = path.join(MODELS_DIR, 'base');
|
|
55
55
|
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// DIRECTORY CHECK - Warn if running from home/system directory
|
|
58
|
+
// ============================================================================
|
|
59
|
+
function checkProjectDirectory() {
|
|
60
|
+
const cwd = process.cwd();
|
|
61
|
+
const homeDir = require('os').homedir();
|
|
62
|
+
const badDirs = [homeDir, '/', '/root', '/home', '/usr', '/var', '/tmp', '/etc', '/opt'];
|
|
63
|
+
|
|
64
|
+
if (badDirs.some(bad => cwd === bad || cwd === bad + '/')) {
|
|
65
|
+
console.log(`
|
|
66
|
+
${YELLOW}${BOLD}╔════════════════════════════════════════════════════════════════╗
|
|
67
|
+
║ ⚠ WARNING: Running from system/home directory! ║
|
|
68
|
+
╠════════════════════════════════════════════════════════════════╣
|
|
69
|
+
║ ║
|
|
70
|
+
║ Current: ${cwd.substring(0, 50).padEnd(50)} ║
|
|
71
|
+
║ ║
|
|
72
|
+
║ SpecMem setup should run from a PROJECT directory. ║
|
|
73
|
+
║ cd into your project first, then run specmem setup. ║
|
|
74
|
+
║ ║
|
|
75
|
+
╚════════════════════════════════════════════════════════════════╝${RESET}
|
|
76
|
+
`);
|
|
77
|
+
console.log(`${DIM}Continuing anyway...${RESET}\n`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
56
81
|
// ASCII art banner
|
|
57
82
|
function showBanner() {
|
|
58
83
|
console.log(`
|
|
@@ -179,7 +204,7 @@ function installPythonDeps() {
|
|
|
179
204
|
console.log(`${DIM}Installing ${dep.split(' ')[0]}...${RESET}`);
|
|
180
205
|
execSync(`pip3 install ${dep} --break-system-packages -q 2>/dev/null || pip install ${dep} --break-system-packages -q 2>/dev/null || pip3 install ${dep} -q 2>/dev/null || pip install ${dep} -q 2>/dev/null`, {
|
|
181
206
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
182
|
-
timeout:
|
|
207
|
+
timeout: 600000 // 10 min timeout for large packages like torch/optimum
|
|
183
208
|
});
|
|
184
209
|
console.log(`${GREEN}✓${RESET} ${dep.split(' ')[0]} installed`);
|
|
185
210
|
} catch (e) {
|
|
@@ -546,6 +571,7 @@ function showSummary() {
|
|
|
546
571
|
// Main
|
|
547
572
|
async function main() {
|
|
548
573
|
showBanner();
|
|
574
|
+
checkProjectDirectory();
|
|
549
575
|
|
|
550
576
|
// Check if already done
|
|
551
577
|
if (modelsExist()) {
|
|
@@ -30,6 +30,17 @@ const isGlobalInstall = process.env.npm_config_global === 'true' ||
|
|
|
30
30
|
process.env.npm_lifecycle_event === 'postinstall' &&
|
|
31
31
|
!__dirname.includes(process.cwd());
|
|
32
32
|
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// UNINSTALL OLD VERSIONS FIRST
|
|
35
|
+
// ============================================================================
|
|
36
|
+
try {
|
|
37
|
+
const oldVersionCheck = require('child_process').execSync('npm list -g specmem-hardwicksoftware --depth=0 2>/dev/null || true', { encoding: 'utf8' });
|
|
38
|
+
if (oldVersionCheck.includes('specmem-hardwicksoftware@') && !oldVersionCheck.includes(require('../package.json').version)) {
|
|
39
|
+
console.log('\x1b[33m⚠ Removing old version before installing new one...\x1b[0m');
|
|
40
|
+
require('child_process').execSync('npm uninstall -g specmem-hardwicksoftware 2>/dev/null || true', { stdio: 'pipe' });
|
|
41
|
+
}
|
|
42
|
+
} catch (e) { /* ignore */ }
|
|
43
|
+
|
|
33
44
|
// ============================================================================
|
|
34
45
|
// PLATFORM CHECK - Linux only for now
|
|
35
46
|
// ============================================================================
|
package/scripts/specmem-init.cjs
CHANGED
|
@@ -5448,6 +5448,45 @@ async function main() {
|
|
|
5448
5448
|
const projectPath = process.cwd();
|
|
5449
5449
|
const startTime = Date.now();
|
|
5450
5450
|
|
|
5451
|
+
// ========== DIRECTORY CHECK - Warn if not in a project directory ==========
|
|
5452
|
+
const homeDir = os.homedir();
|
|
5453
|
+
const badDirs = [
|
|
5454
|
+
homeDir,
|
|
5455
|
+
'/',
|
|
5456
|
+
'/root',
|
|
5457
|
+
'/home',
|
|
5458
|
+
'/usr',
|
|
5459
|
+
'/var',
|
|
5460
|
+
'/tmp',
|
|
5461
|
+
'/etc',
|
|
5462
|
+
'/opt'
|
|
5463
|
+
];
|
|
5464
|
+
|
|
5465
|
+
const isBadDir = badDirs.some(bad => projectPath === bad || projectPath === bad + '/');
|
|
5466
|
+
|
|
5467
|
+
if (isBadDir) {
|
|
5468
|
+
console.log(`
|
|
5469
|
+
${c.red}${c.bright}╔════════════════════════════════════════════════════════════════╗
|
|
5470
|
+
║ ⚠ WARNING: You're running specmem from a system directory! ║
|
|
5471
|
+
╠════════════════════════════════════════════════════════════════╣
|
|
5472
|
+
║ ║
|
|
5473
|
+
║ Current directory: ${projectPath.padEnd(41)}║
|
|
5474
|
+
║ ║
|
|
5475
|
+
║ SpecMem should be run from a PROJECT directory, not: ║
|
|
5476
|
+
║ • Your home folder (~) ║
|
|
5477
|
+
║ • System directories (/root, /usr, /etc, etc) ║
|
|
5478
|
+
║ • Temporary directories (/tmp) ║
|
|
5479
|
+
║ ║
|
|
5480
|
+
║ Please cd into your project first: ║
|
|
5481
|
+
║ $ cd /path/to/your/project ║
|
|
5482
|
+
║ $ specmem init ║
|
|
5483
|
+
║ ║
|
|
5484
|
+
╚════════════════════════════════════════════════════════════════╝${c.reset}
|
|
5485
|
+
`);
|
|
5486
|
+
console.log(`${c.yellow}Continuing anyway in 5 seconds... (Ctrl+C to cancel)${c.reset}`);
|
|
5487
|
+
await new Promise(r => setTimeout(r, 5000));
|
|
5488
|
+
}
|
|
5489
|
+
|
|
5451
5490
|
// Speed mode enabled by default - no need to wait for SPACE
|
|
5452
5491
|
|
|
5453
5492
|
// Animated banner with sliding red highlight (screen already cleared at startup)
|