@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
81 lines (80 loc) • 2.24 kB
TypeScript
import type { ZodType, ZodTypeDef } from "zod";
import type { Tool, Schema } from "ai";
import type { AIProviderName, AnalyticsData, EvaluationData } from "../core/types.js";
/**
* Generate function options interface - Primary method for content generation
* Future-ready for multi-modal capabilities while maintaining text focus
*/
export interface GenerateOptions {
input: {
text: string;
};
output?: {
format?: "text" | "structured" | "json";
};
provider?: AIProviderName | string;
model?: string;
temperature?: number;
maxTokens?: number;
systemPrompt?: string;
schema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>;
tools?: Record<string, Tool>;
timeout?: number | string;
disableTools?: boolean;
enableEvaluation?: boolean;
enableAnalytics?: boolean;
context?: Record<string, unknown>;
evaluationDomain?: string;
toolUsageContext?: string;
conversationHistory?: Array<{
role: string;
content: string;
}>;
}
/**
* Generate function result interface - Primary output format
* Future-ready for multi-modal outputs while maintaining text focus
*/
export interface GenerateResult {
content: string;
outputs?: {
text: string;
};
provider?: string;
model?: string;
usage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
};
responseTime?: number;
toolCalls?: Array<{
toolCallId: string;
toolName: string;
args: Record<string, unknown>;
}>;
toolResults?: unknown[];
toolsUsed?: string[];
toolExecutions?: Array<{
name: string;
input: Record<string, unknown>;
output: unknown;
duration: number;
}>;
enhancedWithTools?: boolean;
availableTools?: Array<{
name: string;
description: string;
parameters: Record<string, unknown>;
}>;
analytics?: AnalyticsData;
evaluation?: EvaluationData;
}
/**
* Enhanced provider interface with generate method
*/
export interface EnhancedProvider {
generate(options: GenerateOptions): Promise<GenerateResult>;
getName(): string;
isAvailable(): Promise<boolean>;
}