@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and
116 lines (115 loc) • 3.39 kB
TypeScript
/**
* Model Resolver for NeuroLink CLI Commands
* Provides model resolution, search, and recommendation functionality
* Part of Phase 4.1 - Models Command System
*/
import { AIProviderName } from "../core/types.js";
import type { JsonValue } from "../types/common.js";
import { type ModelInfo, type ModelSearchFilters, type ModelSearchResult, type ModelCapabilities, type UseCaseSuitability } from "./modelRegistry.js";
/**
* Model recommendation context
*/
export interface RecommendationContext {
useCase?: keyof UseCaseSuitability;
maxCost?: number;
minQuality?: "low" | "medium" | "high";
requireCapabilities?: (keyof ModelCapabilities)[];
excludeProviders?: AIProviderName[];
contextSize?: number;
preferLocal?: boolean;
}
/**
* Model recommendation result
*/
export interface ModelRecommendation {
model: ModelInfo;
score: number;
reasoning: string[];
alternatives: ModelInfo[];
}
/**
* Model comparison result
*/
export interface ModelComparison {
models: ModelInfo[];
comparison: {
capabilities: Record<keyof ModelCapabilities, ModelInfo[]>;
pricing: {
cheapest: ModelInfo;
mostExpensive: ModelInfo;
};
performance: Record<string, ModelInfo[]>;
contextSize: {
largest: ModelInfo;
smallest: ModelInfo;
};
};
}
/**
* Model resolver class with advanced search and recommendation functionality
*/
export declare class ModelResolver {
/**
* Resolve model ID from alias or fuzzy name
*/
static resolveModel(query: string): ModelInfo | null;
/**
* Search models with advanced filtering
*/
static searchModels(filters: ModelSearchFilters): ModelSearchResult[];
/**
* Get best model for specific use case
*/
static getBestModel(context: RecommendationContext): ModelRecommendation;
/**
* Compare multiple models
*/
static compareModels(modelIds: string[]): ModelComparison;
/**
* Get models by category
*/
static getModelsByCategory(category: ModelInfo["category"]): ModelInfo[];
/**
* Get recommended models for use case
*/
static getRecommendedModelsForUseCase(useCase: string): ModelInfo[];
/**
* Calculate cost comparison for models
*/
static calculateCostComparison(models: ModelInfo[], inputTokens?: number, outputTokens?: number): Array<{
model: ModelInfo;
cost: number;
costPer1K: number;
}>;
/**
* Get model statistics
*/
static getModelStatistics(): JsonValue;
/**
* Evaluate how well a model matches search filters
*/
private static evaluateModelMatch;
/**
* Score model for recommendation context
*/
private static scoreModelForContext;
/**
* Generate recommendation reasoning
*/
private static generateRecommendationReasoning;
}
/**
* Utility functions for CLI integration
*/
/**
* Format search results for CLI display
*/
export declare function formatSearchResults(results: ModelSearchResult[]): JsonValue;
/**
* Format recommendation for CLI display
*/
export declare function formatRecommendation(recommendation: ModelRecommendation): JsonValue;
/**
* Format model comparison for CLI display
*/
export declare function formatComparison(comparison: ModelComparison): JsonValue;