squad-station 0.8.19 → 0.8.22
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/run.js +26 -13
- package/package.json +1 -1
package/bin/run.js
CHANGED
|
@@ -45,7 +45,7 @@ function install() {
|
|
|
45
45
|
|
|
46
46
|
function installBinary() {
|
|
47
47
|
// Binary version — may differ from npm package version
|
|
48
|
-
var VERSION = '0.8.
|
|
48
|
+
var VERSION = '0.8.22';
|
|
49
49
|
var REPO = 'thientranhung/squad-station';
|
|
50
50
|
|
|
51
51
|
var isWindows = process.platform === 'win32';
|
|
@@ -181,8 +181,12 @@ function verifyInPath(destPath, installDir) {
|
|
|
181
181
|
var checkResult = spawnSync(checkCmd, ['squad-station'], { encoding: 'utf8' });
|
|
182
182
|
|
|
183
183
|
if (checkResult.status === 0 && checkResult.stdout && checkResult.stdout.trim()) {
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
var foundPath = checkResult.stdout.trim();
|
|
185
|
+
// Ignore npx cache / node_modules wrappers — not real user PATH entries
|
|
186
|
+
if (!foundPath.includes('.npm/_npx') && !foundPath.includes('node_modules/.bin') && !foundPath.includes('node_modules\\.bin')) {
|
|
187
|
+
// Binary is found in real PATH — all good
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
186
190
|
}
|
|
187
191
|
|
|
188
192
|
if (isWindows) {
|
|
@@ -197,19 +201,28 @@ function verifyInPath(destPath, installDir) {
|
|
|
197
201
|
return;
|
|
198
202
|
}
|
|
199
203
|
|
|
200
|
-
// macOS/Linux: auto-add to shell
|
|
204
|
+
// macOS/Linux: auto-add to shell env file
|
|
205
|
+
// IMPORTANT: Use .zshenv (not .zshrc) because Claude Code's Bash tool runs
|
|
206
|
+
// non-interactive shells that only source .zshenv. Without this, AI agents
|
|
207
|
+
// inside tmux sessions cannot find squad-station binary.
|
|
201
208
|
var home = process.env.HOME || '';
|
|
202
209
|
var exportLine = 'export PATH="$HOME/.squad/bin:$PATH"';
|
|
203
210
|
var profileCandidates = process.platform === 'darwin'
|
|
204
|
-
? ['.zshrc', '.bash_profile', '.bashrc']
|
|
205
|
-
: ['.bashrc', '.zshrc', '.profile'];
|
|
206
|
-
|
|
207
|
-
//
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
211
|
+
? ['.zshenv', '.zshrc', '.bash_profile', '.bashrc']
|
|
212
|
+
: ['.bashrc', '.zshenv', '.zshrc', '.profile'];
|
|
213
|
+
|
|
214
|
+
// On macOS, always use .zshenv (required for Claude Code compatibility).
|
|
215
|
+
// On Linux, find first existing profile or default to primary.
|
|
216
|
+
var profileName;
|
|
217
|
+
if (process.platform === 'darwin') {
|
|
218
|
+
profileName = '.zshenv';
|
|
219
|
+
} else {
|
|
220
|
+
profileName = profileCandidates[0];
|
|
221
|
+
for (var i = 0; i < profileCandidates.length; i++) {
|
|
222
|
+
if (fs.existsSync(path.join(home, profileCandidates[i]))) {
|
|
223
|
+
profileName = profileCandidates[i];
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
213
226
|
}
|
|
214
227
|
}
|
|
215
228
|
var profilePath = path.join(home, profileName);
|