refactor(plugins): the plugin RPC kit moves out of the plugins domain into src/nest-rpc

Every domain's *.rpc.ts was written against rpc-kit, rpc-params, rpc-errors
and PluginGuards, and every domain module imported PluginGuardsModule, all
of it inside src/nest/plugins, while PluginsRuntimeModule imports those same
domains so their handlers exist at boot. That made the plugins domain part
of every cycle. The kit imports no domain but the protocol tables and
permissions/addons for the guards, so it moves to src/nest-rpc beside
src/nest-mcp, with its tests, its README and its extraction rule; the
runtime module keeps its domain imports, which the boot-time coverage check
of the wire surface needs in any subset app.
This commit is contained in:
Maurice
2026-10-10 12:19:38 +02:00
parent cc79f561e5
commit e40bc71e9f
92 changed files with 237 additions and 280 deletions
+1 -22
View File
@@ -4,7 +4,6 @@
"accommodations -> assignments",
"accommodations -> mcp-shared",
"accommodations -> places",
"accommodations -> plugins",
"accommodations -> realtime",
"addons -> memories",
"addons -> settings",
@@ -23,11 +22,9 @@
"assignments -> days",
"assignments -> journey",
"assignments -> mcp-shared",
"assignments -> plugins",
"assignments -> realtime",
"atlas -> addons",
"atlas -> geo",
"atlas -> plugins",
"auth -> budget",
"auth -> files",
"auth -> maps",
@@ -43,34 +40,27 @@
"booking-import -> reservations",
"budget -> addons",
"budget -> mcp-shared",
"budget -> plugins",
"budget -> realtime",
"calendar -> days",
"calendar -> reservations",
"categories -> mcp-shared",
"categories -> plugins",
"collab -> addons",
"collab -> files",
"collab -> mcp-shared",
"collab -> notifications",
"collab -> plugins",
"collab -> realtime",
"collections -> addons",
"collections -> notifications",
"collections -> places",
"collections -> plugins",
"collections -> realtime",
"day-notes -> mcp-shared",
"day-notes -> plugins",
"day-notes -> realtime",
"days -> accommodations",
"days -> assignments",
"days -> mcp-shared",
"days -> places",
"days -> plugins",
"days -> realtime",
"files -> mcp-shared",
"files -> plugins",
"files -> realtime",
"geo -> maps",
"integrations -> addons",
@@ -87,7 +77,6 @@
"journey -> maps",
"journey -> memories",
"journey -> photos",
"journey -> plugins",
"journey -> realtime",
"journey -> settings",
"llm-parse -> addons",
@@ -106,7 +95,6 @@
"packing -> admin",
"packing -> mcp-shared",
"packing -> notifications",
"packing -> plugins",
"packing -> realtime",
"photos -> memories",
"places -> accommodations",
@@ -115,7 +103,6 @@
"places -> journey",
"places -> maps",
"places -> mcp-shared",
"places -> plugins",
"places -> realtime",
"places -> unsplash",
"plugins -> accommodations",
@@ -137,11 +124,9 @@
"plugins -> places",
"plugins -> realtime",
"plugins -> reservations",
"plugins -> tags",
"plugins -> todo",
"plugins -> trips",
"plugins -> vacay",
"plugins -> weather",
"realtime -> journey",
"realtime -> plugins",
"reservations -> accommodations",
@@ -151,13 +136,10 @@
"reservations -> integrations",
"reservations -> mcp-shared",
"reservations -> notifications",
"reservations -> plugins",
"reservations -> realtime",
"settings -> admin",
"tags -> plugins",
"todo -> addons",
"todo -> mcp-shared",
"todo -> plugins",
"todo -> realtime",
"transit -> days",
"transit -> maps",
@@ -190,7 +172,6 @@
"trips -> mcp-shared",
"trips -> packing",
"trips -> places",
"trips -> plugins",
"trips -> realtime",
"trips -> reservations",
"trips -> settings",
@@ -203,9 +184,7 @@
"vacay -> addons",
"vacay -> auth",
"vacay -> notifications",
"vacay -> plugins",
"vacay -> realtime",
"weather -> plugins"
"vacay -> realtime"
],
"sharedImportsDomain": [
"nest/common/idempotency-cleanup.job.ts -> nest/audit/audit-log.logger.ts",
+3 -5
View File
@@ -80,14 +80,12 @@ export const PUBLIC_SUFFIXES = [
/**
* Entry points that are public although their name does not say so: the
* plugin RPC kit every domain's *.rpc.ts is written against, and the gates
* and helpers every controller shares. Adding to this list is a design
* gates and helpers every controller shares. (The plugin RPC kit every
* domain's *.rpc.ts is written against sits outside src/nest, in
* src/nest-rpc, next to src/nest-mcp.) Adding to this list is a design
* decision for review, not a way past the check.
*/
export const PUBLIC_FILES = [
'plugins/host/rpc-kit/',
'plugins/host/rpc-params.ts',
'plugins/host/rpc-errors.ts',
'audit/client-ip.ts',
'addons/addon-gate.ts',
'addons/mcp-addon-gate.ts',