Skip to content

feat: app dashboards capability + plugin template chrome upgrade#1262

Open
ebarroca wants to merge 83 commits into
mainfrom
feat-plugin-app-shell-and-dashboards
Open

feat: app dashboards capability + plugin template chrome upgrade#1262
ebarroca wants to merge 83 commits into
mainfrom
feat-plugin-app-shell-and-dashboards

Conversation

@ebarroca
Copy link
Copy Markdown
Contributor

@ebarroca ebarroca commented May 3, 2026

Summary

  • Adds 'dashboards' to AppCapabilities and wires AppDashboardDefinition[] through ToolServerConfig so apps can contribute read-only Vega-Lite dashboards exposed as app:<name>:<id> via /api/package?scope=dashboards.
  • Upgrades the plugin template's chrome: typed route registry, 56px top nav with cmd-K command palette, route-aware persistent assistant (single launcher), and PageShell primitive.
  • Activates palette tokens (slate-blue default, light + dark) and adds two generator prompts (THEME_TOKENS, ASSISTANT_INTERACTION) so freshly-scaffolded plugins are themed and assistant-wired on first run.

What's in this PR

SDK + types:

  • packages/common/src/apps.ts, packages/common/src/data-platform.ts — add 'dashboards' capability.
  • packages/tools-sdk/src/server/types.ts, app-package.ts, server.ts, new server/dashboards.ts — expose dashboards through the tools-sdk surface and the package endpoint.

Plugin template (templates/plugin-template/):

  • New dashboards/ bucket in the tool server (typed empty array stub).
  • New UI primitives: PageShell, CommandPalette, PersistentAssistant, assistantEvents (OPEN_ASSISTANT_EVENT).
  • routes.tsx → typed PluginRoute[] with label/icon/sidebarGroup/hideFromNav metadata; sidebar and command palette both read from one source.
  • PluginSidebar driven by registry; chat conversations now opt-in.
  • PluginTopNav 56px with primary action + notifications slots, single Ask AI launcher.
  • PluginLayout mounts <PersistentAssistant />.
  • index.css palette activated (was stubbed/commented).
  • i18n: new nav.askAi, nav.assistantContext, nav.commandPalette*, etc. (en + fr).
  • template.config.json: new THEME_TOKENS select prompt (4 palettes) and ASSISTANT_INTERACTION text prompt; index.css and constants.ts added to substitution files.

Test Plan

  • pnpm exec tsc --project tsconfig.ui.json --noEmit — clean (only pre-existing missing-@vertesia/tools-admin-ui from main.tsx shows up).
  • pnpm exec tsc --project tsconfig.tool-server.json --noEmit — clean.
  • pnpm run lint — clean.
  • Smoke test a fresh pnpm create @vertesia/plugin <name> against this branch (theme prompt + assistant interaction id substitution both apply to the right files).
  • Verify cmd-K palette opens, navigates by route label, and closes on Escape in the standalone-app dev mode.
  • Verify /api/package?scope=dashboards returns [] from a fresh plugin and the manifest's capabilities reflects dashboards.

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

ebarroca added 30 commits April 17, 2026 19:34
Free-form context the user provides when starting a run. Surfaced to
the orchestrator LLM in supervised mode (visible throughout the run)
and persisted on the run regardless so programmatic runs retain the
intent that triggered them.
…onalities and delete interaction method; update common types for tool annotations and user confirmation
…; update process validation logic and tests; add process node types and definitions
… support

- Updated `createClient` function to prioritize explicit environment variables over profile settings for API key, server URL, store URL, and project ID.
- Improved handling of `VERTESIA_TOKEN` to allow for local server usage.
- Added checks to fallback to profile values if environment variables are not set.

feat(cli): add agent commands to CLI

- Integrated `registerAgentsCommand` into the main CLI entry point.
- Enhanced profiles command to include options for creating profiles with API keys and project/account IDs.

feat(cli): expand object commands with search and query capabilities

- Introduced `searchObjects` and `queryObjects` functions to allow for full-text search and querying indexed documents.
- Updated `listObjects` and `getObjectText` functions to support JSON output.

fix(cli): improve profile management and token handling

- Refactored profile commands to ensure proper handling of asynchronous operations and error management.
- Enhanced token refresh logic to handle interruptions gracefully.

feat(cli): implement server-side improvements for configuration sessions

- Updated `startConfigSession` to handle abort signals and ensure proper cleanup.
- Improved error handling and validation for callback payloads in server responses.

feat(client): add method to retrieve agent runs by ID

- Introduced `retrieveRun` method in `AgentsApi` to fetch agent runs while preserving type information.
…ds; add child run identifiers to NodeHistoryEntry interface
- Increased minimumReleaseAge in pnpm-workspace.yaml from 1 day to 3 days to enhance protection against supply chain attacks.
- Updated hono dependency version in pnpm-workspace.yaml to allow for 4.12.14.
- Added dompurify@3.4.0 to minimumReleaseAgeExclude in pnpm-workspace.yaml.
- Refactored static file serving in server-node.ts to use server.get instead of server.all for improved performance.
- Upgraded google-auth-library from 10.5.0 to 10.6.2 in environment-configuration package.json.
- Updated pnpm-lock.yaml to reflect changes in google-auth-library and other dependencies, including typescript from 5.9.3 to 6.0.3 and bun-types from 1.3.11 to 1.3.12.
- Deleted connect.ts, docker-credential.ts, docker.ts, index.ts, project.ts, refresh.ts, registry.ts, version.ts from the worker directory.
- Updated tsconfig.json to remove references to memory-cli and memory-commands.
- Cleaned up pnpm-lock.yaml by removing unused dependencies and their references.
- Excluded memory-cli and memory-commands from the pnpm workspace.
# Conflicts:
#	packages/client/src/store/AgentsApi.ts
ebarroca and others added 30 commits May 6, 2026 14:32
…template updates

- Add vertesia auth git and auth git credential commands for Git HTTPS auth to app repositories
- Add AppPackageScope and getAppInstallationPackage to AppsApi
- Update plugin template (CLAUDE.md, README, vite config, env)
- Remove dev-* environment choices from profile target prompts
- Minor admin UI and access-control updates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants