Commit Graph

122 Commits

Author SHA1 Message Date
f3f0df9cf3 feat: Redesign FloatingTerminal with Windows Vista Aero style
- Slim, transparent Aero Glass design with backdrop blur
- Draggable window from titlebar
- Resizable from corner handle
- Ctrl+E toggle to open at cursor position
- Remove minimize functionality (close returns to sidebar button)
- Add PWA dev-dist files and lock files
2026-02-13 18:27:17 -06:00
424afa060c feat: Improve WebMCP connection handling and tools management
WebMCP service:
- Add headless mode configuration
- Implement proper event handlers with unsubscribe support
- Add connection info tracking (channel, server, status, tools)
- Add destroyWebMCP for cleanup
- Improve connectWithToken to pass token directly

Canvas store:
- Add connection state (reconnecting, status, error, info)
- Add computed statusColor for UI feedback

Components:
- Add ConnectionDropdown for connection status display
- Add ToolsDropdown for tools management UI

Tool registry:
- Improve tool activation/deactivation logic
- Better error handling and logging
2026-02-13 18:06:45 -06:00
3c57f95b90 feat: Add PWA support and CORS configuration
- Configure VitePWA with manifest, icons and service worker
- Add PwaInstallBanner component for install prompt in header
- Enable CORS for z590.interno.com access
- Use dynamic hostname for terminal WebSocket connection
- Add generate-icons script with sharp for PWA icons
- Fix theme-color to match header background
2026-02-13 18:00:54 -06:00
4450d1e034 feat: Add /tools page with centralized tool registry management
- Add ToolsPage for managing MCP tools activation and persistence
- Centralize all tool handlers in services/tools/handlers/
- toolRegistry.ts is now the single source of truth for tool state
- Add tools store for pinned tools (persisted in localStorage)
- Tools can be pinned to stay active across page navigation
- Remove old individual tool files, replaced by centralized handlers
2026-02-13 13:46:55 -06:00
da6111bd1f refactor: Modularize database page into components and composables
- Extract types to types/database.ts
- Create composables: useDatabaseApi, useDataTable, useQueryExecutor
- Create components: DatabaseSidebar, DataTable, FilterBar, SchemaInfo,
  QueryEditor, QueryColumnsBar, DatabaseStats, TablePagination
- Add horizontal scroll to DataTable with sticky checkbox column
- Configure @ path alias in vite and tsconfig
- Reduce DatabasePage.vue from 1548 to 314 lines
2026-02-13 13:21:52 -06:00
421b184829 feat: Add advanced data table features to database page
- Add cell click-to-copy with visual feedback
- Add text filter to search across all columns
- Add column visibility toggle (click schema columns to show/hide)
- Add row selection with checkboxes
- Copy All respects visible columns and selected rows
- Auto-reset selections when changing table/page/query
2026-02-13 13:05:35 -06:00
645f51a74e refactor: Modularize server into separate concerns
Split monolithic index.ts (~1400 lines) into modular structure:
- config.ts: Server configuration and constants
- db/: Database initialization, migrations, and seeds
- routes/: API handlers by domain (themes, canvas, components, etc.)
- services/: Terminal WebSocket server
- utils/: CORS helpers

Entry point now only coordinates initialization.
2026-02-13 13:01:18 -06:00
9681ce4198 feat: Add WebMCP token polling for automatic browser connection
- Add token API endpoint to server for storing/retrieving pending tokens
- Add token polling in frontend to auto-detect and connect with tokens
- Add xterm dependencies for terminal functionality
- Add terminal page support in toolRegistry
2026-02-13 07:49:15 -06:00
2cf869d2e9 feat: Add persistent terminal with floating UI
- Server keeps PTY sessions alive on client disconnect
- Output buffer replays history on reconnect
- FloatingTerminal component accessible from any page
- Responsive: floating window on desktop, fullscreen on mobile
- macOS-style header with traffic light buttons
2026-02-13 07:33:43 -06:00
ccbf542480 feat: Move dynamic canvas to /dynamic/canvas route
Separates dynamic canvas from homepage to avoid conflicts with default canvas.
- Changed route from /dynamic-canvas to /dynamic/canvas
- Added toolbar button for quick access to dynamic canvas
- Updated navigate_to tool with dynamic-canvas option
2026-02-13 07:21:42 -06:00
2a2100bbb2 feat: Add source code viewer with Gitea integration
- Add /source page with file explorer and code viewer
- Connect to Gitea API for repository browsing
- Implement MCP tools: get_repo_info, list_repo_files, read_repo_file, search_repo_code
- Default to nucleo000/agent-ui repository
- Support branch switching and file search
2026-02-13 06:50:58 -06:00
97ef49aea4 feat: Add database explorer page with SQLite management
- Add /database page with table explorer, query executor and stats
- Implement MCP tools: list_tables, get_table_schema, get_table_data,
  get_database_stats, execute_query
