/** * Schema Analyzer * * Analyzes input and output schemas for behavioral hints. * Provides inference signals based on parameter patterns and return types. * * Part of Issue #57: Architecture detection and behavior inference modules */ import type { InferenceSignal } from "../../../../lib/assessment/extendedTypes.js"; /** * JSON Schema type definition for tool parameters. * Simplified version for analysis purposes. */ export interface JSONSchema { type?: string | string[]; properties?: Record; items?: JSONSchema; required?: string[]; description?: string; enum?: unknown[]; additionalProperties?: boolean | JSONSchema; format?: string; pattern?: string; minimum?: number; maximum?: number; default?: unknown; } /** * Input schema patterns indicating read-only operations. */ export declare const INPUT_READONLY_PATTERNS: { /** ID-only parameters suggest retrieval (e.g., { id: string }) */ idOnlyParams: RegExp; /** Query/filter parameters suggest search */ queryParams: RegExp; /** Pagination parameters suggest list retrieval */ paginationParams: RegExp; /** Sort/order parameters suggest list retrieval */ sortParams: RegExp; /** Field selection suggests retrieval */ fieldSelectionParams: RegExp; }; /** * Input schema patterns indicating destructive operations. */ export declare const INPUT_DESTRUCTIVE_PATTERNS: { /** Force/confirm flags suggest potentially dangerous operations */ forceFlags: RegExp; /** Hard delete indicators */ hardDeleteParams: RegExp; }; /** * Input schema patterns indicating write operations. */ export declare const INPUT_WRITE_PATTERNS: { /** Data payload suggests creation/update */ dataPayloads: RegExp; /** Specific update parameters */ updateParams: RegExp; /** Creation parameters */ createParams: RegExp; }; export declare const OUTPUT_READONLY_PATTERNS: { /** Array return type suggests list/search operation (checks nested schemas) */ returnsArray: (schema: JSONSchema) => boolean; /** Object with common read-only fields */ hasReadOnlyFields: (schema: JSONSchema) => boolean; }; /** * Output schema patterns indicating destructive operations. */ export declare const OUTPUT_DESTRUCTIVE_PATTERNS: { /** Returns deleted flag/count */ returnsDeletedFlag: (schema: JSONSchema) => boolean; /** Returns void/empty suggests side-effect only */ returnsVoid: (schema: JSONSchema) => boolean; }; /** * Output schema patterns indicating write operations. */ export declare const OUTPUT_WRITE_PATTERNS: { /** Returns created object with id and timestamp */ returnsCreatedObject: (schema: JSONSchema) => boolean; /** Returns single object with ID */ returnsSingleWithId: (schema: JSONSchema) => boolean; }; /** * Analyze input schema for behavioral signals. * * @param schema - JSON Schema of tool input parameters * @returns InferenceSignal with read-only/destructive expectations */ export declare function analyzeInputSchema(schema: JSONSchema): InferenceSignal; /** * Analyze output schema for behavioral signals. * * @param schema - JSON Schema of tool output * @returns InferenceSignal with read-only/destructive expectations */ export declare function analyzeOutputSchema(schema: JSONSchema): InferenceSignal; /** * Check if schema has bulk operation indicators. * * @param schema - Input schema to check * @returns True if schema suggests bulk operation support */ export declare function hasBulkOperationIndicators(schema: JSONSchema): boolean; /** * Check if schema has pagination parameters. * * @param schema - Input schema to check * @returns True if schema has pagination parameters */ export declare function hasPaginationParameters(schema: JSONSchema): boolean; /** * Check if schema has force/confirm flags. * * @param schema - Input schema to check * @returns True if schema has force/confirm flags */ export declare function hasForceFlags(schema: JSONSchema): boolean; //# sourceMappingURL=SchemaAnalyzer.d.ts.map