@ekkos/cli 1.0.0 → 1.0.2
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/dist/commands/run.js +14 -6
- package/package.json +2 -4
package/dist/commands/run.js
CHANGED
|
@@ -525,7 +525,7 @@ function getEkkosEnv() {
|
|
|
525
525
|
}
|
|
526
526
|
// ekkOS-managed Claude installation path
|
|
527
527
|
const EKKOS_CLAUDE_DIR = path.join(os.homedir(), '.ekkos', 'claude-code');
|
|
528
|
-
const EKKOS_CLAUDE_BIN = path.join(EKKOS_CLAUDE_DIR, 'node_modules', '.bin', 'claude');
|
|
528
|
+
const EKKOS_CLAUDE_BIN = path.join(EKKOS_CLAUDE_DIR, 'node_modules', '.bin', isWindows ? 'claude.cmd' : 'claude');
|
|
529
529
|
/**
|
|
530
530
|
* Check if a Claude installation exists and get its version
|
|
531
531
|
* Returns version string if found, null otherwise
|
|
@@ -701,7 +701,8 @@ function resolveGlobalClaudePath() {
|
|
|
701
701
|
}
|
|
702
702
|
}
|
|
703
703
|
try {
|
|
704
|
-
const
|
|
704
|
+
const whichCmd = isWindows ? 'where' : 'which';
|
|
705
|
+
const result = (0, child_process_1.execSync)(`${whichCmd} claude`, { encoding: 'utf-8' }).trim().split('\n')[0];
|
|
705
706
|
if (result && fs.existsSync(result)) {
|
|
706
707
|
return result;
|
|
707
708
|
}
|
|
@@ -709,7 +710,7 @@ function resolveGlobalClaudePath() {
|
|
|
709
710
|
catch {
|
|
710
711
|
// Ignore errors
|
|
711
712
|
}
|
|
712
|
-
return 'claude';
|
|
713
|
+
return isWindows ? 'claude.cmd' : 'claude';
|
|
713
714
|
}
|
|
714
715
|
/**
|
|
715
716
|
* Sleep helper
|
|
@@ -903,6 +904,8 @@ async function run(options) {
|
|
|
903
904
|
// ══════════════════════════════════════════════════════════════════════════
|
|
904
905
|
if (options.dashboard) {
|
|
905
906
|
try {
|
|
907
|
+
if (isWindows)
|
|
908
|
+
throw new Error('tmux not supported on Windows');
|
|
906
909
|
const tmuxPath = (0, child_process_1.execSync)('which tmux', { encoding: 'utf-8' }).trim();
|
|
907
910
|
if (tmuxPath) {
|
|
908
911
|
launchWithDashboard(options);
|
|
@@ -910,7 +913,10 @@ async function run(options) {
|
|
|
910
913
|
}
|
|
911
914
|
}
|
|
912
915
|
catch {
|
|
913
|
-
|
|
916
|
+
const installHint = isWindows
|
|
917
|
+
? 'Dashboard mode requires tmux (not supported on Windows)'
|
|
918
|
+
: 'tmux not found. Install: brew install tmux';
|
|
919
|
+
console.log(chalk_1.default.yellow(` ${installHint}`));
|
|
914
920
|
console.log(chalk_1.default.gray(' Alternative: run "ekkos dashboard --latest" in a separate terminal'));
|
|
915
921
|
console.log(chalk_1.default.gray(' Continuing without dashboard...\n'));
|
|
916
922
|
}
|
|
@@ -1752,7 +1758,8 @@ async function run(options) {
|
|
|
1752
1758
|
const spawnedProcess = (0, child_process_1.spawn)(claudePath, args, {
|
|
1753
1759
|
stdio: 'inherit',
|
|
1754
1760
|
cwd: process.cwd(),
|
|
1755
|
-
env: getEkkosEnv()
|
|
1761
|
+
env: getEkkosEnv(),
|
|
1762
|
+
shell: isWindows // Required on Windows to execute .cmd files
|
|
1756
1763
|
});
|
|
1757
1764
|
spawnedProcess.on('exit', (code) => process.exit(code ?? 0));
|
|
1758
1765
|
spawnedProcess.on('error', (e) => {
|
|
@@ -1776,7 +1783,8 @@ async function run(options) {
|
|
|
1776
1783
|
const spawnedProcess = (0, child_process_1.spawn)(claudePath, args, {
|
|
1777
1784
|
stdio: 'inherit',
|
|
1778
1785
|
cwd: process.cwd(),
|
|
1779
|
-
env: getEkkosEnv()
|
|
1786
|
+
env: getEkkosEnv(),
|
|
1787
|
+
shell: isWindows // Required on Windows to execute .cmd files
|
|
1780
1788
|
});
|
|
1781
1789
|
spawnedProcess.on('exit', (code) => {
|
|
1782
1790
|
process.exit(code ?? 0);
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ekkos/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Setup ekkOS memory for AI coding assistants (Claude Code, Cursor, Windsurf)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"ekkos": "dist/index.js",
|
|
8
8
|
"cli": "dist/index.js",
|
|
9
|
-
"ekkos-capture": "dist/cache/capture.js"
|
|
10
|
-
"ekkos-promote": "dist/cron/promoter.js"
|
|
9
|
+
"ekkos-capture": "dist/cache/capture.js"
|
|
11
10
|
},
|
|
12
11
|
"scripts": {
|
|
13
12
|
"build": "tsc",
|
|
@@ -29,7 +28,6 @@
|
|
|
29
28
|
"author": "ekkOS",
|
|
30
29
|
"license": "MIT",
|
|
31
30
|
"dependencies": {
|
|
32
|
-
"@ekkos/prometheus": "*",
|
|
33
31
|
"@supabase/supabase-js": "^2.39.8",
|
|
34
32
|
"blessed": "^0.1.81",
|
|
35
33
|
"blessed-contrib": "^4.11.0",
|