- Add database API endpoints with security (SELECT only)
- Add database icon to toolbar
2026-02-13 06:43:52 -06:00
8a017db777 feat: Add multi-canvas system with project canvas support
- Add project_canvas and canvas_components tables for persistent canvas storage
- Add ProjectCanvas store with full CRUD operations
- Add ProjectCanvasPage for rendering saved canvas with components
- Add ProjectsPage for managing canvas list (create, clone, delete)
- Add HomePage that loads default canvas or falls back to dynamic canvas
- Add toolbar support for displaying canvas as pages with custom icons
- Add component usage validation to prevent deletion of components in use
- Add MCP tools for canvas management (list, create, update, delete, clone)
- Update router with /canvas/:id and /projects routes
- Update Toolbar to show dynamic canvas pages from database
2026-02-13 06:32:46 -06:00
2e64dceb1e feat: Add update_theme functionality with UI support
Backend:
- Add PUT /api/themes/:id endpoint for updating existing themes

Store:
- Add updateTheme method to theme store

MCP:
- Add update_theme tool to modify name, description, or save current variables

UI:
- Add edit button to ThemeListItem (custom themes only)
- Add edit modal with name and description fields
- Support editing from both desktop sidebar and mobile dropdown
2026-02-13 05:50:13 -06:00
d5518cb6d1 feat: Add additional theme management MCP tools
- list_themes: List all available themes (system + custom)
- switch_theme: Change active theme by name or ID
- set_default_theme: Set a theme as the default startup theme
- delete_theme: Remove custom themes (protects system themes)
- reset_theme: Discard unsaved changes
- export_theme: Export theme as JSON for backup/sharing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 05:44:16 -06:00
9d3aa6f2ff feat: Add save_theme MCP tool for persistent theme storage
- Add save_theme tool to save themes permanently to database
- Update set_theme_variable to track changes in store's previewTheme
- Enables full theme creation workflow via MCP tools

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 05:43:05 -06:00
acde6b37d6 feat: Add dynamic MCP tool registration per page
- webmcp.ts: Add tool tracking, unregisterTool(), clearAllTools()
- tools/canvasTools.ts: render_html, render_vue_component
- tools/componentTools.ts: save/load/list/delete_vue_component
- tools/themeTools.ts: get_design_tokens, get_active_theme, set_theme_variable, save_theme
- tools/globalTools.ts: get_current_page, navigate_to, list_available_tools
- toolRegistry.ts: Orchestrates tool registration per page
- App.vue: Initializes WebMCP once, watches route for tool changes
- Canvas.vue: Removed tool registration (now handled by registry)

Tools are now registered when entering a page and unregistered when leaving.
Refresh initializes tools correctly for the current page.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 05:42:17 -06:00
3c38b75040 feat: Add mobile responsive theme editor and documentation
- ThemesPage: Custom dropdown with theme cards for mobile
- ThemesPage: Collapsible variables section
- ThemePreview: Responsive grid and compact layout
- VariableEditor: Separate radius preview with border-radius
- ColorPicker: Mobile-friendly dropdown positioning
- README: Complete theme system documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 05:23:36 -06:00
b880038b07 feat: Add theme system with visual editor
- Backend: themes table and API endpoints (CRUD, export, design-tokens)
- Theme store with preview, apply, and persistence
- ThemesPage with collapsible variables editor and live preview
- Components: ColorPicker (HSL), VariableEditor, ThemePreview, ThemeListItem
- Integration: $theme helper for dynamic components, get_design_tokens MCP tool
- Navigation: /themes route with palette icon in toolbar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 05:10:18 -06:00
d1c0f62fc3 refactor: Separate concerns and add components dropdown
- Add ComponentsDropdown.vue with save/load/delete functionality
- Create components store (Pinia) for state management
- Extract WebMCP initialization to services/webmcp.ts
- Extract MCP tools registration to services/canvasTools.ts
- Simplify Canvas.vue (~340 lines -> ~105 lines)
- Update App.vue header with components dropdown

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 04:33:55 -06:00
075e167389 feat: Add dynamic Vue 3 components system
- Add dynamicComponents.ts service (~300 lines)
  - CSS scoping with high specificity
  - Async setup support with Suspense
  - Event bus for inter-component communication
  - Shared Pinia store with main app
  - No app overhead (uses render + createVNode)

- Add MCP tools for Vue components
  - render_vue_component
  - save_vue_component
  - load_vue_component
  - list_vue_components
  - delete_vue_component

- Add SQLite table for component persistence
- Add TypeScript declarations for webmcp
- Configure Vite for runtime template compilation
- Add comprehensive README with documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 04:15:53 -06:00
52c93930e1 Initial commit - agent-ui project
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 03:10:06 -06:00