groove-dev 0.27.44 → 0.27.45
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/default/groovedev-beta-auth-endpoint.md +166 -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 +619 -0
- package/node_modules/@groove-dev/daemon/src/firstrun.js +11 -0
- package/node_modules/@groove-dev/daemon/src/index.js +28 -0
- package/node_modules/@groove-dev/daemon/src/providers/claude-code.js +1 -1
- package/node_modules/@groove-dev/daemon/src/providers/groove-network.js +114 -0
- package/node_modules/@groove-dev/daemon/src/providers/index.js +2 -0
- package/node_modules/@groove-dev/gui/dist/assets/index-BoIbnaqa.js +8607 -0
- package/node_modules/@groove-dev/gui/dist/assets/index-CyVj0fHl.css +1 -0
- package/node_modules/@groove-dev/gui/dist/index.html +2 -2
- package/node_modules/@groove-dev/gui/package.json +1 -1
- package/node_modules/@groove-dev/gui/src/app.jsx +3 -0
- package/node_modules/@groove-dev/gui/src/components/layout/activity-bar.jsx +7 -2
- package/node_modules/@groove-dev/gui/src/components/network/network-status.jsx +164 -0
- package/node_modules/@groove-dev/gui/src/components/network/node-details.jsx +66 -0
- package/node_modules/@groove-dev/gui/src/components/network/node-toggle.jsx +172 -0
- package/node_modules/@groove-dev/gui/src/stores/groove.js +190 -0
- package/node_modules/@groove-dev/gui/src/views/network.jsx +227 -0
- package/node_modules/@groove-dev/gui/src/views/settings.jsx +88 -1
- 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 +619 -0
- package/packages/daemon/src/firstrun.js +11 -0
- package/packages/daemon/src/index.js +28 -0
- package/packages/daemon/src/providers/claude-code.js +1 -1
- package/packages/daemon/src/providers/groove-network.js +114 -0
- package/packages/daemon/src/providers/index.js +2 -0
- package/packages/gui/dist/assets/index-BoIbnaqa.js +8607 -0
- package/packages/gui/dist/assets/index-CyVj0fHl.css +1 -0
- package/packages/gui/dist/index.html +2 -2
- package/packages/gui/package.json +1 -1
- package/packages/gui/src/app.jsx +3 -0
- package/packages/gui/src/components/layout/activity-bar.jsx +7 -2
- package/packages/gui/src/components/network/network-status.jsx +164 -0
- package/packages/gui/src/components/network/node-details.jsx +66 -0
- package/packages/gui/src/components/network/node-toggle.jsx +172 -0
- package/packages/gui/src/stores/groove.js +190 -0
- package/packages/gui/src/views/network.jsx +227 -0
- package/packages/gui/src/views/settings.jsx +88 -1
- package/node_modules/@groove-dev/gui/dist/assets/index-B5Uor698.js +0 -8607
- package/node_modules/@groove-dev/gui/dist/assets/index-VGmIZurO.css +0 -1
- package/packages/gui/dist/assets/index-B5Uor698.js +0 -8607
- package/packages/gui/dist/assets/index-VGmIZurO.css +0 -1
|
@@ -15,7 +15,7 @@ import { fmtUptime } from '../lib/format';
|
|
|
15
15
|
import {
|
|
16
16
|
Key, Eye, EyeOff, Check, Cpu,
|
|
17
17
|
FolderOpen, FolderSearch, Users, Gauge,
|
|
18
|
-
ShieldCheck, Settings,
|
|
18
|
+
ShieldCheck, Settings, Lock,
|
|
19
19
|
Newspaper, Radio, Send, MessageSquare, MessageCircle,
|
|
20
20
|
Plus, Trash2, Plug, PlugZap, TestTube, X, HelpCircle, ExternalLink,
|
|
21
21
|
} from 'lucide-react';
|
|
@@ -940,6 +940,91 @@ function AddGatewayCard({ existingTypes, onAdd }) {
|
|
|
940
940
|
);
|
|
941
941
|
}
|
|
942
942
|
|
|
943
|
+
/* ── Early Access Section ─────────────────────────────────── */
|
|
944
|
+
|
|
945
|
+
function EarlyAccessSection() {
|
|
946
|
+
const networkUnlocked = useGrooveStore((s) => s.networkUnlocked);
|
|
947
|
+
const activateBeta = useGrooveStore((s) => s.activateBeta);
|
|
948
|
+
const deactivateBeta = useGrooveStore((s) => s.deactivateBeta);
|
|
949
|
+
const [code, setCode] = useState('');
|
|
950
|
+
const [submitting, setSubmitting] = useState(false);
|
|
951
|
+
const [error, setError] = useState('');
|
|
952
|
+
|
|
953
|
+
useEffect(() => {
|
|
954
|
+
if (!error) return;
|
|
955
|
+
const t = setTimeout(() => setError(''), 3000);
|
|
956
|
+
return () => clearTimeout(t);
|
|
957
|
+
}, [error]);
|
|
958
|
+
|
|
959
|
+
async function handleSubmit() {
|
|
960
|
+
const trimmed = code.trim();
|
|
961
|
+
if (!trimmed || submitting) return;
|
|
962
|
+
setSubmitting(true);
|
|
963
|
+
setError('');
|
|
964
|
+
try {
|
|
965
|
+
await activateBeta(trimmed);
|
|
966
|
+
setCode('');
|
|
967
|
+
} catch (err) {
|
|
968
|
+
setError(err.message || 'Invalid code');
|
|
969
|
+
} finally {
|
|
970
|
+
setSubmitting(false);
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
async function handleDeactivate() {
|
|
975
|
+
try { await deactivateBeta(); } catch { /* toast handled in store */ }
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
return (
|
|
979
|
+
<div>
|
|
980
|
+
<div className="flex items-center gap-2 mb-2.5 px-0.5">
|
|
981
|
+
<span className="text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider">Early Access</span>
|
|
982
|
+
<div className="flex-1 h-px bg-border-subtle" />
|
|
983
|
+
</div>
|
|
984
|
+
<div className="rounded-lg border border-border-subtle bg-surface-1 px-4 py-3.5 max-w-md">
|
|
985
|
+
{networkUnlocked ? (
|
|
986
|
+
<div className="flex items-center gap-2.5">
|
|
987
|
+
<div className="w-6 h-6 rounded-full bg-success/10 flex items-center justify-center flex-shrink-0">
|
|
988
|
+
<Check size={12} className="text-success" />
|
|
989
|
+
</div>
|
|
990
|
+
<div className="flex-1 text-xs font-sans text-text-1">Early access enabled</div>
|
|
991
|
+
<button
|
|
992
|
+
onClick={handleDeactivate}
|
|
993
|
+
className="text-2xs text-text-4 hover:text-danger cursor-pointer font-sans"
|
|
994
|
+
>
|
|
995
|
+
Deactivate
|
|
996
|
+
</button>
|
|
997
|
+
</div>
|
|
998
|
+
) : (
|
|
999
|
+
<div className="flex items-center gap-2">
|
|
1000
|
+
<Lock size={12} className="text-text-4 flex-shrink-0" />
|
|
1001
|
+
<input
|
|
1002
|
+
value={code}
|
|
1003
|
+
onChange={(e) => setCode(e.target.value)}
|
|
1004
|
+
onKeyDown={(e) => e.key === 'Enter' && handleSubmit()}
|
|
1005
|
+
type="text"
|
|
1006
|
+
placeholder="Enter invite code"
|
|
1007
|
+
className="flex-1 h-8 px-2.5 text-xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent"
|
|
1008
|
+
/>
|
|
1009
|
+
<Button
|
|
1010
|
+
variant="primary"
|
|
1011
|
+
size="sm"
|
|
1012
|
+
onClick={handleSubmit}
|
|
1013
|
+
disabled={!code.trim() || submitting}
|
|
1014
|
+
className="h-8 text-xs px-3"
|
|
1015
|
+
>
|
|
1016
|
+
{submitting ? '...' : 'Submit'}
|
|
1017
|
+
</Button>
|
|
1018
|
+
</div>
|
|
1019
|
+
)}
|
|
1020
|
+
{error && !networkUnlocked && (
|
|
1021
|
+
<div className="mt-2 text-2xs text-danger font-sans">{error}</div>
|
|
1022
|
+
)}
|
|
1023
|
+
</div>
|
|
1024
|
+
</div>
|
|
1025
|
+
);
|
|
1026
|
+
}
|
|
1027
|
+
|
|
943
1028
|
/* ── Main Settings View ────────────────────────────────────── */
|
|
944
1029
|
|
|
945
1030
|
export default function SettingsView() {
|
|
@@ -1200,6 +1285,8 @@ export default function SettingsView() {
|
|
|
1200
1285
|
</div>
|
|
1201
1286
|
)}
|
|
1202
1287
|
|
|
1288
|
+
{/* ═══════ EARLY ACCESS ═══════ */}
|
|
1289
|
+
<EarlyAccessSection />
|
|
1203
1290
|
|
|
1204
1291
|
</div>
|
|
1205
1292
|
</ScrollArea>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "groove-dev",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.45",
|
|
4
4
|
"description": "Open-source agent orchestration layer — the AI company OS. Local model agent engine (GGUF/Ollama/llama-server), HuggingFace model browser, MCP integrations (Slack, Gmail, Stripe, 15+), agent scheduling (cron), business roles (CMO, CFO, EA). GUI dashboard, multi-agent coordination, zero cold-start, infinite sessions. Works with Claude Code, Codex, Gemini CLI, Ollama, any local model.",
|
|
5
5
|
"license": "FSL-1.1-Apache-2.0",
|
|
6
6
|
"author": "Groove Dev <hello@groovedev.ai> (https://groovedev.ai)",
|