@grackle-ai/web 0.69.1 → 0.70.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/README.md ADDED
@@ -0,0 +1,109 @@
1
+ # @grackle-ai/web
2
+
3
+ The Grackle web dashboard -- a single-page application for managing remote AI coding agents, environments, tasks, and workspaces. It connects to the Grackle server over WebSocket for real-time state updates and streams agent output as it happens.
4
+
5
+ ![Dashboard with workspaces, active sessions, and task triage](../../screenshots/dashboard-projects-tasks.png)
6
+
7
+ ## Features
8
+
9
+ - **Real-time agent streaming** -- watch tool calls, code output, and agent reasoning as they happen, bridged from gRPC through the server's WebSocket layer.
10
+ - **Task tree management** -- create, edit, and monitor hierarchical task trees with parent/child relationships, dependency gating, review/approval workflows, and inline findings.
11
+ - **DAG visualization** -- interactive dependency graph powered by React Flow, showing task hierarchy and dependency edges at a glance.
12
+ - **Environment management** -- add, configure, and monitor Docker, SSH, Local, and Codespace environments from a unified panel.
13
+ - **Workspace boards** -- group tasks and sessions around a shared repo and environment; track progress, cost, and session history per workspace.
14
+ - **Chat with the orchestrator** -- talk directly to the root agent through a chat interface with full access to every Grackle MCP tool.
15
+ - **Findings panel** -- browse categorized discoveries shared across agents within a workspace.
16
+ - **Persona management** -- create and configure specialized agent personas with custom runtimes, models, and system prompts.
17
+ - **Credential & token management** -- store and manage API keys and provider credentials from the Settings page.
18
+ - **10 built-in themes** -- Grackle, Grackle Light, Glassmorphism, Matrix, Neubrutalism, Monokai, Ubuntu, Sandstone, Verdigris, and Primer. Several themes offer light/dark variants. Switch in Settings or follow system preference.
19
+ - **Responsive layout** -- sidebar drawer with mobile breakpoints, keyboard shortcuts (Escape to close), and animated page transitions.
20
+ - **Setup wizard** -- guided onboarding flow for first-time users.
21
+
22
+ ![Task tree with status indicators and expand/collapse](../../screenshots/task-tree-hierarchy.png)
23
+
24
+ ![Live agent stream with tool calls and code output](../../screenshots/task-stream-view.png)
25
+
26
+ ![Theme grid showing six built-in themes](../../screenshots/theme-grid.png)
27
+
28
+ ## Tech Stack
29
+
30
+ | Layer | Technology |
31
+ |-------|------------|
32
+ | Framework | React 19 |
33
+ | Build | Vite 6 |
34
+ | Language | TypeScript (strict) |
35
+ | Styling | SCSS Modules + CSS custom properties (theme tokens) |
36
+ | Routing | React Router 7 |
37
+ | Animation | Motion (Framer Motion) |
38
+ | Graphs | React Flow + dagre |
39
+ | Markdown | react-markdown + remark-gfm + rehype-prism-plus |
40
+ | Testing | Vitest + React Testing Library |
41
+ | Shared types | `@grackle-ai/common` (protobuf-generated) |
42
+
43
+ ## Development
44
+
45
+ ```bash
46
+ # From the repo root -- install dependencies and build all packages
47
+ rush install && rush build
48
+
49
+ # Start the Vite dev server (hot-reload on port 5173)
50
+ cd packages/web
51
+ rushx dev
52
+ ```
53
+
54
+ The dev server proxies `/ws` requests to `ws://localhost:3000`, so you need a running Grackle server for live data. Start one with:
55
+
56
+ ```bash
57
+ # In another terminal
58
+ node packages/cli/dist/index.js serve
59
+ ```
60
+
61
+ Then open http://localhost:5173.
62
+
63
+ ### Build for production
64
+
65
+ ```bash
66
+ rushx build # TypeScript check + Vite production build → dist/
67
+ rushx preview # Serve the production build locally
68
+ ```
69
+
70
+ ### Run tests
71
+
72
+ ```bash
73
+ rushx test # Vitest unit tests
74
+ ```
75
+
76
+ ### Mock mode
77
+
78
+ Append `?mock` to the URL (e.g., `http://localhost:5173/?mock`) to run the UI with a mock data provider instead of a live server connection. Useful for frontend development without a running backend.
79
+
80
+ ## Project Structure
81
+
82
+ ```
83
+ src/
84
+ main.tsx Entry point
85
+ App.tsx Root component, routing, context providers
86
+ themes.ts Theme registry (10 themes)
87
+ context/ React contexts (Grackle state, Toast, Theme)
88
+ hooks/ Custom hooks (WebSocket, sessions, tasks, environments, ...)
89
+ pages/ Route-level page components
90
+ components/
91
+ layout/ AppNav, Sidebar, StatusBar, BottomStatusBar
92
+ display/ EventStream, EventRenderer, SplashScreen, Spinner, ...
93
+ panels/ TaskEditPanel, FindingsPanel, EnvironmentEditPanel, ...
94
+ dag/ DagView, TaskNode (React Flow graph)
95
+ chat/ ChatInput
96
+ editable/ Inline-editable field components
97
+ lists/ TaskList, EnvironmentNav
98
+ workspace/ WorkspaceBoard
99
+ personas/ PersonaManager
100
+ notifications/ Toast, Callout
101
+ settings/ SettingsNav
102
+ styles/ Global SCSS, theme tokens, mixins
103
+ utils/ Navigation helpers, dashboard computations
104
+ mocks/ MockGrackleProvider for offline development
105
+ ```
106
+
107
+ ## License
108
+
109
+ MIT