groove-dev 0.12.1 → 0.12.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.
@@ -59,7 +59,7 @@ export function printWelcome(port, host = '127.0.0.1') {
59
59
  // Works even through sudo (which strips SSH_* env vars)
60
60
  const hasDisplay = !!(process.env.DISPLAY || process.env.WAYLAND_DISPLAY);
61
61
  const isSSH = !!(process.env.SSH_CONNECTION || process.env.SSH_CLIENT || process.env.SSH_TTY);
62
- const isHeadless = !hasDisplay && !process.env.TERM_PROGRAM; // No GUI, no desktop terminal app
62
+ const isHeadless = !hasDisplay && !process.env.TERM_PROGRAM;
63
63
  const isServer = isSSH || isHeadless;
64
64
 
65
65
  if (isRemote) {
@@ -67,17 +67,16 @@ export function printWelcome(port, host = '127.0.0.1') {
67
67
  console.log(` GUI: http://${host}:${port}`);
68
68
  console.log(` Host: ${host} (network-accessible)`);
69
69
  } else if (isServer) {
70
- // VPS / headless server — print remote access instructions
70
+ // VPS / headless server — dead simple instructions
71
71
  const sshUser = process.env.SUDO_USER || process.env.USER || 'user';
72
72
 
73
- // Get server IP: try SSH_CONNECTION first, fall back to first public network interface
73
+ // Get server IP: try SSH_CONNECTION first, fall back to network interfaces
74
74
  let serverIp = '';
75
75
  const sshConn = process.env.SSH_CONNECTION || '';
76
76
  if (sshConn) {
77
77
  serverIp = sshConn.split(' ')[2] || '';
78
78
  }
79
79
  if (!serverIp) {
80
- // Find first non-internal IPv4 address
81
80
  const nets = networkInterfaces();
82
81
  for (const addrs of Object.values(nets)) {
83
82
  for (const addr of addrs) {
@@ -89,22 +88,23 @@ export function printWelcome(port, host = '127.0.0.1') {
89
88
  if (serverIp) break;
90
89
  }
91
90
  }
92
- serverIp = serverIp || '<this-server-ip>';
91
+ serverIp = serverIp || '<your-server-ip>';
93
92
 
94
- console.log(` GUI: http://localhost:${port} (this server only)`);
93
+ console.log(` Daemon running on port ${port}`);
94
+ console.log('');
95
+ console.log(' To open the GUI, run this on your local machine:');
95
96
  console.log('');
96
- console.log(' ► Connect from your laptop:');
97
97
  console.log(` groove connect ${sshUser}@${serverIp}`);
98
98
  console.log('');
99
- console.log(' Or manually:');
100
- console.log(` ssh -L ${port + 1}:localhost:${port} ${sshUser}@${serverIp}`);
101
- console.log(` Then open http://localhost:${port + 1}`);
99
+ console.log(` Don't have groove locally? Install it first:`);
100
+ console.log(` npm i -g groove-dev`);
102
101
  } else {
103
102
  // Local machine with display
104
103
  console.log(` GUI: http://localhost:${port}`);
105
104
  }
106
105
 
107
- console.log(' Docs: https://docs.groovedev.ai');
106
+ console.log('');
107
+ console.log(' Docs: https://docs.groovedev.ai');
108
108
  console.log(' GitHub: https://github.com/grooveai-dev/groove');
109
109
  console.log('');
110
110
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "groove-dev",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "Open-source agent orchestration layer for AI coding tools. GUI dashboard, multi-agent coordination, zero cold-start (Journalist), infinite sessions (adaptive context rotation), AI Project Manager, Quick Launch. Works with Claude Code, Codex, Gemini CLI, Ollama.",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "author": "Groove Dev <hello@groovedev.ai> (https://groovedev.ai)",
@@ -59,7 +59,7 @@ export function printWelcome(port, host = '127.0.0.1') {
59
59
  // Works even through sudo (which strips SSH_* env vars)
60
60
  const hasDisplay = !!(process.env.DISPLAY || process.env.WAYLAND_DISPLAY);
61
61
  const isSSH = !!(process.env.SSH_CONNECTION || process.env.SSH_CLIENT || process.env.SSH_TTY);
62
- const isHeadless = !hasDisplay && !process.env.TERM_PROGRAM; // No GUI, no desktop terminal app
62
+ const isHeadless = !hasDisplay && !process.env.TERM_PROGRAM;
63
63
  const isServer = isSSH || isHeadless;
64
64
 
65
65
  if (isRemote) {
@@ -67,17 +67,16 @@ export function printWelcome(port, host = '127.0.0.1') {
67
67
  console.log(` GUI: http://${host}:${port}`);
68
68
  console.log(` Host: ${host} (network-accessible)`);
69
69
  } else if (isServer) {
70
- // VPS / headless server — print remote access instructions
70
+ // VPS / headless server — dead simple instructions
71
71
  const sshUser = process.env.SUDO_USER || process.env.USER || 'user';
72
72
 
73
- // Get server IP: try SSH_CONNECTION first, fall back to first public network interface
73
+ // Get server IP: try SSH_CONNECTION first, fall back to network interfaces
74
74
  let serverIp = '';
75
75
  const sshConn = process.env.SSH_CONNECTION || '';
76
76
  if (sshConn) {
77
77
  serverIp = sshConn.split(' ')[2] || '';
78
78
  }
79
79
  if (!serverIp) {
80
- // Find first non-internal IPv4 address
81
80
  const nets = networkInterfaces();
82
81
  for (const addrs of Object.values(nets)) {
83
82
  for (const addr of addrs) {
@@ -89,22 +88,23 @@ export function printWelcome(port, host = '127.0.0.1') {
89
88
  if (serverIp) break;
90
89
  }
91
90
  }
92
- serverIp = serverIp || '<this-server-ip>';
91
+ serverIp = serverIp || '<your-server-ip>';
93
92
 
94
- console.log(` GUI: http://localhost:${port} (this server only)`);
93
+ console.log(` Daemon running on port ${port}`);
94
+ console.log('');
95
+ console.log(' To open the GUI, run this on your local machine:');
95
96
  console.log('');
96
- console.log(' ► Connect from your laptop:');
97
97
  console.log(` groove connect ${sshUser}@${serverIp}`);
98
98
  console.log('');
99
- console.log(' Or manually:');
100
- console.log(` ssh -L ${port + 1}:localhost:${port} ${sshUser}@${serverIp}`);
101
- console.log(` Then open http://localhost:${port + 1}`);
99
+ console.log(` Don't have groove locally? Install it first:`);
100
+ console.log(` npm i -g groove-dev`);
102
101
  } else {
103
102
  // Local machine with display
104
103
  console.log(` GUI: http://localhost:${port}`);
105
104
  }
106
105
 
107
- console.log(' Docs: https://docs.groovedev.ai');
106
+ console.log('');
107
+ console.log(' Docs: https://docs.groovedev.ai');
108
108
  console.log(' GitHub: https://github.com/grooveai-dev/groove');
109
109
  console.log('');
110
110
  }