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

696 lines 18.7 kB
/** * OpenAPI JSON Schema Definitions * JSON Schema definitions for all NeuroLink server API types * Compliant with OpenAPI 3.1 / JSON Schema 2020-12 */ // ============================================ // Common Schemas // ============================================ /** * Error response schema */ export const ErrorResponseSchema = { type: "object", required: ["error"], properties: { error: { type: "object", required: ["code", "message"], properties: { code: { type: "string", description: "Error code identifier", example: "VALIDATION_ERROR", }, message: { type: "string", description: "Human-readable error message", example: "Invalid request body", }, details: { type: "object", description: "Additional error details", additionalProperties: true, }, }, }, metadata: { type: "object", properties: { timestamp: { type: "string", format: "date-time", description: "Error timestamp", }, requestId: { type: "string", description: "Request identifier for tracing", }, }, }, }, }; /** * Token usage schema */ export const TokenUsageSchema = { type: "object", properties: { input: { type: "integer", description: "Number of input/prompt tokens", minimum: 0, }, output: { type: "integer", description: "Number of output/completion tokens", minimum: 0, }, total: { type: "integer", description: "Total tokens used", minimum: 0, }, cacheCreationTokens: { type: "integer", description: "Tokens used for cache creation", minimum: 0, }, cacheReadTokens: { type: "integer", description: "Tokens read from cache", minimum: 0, }, reasoning: { type: "integer", description: "Tokens used for reasoning", minimum: 0, }, cacheSavingsPercent: { type: "number", description: "Percentage of cache savings", minimum: 0, maximum: 100, }, }, }; // ============================================ // Agent Schemas // ============================================ /** * Agent input schema (can be string or object) */ export const AgentInputSchema = { oneOf: [ { type: "string", description: "Simple text input", }, { type: "object", required: ["text"], properties: { text: { type: "string", description: "Text content", }, images: { type: "array", items: { type: "string" }, description: "Array of image URLs or base64 data", }, files: { type: "array", items: { type: "string" }, description: "Array of file paths or URLs", }, }, }, ], }; /** * Agent execute request schema */ export const AgentExecuteRequestSchema = { type: "object", required: ["input"], properties: { input: AgentInputSchema, provider: { type: "string", description: "AI provider to use (e.g., openai, anthropic, google-ai)", example: "openai", }, model: { type: "string", description: "Specific model to use", example: "gpt-4o", }, systemPrompt: { type: "string", description: "System prompt to guide AI behavior", }, temperature: { type: "number", minimum: 0, maximum: 2, description: "Sampling temperature (0-2)", default: 0.7, }, maxTokens: { type: "integer", minimum: 1, description: "Maximum tokens to generate", default: 1000, }, tools: { type: "array", items: { type: "string" }, description: "Tool names to enable for this request", }, stream: { type: "boolean", description: "Enable streaming response", default: false, }, sessionId: { type: "string", description: "Session ID for conversation memory", }, userId: { type: "string", description: "User ID for context", }, }, }; /** * Tool call schema */ export const ToolCallSchema = { type: "object", required: ["name", "arguments"], properties: { name: { type: "string", description: "Tool name", }, arguments: { type: "object", additionalProperties: true, description: "Tool arguments", }, result: { description: "Tool execution result", }, }, }; /** * Agent execute response schema */ export const AgentExecuteResponseSchema = { type: "object", required: ["content", "provider", "model"], properties: { content: { type: "string", description: "Generated text content", }, provider: { type: "string", description: "Provider that handled the request", }, model: { type: "string", description: "Model that generated the response", }, usage: TokenUsageSchema, toolCalls: { type: "array", items: ToolCallSchema, description: "Tool calls made during generation", }, finishReason: { type: "string", description: "Reason for completion", enum: ["stop", "length", "tool_calls", "content_filter"], }, metadata: { type: "object", additionalProperties: true, description: "Additional response metadata", }, }, }; /** * Provider info schema */ export const ProviderInfoSchema = { type: "object", required: ["providers", "total"], properties: { providers: { type: "array", items: { type: "string", }, description: "List of available provider names", }, total: { type: "integer", description: "Total number of providers", }, }, }; // ============================================ // Tool Schemas // ============================================ /** * Tool parameter schema */ export const ToolParameterSchema = { type: "object", properties: { type: { type: "string", description: "Parameter type", }, description: { type: "string", description: "Parameter description", }, required: { type: "boolean", description: "Whether parameter is required", }, default: { description: "Default value", }, enum: { type: "array", description: "Allowed values", }, }, }; /** * Tool definition schema */ export const ToolDefinitionSchema = { type: "object", required: ["name"], properties: { name: { type: "string", description: "Tool name", }, description: { type: "string", description: "Tool description", }, source: { type: "string", description: "Tool source (builtin, external, custom)", }, parameters: { type: "object", additionalProperties: ToolParameterSchema, description: "Tool parameters schema", }, }, }; /** * Tool list response schema */ export const ToolListResponseSchema = { type: "object", required: ["tools", "total"], properties: { tools: { type: "array", items: ToolDefinitionSchema, description: "List of available tools", }, total: { type: "integer", description: "Total number of tools", }, }, }; /** * Tool execute request schema */ export const ToolExecuteRequestSchema = { type: "object", required: ["name"], properties: { name: { type: "string", description: "Tool name to execute", }, arguments: { type: "object", additionalProperties: true, description: "Tool arguments", default: {}, }, sessionId: { type: "string", description: "Session context", }, userId: { type: "string", description: "User context", }, }, }; /** * Tool execute response schema */ export const ToolExecuteResponseSchema = { type: "object", required: ["success", "duration"], properties: { success: { type: "boolean", description: "Whether execution was successful", }, data: { description: "Result data", }, error: { type: "string", description: "Error message if failed", }, duration: { type: "number", description: "Execution duration in milliseconds", }, metadata: { type: "object", additionalProperties: true, description: "Additional metadata", }, }, }; // ============================================ // MCP Server Schemas // ============================================ /** * MCP server tool schema */ export const MCPServerToolSchema = { type: "object", properties: { name: { type: "string", description: "Tool name", }, description: { type: "string", description: "Tool description", }, }, }; /** * MCP server status schema */ export const MCPServerStatusSchema = { type: "object", required: ["serverId", "name", "status", "toolCount"], properties: { serverId: { type: "string", description: "Server ID", }, name: { type: "string", description: "Server name", }, status: { type: "string", enum: ["connected", "disconnected", "error", "connecting"], description: "Connection status", }, toolCount: { type: "integer", description: "Number of available tools", }, lastHealthCheck: { type: "string", format: "date-time", description: "Last health check timestamp", }, error: { type: "string", description: "Error message if in error state", }, }, }; /** * MCP servers list response schema */ export const MCPServersListResponseSchema = { type: "object", required: ["servers", "total"], properties: { servers: { type: "array", items: MCPServerStatusSchema, description: "List of MCP servers", }, total: { type: "integer", description: "Total number of servers", }, }, }; // ============================================ // Memory Schemas // ============================================ /** * Conversation message schema */ export const ConversationMessageSchema = { type: "object", required: ["role", "content"], properties: { role: { type: "string", enum: ["user", "assistant", "system"], description: "Message role", }, content: { type: "string", description: "Message content", }, timestamp: { type: "string", format: "date-time", description: "Message timestamp", }, }, }; /** * Session schema */ export const SessionSchema = { type: "object", required: ["sessionId"], properties: { sessionId: { type: "string", description: "Session identifier", }, messages: { type: "array", items: ConversationMessageSchema, description: "Conversation messages", }, metadata: { type: "object", additionalProperties: true, description: "Session metadata", }, createdAt: { type: "string", format: "date-time", description: "Session creation time", }, updatedAt: { type: "string", format: "date-time", description: "Last update time", }, }, }; /** * Sessions list response schema */ export const SessionsListResponseSchema = { type: "object", required: ["sessions", "total"], properties: { sessions: { type: "array", items: { type: "object", properties: { sessionId: { type: "string" }, messageCount: { type: "integer" }, createdAt: { type: "string", format: "date-time" }, updatedAt: { type: "string", format: "date-time" }, }, }, description: "List of sessions", }, total: { type: "integer", description: "Total number of sessions", }, }, }; // ============================================ // Health Schemas // ============================================ /** * Health check response schema */ export const HealthResponseSchema = { type: "object", required: ["status", "timestamp", "uptime", "version"], properties: { status: { type: "string", enum: ["ok", "degraded", "unhealthy"], description: "Health status", }, timestamp: { type: "string", format: "date-time", description: "Check timestamp", }, uptime: { type: "integer", description: "Server uptime in milliseconds", }, version: { type: "string", description: "Server version", }, }, }; /** * Ready check response schema */ export const ReadyResponseSchema = { type: "object", required: ["ready", "timestamp", "services"], properties: { ready: { type: "boolean", description: "Overall readiness status", }, timestamp: { type: "string", format: "date-time", description: "Check timestamp", }, services: { type: "object", properties: { neurolink: { type: "boolean", description: "NeuroLink SDK status", }, tools: { type: "boolean", description: "Tool registry status", }, externalServers: { type: "boolean", description: "External MCP servers status", }, }, description: "Service status breakdown", }, }, }; /** * Metrics response schema */ export const MetricsResponseSchema = { type: "object", required: ["server", "process", "timestamp"], properties: { server: { type: "object", properties: { running: { type: "boolean" }, uptime: { type: "integer" }, routes: { type: "integer" }, middlewares: { type: "integer" }, }, }, process: { type: "object", properties: { memoryUsage: { type: "object", properties: { heapUsed: { type: "integer" }, heapTotal: { type: "integer" }, external: { type: "integer" }, rss: { type: "integer" }, }, }, cpuUsage: { type: "object", properties: { user: { type: "integer" }, system: { type: "integer" }, }, }, pid: { type: "integer" }, }, }, timestamp: { type: "string", format: "date-time", }, }, }; // ============================================ // Schema Registry // ============================================ /** * All schemas indexed by name for OpenAPI components */ export const OpenAPISchemas = { // Common ErrorResponse: ErrorResponseSchema, TokenUsage: TokenUsageSchema, // Agent AgentInput: AgentInputSchema, AgentExecuteRequest: AgentExecuteRequestSchema, AgentExecuteResponse: AgentExecuteResponseSchema, ToolCall: ToolCallSchema, ProviderInfo: ProviderInfoSchema, // Tools ToolParameter: ToolParameterSchema, ToolDefinition: ToolDefinitionSchema, ToolListResponse: ToolListResponseSchema, ToolExecuteRequest: ToolExecuteRequestSchema, ToolExecuteResponse: ToolExecuteResponseSchema, // MCP MCPServerTool: MCPServerToolSchema, MCPServerStatus: MCPServerStatusSchema, MCPServersListResponse: MCPServersListResponseSchema, // Memory ConversationMessage: ConversationMessageSchema, Session: SessionSchema, SessionsListResponse: SessionsListResponseSchema, // Health HealthResponse: HealthResponseSchema, ReadyResponse: ReadyResponseSchema, MetricsResponse: MetricsResponseSchema, }; //# sourceMappingURL=schemas.js.map