groove-dev 0.27.135 → 0.27.136

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 (31) hide show
  1. package/node_modules/@groove-dev/cli/package.json +1 -1
  2. package/node_modules/@groove-dev/daemon/package.json +1 -1
  3. package/node_modules/@groove-dev/daemon/src/api.js +32 -0
  4. package/node_modules/@groove-dev/daemon/src/journalist.js +14 -12
  5. package/node_modules/@groove-dev/daemon/src/model-lab.js +50 -67
  6. package/node_modules/@groove-dev/daemon/src/rotator.js +1 -1
  7. package/node_modules/@groove-dev/gui/dist/assets/{index-D4JZyMWH.js → index-BrZHF7pK.js} +7 -7
  8. package/node_modules/@groove-dev/gui/dist/index.html +1 -1
  9. package/node_modules/@groove-dev/gui/package.json +1 -1
  10. package/node_modules/@groove-dev/gui/src/components/agents/agent-feed.jsx +5 -1
  11. package/node_modules/@groove-dev/gui/src/components/agents/agent-file-tree.jsx +1 -1
  12. package/node_modules/@groove-dev/gui/src/components/editor/code-editor.jsx +8 -8
  13. package/node_modules/@groove-dev/gui/src/components/editor/file-tree.jsx +1 -1
  14. package/node_modules/@groove-dev/gui/src/components/lab/system-prompt-editor.jsx +3 -3
  15. package/node_modules/@groove-dev/gui/src/components/layout/breadcrumb-bar.jsx +1 -1
  16. package/package.json +1 -1
  17. package/packages/cli/package.json +1 -1
  18. package/packages/daemon/package.json +1 -1
  19. package/packages/daemon/src/api.js +32 -0
  20. package/packages/daemon/src/journalist.js +14 -12
  21. package/packages/daemon/src/model-lab.js +50 -67
  22. package/packages/daemon/src/rotator.js +1 -1
  23. package/packages/gui/dist/assets/{index-D4JZyMWH.js → index-BrZHF7pK.js} +7 -7
  24. package/packages/gui/dist/index.html +1 -1
  25. package/packages/gui/package.json +1 -1
  26. package/packages/gui/src/components/agents/agent-feed.jsx +5 -1
  27. package/packages/gui/src/components/agents/agent-file-tree.jsx +1 -1
  28. package/packages/gui/src/components/editor/code-editor.jsx +8 -8
  29. package/packages/gui/src/components/editor/file-tree.jsx +1 -1
  30. package/packages/gui/src/components/lab/system-prompt-editor.jsx +3 -3
  31. package/packages/gui/src/components/layout/breadcrumb-bar.jsx +1 -1
@@ -6,7 +6,7 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <link rel="icon" type="image/png" href="/favicon.png" />
8
8
  <title>Groove GUI</title>
9
- <script type="module" crossorigin src="/assets/index-D4JZyMWH.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-BrZHF7pK.js"></script>
10
10
  <link rel="modulepreload" crossorigin href="/assets/vendor-26L3JoZv.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/reactflow-DoBZjiHE.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/codemirror-DRQdprYi.js">
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groove-dev/gui",
3
- "version": "0.27.135",
3
+ "version": "0.27.136",
4
4
  "description": "GROOVE GUI — visual agent control plane",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "type": "module",
@@ -575,7 +575,7 @@ export function AgentFeed({ agent }) {
575
575
  }
576
576
  });
577
577
  }
578
- }, [timeline.length]);
578
+ }, [timeline.length, sending, isThinking]);
579
579
 
