@humanu/orchestra 0.5.23 → 0.5.25
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/install.js
CHANGED
|
@@ -111,7 +111,23 @@ function linkCompatibilityBinary(binaryPath) {
|
|
|
111
111
|
function installPrebuiltBinary() {
|
|
112
112
|
const platform = getPlatformKey();
|
|
113
113
|
const source = path.join(prebuiltDir, platform, BINARY_NAME);
|
|
114
|
+
|
|
114
115
|
if (!fs.existsSync(source)) {
|
|
116
|
+
console.log(`⚠️ No prebuilt binary found for ${platform}`);
|
|
117
|
+
|
|
118
|
+
// Check if we have binaries for other platforms (for debugging)
|
|
119
|
+
if (fs.existsSync(prebuiltDir)) {
|
|
120
|
+
const availablePlatforms = fs.readdirSync(prebuiltDir).filter(item => {
|
|
121
|
+
const platformPath = path.join(prebuiltDir, item);
|
|
122
|
+
return fs.statSync(platformPath).isDirectory() &&
|
|
123
|
+
fs.existsSync(path.join(platformPath, BINARY_NAME));
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
if (availablePlatforms.length > 0) {
|
|
127
|
+
console.log(` Available platforms: ${availablePlatforms.join(', ')}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
115
131
|
return false;
|
|
116
132
|
}
|
|
117
133
|
|
|
@@ -124,24 +140,61 @@ function installPrebuiltBinary() {
|
|
|
124
140
|
|
|
125
141
|
function buildFromSource() {
|
|
126
142
|
if (!hasLocalSource) {
|
|
127
|
-
console.error('No prebuilt binary available and source tree not found.');
|
|
128
|
-
console.error('
|
|
143
|
+
console.error('❌ No prebuilt binary available and source tree not found.');
|
|
144
|
+
console.error('');
|
|
145
|
+
console.error('This usually happens when:');
|
|
146
|
+
console.error('1. The npm package was built on a different platform (e.g., macOS vs Linux)');
|
|
147
|
+
console.error('2. The binary for your platform is missing from the package');
|
|
148
|
+
console.error('');
|
|
149
|
+
console.error('Solutions:');
|
|
150
|
+
console.error('1. Install from source (requires Rust toolchain):');
|
|
151
|
+
console.error(' git clone https://github.com/humanunsupervised/orchestra.git');
|
|
152
|
+
console.error(' cd orchestra');
|
|
153
|
+
console.error(' cargo build --release');
|
|
154
|
+
console.error('');
|
|
155
|
+
console.error('2. Use a pre-built release:');
|
|
156
|
+
console.error(' Download from: https://github.com/humanunsupervised/orchestra/releases');
|
|
157
|
+
console.error('');
|
|
158
|
+
console.error('3. Install Rust and build locally:');
|
|
159
|
+
console.error(' curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh');
|
|
160
|
+
console.error(' source ~/.cargo/env');
|
|
161
|
+
console.error(' cargo build --release');
|
|
129
162
|
process.exit(1);
|
|
130
163
|
}
|
|
131
164
|
|
|
132
165
|
try {
|
|
133
166
|
execSync('cargo --version', { stdio: 'ignore' });
|
|
134
167
|
} catch (error) {
|
|
135
|
-
console.error('Rust toolchain not found.
|
|
168
|
+
console.error('❌ Rust toolchain not found.');
|
|
169
|
+
console.error('');
|
|
170
|
+
console.error('Install Rust from https://rustup.rs/');
|
|
171
|
+
console.error('Then run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh');
|
|
136
172
|
process.exit(1);
|
|
137
173
|
}
|
|
138
174
|
|
|
139
|
-
console.log('Building from source...');
|
|
140
|
-
|
|
175
|
+
console.log('🔨 Building from source... (this may take a few minutes)');
|
|
176
|
+
console.log(' Working directory:', path.join(projectRoot, 'gw-tui'));
|
|
177
|
+
|
|
178
|
+
try {
|
|
179
|
+
execSync('cargo build --release', { stdio: 'inherit', cwd: path.join(projectRoot, 'gw-tui') });
|
|
180
|
+
} catch (error) {
|
|
181
|
+
console.error('❌ Build failed.');
|
|
182
|
+
console.error('');
|
|
183
|
+
console.error('Common issues:');
|
|
184
|
+
console.error('- Missing system dependencies (openssl, pkg-config, etc.)');
|
|
185
|
+
console.error('- Network issues during dependency download');
|
|
186
|
+
console.error('');
|
|
187
|
+
console.error('Try installing dependencies:');
|
|
188
|
+
console.error('- Ubuntu/Debian: sudo apt-get install libssl-dev pkg-config');
|
|
189
|
+
console.error('- macOS: brew install openssl pkg-config');
|
|
190
|
+
console.error('- Fedora: sudo dnf install openssl-devel pkgconfig');
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
141
193
|
|
|
142
194
|
const builtBinary = path.join(projectRoot, 'gw-tui', 'target', 'release', 'gw-tui');
|
|
143
195
|
if (!fs.existsSync(builtBinary)) {
|
|
144
|
-
console.error('Build finished but gw-tui binary was not produced.');
|
|
196
|
+
console.error('❌ Build finished but gw-tui binary was not produced.');
|
|
197
|
+
console.error(' Expected location:', builtBinary);
|
|
145
198
|
process.exit(1);
|
|
146
199
|
}
|
|
147
200
|
|
|
@@ -149,6 +202,8 @@ function buildFromSource() {
|
|
|
149
202
|
fs.copyFileSync(builtBinary, destination);
|
|
150
203
|
fs.chmodSync(destination, 0o755);
|
|
151
204
|
linkCompatibilityBinary(destination);
|
|
205
|
+
|
|
206
|
+
console.log('✅ Successfully built from source!');
|
|
152
207
|
}
|
|
153
208
|
|
|
154
209
|
function assetsReady() {
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|