terminal-jarvis 0.0.9 → 0.0.12
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/bin/terminal-jarvis +0 -0
- package/bin/terminal-jarvis-linux-x64 +0 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +135 -0
- package/lib/index.js.map +1 -1
- package/package.json +6 -3
Binary file
|
Binary file
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
@@ -1,2 +1,137 @@
|
|
1
|
+
#!/usr/bin/env node
|
1
2
|
"use strict";
|
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
|
+
const os_1 = require("os");
|
8
|
+
function getBundledBinaryPath() {
|
9
|
+
const currentPlatform = (0, os_1.platform)();
|
10
|
+
const currentArch = (0, os_1.arch)();
|
11
|
+
// Map Node.js platform/arch to our binary naming convention
|
12
|
+
let binaryName = 'terminal-jarvis';
|
13
|
+
if (currentPlatform === 'linux') {
|
14
|
+
binaryName += '-linux';
|
15
|
+
}
|
16
|
+
else if (currentPlatform === 'darwin') {
|
17
|
+
binaryName += '-macos';
|
18
|
+
}
|
19
|
+
else if (currentPlatform === 'win32') {
|
20
|
+
binaryName += '-windows.exe';
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
binaryName += '-linux'; // fallback
|
24
|
+
}
|
25
|
+
if (currentPlatform !== 'win32') {
|
26
|
+
if (currentArch === 'x64' || currentArch === 'x86_64') {
|
27
|
+
binaryName += '-x64';
|
28
|
+
}
|
29
|
+
else if (currentArch === 'arm64') {
|
30
|
+
binaryName += '-arm64';
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
binaryName += '-x64'; // fallback
|
34
|
+
}
|
35
|
+
}
|
36
|
+
return (0, path_1.join)(__dirname, '..', 'bin', binaryName);
|
37
|
+
}
|
38
|
+
// Try to find the Rust binary in common locations
|
39
|
+
const possibleBinaries = [
|
40
|
+
(0, path_1.join)(__dirname, '..', 'bin', 'terminal-jarvis'), // Bundled binary (generic)
|
41
|
+
(0, path_1.join)(__dirname, '..', 'bin', 'terminal-jarvis-linux-x64'), // Bundled binary (platform-specific)
|
42
|
+
(0, path_1.join)(__dirname, '..', '..', '..', 'target', 'debug', 'terminal-jarvis'), // Local debug build
|
43
|
+
(0, path_1.join)(__dirname, '..', '..', '..', 'target', 'release', 'terminal-jarvis'), // Local release build
|
44
|
+
(0, path_1.join)(process.env.HOME || '', '.cargo', 'bin', 'terminal-jarvis'), // Cargo home
|
45
|
+
'/usr/local/bin/terminal-jarvis', // System install
|
46
|
+
];
|
47
|
+
async function findRustBinary() {
|
48
|
+
// First check local build and other possible locations
|
49
|
+
for (const path of possibleBinaries) {
|
50
|
+
if ((0, fs_1.existsSync)(path)) {
|
51
|
+
return path;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
// Then check if terminal-jarvis is available in PATH
|
55
|
+
return new Promise((resolve) => {
|
56
|
+
const child = (0, child_process_1.spawn)('which', ['terminal-jarvis'], { stdio: 'pipe' });
|
57
|
+
let output = '';
|
58
|
+
child.stdout.on('data', (data) => {
|
59
|
+
output += data.toString();
|
60
|
+
});
|
61
|
+
child.on('close', (code) => {
|
62
|
+
if (code === 0 && output.trim()) {
|
63
|
+
const binaryPath = output.trim();
|
64
|
+
// Simple check: if it's not in node_modules and exists, assume it's the Rust binary
|
65
|
+
if (!binaryPath.includes('node_modules') && !binaryPath.includes('.npm') && (0, fs_1.existsSync)(binaryPath)) {
|
66
|
+
resolve(binaryPath);
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
resolve(null);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
else {
|
73
|
+
resolve(null);
|
74
|
+
}
|
75
|
+
});
|
76
|
+
child.on('error', () => resolve(null));
|
77
|
+
});
|
78
|
+
}
|
79
|
+
async function main() {
|
80
|
+
const rustBinary = await findRustBinary();
|
81
|
+
if (rustBinary) {
|
82
|
+
// Run the Rust binary with all arguments
|
83
|
+
const child = (0, child_process_1.spawn)(rustBinary, process.argv.slice(2), {
|
84
|
+
stdio: 'inherit',
|
85
|
+
cwd: process.cwd()
|
86
|
+
});
|
87
|
+
// Add a reasonable timeout to prevent indefinite hanging
|
88
|
+
const timeout = setTimeout(() => {
|
89
|
+
console.log('\n⚠️ Process timed out after 60 seconds');
|
90
|
+
child.kill('SIGTERM');
|
91
|
+
process.exit(1);
|
92
|
+
}, 60000); // 60 second timeout
|
93
|
+
child.on('close', (code) => {
|
94
|
+
clearTimeout(timeout);
|
95
|
+
process.exit(code || 0);
|
96
|
+
});
|
97
|
+
child.on('error', (err) => {
|
98
|
+
clearTimeout(timeout);
|
99
|
+
console.error('Error running terminal-jarvis binary:', err.message);
|
100
|
+
showFallbackMessage();
|
101
|
+
});
|
102
|
+
}
|
103
|
+
else {
|
104
|
+
showFallbackMessage();
|
105
|
+
}
|
106
|
+
}
|
107
|
+
function showFallbackMessage() {
|
108
|
+
console.log("🤖 Terminal Jarvis v0.0.12");
|
109
|
+
console.log("");
|
110
|
+
console.log("❌ Error: Could not find or execute the T.JARVIS binary.");
|
111
|
+
console.log("");
|
112
|
+
console.log("🔍 Debug: Searched for binary in:");
|
113
|
+
console.log(" • Bundled binary (bin/terminal-jarvis)");
|
114
|
+
console.log(" • Local builds (target/debug, target/release)");
|
115
|
+
console.log(" • ~/.cargo/bin/terminal-jarvis");
|
116
|
+
console.log(" • /usr/local/bin/terminal-jarvis");
|
117
|
+
console.log(" • PATH (excluding node_modules)");
|
118
|
+
console.log("");
|
119
|
+
console.log("� This should not happen! The binary should be bundled with this package.");
|
120
|
+
console.log("");
|
121
|
+
console.log("🔧 Troubleshooting:");
|
122
|
+
console.log(" • Try reinstalling: npm uninstall -g terminal-jarvis && npm install -g terminal-jarvis");
|
123
|
+
console.log(" • Check if binary exists: ls -la $(npm root -g)/terminal-jarvis/bin/");
|
124
|
+
console.log(" • Verify executable permissions: chmod +x $(npm root -g)/terminal-jarvis/bin/terminal-jarvis");
|
125
|
+
console.log("");
|
126
|
+
console.log("� Alternative - Install directly from source:");
|
127
|
+
console.log(" cargo install --git https://github.com/BA-CalderonMorales/terminal-jarvis");
|
128
|
+
console.log("");
|
129
|
+
console.log("� If this persists, please report this issue:");
|
130
|
+
console.log(" https://github.com/BA-CalderonMorales/terminal-jarvis/issues");
|
131
|
+
process.exit(1);
|
132
|
+
}
|
133
|
+
main().catch((err) => {
|
134
|
+
console.error('Unexpected error:', err);
|
135
|
+
process.exit(1);
|
136
|
+
});
|
2
137
|
//# 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,15 +1,18 @@
|
|
1
1
|
{
|
2
2
|
"name": "terminal-jarvis",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.12",
|
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": [
|
7
7
|
"lib/",
|
8
|
+
"bin/",
|
8
9
|
"README.md",
|
9
10
|
"package.json"
|
10
11
|
],
|
11
12
|
"scripts": {
|
12
13
|
"sync-readme": "cp ../../README.md .",
|
14
|
+
"build-rust": "cd ../.. && cargo build --release",
|
15
|
+
"copy-binary": "mkdir -p bin && cp ../../target/release/terminal-jarvis bin/terminal-jarvis && chmod +x bin/terminal-jarvis",
|
13
16
|
"typecheck": "tsc --noEmit",
|
14
17
|
"lint": "biome lint src/",
|
15
18
|
"lint:fix": "biome lint --write src/",
|
@@ -17,10 +20,10 @@
|
|
17
20
|
"format:fix": "biome format --write src/",
|
18
21
|
"check": "biome check src/",
|
19
22
|
"check:fix": "biome check --write src/",
|
20
|
-
"build": "npm run sync-readme && tsc",
|
23
|
+
"build": "npm run sync-readme && npm run build-rust && npm run copy-binary && tsc",
|
21
24
|
"prepublishOnly": "npm run build",
|
22
25
|
"dev": "npm run build && node lib/index.js",
|
23
|
-
"postinstall": "node -e \"console.log(
|
26
|
+
"postinstall": "node -e \"console.log(n🤖 Terminal Jarvis v0.0.12 installed successfully!nn✅ Full T.JARVIS interface ready to use!nnRun: npx terminal-jarvisn)\""
|
24
27
|
},
|
25
28
|
"keywords": [
|
26
29
|
"cli",
|