/** * @name tools/module-registry * @description Plugin-ready registry primitives for SAP MCP tool modules. * * Tool modules provide a small manifest plus a registration callback. The * manifest is validated before registration so new tool families can be added * without turning `registerTools` into an unstructured list. * * @module tools/module-registry */ import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; import type { SapMcpContext } from '../../core/src/types.js'; import { type ToolModuleCategory, type ToolModuleManifest, type ToolModuleMode, type ToolModuleDefinition } from './tool-module-manifest.js'; export type { ToolModuleCategory, ToolModuleMode, ToolModuleRegister, ToolModuleLifecycleEvent, ToolModuleLifecycleHooks, ToolModuleDefinition } from './tool-module-manifest.js'; export declare const PLUGIN_TOOL_MODULE_ORDER_MIN = 5000; export declare const PLUGIN_TOOL_MODULE_ORDER_MAX = 8999; export interface PluginToolModuleOptions { readonly namespace: string; readonly packageName?: string; readonly version?: string; } export interface ToolModuleRegistrationResult { readonly id: string; readonly title: string; readonly category: ToolModuleCategory; readonly beforeCount: number; readonly afterCount: number; readonly addedCount: number; } export interface ToolModuleRegistrationSummary { readonly modules: readonly ToolModuleRegistrationResult[]; readonly totalTools: number; } export interface ToolModuleDependencyEdge { readonly from: string; readonly to: string; } export interface ToolModuleRegistrationPlanEntry extends ToolModuleManifest { readonly selected: boolean; readonly skipReason?: 'mode-mismatch' | 'runtime-predicate'; } export interface ToolModuleRegistrationPlan { readonly requestedMode: ToolModuleMode; readonly entries: readonly ToolModuleRegistrationPlanEntry[]; readonly selectedModuleIds: readonly string[]; readonly skippedModuleIds: readonly string[]; readonly expectedTools: readonly string[]; readonly dependencyEdges: readonly ToolModuleDependencyEdge[]; } export declare function createToolModule(definition: ToolModuleDefinition): ToolModuleDefinition; export declare function createPluginToolModule(definition: ToolModuleDefinition, options: PluginToolModuleOptions): ToolModuleDefinition; export declare function validateToolModules(modules: readonly ToolModuleDefinition[]): void; export declare function resolveRequestedToolModuleMode(): ToolModuleMode; export declare function selectToolModulesForContext(modules: readonly ToolModuleDefinition[], context: SapMcpContext): readonly ToolModuleDefinition[]; export declare function createToolModuleRegistrationPlan(modules: readonly ToolModuleDefinition[], context: SapMcpContext): ToolModuleRegistrationPlan; export declare function registerToolModules(server: Server, context: SapMcpContext, modules: readonly ToolModuleDefinition[]): Promise; //# sourceMappingURL=module-registry.d.ts.map