Skip to content

Comments

feat(plugin): introduce plugin foundation and developer docs#114

Open
alexk-dev wants to merge 11 commits intomainfrom
feat/plugin-foundation
Open

feat(plugin): introduce plugin foundation and developer docs#114
alexk-dev wants to merge 11 commits intomainfrom
feat/plugin-foundation

Conversation

@alexk-dev
Copy link
Owner

Summary

  • introduce a generic plugin foundation (BotPlugin, PluginDescriptor, PluginContribution, PluginContext, BotPluginFactory) and runtime registry components
  • add a built-in plugin catalog for Brave, Browser, ElevenLabs, Whisper, RAG, Usage Tracker, Email, Security, Webhooks, and Telegram
  • route managed tools/channels/ports through strict plugin catalogs/resolver so plugin-backed modules run via plugin contributions
  • remove multi-constructor bean patterns in core Spring components and keep production DI paths single-constructor
  • update affected tests to use plugin testing factories (forTesting) instead of compatibility constructors
  • add English plugin development documentation in docs/PLUGINS.md (capabilities, contribution IDs/contracts, lifecycle, packaging), and link it from README.md

Move Telegram handlers, confirmation, and plan approval adapters under plugin.builtin.telegram packages. Move ElevenLabs and Whisper adapters under plugin.builtin.voice/whisper packages with matching test moves.

Split command availability by channel type (telegram vs web) via CommandPort channel-aware methods and CommandRouter filtering; wire Telegram/WebSocket adapters to use channel-specific command checks.
Rename WhisperCompatibleSttAdapter to WhisperAdapter and update all imports, plugin wiring, and tests.
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
71.6% Coverage on New Code (required ≥ 80%)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

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