4runr-os 2.1.46 → 2.1.48
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.
- package/USER-PRIVACY.md +81 -0
- package/dist/version-check.js +4 -4
- package/dist/version-check.js.map +1 -1
- package/package.json +4 -2
- package/scripts/cleanup-build-artifacts.js +101 -0
- package/scripts/postinstall-mk3.js +13 -0
- package/scripts/setup.js +17 -25
package/USER-PRIVACY.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# User Privacy & System Cleanliness
|
|
2
|
+
|
|
3
|
+
## What We Install
|
|
4
|
+
|
|
5
|
+
4runr-os **only installs what's necessary** and **respects your system**:
|
|
6
|
+
|
|
7
|
+
### ✅ What Gets Installed (Only if Missing)
|
|
8
|
+
|
|
9
|
+
1. **Rust** (optional)
|
|
10
|
+
- Only if not already installed
|
|
11
|
+
- **User must install manually** (we provide instructions, don't auto-install)
|
|
12
|
+
- Required for building mk3-tui binary
|
|
13
|
+
|
|
14
|
+
2. **MinGW/MSYS2** (Windows only, optional)
|
|
15
|
+
- Only if MSVC linker not available
|
|
16
|
+
- Only if not already installed
|
|
17
|
+
- Used for Rust GNU toolchain on Windows
|
|
18
|
+
|
|
19
|
+
3. **mk3-tui Binary**
|
|
20
|
+
- Built from source included in package
|
|
21
|
+
- Only if pre-built binary not available
|
|
22
|
+
- Stored in package directory (not system directories)
|
|
23
|
+
|
|
24
|
+
### ✅ What We Never Do
|
|
25
|
+
|
|
26
|
+
- ❌ Never install system-wide software without user consent
|
|
27
|
+
- ❌ Never modify system PATH permanently without asking
|
|
28
|
+
- ❌ Never download large files unnecessarily
|
|
29
|
+
- ❌ Never leave temporary files on your system
|
|
30
|
+
- ❌ Never modify registry or system settings
|
|
31
|
+
- ❌ Never auto-install Rust (user must do it manually)
|
|
32
|
+
|
|
33
|
+
### 🧹 Automatic Cleanup
|
|
34
|
+
|
|
35
|
+
The package automatically cleans up:
|
|
36
|
+
|
|
37
|
+
1. **Build Artifacts** (after building)
|
|
38
|
+
- Removes Rust debug builds (~200-300MB saved)
|
|
39
|
+
- Removes incremental compilation artifacts
|
|
40
|
+
- Keeps only the final release binary
|
|
41
|
+
|
|
42
|
+
2. **Old Versions** (during updates)
|
|
43
|
+
- Removes old npm package versions (keeps last 2)
|
|
44
|
+
- Prevents disk space overflow from version history
|
|
45
|
+
|
|
46
|
+
3. **No Temporary Files**
|
|
47
|
+
- All operations use existing directories
|
|
48
|
+
- No temp files created or left behind
|
|
49
|
+
|
|
50
|
+
### 📦 Package Contents
|
|
51
|
+
|
|
52
|
+
The npm package includes:
|
|
53
|
+
- ✅ Compiled TypeScript (dist/)
|
|
54
|
+
- ✅ Rust source code (for building if needed)
|
|
55
|
+
- ✅ Setup scripts (for one-time setup)
|
|
56
|
+
- ❌ Build artifacts (excluded via .npmignore)
|
|
57
|
+
- ❌ Source TypeScript (excluded - only dist/ included)
|
|
58
|
+
- ❌ Development files
|
|
59
|
+
|
|
60
|
+
### 🔒 What We Touch
|
|
61
|
+
|
|
62
|
+
**User's System:**
|
|
63
|
+
- ✅ npm global install directory (standard npm location)
|
|
64
|
+
- ✅ PATH environment variable (session-only, unless user approves permanent)
|
|
65
|
+
- ❌ System directories (we never touch system files)
|
|
66
|
+
- ❌ Registry/configuration files (Windows)
|
|
67
|
+
- ❌ User's home directory (except standard npm locations)
|
|
68
|
+
|
|
69
|
+
**User's Data:**
|
|
70
|
+
- ✅ Configuration file: `~/.4runr/config.json` (for user preferences)
|
|
71
|
+
- ❌ User's files or documents (never accessed)
|
|
72
|
+
- ❌ Browser data or history (never accessed)
|
|
73
|
+
- ❌ Personal information (never collected)
|
|
74
|
+
|
|
75
|
+
### 🛡️ Privacy Guarantee
|
|
76
|
+
|
|
77
|
+
- No telemetry or tracking
|
|
78
|
+
- No data collection
|
|
79
|
+
- No external network calls (except npm registry for updates)
|
|
80
|
+
- All operations are local
|
|
81
|
+
|
package/dist/version-check.js
CHANGED
|
@@ -93,11 +93,11 @@ export function promptUpdate(current, latest, packageName = '4runr-os') {
|
|
|
93
93
|
function cleanupOldVersions(packageName) {
|
|
94
94
|
try {
|
|
95
95
|
// Clean npm cache for this package (keeps cache size down)
|
|
96
|
+
// Only clean cache for this specific package, not entire cache
|
|
96
97
|
try {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
});
|
|
98
|
+
// npm cache clean doesn't work per-package, so we skip this
|
|
99
|
+
// to avoid clearing user's entire npm cache
|
|
100
|
+
// Users can run `npm cache clean --force` manually if needed
|
|
101
101
|
}
|
|
102
102
|
catch {
|
|
103
103
|
// Ignore cache clean errors - not critical
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "4runr-os",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.48",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "4Runr AI Agent OS - Interactive terminal for managing AI agents",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -39,8 +39,10 @@
|
|
|
39
39
|
"mk3-tui/binaries/**/*",
|
|
40
40
|
"scripts/setup.js",
|
|
41
41
|
"scripts/postinstall-mk3.js",
|
|
42
|
+
"scripts/cleanup-build-artifacts.js",
|
|
42
43
|
"README.md",
|
|
43
|
-
"SETUP.md"
|
|
44
|
+
"SETUP.md",
|
|
45
|
+
"USER-PRIVACY.md"
|
|
44
46
|
],
|
|
45
47
|
"engines": {
|
|
46
48
|
"node": ">=18.0.0"
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Cleanup script: Remove unnecessary build artifacts to keep user's computer clean
|
|
4
|
+
* - Removes Rust debug builds (keep only release)
|
|
5
|
+
* - Removes incremental compilation artifacts
|
|
6
|
+
* - Keeps only the final release binary
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as fs from 'fs';
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
12
|
+
import { dirname } from 'path';
|
|
13
|
+
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = dirname(__filename);
|
|
16
|
+
|
|
17
|
+
const mk3Dir = path.join(__dirname, '..', 'mk3-tui');
|
|
18
|
+
const targetDir = path.join(mk3Dir, 'target');
|
|
19
|
+
|
|
20
|
+
if (!fs.existsSync(targetDir)) {
|
|
21
|
+
// No build artifacts to clean
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const binaryName = process.platform === 'win32' ? 'mk3-tui.exe' : 'mk3-tui';
|
|
26
|
+
const releaseBinary = path.join(targetDir, 'release', binaryName);
|
|
27
|
+
|
|
28
|
+
// Check if release binary exists - if so, we can safely clean up
|
|
29
|
+
if (fs.existsSync(releaseBinary)) {
|
|
30
|
+
let cleanedSize = 0;
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
// Remove debug build (if exists) - saves ~200-300MB
|
|
34
|
+
const debugDir = path.join(targetDir, 'debug');
|
|
35
|
+
if (fs.existsSync(debugDir)) {
|
|
36
|
+
const stats = getDirSize(debugDir);
|
|
37
|
+
fs.rmSync(debugDir, { recursive: true, force: true });
|
|
38
|
+
cleanedSize += stats;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Remove incremental compilation artifacts (keeps builds faster but uses disk)
|
|
42
|
+
const incrementalDir = path.join(targetDir, 'release', '.fingerprint');
|
|
43
|
+
const incrementalDeps = path.join(targetDir, 'release', 'deps');
|
|
44
|
+
const incrementalIncremental = path.join(targetDir, 'incremental');
|
|
45
|
+
|
|
46
|
+
if (fs.existsSync(incrementalDir)) {
|
|
47
|
+
cleanedSize += getDirSize(incrementalDir);
|
|
48
|
+
fs.rmSync(incrementalDir, { recursive: true, force: true });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Keep deps/ folder (needed for linking), but remove .fingerprint
|
|
52
|
+
// Remove incremental compilation metadata (can be rebuilt)
|
|
53
|
+
if (fs.existsSync(incrementalIncremental)) {
|
|
54
|
+
cleanedSize += getDirSize(incrementalIncremental);
|
|
55
|
+
fs.rmSync(incrementalIncremental, { recursive: true, force: true });
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Calculate cleaned size in MB
|
|
59
|
+
const cleanedMB = (cleanedSize / (1024 * 1024)).toFixed(1);
|
|
60
|
+
if (cleanedMB > 0.1) {
|
|
61
|
+
// Only log if we cleaned something meaningful
|
|
62
|
+
// Silent cleanup - don't bother user with details
|
|
63
|
+
}
|
|
64
|
+
} catch (error) {
|
|
65
|
+
// Silent fail - cleanup is best-effort
|
|
66
|
+
// Don't break install if cleanup fails
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Calculate directory size recursively
|
|
72
|
+
*/
|
|
73
|
+
function getDirSize(dirPath) {
|
|
74
|
+
let size = 0;
|
|
75
|
+
try {
|
|
76
|
+
const entries = fs.readdirSync(dirPath, { withFileTypes: true });
|
|
77
|
+
for (const entry of entries) {
|
|
78
|
+
const entryPath = path.join(dirPath, entry.name);
|
|
79
|
+
if (entry.isDirectory()) {
|
|
80
|
+
size += getDirSize(entryPath);
|
|
81
|
+
} else {
|
|
82
|
+
try {
|
|
83
|
+
const stats = fs.statSync(entryPath);
|
|
84
|
+
size += stats.size;
|
|
85
|
+
} catch {
|
|
86
|
+
// Ignore errors
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
} catch {
|
|
91
|
+
// Ignore errors
|
|
92
|
+
}
|
|
93
|
+
return size;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Export for use in other scripts
|
|
97
|
+
export function cleanupBuildArtifacts() {
|
|
98
|
+
// This runs the cleanup logic above
|
|
99
|
+
// (code is already executed when script runs directly)
|
|
100
|
+
}
|
|
101
|
+
|
|
@@ -44,6 +44,19 @@ try {
|
|
|
44
44
|
stdio: 'inherit',
|
|
45
45
|
});
|
|
46
46
|
console.log('✓ mk3-tui built successfully');
|
|
47
|
+
|
|
48
|
+
// Clean up build artifacts to save disk space (~300-400MB)
|
|
49
|
+
try {
|
|
50
|
+
const cleanupScript = path.join(__dirname, 'cleanup-build-artifacts.js');
|
|
51
|
+
if (fs.existsSync(cleanupScript)) {
|
|
52
|
+
execSync(`node "${cleanupScript}"`, {
|
|
53
|
+
cwd: path.dirname(__dirname),
|
|
54
|
+
stdio: 'ignore', // Silent cleanup
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
// Silent - cleanup is optional, don't fail if it doesn't work
|
|
59
|
+
}
|
|
47
60
|
} catch (error) {
|
|
48
61
|
console.warn('⚠️ Failed to build mk3-tui. It will be built on first run.');
|
|
49
62
|
// Don't exit with error - allow install to complete
|
package/scripts/setup.js
CHANGED
|
@@ -65,30 +65,14 @@ try {
|
|
|
65
65
|
}
|
|
66
66
|
} catch {
|
|
67
67
|
console.log('⚠️ Rust not installed');
|
|
68
|
-
console.log('
|
|
68
|
+
console.log('\n Rust is required to build mk3-tui.');
|
|
69
|
+
console.log(' Install Rust: https://rustup.rs/');
|
|
70
|
+
console.log(' Or run: curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh\n');
|
|
71
|
+
console.log(' After installing Rust, run 4runr-setup again.\n');
|
|
72
|
+
process.exit(1);
|
|
69
73
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
// Try winget
|
|
73
|
-
try {
|
|
74
|
-
execSync('winget install Rustlang.Rustup --accept-package-agreements --accept-source-agreements', { stdio: 'inherit' });
|
|
75
|
-
rustInstalled = true;
|
|
76
|
-
rustNeedsGNU = true; // Default to GNU on Windows
|
|
77
|
-
} catch {
|
|
78
|
-
console.error('❌ Failed to install Rust automatically');
|
|
79
|
-
console.error(' Please install manually: https://rustup.rs/');
|
|
80
|
-
process.exit(1);
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
// Linux/macOS
|
|
84
|
-
execSync('curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y', { stdio: 'inherit' });
|
|
85
|
-
rustInstalled = true;
|
|
86
|
-
}
|
|
87
|
-
} catch {
|
|
88
|
-
console.error('❌ Failed to install Rust automatically');
|
|
89
|
-
console.error(' Please install manually: https://rustup.rs/');
|
|
90
|
-
process.exit(1);
|
|
91
|
-
}
|
|
74
|
+
// Note: We don't auto-install Rust anymore to avoid modifying user's system without explicit consent
|
|
75
|
+
// Users should install Rust themselves using the official installer
|
|
92
76
|
}
|
|
93
77
|
|
|
94
78
|
// Fix Rust toolchain on Windows (use GNU if MSVC not available)
|
|
@@ -324,13 +308,18 @@ try {
|
|
|
324
308
|
? path.join(npmPrefix, '4r.cmd')
|
|
325
309
|
: path.join(npmPrefix, 'bin', '4r');
|
|
326
310
|
|
|
327
|
-
|
|
311
|
+
// Also check for 4runr-os package in node_modules
|
|
312
|
+
const globalPackagePath = isWindows
|
|
313
|
+
? path.join(npmPrefix, 'node_modules', '4runr-os', 'package.json')
|
|
314
|
+
: path.join(npmPrefix, 'lib', 'node_modules', '4runr-os', 'package.json');
|
|
315
|
+
|
|
316
|
+
if (fs.existsSync(globalBinPath) || fs.existsSync(globalPackagePath)) {
|
|
328
317
|
console.log('✅ 4runr-os is installed');
|
|
329
318
|
} else {
|
|
330
319
|
throw new Error('4r not found');
|
|
331
320
|
}
|
|
332
321
|
} catch {
|
|
333
|
-
console.log('⚠️ 4runr-os not found
|
|
322
|
+
console.log('⚠️ 4runr-os not found');
|
|
334
323
|
console.log(' Installing 4runr-os...');
|
|
335
324
|
try {
|
|
336
325
|
execSync('npm install -g 4runr-os@latest', { stdio: 'inherit' });
|
|
@@ -371,6 +360,9 @@ try {
|
|
|
371
360
|
stdio: 'inherit',
|
|
372
361
|
});
|
|
373
362
|
console.log('✅ mk3-tui built successfully');
|
|
363
|
+
|
|
364
|
+
// Clean up build artifacts to save disk space (keep only release binary)
|
|
365
|
+
cleanupBuildArtifacts();
|
|
374
366
|
} catch (error) {
|
|
375
367
|
console.warn('⚠️ Failed to build mk3-tui');
|
|
376
368
|
console.warn(' The binary will be built automatically on first run of 4r');
|