import { Suspense } from "react"; import { PluginsClient } from "@/features/admin/plugins/plugins-client"; import { ListPageSkeleton } from "@/shared/components/page-templates"; /** * 插件管理(ARCHITECTURE.md §7.3 列表页 / §9.4 / §10 P5 / 004 §5.4) * * Server Component 入口:仅负责 Suspense 边界包裹(useSearchParams 要求)。 * 业务逻辑在 PluginsClient(client component)中。 * * 数据契约: * - pluginRegistry ❌ schema 未就绪(config-service 实际暴露 plugins/layoutTemplates/userLayoutOverride/pluginConfig,无 pluginRegistry 字段;requiredRoles/defaultSlot/defaultSize/defaultProps/propsSchema 字段缺失)→ MSW 兜底(@contract-pending) * - updatePluginRegistry(pluginId, input) ❌ schema 无 Mutation 类型 → MSW 兜底(@contract-pending) * * 关联:ARCHITECTURE.md §5.3 / §5.4 / §7.3 / §9.4 / §10 P5 / §11.3 / §11.4 */ export default function PluginsPage(): React.ReactElement { return ( }> ); }