terminal-jarvis 0.0.6 ā 0.0.7
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/lib/index.d.ts +1 -0
- package/lib/index.js +90 -12
- package/lib/index.js.map +1 -1
- package/package.json +6 -2
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
@@ -1,15 +1,93 @@
|
|
1
1
|
#!/usr/bin/env node
|
2
2
|
"use strict";
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
const child_process_1 = require("child_process");
|
5
|
+
const fs_1 = require("fs");
|
6
|
+
const path_1 = require("path");
|
7
|
+
// Try to find the Rust binary in common locations
|
8
|
+
const possibleBinaries = [
|
9
|
+
(0, path_1.join)(__dirname, '..', '..', '..', 'target', 'debug', 'terminal-jarvis'), // Local debug build
|
10
|
+
(0, path_1.join)(__dirname, '..', '..', '..', 'target', 'release', 'terminal-jarvis'), // Local release build
|
11
|
+
(0, path_1.join)(process.env.HOME || '', '.cargo', 'bin', 'terminal-jarvis'), // Cargo home
|
12
|
+
'/usr/local/bin/terminal-jarvis', // System install
|
13
|
+
];
|
14
|
+
async function findRustBinary() {
|
15
|
+
// First check local build and other possible locations
|
16
|
+
for (const path of possibleBinaries) {
|
17
|
+
if ((0, fs_1.existsSync)(path)) {
|
18
|
+
return path;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
// Then check if terminal-jarvis is available in PATH (but avoid NPM version)
|
22
|
+
return new Promise((resolve) => {
|
23
|
+
const child = (0, child_process_1.spawn)('which', ['terminal-jarvis'], { stdio: 'pipe' });
|
24
|
+
let output = '';
|
25
|
+
child.stdout.on('data', (data) => {
|
26
|
+
output += data.toString();
|
27
|
+
});
|
28
|
+
child.on('close', (code) => {
|
29
|
+
if (code === 0 && output.trim()) {
|
30
|
+
const binaryPath = output.trim();
|
31
|
+
// Avoid using NPM-installed versions (they'd be in node_modules or nvm)
|
32
|
+
if (!binaryPath.includes('node_modules') && !binaryPath.includes('nvm')) {
|
33
|
+
resolve(binaryPath);
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
resolve(null);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
resolve(null);
|
41
|
+
}
|
42
|
+
});
|
43
|
+
child.on('error', () => resolve(null));
|
44
|
+
});
|
45
|
+
}
|
46
|
+
async function main() {
|
47
|
+
const rustBinary = await findRustBinary();
|
48
|
+
if (rustBinary) {
|
49
|
+
// Run the Rust binary with all arguments
|
50
|
+
const child = (0, child_process_1.spawn)(rustBinary, process.argv.slice(2), {
|
51
|
+
stdio: 'inherit',
|
52
|
+
cwd: process.cwd()
|
53
|
+
});
|
54
|
+
child.on('close', (code) => {
|
55
|
+
process.exit(code || 0);
|
56
|
+
});
|
57
|
+
child.on('error', (err) => {
|
58
|
+
console.error('Error running terminal-jarvis binary:', err.message);
|
59
|
+
showFallbackMessage();
|
60
|
+
});
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
showFallbackMessage();
|
64
|
+
}
|
65
|
+
}
|
66
|
+
function showFallbackMessage() {
|
67
|
+
console.log("š¤ Terminal Jarvis v0.0.7");
|
68
|
+
console.log("");
|
69
|
+
console.log("ā ļø The full T.JARVIS interactive interface requires the Rust binary.");
|
70
|
+
console.log("");
|
71
|
+
console.log("š Install for full functionality:");
|
72
|
+
console.log(" cargo install --git https://github.com/BA-CalderonMorales/terminal-jarvis");
|
73
|
+
console.log("");
|
74
|
+
console.log("š¦ Or install Rust first:");
|
75
|
+
console.log(" curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh");
|
76
|
+
console.log(" source ~/.cargo/env");
|
77
|
+
console.log(" cargo install --git https://github.com/BA-CalderonMorales/terminal-jarvis");
|
78
|
+
console.log("");
|
79
|
+
console.log("⨠Features you'll get with the full version:");
|
80
|
+
console.log(" ⢠Interactive T.JARVIS interface with ASCII art");
|
81
|
+
console.log(" ⢠One-click tool installation (claude, gemini, qwen, opencode)");
|
82
|
+
console.log(" ⢠Smart tool detection and management");
|
83
|
+
console.log(" ⢠Real-time status checking");
|
84
|
+
console.log(" ⢠Responsive terminal design");
|
85
|
+
console.log("");
|
86
|
+
console.log("š” This NPM package serves as a convenient installer and launcher.");
|
87
|
+
process.exit(1);
|
88
|
+
}
|
89
|
+
main().catch((err) => {
|
90
|
+
console.error('Unexpected error:', err);
|
91
|
+
process.exit(1);
|
92
|
+
});
|
15
93
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "terminal-jarvis",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.7",
|
4
4
|
"description": "A thin Rust wrapper that provides a unified interface for managing and running AI coding tools",
|
5
5
|
"bin": "lib/index.js",
|
6
6
|
"files": [
|
@@ -19,7 +19,8 @@
|
|
19
19
|
"check:fix": "biome check --write src/",
|
20
20
|
"build": "npm run sync-readme && tsc",
|
21
21
|
"prepublishOnly": "npm run build",
|
22
|
-
"dev": "npm run build && node lib/index.js"
|
22
|
+
"dev": "npm run build && node lib/index.js",
|
23
|
+
"postinstall": "node -e \"console.log('\\nš¤ Terminal Jarvis installed!\\n\\nFor the full T.JARVIS experience, install the Rust binary:\\n cargo install --git https://github.com/BA-CalderonMorales/terminal-jarvis\\n\\nThen run: npx terminal-jarvis\\n')\""
|
23
24
|
},
|
24
25
|
"keywords": [
|
25
26
|
"cli",
|
@@ -42,5 +43,8 @@
|
|
42
43
|
"@biomejs/biome": "^2.1.3",
|
43
44
|
"@types/node": "^20.0.0",
|
44
45
|
"typescript": "^5.0.0"
|
46
|
+
},
|
47
|
+
"engines": {
|
48
|
+
"node": ">=16.0.0"
|
45
49
|
}
|
46
50
|
}
|