mirror of
https://gh-proxy.org/https://github.com/klinsmaya/open-connector.git
synced 2026-11-08 01:16:52 +08:00
## Summary
This change gives users a complete path from a deployed OpenConnector
gateway to using its Actions from an agent, a terminal, or application
code. It also integrates the optional OOMOL Key experience into provider
discovery and configured connections.
The console previously exposed MCP configuration and protocol
references, but CLI and SDK setup remained scattered across repository
documentation. The Action page's TypeScript example used raw HTTP rather
than the Connector SDK, and users had to replace gateway URLs and
connection names themselves. The standalone Marketplace page also
separated managed service discovery from the provider workflow.
## Changes
- Put **Discover connections** before **Configured connections**, with
OOMOL Key services identified as built-in accounts after activation and
separate source filters for built-in accounts and user credentials.
- Move optional OOMOL Key discovery into the provider page. Keep
supported services in a compact responsive grid with visible discounts,
and show the exact supported Actions in an operation drawer.
- Separate service expansion from the Key connection dialog. Users can
inspect services, connect or remove a Key, and hide the recommendation
without changing their own provider credentials.
- Consolidate language, theme, runtime refresh, and the OOMOL Key entry
in a top-right settings panel. Restore the product overview before
asking for a Key. Use shadcn Sonner for the hide notification and undo
action.
- Replace the Resources page with a three-stage client onboarding guide:
confirm the gateway URL and Runtime Token requirements, choose
MCP/CLI/SDK, and run the first Action. Changing the URL updates the
client examples and Action examples in the same console session.
- Add genuine CLI and OpenConnector SDK examples to Action details,
including named-connection selection. Retain cURL, HTTP TypeScript, and
agent examples.
- Add English and Simplified Chinese standalone onboarding guides, link
them from the READMEs, update SDK connection-management documentation,
and localize the console flow in all six supported languages.
## Build resilience
During verification, the existing remote provider icon catalog returned
HTTP 404 and prevented an otherwise valid Web build. The icon plugin now
applies a bounded fetch and emits a warning with an empty optional
mapping on failure. Provider-defined icons and the existing initials
fallback remain available, and a valid remote catalog still bundles
normally. Regression tests cover both cases.
## Verification
- `npm run fix-check` — passed lint fixes, formatting, and type checking
for src/scripts/examples.
- `npm run generate:catalog` — regenerated the current catalog and
registries after rebasing onto main.
- `npm run build:web` — passed with the remote-catalog warning and
normal icon fallback.
- `npx vitest run web/src --reporter=dot` — 21 files, 168 tests passed.
- `git diff --check` — passed.
- Browser checks covered gateway URL propagation into MCP/CLI/SDK and
Action examples, independent Key dialogs and service expansion, service
operation drawers, and Sonner hide/undo behavior.
- An installed oo CLI reached the local gateway and returned
`{"dryRun":true,"ok":true}`. Actual Hacker News retrieval was blocked by
this machine's upstream DNS resolving to a reserved address; the
existing egress protection was left intact.
## Base
Rebased onto the latest `origin/main` (`70a6f779`) without conflicts.
The earlier local UI commits are included in this PR, together with the
client onboarding work.
46 lines
1.2 KiB
JSON
46 lines
1.2 KiB
JSON
{
|
|
"name": "@oomol/connect-web",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite --host 0.0.0.0",
|
|
"build": "tsc -p tsconfig.json && vite build",
|
|
"preview": "vite preview",
|
|
"format": "oxfmt --check .",
|
|
"format:fix": "oxfmt ."
|
|
},
|
|
"dependencies": {
|
|
"@embra/i18n": "^0.0.10",
|
|
"@embra/reactivity": "^0.0.8",
|
|
"@radix-ui/react-dialog": "^1.1.18",
|
|
"@radix-ui/react-label": "^2.1.11",
|
|
"@radix-ui/react-select": "^2.3.2",
|
|
"@radix-ui/react-slot": "^1.3.0",
|
|
"@radix-ui/react-tabs": "^1.1.16",
|
|
"@radix-ui/react-toggle-group": "^1.1.14",
|
|
"@radix-ui/react-tooltip": "^1.2.11",
|
|
"@tailwindcss/vite": "^4.3.2",
|
|
"@vitejs/plugin-react": "^6.0.1",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"foxact": "^0.3.8",
|
|
"lucide-react": "^1.14.0",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"react-router": "^8.3.0",
|
|
"recharts": "^3.9.2",
|
|
"sonner": "^2.0.8",
|
|
"tailwind-merge": "^3.6.0",
|
|
"tailwindcss": "^4.3.2",
|
|
"tw-animate-css": "^1.4.0",
|
|
"vite": "^8.0.12"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^26.1.0",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"typescript": "^7.0.2"
|
|
}
|
|
}
|