groove-dev 0.24.16 → 0.25.1
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/daemon/src/api.js +44 -14
- package/node_modules/@groove-dev/daemon/src/introducer.js +10 -0
- package/node_modules/@groove-dev/daemon/src/process.js +41 -7
- package/node_modules/@groove-dev/gui/dist/assets/{index-DqErNcey.css → index-CX6VBcgs.css} +1 -1
- package/node_modules/@groove-dev/gui/dist/assets/{index-v1z73h9P.js → index-DjEycx1f.js} +58 -48
- package/node_modules/@groove-dev/gui/dist/index.html +2 -2
- package/node_modules/@groove-dev/gui/src/components/agents/spawn-wizard.jsx +9 -2
- package/node_modules/@groove-dev/gui/src/lib/status.js +2 -0
- package/node_modules/@groove-dev/gui/src/stores/groove.js +5 -1
- package/node_modules/@groove-dev/gui/src/views/agents.jsx +8 -0
- package/package.json +1 -1
- package/packages/daemon/src/api.js +44 -14
- package/packages/daemon/src/introducer.js +10 -0
- package/packages/daemon/src/process.js +41 -7
- package/packages/gui/dist/assets/{index-DqErNcey.css → index-CX6VBcgs.css} +1 -1
- package/packages/gui/dist/assets/{index-v1z73h9P.js → index-DjEycx1f.js} +58 -48
- package/packages/gui/dist/index.html +2 -2
- package/packages/gui/src/components/agents/spawn-wizard.jsx +9 -2
- package/packages/gui/src/lib/status.js +2 -0
- package/packages/gui/src/stores/groove.js +5 -1
- package/packages/gui/src/views/agents.jsx +8 -0
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
7
7
|
<title>Groove GUI</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-DjEycx1f.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/vendor-C0HXlhrU.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/reactflow-BQPfi37R.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/codemirror-BBL3i_JW.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/xterm--7_ns2zW.js">
|
|
13
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
13
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CX6VBcgs.css">
|
|
14
14
|
</head>
|
|
15
15
|
<body>
|
|
16
16
|
<div id="root"></div>
|
|
@@ -10,7 +10,7 @@ import { roleColor } from '../../lib/status';
|
|
|
10
10
|
import {
|
|
11
11
|
Server, Monitor, Code2, TestTube, Cloud, FileText,
|
|
12
12
|
Shield, Database, Megaphone, Calculator, UserCheck,
|
|
13
|
-
Headphones, BarChart3, Rocket, ChevronDown,
|
|
13
|
+
Headphones, BarChart3, Rocket, ChevronDown, Pen, Presentation,
|
|
14
14
|
} from 'lucide-react';
|
|
15
15
|
|
|
16
16
|
const ROLE_PRESETS = [
|
|
@@ -28,6 +28,8 @@ const ROLE_PRESETS = [
|
|
|
28
28
|
{ id: 'ea', label: 'EA', desc: 'Executive assistant, scheduling', icon: UserCheck, tier: 'Light' },
|
|
29
29
|
{ id: 'support', label: 'Support', desc: 'Customer support, FAQs', icon: Headphones, tier: 'Medium' },
|
|
30
30
|
{ id: 'analyst', label: 'Analyst', desc: 'Data analysis, insights', icon: BarChart3, tier: 'Medium' },
|
|
31
|
+
{ id: 'creative', label: 'Writer', desc: 'Copy, articles, proposals', icon: Pen, tier: 'Heavy', skillHint: true },
|
|
32
|
+
{ id: 'slides', label: 'Slides', desc: 'Pitch decks, presentations', icon: Presentation, tier: 'Heavy', skillHint: true },
|
|
31
33
|
];
|
|
32
34
|
|
|
33
35
|
export function SpawnWizard() {
|
|
@@ -111,7 +113,12 @@ export function SpawnWizard() {
|
|
|
111
113
|
<preset.icon size={16} style={{ color: colors.text }} />
|
|
112
114
|
</div>
|
|
113
115
|
<div className="min-w-0">
|
|
114
|
-
<div className="
|
|
116
|
+
<div className="flex items-center gap-1.5">
|
|
117
|
+
<span className="text-xs font-semibold text-text-0 font-sans">{preset.label}</span>
|
|
118
|
+
{preset.skillHint && (
|
|
119
|
+
<span className="text-2xs font-mono text-warning/70 bg-warning/8 px-1 py-px rounded">skill</span>
|
|
120
|
+
)}
|
|
121
|
+
</div>
|
|
115
122
|
<div className="text-2xs text-text-3 font-sans truncate">{preset.desc}</div>
|
|
116
123
|
</div>
|
|
117
124
|
</button>
|
|
@@ -40,6 +40,8 @@ export const ROLE_COLORS = {
|
|
|
40
40
|
ea: { bg: 'rgba(97, 175, 239, 0.12)', text: '#61afef', border: '#61afef' },
|
|
41
41
|
support: { bg: 'rgba(51, 175, 188, 0.12)', text: '#33afbc', border: '#33afbc' },
|
|
42
42
|
analyst: { bg: 'rgba(198, 120, 221, 0.12)', text: '#c678dd', border: '#c678dd' },
|
|
43
|
+
creative: { bg: 'rgba(229, 192, 123, 0.12)', text: '#e5c07b', border: '#e5c07b' },
|
|
44
|
+
slides: { bg: 'rgba(209, 154, 102, 0.12)', text: '#d19a66', border: '#d19a66' },
|
|
43
45
|
};
|
|
44
46
|
|
|
45
47
|
export function roleColor(role) {
|
|
@@ -491,7 +491,11 @@ export const useGrooveStore = create((set, get) => ({
|
|
|
491
491
|
set({ recommendedTeam: null }); // Dismiss modal immediately
|
|
492
492
|
get().addToast('info', 'Launching team...');
|
|
493
493
|
const result = await api.post('/recommended-team/launch');
|
|
494
|
-
|
|
494
|
+
const sub = [
|
|
495
|
+
result.phase2Pending ? `${result.phase2Pending} QC queued` : '',
|
|
496
|
+
result.projectDir ? `→ ${result.projectDir}/` : '',
|
|
497
|
+
].filter(Boolean).join(' · ');
|
|
498
|
+
get().addToast('success', `Launched ${result.launched} agents`, sub || undefined);
|
|
495
499
|
// Clean up stale files
|
|
496
500
|
api.post('/cleanup').catch(() => {});
|
|
497
501
|
return result;
|
|
@@ -514,6 +514,14 @@ function RecommendedTeamCard() {
|
|
|
514
514
|
})}
|
|
515
515
|
</div>
|
|
516
516
|
|
|
517
|
+
{/* Project dir indicator */}
|
|
518
|
+
{recommendedTeam.projectDir && (
|
|
519
|
+
<div className="flex items-center gap-1.5 text-2xs text-text-2 font-mono">
|
|
520
|
+
<span className="text-text-4">Project:</span>
|
|
521
|
+
<span className="text-accent">{recommendedTeam.projectDir}/</span>
|
|
522
|
+
</div>
|
|
523
|
+
)}
|
|
524
|
+
|
|
517
525
|
{/* Phase 2 indicator */}
|
|
518
526
|
{phase2.length > 0 && (
|
|
519
527
|
<div className="flex items-center gap-1.5 text-2xs text-text-3 font-sans">
|