Skip to content

feat: Composio/Rube integration UI, API routes, and MCP auto-config#145

Merged
vedworks merged 10 commits intofeat/multi-provider-gateway-supportfrom
feat/settings
Mar 31, 2026
Merged

feat: Composio/Rube integration UI, API routes, and MCP auto-config#145
vedworks merged 10 commits intofeat/multi-provider-gateway-supportfrom
feat/settings

Conversation

@vedworks
Copy link
Copy Markdown

Summary

Merges feat/settings into feat/multi-provider-gateway-support for the Composio (Rube MCP) integration on Dench Cloud.

What changed

  • Web: Composio toolkit catalog, search, categories, connect/disconnect flows, OAuth callback; integrates under Settings → Integrations.
  • API: Next.js routes under /api/composio/* that proxy to the Dench gateway with the user’s Dench Cloud Bearer token only (no Composio secrets in this repo).
  • CLI / config: Auto-injects mcp.servers.composio (gateway MCP URL + Authorization: Bearer Dench key) when Dench Cloud is configured (dench-cloud patch + bootstrap wiring).

Security (open source)

  • No Composio API keys or org tokens are committed; only gateway path conventions (/v1/composio/...) and client use of the existing Dench Cloud key pattern.

Notes

  • End-to-end behavior depends on the gateway exposing the matching Composio proxy routes.

vedworks added 10 commits March 31, 2026 18:45
…rations tabs

Add a settings icon to the sidebar search row that opens a new Settings
surface in the main pane. The Settings panel contains tabs for Skills,
Integrations, and Cloud. The existing SkillStorePanel and IntegrationsPanel
are rehosted inside Settings with an embedded prop to suppress their
standalone page headers. Legacy ~skills and ~integrations paths redirect
into Settings on the appropriate tab.
…ints

Remove the virtual ~skills folder from the sidebar tree builder and the
synthetic Integrations folder from the enhanced tree. Skills and
integrations are now only accessible through the unified Settings surface.
Stale ~skills and ~integrations tabs/URLs still redirect to Settings.
Add a GET/POST API at /api/settings/cloud that reads Dench Cloud config
from openclaw.json, validates API keys against the gateway, fetches the
model catalog, and supports saving a new API key or switching the primary
model. Config writes follow the same pattern as bootstrap: provider config,
agent model aliases, TTS gateway, and gateway restart.
Build the Cloud tab with API key entry + CTA to dench.com/api when no key
is present, and a model selector dropdown when the key is valid. Selecting
a model makes it the primary dench-cloud model, updates the full config
(provider, agent aliases, TTS), and restarts the gateway. Success/warning
banners match the existing integrations UX.
Update tab-state tests to cover settings and legacy integrations mapping.
Add cloud settings API route tests covering GET state, save key, select
model, validation errors, and unknown action rejection.
Fixes ReferenceError: Cannot access 'handleOpenSettings' before
initialization caused by the useCallback being declared after the
callbacks that depend on it.
Webpack cannot resolve the .js suffixed path to a .ts source file.
Use the extensionless import like the rest of the codebase.
Add the data layer for Composio/Rube integration:
- apps/web/lib/composio.ts: types for toolkits, connections, and
  gateway client functions that proxy to the Dench gateway
- API routes: toolkits, connections, connect, disconnect, callback
  all gated behind Dench Cloud API key + primary provider eligibility
…Auth flow

Add a "Connected Apps" section below the existing 3 integrations in
Settings > Integrations:
- ComposioAppsSection: search bar, category pills, featured/all split
- ComposioAppCard: toolkit logo, name, description, connected badge
- ComposioConnectModal: OAuth connect via browser popup + disconnect
- Gated behind Dench Cloud eligibility with lock CTA for free users
Add mcp.servers.composio to buildDenchCloudConfigPatch() so OpenClaw
agents automatically discover connected tools via the gateway's MCP
proxy. Applied in saveApiKey(), selectModel(), and bootstrap.
@vedworks vedworks merged commit d607d11 into feat/multi-provider-gateway-support Mar 31, 2026
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.

1 participant