groove-dev 0.27.48 → 0.27.50
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/CLAUDE.md +0 -7
- package/default/security-review-prompt.md +98 -0
- 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/api.js +309 -24
- package/node_modules/@groove-dev/daemon/src/firstrun.js +1 -1
- package/node_modules/@groove-dev/daemon/src/index.js +7 -0
- package/node_modules/@groove-dev/daemon/src/providers/groove-network.js +47 -7
- package/node_modules/@groove-dev/gui/dist/assets/{index-B9oPxmNj.js → index-Dd4u8X70.js} +1723 -1723
- 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/network/network-status.jsx +12 -0
- package/node_modules/@groove-dev/gui/src/components/network/node-toggle.jsx +18 -15
- package/node_modules/@groove-dev/gui/src/stores/groove.js +128 -1
- package/node_modules/@groove-dev/gui/src/views/network.jsx +82 -2
- package/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/daemon/package.json +1 -1
- package/packages/daemon/src/api.js +309 -24
- package/packages/daemon/src/firstrun.js +1 -1
- package/packages/daemon/src/index.js +7 -0
- package/packages/daemon/src/providers/groove-network.js +47 -7
- package/packages/gui/dist/assets/{index-B9oPxmNj.js → index-Dd4u8X70.js} +1723 -1723
- package/packages/gui/dist/index.html +1 -1
- package/packages/gui/package.json +1 -1
- package/packages/gui/src/components/network/network-status.jsx +12 -0
- package/packages/gui/src/components/network/node-toggle.jsx +18 -15
- package/packages/gui/src/stores/groove.js +128 -1
- package/packages/gui/src/views/network.jsx +82 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// FSL-1.1-Apache-2.0 — see LICENSE
|
|
3
3
|
|
|
4
4
|
import { homedir } from 'os';
|
|
5
|
-
import { resolve } from 'path';
|
|
5
|
+
import { resolve, join } from 'path';
|
|
6
6
|
import { existsSync } from 'fs';
|
|
7
7
|
import { Provider } from './base.js';
|
|
8
8
|
|
|
@@ -23,6 +23,41 @@ function getConfig() {
|
|
|
23
23
|
return _daemonRef?.config?.networkBeta || null;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
// Parse a version tag like 'v0.1.0' or '0.2.0-rc1' into [major, minor, patch].
|
|
27
|
+
// Non-numeric suffixes are stripped. Returns null if unparseable.
|
|
28
|
+
export function parseSemver(v) {
|
|
29
|
+
if (!v || typeof v !== 'string') return null;
|
|
30
|
+
const m = v.trim().replace(/^v/i, '').match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
31
|
+
if (!m) return null;
|
|
32
|
+
return [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Returns negative / 0 / positive, like String.prototype.localeCompare.
|
|
36
|
+
// Unparseable versions compare as "lower" than parseable ones.
|
|
37
|
+
export function compareSemver(a, b) {
|
|
38
|
+
const pa = parseSemver(a);
|
|
39
|
+
const pb = parseSemver(b);
|
|
40
|
+
if (!pa && !pb) return 0;
|
|
41
|
+
if (!pa) return -1;
|
|
42
|
+
if (!pb) return 1;
|
|
43
|
+
for (let i = 0; i < 3; i++) {
|
|
44
|
+
if (pa[i] !== pb[i]) return pa[i] - pb[i];
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// v0.2.0+ renamed the `--relay` flag to `--signal`. Older installs still need
|
|
50
|
+
// `--relay` until the user updates. Unparseable / missing versions are treated
|
|
51
|
+
// as pre-0.2.0 to stay compatible with existing v0.1.0 installs.
|
|
52
|
+
export function supportsSignalFlag(version) {
|
|
53
|
+
return compareSemver(version, '0.2.0') >= 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function signalFlagName() {
|
|
57
|
+
const cfg = getConfig() || {};
|
|
58
|
+
return supportsSignalFlag(cfg.version) ? '--signal' : '--relay';
|
|
59
|
+
}
|
|
60
|
+
|
|
26
61
|
export class GrooveNetworkProvider extends Provider {
|
|
27
62
|
static name = 'groove-network';
|
|
28
63
|
static displayName = 'Groove Network';
|
|
@@ -44,7 +79,7 @@ export class GrooveNetworkProvider extends Provider {
|
|
|
44
79
|
|
|
45
80
|
buildSpawnCommand(agent) {
|
|
46
81
|
const cfg = getConfig() || {};
|
|
47
|
-
const
|
|
82
|
+
const signal = cfg.signalUrl || 'signal.groovedev.ai';
|
|
48
83
|
const model = agent.model || GrooveNetworkProvider.models[0].id;
|
|
49
84
|
const maxTokens = agent.maxTokens || 500;
|
|
50
85
|
const prompt = agent.prompt || '';
|
|
@@ -53,14 +88,15 @@ export class GrooveNetworkProvider extends Provider {
|
|
|
53
88
|
|
|
54
89
|
const args = [
|
|
55
90
|
'-m', 'src.consumer.client',
|
|
56
|
-
|
|
91
|
+
signalFlagName(), signal,
|
|
57
92
|
'--model', model,
|
|
58
93
|
'--prompt', prompt,
|
|
59
94
|
'--max-tokens', String(maxTokens),
|
|
95
|
+
'--json',
|
|
60
96
|
];
|
|
61
97
|
|
|
62
98
|
return {
|
|
63
|
-
command: 'python3.12',
|
|
99
|
+
command: join(deployPath, 'venv', 'bin', 'python3.12'),
|
|
64
100
|
args,
|
|
65
101
|
env: { PYTHONUNBUFFERED: '1' },
|
|
66
102
|
cwd: deployPath,
|
|
@@ -69,17 +105,18 @@ export class GrooveNetworkProvider extends Provider {
|
|
|
69
105
|
|
|
70
106
|
buildHeadlessCommand(prompt, model) {
|
|
71
107
|
const cfg = getConfig() || {};
|
|
72
|
-
const
|
|
108
|
+
const signal = cfg.signalUrl || 'signal.groovedev.ai';
|
|
73
109
|
const m = model || GrooveNetworkProvider.models[0].id;
|
|
74
110
|
const deployPath = expandHome(cfg.deployPath) || resolve(homedir(), 'Desktop/groove-deploy');
|
|
75
111
|
return {
|
|
76
|
-
command: 'python3.12',
|
|
112
|
+
command: join(deployPath, 'venv', 'bin', 'python3.12'),
|
|
77
113
|
args: [
|
|
78
114
|
'-m', 'src.consumer.client',
|
|
79
|
-
|
|
115
|
+
signalFlagName(), signal,
|
|
80
116
|
'--model', m,
|
|
81
117
|
'--prompt', prompt,
|
|
82
118
|
'--max-tokens', '500',
|
|
119
|
+
'--json',
|
|
83
120
|
],
|
|
84
121
|
env: { PYTHONUNBUFFERED: '1' },
|
|
85
122
|
cwd: deployPath,
|
|
@@ -105,6 +142,9 @@ export class GrooveNetworkProvider extends Provider {
|
|
|
105
142
|
sessionId: msg.session_id,
|
|
106
143
|
tokensGenerated: msg.tokens_generated,
|
|
107
144
|
error: msg.error,
|
|
145
|
+
signal: msg.signal,
|
|
146
|
+
nodesAvailable: msg.nodes_available,
|
|
147
|
+
nodes: msg.nodes,
|
|
108
148
|
raw: msg,
|
|
109
149
|
};
|
|
110
150
|
}
|