groove-dev 0.27.163 → 0.27.165
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/node_modules/@groove-dev/cli/package.json +1 -1
- package/node_modules/@groove-dev/daemon/package.json +1 -1
- package/node_modules/@groove-dev/daemon/src/model-lab.js +15 -0
- package/node_modules/@groove-dev/daemon/src/tunnel-manager.js +4 -8
- package/node_modules/@groove-dev/gui/dist/assets/{index-BlNh_lRS.js → index-SZBexPhJ.js} +2 -2
- package/node_modules/@groove-dev/gui/dist/index.html +1 -1
- package/node_modules/@groove-dev/gui/package.json +1 -1
- package/node_modules/@groove-dev/gui/src/components/editor/terminal.jsx +26 -2
- package/node_modules/@groove-dev/gui/src/components/fleet/fleet-pane.jsx +22 -3
- package/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/daemon/package.json +1 -1
- package/packages/daemon/src/model-lab.js +15 -0
- package/packages/daemon/src/tunnel-manager.js +4 -8
- package/packages/gui/dist/assets/{index-BlNh_lRS.js → index-SZBexPhJ.js} +2 -2
- package/packages/gui/dist/index.html +1 -1
- package/packages/gui/package.json +1 -1
- package/packages/gui/src/components/editor/terminal.jsx +26 -2
- package/packages/gui/src/components/fleet/fleet-pane.jsx +22 -3
|
@@ -8,6 +8,7 @@ import { homedir } from 'os';
|
|
|
8
8
|
import { spawn } from 'child_process';
|
|
9
9
|
import { LlamaServerManager } from './llama-server.js';
|
|
10
10
|
import { MLXServerManager } from './mlx-server.js';
|
|
11
|
+
import { OllamaProvider } from './providers/ollama.js';
|
|
11
12
|
const RUNTIME_TYPES = ['ollama', 'vllm', 'llama-cpp', 'mlx', 'tgi', 'openai-compatible'];
|
|
12
13
|
const DEFAULT_OLLAMA_ENDPOINT = 'http://localhost:11434';
|
|
13
14
|
const GLOBAL_GROOVE_DIR = resolve(homedir(), '.groove');
|
|
@@ -698,11 +699,13 @@ export class ModelLab {
|
|
|
698
699
|
|
|
699
700
|
listLocalModels() {
|
|
700
701
|
const models = [];
|
|
702
|
+
const seen = new Set();
|
|
701
703
|
|
|
702
704
|
// GGUF models from ModelManager
|
|
703
705
|
const mm = this.daemon.modelManager;
|
|
704
706
|
if (mm) {
|
|
705
707
|
for (const m of mm.getInstalled().filter((m) => m.exists)) {
|
|
708
|
+
seen.add(m.id);
|
|
706
709
|
models.push({ ...m, type: 'gguf', compatibleBackends: ['llama-cpp'] });
|
|
707
710
|
}
|
|
708
711
|
}
|
|
@@ -711,10 +714,22 @@ export class ModelLab {
|
|
|
711
714
|
try {
|
|
712
715
|
const hfModels = MLXServerManager.scanModels();
|
|
713
716
|
for (const m of hfModels) {
|
|
717
|
+
seen.add(m.id);
|
|
714
718
|
models.push(m);
|
|
715
719
|
}
|
|
716
720
|
} catch { /* scan may fail */ }
|
|
717
721
|
|
|
722
|
+
// Ollama installed models
|
|
723
|
+
try {
|
|
724
|
+
if (OllamaProvider.isInstalled()) {
|
|
725
|
+
for (const m of OllamaProvider.getInstalledModels()) {
|
|
726
|
+
if (seen.has(m.id)) continue;
|
|
727
|
+
seen.add(m.id);
|
|
728
|
+
models.push({ ...m, type: 'ollama', compatibleBackends: ['ollama'] });
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
} catch { /* ollama may not be available */ }
|
|
732
|
+
|
|
718
733
|
return models;
|
|
719
734
|
}
|
|
720
735
|
|
|
@@ -453,7 +453,7 @@ export class TunnelManager {
|
|
|
453
453
|
try {
|
|
454
454
|
this.daemon.broadcast({ type: 'tunnel.status', data: { id, step: 'checking' } });
|
|
455
455
|
|
|
456
|
-
// Get remote daemon version
|
|
456
|
+
// Get remote daemon version through the already-open tunnel
|
|
457
457
|
const resp = await fetch(`http://localhost:${localPort}/api/status`, {
|
|
458
458
|
signal: AbortSignal.timeout(5000),
|
|
459
459
|
});
|
|
@@ -462,15 +462,11 @@ export class TunnelManager {
|
|
|
462
462
|
const remoteVer = status.version;
|
|
463
463
|
if (!remoteVer) return;
|
|
464
464
|
|
|
465
|
-
// Check latest version on npm (
|
|
466
|
-
const target = `${config.user}@${config.host}`;
|
|
467
|
-
const keyArgs = config.sshKeyPath ? ['-i', config.sshKeyPath] : [];
|
|
468
|
-
const sshBase = [...keyArgs, '-p', String(config.port || 22), '-o', 'ConnectTimeout=10', '-o', 'BatchMode=yes', target];
|
|
469
|
-
|
|
465
|
+
// Check latest version on npm locally (same registry everywhere, no extra SSH)
|
|
470
466
|
let npmVer;
|
|
471
467
|
try {
|
|
472
|
-
npmVer = execFileSync('
|
|
473
|
-
encoding: 'utf8', timeout:
|
|
468
|
+
npmVer = execFileSync('npm', ['view', 'groove-dev', 'version'], {
|
|
469
|
+
encoding: 'utf8', timeout: 10000, stdio: ['pipe', 'pipe', 'pipe'],
|
|
474
470
|
}).trim();
|
|
475
471
|
} catch { return; }
|
|
476
472
|
|