feat(plugins): seam slash-commands contribuées par plugin via callback — #165 (QA verte)
Permet à un plugin de contribuer des commandes slash adossées à une callback, transitant par le registry/contrat unifié (#162) : - sdk/IdeaSDK: manifeste contributes.slashCommands (déclaratif) — pointer bumpé. - domain: source Plugin étendue + effet PluginCallback (la commande ne s'exécute pas directement : elle renvoie une référence à la callback du plugin). - application: registration des commandes plugin dans le registry + exécution renvoyant l'effet PluginCallback ; métadonnées UI suffisantes pour l'autocomplete. - backend + app-tauri: DTO + commandes Tauri listant/invoquant les commandes plugin. - frontend (contrat): types adapters/domain/ports/mock pour pluginCallback et l'invocation avec arguments. L'exécution effective de la callback côté runtime UI est livrée par #166. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -165,6 +165,7 @@ async fn installs_sdk_hello_plugin_and_loads_runtime_catalog() {
|
||||
assert_eq!(result.plugin.display_name, "Hello Plugin");
|
||||
assert_eq!(result.review.contribution_summary.top_level_menus, 1);
|
||||
assert_eq!(result.review.contribution_summary.menu_items, 1);
|
||||
assert_eq!(result.review.contribution_summary.slash_commands, 1);
|
||||
assert_eq!(result.review.contribution_summary.layouts, 1);
|
||||
assert!(app_data
|
||||
.join("plugins/installed/com.example.hello-plugin/dist/index.js")
|
||||
@ -187,6 +188,11 @@ async fn installs_sdk_hello_plugin_and_loads_runtime_catalog() {
|
||||
plugin.contributes.menu_items[0].command.as_str(),
|
||||
"hello-plugin"
|
||||
);
|
||||
assert_eq!(plugin.contributes.slash_commands[0].name, "/hello");
|
||||
assert_eq!(
|
||||
plugin.contributes.slash_commands[0].command.as_str(),
|
||||
"hello-plugin"
|
||||
);
|
||||
assert_eq!(
|
||||
plugin.contributes.layouts[0].layout_type.as_str(),
|
||||
"hello-plugin.hello-world"
|
||||
|
||||
Reference in New Issue
Block a user