UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio

208 lines (207 loc) 4.97 kB
/** * Type definitions for NeuroLink GitHub Action * @module actionTypes */ import type { AIProviderName } from "../constants/enums.js"; /** * Provider API key configuration (verified providers only) */ export type ActionProviderKeys = { openaiApiKey?: string; anthropicApiKey?: string; googleAiApiKey?: string; azureOpenaiApiKey?: string; azureOpenaiEndpoint?: string; azureOpenaiDeployment?: string; mistralApiKey?: string; huggingfaceApiKey?: string; openrouterApiKey?: string; litellmApiKey?: string; litellmBaseUrl?: string; openaiCompatibleApiKey?: string; openaiCompatibleBaseUrl?: string; }; /** * AWS credentials for Bedrock/SageMaker */ export type ActionAWSConfig = { awsAccessKeyId?: string; awsSecretAccessKey?: string; awsRegion: string; awsSessionToken?: string; bedrockModelId?: string; sagemakerEndpoint?: string; }; /** * Google Cloud configuration for Vertex AI */ export type ActionGoogleCloudConfig = { googleVertexProject?: string; googleVertexLocation: string; googleApplicationCredentials?: string; }; /** * Extended thinking configuration */ export type ActionThinkingConfig = { enabled: boolean; level: "minimal" | "low" | "medium" | "high"; budget: number; }; /** * Multimodal input paths */ export type ActionMultimodalInputs = { imagePaths?: string[]; pdfPaths?: string[]; csvPaths?: string[]; videoPaths?: string[]; }; /** * Complete action inputs parsed from GitHub Action */ export type ActionInputs = { prompt: string; provider: AIProviderName | "auto"; model?: string; temperature: number; maxTokens: number; systemPrompt?: string; command: "generate" | "stream" | "batch"; providerKeys: ActionProviderKeys; awsConfig: ActionAWSConfig; googleCloudConfig: ActionGoogleCloudConfig; multimodal: ActionMultimodalInputs; thinking: ActionThinkingConfig; enableAnalytics: boolean; enableEvaluation: boolean; outputFormat: "text" | "json"; outputFile?: string; enableTools: boolean; mcpConfigPath?: string; postComment: boolean; updateExistingComment: boolean; commentTag: string; githubToken?: string; timeout: number; debug: boolean; neurolinkVersion: string; workingDirectory: string; }; /** * Raw CLI token usage format (actual CLI output) */ export type CliTokenUsage = { input: number; output: number; total: number; cacheCreationTokens?: number; cacheReadTokens?: number; }; /** * Raw CLI analytics format (actual CLI output) */ export type CliAnalytics = { provider: string; model?: string; tokenUsage: CliTokenUsage; requestDuration: number; timestamp: string; cost?: number; }; /** * Raw CLI evaluation format (actual CLI output, 1-10 scale) */ export type CliEvaluation = { relevance: number; accuracy: number; completeness: number; overall: number; isOffTopic: boolean; reasoning: string; }; /** * Raw CLI response format (actual output structure) */ export type CliResponse = { content: string; provider?: string; model?: string; usage?: CliTokenUsage; responseTime?: number; analytics?: CliAnalytics; evaluation?: CliEvaluation; }; /** * Normalized token usage for action output */ export type ActionTokenUsage = { promptTokens: number; completionTokens: number; totalTokens: number; }; /** * Normalized evaluation for action output */ export type ActionEvaluation = { overallScore: number; relevance: number; accuracy: number; completeness: number; }; /** * CLI execution result (normalized) */ export type ActionExecutionResult = { success: boolean; response: string; responseJson?: Record<string, unknown>; provider?: string; model?: string; usage?: ActionTokenUsage; cost?: number; executionTime?: number; evaluation?: ActionEvaluation; error?: string; }; /** * GitHub comment posting result */ export type ActionCommentResult = { success: boolean; commentId?: number; commentUrl?: string; error?: string; }; /** * Complete action output (snake_case to match action.yml outputs) */ export type ActionOutput = { response: string; response_json: string; provider?: string; model?: string; tokens_used?: string; prompt_tokens?: string; completion_tokens?: string; cost?: string; execution_time?: string; evaluation_score?: string; comment_id?: string; }; /** * Input validation result */ export type ActionInputValidation = { valid: boolean; errors: string[]; warnings: string[]; }; /** * Provider key validation mapping */ export type ProviderKeyMapping = { [K in AIProviderName]?: (keyof ActionProviderKeys)[]; }; /** Provider-to-required-keys map used by actionInputs.ts. */ export type ProviderKeyMap = Record<string, string[]>;