UNPKG

@vfarcic/dot-ai

Version:

AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance

92 lines 3.52 kB
/** * Shared Visualization Utilities (PRD #320) * * Common utilities for visualization support across all MCP tools. * Provides session metadata interfaces, URL generation, and prompt selection. */ import { VisualizationType, VisualizationResponse } from '../interfaces/rest-api'; /** * Visualization mode prefix - when present in intent, return visualization data directly * Used by tools to detect when caller wants visualization output instead of summary */ export declare const VISUALIZATION_PREFIX = "[visualization]"; /** * Cached visualization structure stored in sessions * PRD #320: Added toolsUsed for test validation of mermaid validation */ export interface CachedVisualization { title: string; visualizations: Array<{ id: string; label: string; type: VisualizationType; content: unknown; }>; insights: string[]; toolsUsed?: string[]; generatedAt: string; } /** * Base interface for visualization session data * All tools should include these fields for visualization support */ export interface BaseVisualizationData { /** Tool that created this session: 'query' | 'recommend' | 'remediate' | etc. */ toolName: string; /** Optional stage for multi-stage tools (e.g., 'recommend', 'generateManifests') */ stage?: string; /** Cached visualization to avoid re-generation */ cachedVisualization?: CachedVisualization; } /** * Supported tool names for visualization */ export type VisualizationToolName = 'query' | 'recommend' | 'remediate' | 'operate' | 'version' | 'projectSetup'; /** * Get the prompt file name for visualization * All tools use the unified visualize.md template (PRD #320) * * @param toolName - Name of the tool (unused, kept for API compatibility) * @returns Prompt file name (without .md extension) */ export declare function getPromptForTool(_toolName: string): string; /** * Get visualization URL if WEB_UI_BASE_URL is configured * Feature toggle - only returns URL when env var is set * * @param sessionIds - Single session ID or array of session IDs to include in URL * @returns Visualization URL or undefined if not configured */ export declare function getVisualizationUrl(sessionIds: string | string[]): string | undefined; /** * Extract the session prefix from a session ID * Session IDs are formatted: {prefix}-{timestamp}-{uuid} * * @param sessionId - Full session ID (e.g., 'qry-1704067200000-a1b2c3d4') * @returns Session prefix (e.g., 'qry') */ export declare function extractPrefixFromSessionId(sessionId: string): string; /** * Session prefixes used by each tool * Useful for documentation and validation */ export declare const TOOL_SESSION_PREFIXES: Record<string, string>; /** * Get the tool name from a session prefix * Reverse lookup from prefix to tool name * * @param prefix - Session prefix (e.g., 'qry') * @returns Tool name or undefined if not recognized */ export declare function getToolNameFromPrefix(prefix: string): string | undefined; /** * Parse AI response into VisualizationResponse * Extracts JSON from AI response, validates structure, normalizes insights * * @param aiResponse - Raw AI response string * @param toolsUsed - Optional array of tools used during generation * @returns Parsed VisualizationResponse * @throws Error if parsing or validation fails */ export declare function parseVisualizationResponse(aiResponse: string, toolsUsed?: string[]): VisualizationResponse; //# sourceMappingURL=visualization.d.ts.map