Conversation
|
Thanks for the contribution! Dory's AI + database combo is an interesting use case. A few thoughts: Should this be a plugin instead?Dory is a niche database client with a small user base compared to built-in adapters like Twitter, Bilibili, or WeChat. Putting 18 commands (1,165 lines) into the core repo means the maintainers take on the maintenance burden — every time Dory updates its UI or API, someone here needs to fix it. This is a great fit for the plugin system: Existing community adapters like Architecture concernThe 18 commands mix two fundamentally different patterns:
Existing desktop adapters (ChatGPT 6 commands, Cursor 12, Notion 8) stay within a single interaction surface. This PR introduces a new "database client" category without shared abstractions. The schema browsing commands ( Code issues
Zero tests — 18 commands with no test coverage doesn't meet the project's TESTING.md requirements. Minor: |
|
@Astro-Han Thanks for the feedback, is plugins works on electron app? |
|
@dory-finn Yes, plugins fully support Electron/desktop apps. The plugin system shares the exact same execution path as built-in adapters — there's no distinction at runtime. How it works:
You can also use import { cli, Strategy } from '@jackwener/opencli/registry';
cli({
site: 'dory',
name: 'connections',
description: 'List database connections',
strategy: Strategy.UI,
browser: true,
requiredEnv: [{ name: 'OPENCLI_CDP_ENDPOINT', help: 'Dory CDP endpoint (e.g. http://localhost:9222)' }],
func: async (page, kwargs) => {
// page is an IPage — same API as built-in desktop adapters
},
});The shared desktop utilities in |
Description
Related issue:
Type of Change
Checklist
Documentation (if adding/modifying an adapter)
docs/adapters/(if new adapter)docs/adapters/index.mdtable (if new adapter)docs/.vitepress/config.mts(if new adapter)README.md/README.zh-CN.mdwhen command discoverability changedCliErrorsubclasses instead of rawErrorScreenshots / Output