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.
Files changed (46) hide show
  1. package/default/groovedev-beta-auth-endpoint.md +166 -0
  2. package/node_modules/@groove-dev/cli/package.json +1 -1
  3. package/node_modules/@groove-dev/daemon/package.json +1 -1
  4. package/node_modules/@groove-dev/daemon/src/api.js +619 -0
  5. package/node_modules/@groove-dev/daemon/src/firstrun.js +11 -0
  6. package/node_modules/@groove-dev/daemon/src/index.js +28 -0
  7. package/node_modules/@groove-dev/daemon/src/providers/claude-code.js +1 -1
  8. package/node_modules/@groove-dev/daemon/src/providers/groove-network.js +114 -0
  9. package/node_modules/@groove-dev/daemon/src/providers/index.js +2 -0
  10. package/node_modules/@groove-dev/gui/dist/assets/index-BoIbnaqa.js +8607 -0
  11. package/node_modules/@groove-dev/gui/dist/assets/index-CyVj0fHl.css +1 -0
  12. package/node_modules/@groove-dev/gui/dist/index.html +2 -2
  13. package/node_modules/@groove-dev/gui/package.json +1 -1
  14. package/node_modules/@groove-dev/gui/src/app.jsx +3 -0
  15. package/node_modules/@groove-dev/gui/src/components/layout/activity-bar.jsx +7 -2
  16. package/node_modules/@groove-dev/gui/src/components/network/network-status.jsx +164 -0
  17. package/node_modules/@groove-dev/gui/src/components/network/node-details.jsx +66 -0
  18. package/node_modules/@groove-dev/gui/src/components/network/node-toggle.jsx +172 -0
  19. package/node_modules/@groove-dev/gui/src/stores/groove.js +190 -0
  20. package/node_modules/@groove-dev/gui/src/views/network.jsx +227 -0
  21. package/node_modules/@groove-dev/gui/src/views/settings.jsx +88 -1
  22. package/package.json +1 -1
  23. package/packages/cli/package.json +1 -1
  24. package/packages/daemon/package.json +1 -1
  25. package/packages/daemon/src/api.js +619 -0
  26. package/packages/daemon/src/firstrun.js +11 -0
  27. package/packages/daemon/src/index.js +28 -0
  28. package/packages/daemon/src/providers/claude-code.js +1 -1
  29. package/packages/daemon/src/providers/groove-network.js +114 -0
  30. package/packages/daemon/src/providers/index.js +2 -0
  31. package/packages/gui/dist/assets/index-BoIbnaqa.js +8607 -0
  32. package/packages/gui/dist/assets/index-CyVj0fHl.css +1 -0
  33. package/packages/gui/dist/index.html +2 -2
  34. package/packages/gui/package.json +1 -1
  35. package/packages/gui/src/app.jsx +3 -0
  36. package/packages/gui/src/components/layout/activity-bar.jsx +7 -2
  37. package/packages/gui/src/components/network/network-status.jsx +164 -0
  38. package/packages/gui/src/components/network/node-details.jsx +66 -0
  39. package/packages/gui/src/components/network/node-toggle.jsx +172 -0
  40. package/packages/gui/src/stores/groove.js +190 -0
  41. package/packages/gui/src/views/network.jsx +227 -0
  42. package/packages/gui/src/views/settings.jsx +88 -1
  43. package/node_modules/@groove-dev/gui/dist/assets/index-B5Uor698.js +0 -8607
  44. package/node_modules/@groove-dev/gui/dist/assets/index-VGmIZurO.css +0 -1
  45. package/packages/gui/dist/assets/index-B5Uor698.js +0 -8607
  46. 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.44",
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)",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groove-dev/cli",
3
- "version": "0.27.44",
3
+ "version": "0.27.45",
4
4
  "description": "GROOVE CLI — manage AI coding agents from your terminal",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groove-dev/daemon",
3
- "version": "0.27.44",
3
+ "version": "0.27.45",
4
4
  "description": "GROOVE daemon — agent orchestration engine",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "type": "module",