580
580
  async function handleFileSelect(e) {
581
581
  const files = Array.from(e.target.files || []);
@@ -621,6 +621,10 @@ export function AgentFeed({ agent }) {
621
621
 
622
622
  setInput('');
623
623
  setSending(true);
624
+ isAtBottomRef.current = true;
625
+ requestAnimationFrame(() => {
626
+ if (scrollRef.current) scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
627
+ });
624
628
  try {
625
629
  if (mode === 'query') {
626
630
  await queryAgent(agent.id, text);
@@ -135,7 +135,7 @@ function TreeEntry({ entry, depth, onOpen, expandedDirs, onToggleDir, onContextM
135
135
  onDoubleClick={handleCtxMenu}
136
136
  onContextMenu={handleCtxMenu}
137
137
  className={cn(
138
- 'w-full flex items-center gap-1.5 py-[3px] text-[13px] font-sans cursor-pointer',
138
+ 'w-full flex items-center gap-1.5 py-[3px] text-xs font-sans cursor-pointer',
139
139
  'hover:bg-surface-4/50 transition-colors text-left',
140
140
  isDragging && 'opacity-50',
141
141
  isDragOver && 'bg-accent/15 ring-1 ring-accent/50 rounded',
@@ -27,10 +27,10 @@ const LANGS = {
27
27
  const grooveHighlightStyle = HighlightStyle.define([
28
28
  { tag: t.keyword, color: '#b07fd5' },
29
29
  { tag: [t.name, t.deleted, t.character, t.macroName], color: '#d4d8e0' },
30
- { tag: [t.function(t.variableName), t.labelName], color: '#d9a45c' },
31
- { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#c4956a' },
30
+ { tag: [t.function(t.variableName), t.labelName], color: '#dcc9a0' },
31
+ { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#d4a07a' },
32
32
  { tag: [t.definition(t.name), t.separator], color: '#bcc2cd' },
33
- { tag: [t.typeName, t.className, t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#cda869' },
33
+ { tag: [t.typeName, t.className, t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#e0c589' },
34
34
  { tag: [t.operator, t.operatorKeyword, t.url, t.escape, t.regexp, t.special(t.string)], color: '#89b4c4' },
35
35
  { tag: [t.meta, t.comment], color: '#6e7681', fontStyle: 'italic' },
36
36
  { tag: t.strong, fontWeight: 'bold' },
@@ -38,13 +38,13 @@ const grooveHighlightStyle = HighlightStyle.define([
38
38
  { tag: t.strikethrough, textDecoration: 'line-through' },
39
39
  { tag: t.link, color: '#7ab0df', textDecoration: 'underline' },
40
40
  { tag: t.heading, fontWeight: '400', color: '#bcc2cd' },
41
- { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#c4956a' },
42
- { tag: [t.processingInstruction, t.string, t.inserted], color: '#a3b18a' },
41
+ { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#d4a07a' },
42
+ { tag: [t.processingInstruction, t.string, t.inserted], color: '#95b2b8' },
43
43
  { tag: t.invalid, color: '#d4736e' },
44
- { tag: t.propertyName, color: '#d9a45c' },
44
+ { tag: t.propertyName, color: '#dcc9a0' },
45
45
  { tag: [t.tagName], color: '#d4736e' },
46
- { tag: t.attributeName, color: '#cda869' },
47
- { tag: t.attributeValue, color: '#a3b18a' },
46
+ { tag: t.attributeName, color: '#e0c589' },
47
+ { tag: t.attributeValue, color: '#95b2b8' },
48
48
  ]);
49
49
 
50
50
  // Custom theme overrides to match our design tokens
@@ -130,7 +130,7 @@ function TreeNode({ entry, depth = 0, activePath, onFileClick, onDirToggle, expa
130
130
  onDoubleClick={handleContextMenu}
131
131
  onContextMenu={handleContextMenu}
132
132
  className={cn(
133
- 'w-full flex items-center gap-1.5 py-[3px] text-[13px] font-sans cursor-pointer',
133
+ 'w-full flex items-center gap-1.5 py-[3px] text-xs font-sans cursor-pointer',
134
134
  'hover:bg-surface-5 transition-colors text-left select-none',
135
135
  isActive && 'bg-accent/10 text-text-0',
136
136
  !isActive && 'text-text-1',
@@ -23,14 +23,14 @@ const editorTheme = EditorView.theme({
23
23
  const promptHighlightStyle = HighlightStyle.define([
24
24
  { tag: t.keyword, color: '#b07fd5' },
25
25
  { tag: [t.name, t.deleted, t.character, t.macroName], color: '#d4d8e0' },
26
- { tag: [t.function(t.variableName), t.labelName], color: '#d9a45c' },
26
+ { tag: [t.function(t.variableName), t.labelName], color: '#dcc9a0' },
27
27
  { tag: [t.meta, t.comment], color: '#6e7681', fontStyle: 'italic' },
28
28
  { tag: t.strong, fontWeight: 'bold' },
29
29
  { tag: t.emphasis, fontStyle: 'italic' },
30
30
  { tag: t.link, color: '#7ab0df', textDecoration: 'underline' },
31
31
  { tag: t.heading, fontWeight: '400', color: '#bcc2cd' },
32
- { tag: [t.processingInstruction, t.string, t.inserted], color: '#a3b18a' },
33
- { tag: [t.atom, t.bool], color: '#c4956a' },
32
+ { tag: [t.processingInstruction, t.string, t.inserted], color: '#95b2b8' },
33
+ { tag: [t.atom, t.bool], color: '#d4a07a' },
34
34
  { tag: t.invalid, color: '#d4736e' },
35
35
  ]);
36
36
 
@@ -153,7 +153,7 @@ export function BreadcrumbBar({
153
153
  return (
154
154
  <header
155
155
  className={cn(
156
- 'h-11 flex-shrink-0 flex items-center gap-3 px-4 pt-0.5 bg-surface-3 border-b border-border relative',
156
+ 'h-12 flex-shrink-0 flex items-center gap-3 px-4 bg-surface-3 border-b border-border relative',
157
157
  darwinDrag && 'pl-24 electron-drag electron-no-drag-children',
158
158
  )}
159
159
  >