/** * @name tools/tool-family-pipeline * @description Helpers for tool families that expose stable data-mode MCP payloads. * * New tools should normally call registerPipelineTool directly. Existing * families and trusted plugins with stable structured payload consumers can use * this adapter to keep responseMode: 'data' while sharing input parsing, * execution metadata, error normalization, and optional MCP Apps Cards. * * @module tools/tool-family-pipeline */ import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; import type { SapMcpContext } from '../../core/src/types.js'; import type { UiCardContext } from '../../ui-cards/src/ui-resources.js'; import { type ToolExecutionPipelineDefinition, type ToolExecutionPipelineInput, type ToolExecutionPipelineResult } from './tool-execution-pipeline.js'; export type ToolFamilyPipelineDefinition = Record> = Omit, 'name' | 'responseMode' | 'execute'>; export type ToolFamilyPipelineHandlerResult = Record> = TOutput | ToolExecutionPipelineResult; export type ToolFamilyPipelineResult = Record> = ToolExecutionPipelineResult; export interface ToolFamilyPipelineOptions> { readonly uiCard?: (result: ToolExecutionPipelineResult, input: ToolExecutionPipelineInput) => UiCardContext | undefined; } export declare function parseStringToolPayload(body: string): Record; export declare function createToolFamilyPipelineResult>(data: TOutput, metadata?: Record, options?: { readonly isError?: boolean; }): ToolExecutionPipelineResult; export declare function createStringToolPipelineResult(body: string, options?: { readonly isError?: boolean; }): ToolExecutionPipelineResult>; export declare function registerToolFamilyPipelineTool = Record>(server: Server, context: SapMcpContext, name: string, definition: ToolFamilyPipelineDefinition, execute: (input: TInput) => Promise>, options?: ToolFamilyPipelineOptions): void; //# sourceMappingURL=tool-family-pipeline.d.ts.map