/** * @name tools/sunrise/sunrise-pipeline * @description Shared pipeline helpers for the Sunrise tool family. Mirrors * the Phoenix/Backpack pipeline: compacted responses, structured errors, * and transaction strings preserved byte-for-byte. * * @module tools/sunrise/sunrise-pipeline */ import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; import type { SapMcpContext } from '../../../core/src/types.js'; import { type ToolExecutionPipelineResult } from '../tool-execution-pipeline.js'; export type SunrisePipelineResult = ToolExecutionPipelineResult>; export interface SunrisePipelineToolDefinition { readonly description: string; readonly inputSchema: unknown; } /** Narrows arbitrary payloads into a record for the pipeline envelope. */ export declare function toSunriseRecord(payload: unknown): Record; /** * @name compactSunriseResponse * @description Caps upstream payloads (50-entry arrays, 500-char strings, * 30k total measured on the upstream size) while preserving transaction * base64 verbatim. Marks the payload with _truncated/_originalSize/_note. */ export declare function compactSunriseResponse(record: Record): Record; /** Builds a structured success pipeline result. */ export declare function sunrisePipelineOk(payload: unknown): SunrisePipelineResult; /** Builds a structured error pipeline result. */ export declare function sunrisePipelineError(payload: Record): SunrisePipelineResult; /** Maps an exception into a structured error envelope. */ export declare function sunrisePipelineException(error: string, err: unknown): SunrisePipelineResult; /** * @name registerSunrisePipelineTool * @description Registers a Sunrise tool through the shared execution * pipeline (responseMode 'data', compacted results). */ export declare function registerSunrisePipelineTool>(server: Server, context: SapMcpContext, name: string, definition: SunrisePipelineToolDefinition, handler: (args: TInput) => Promise): void; //# sourceMappingURL=sunrise-pipeline.d.ts.map