UNPKG

tryaii-mcp-server

Version:

TryAII MCP Server - 15+ AI models with comparison, cost tracking, and collective intelligence

69 lines 2.1 kB
import mongoose, { Schema } from 'mongoose'; const ModelsSessionSchema = new Schema({ userId: { type: String, required: true, index: true }, apiKeyId: { type: String, required: true, index: true }, request: { endpoint: { type: String, required: true, enum: ['list_models', 'get_model_info'] }, provider: String, modelId: String }, response: { modelsCount: Number, modelInfo: { id: String, name: String, provider: String, pricing: mongoose.Schema.Types.Mixed, capabilities: [String] }, success: { type: Boolean, required: true }, errorMessage: String }, clientMetadata: { ipAddress: String, userAgent: String, requestId: String }, // Override balanceUpdate for models (no cost) balanceUpdate: { attempted: { type: Boolean, default: true }, success: { type: Boolean, default: true }, note: { type: String, default: 'No balance deduction for models endpoint' } }, totalCost: { type: Number, required: true, min: 0, default: 0, get: (v) => parseFloat(v.toFixed(6)) }, duration: { type: Number, required: true, min: 0 }, status: { type: String, enum: ['processing', 'success', 'error'], required: true, default: 'processing' } }, { timestamps: true, versionKey: false }); // Add indexes ModelsSessionSchema.index({ userId: 1, createdAt: -1 }); ModelsSessionSchema.index({ apiKeyId: 1, createdAt: -1 }); ModelsSessionSchema.index({ totalCost: 1, createdAt: -1 }); ModelsSessionSchema.index({ status: 1 }); ModelsSessionSchema.index({ 'request.endpoint': 1, createdAt: -1 }); ModelsSessionSchema.index({ 'request.provider': 1, createdAt: -1 }); export function createModelsSessionModel(connection) { return connection.model('MCP_ModelsSession', ModelsSessionSchema); } //# sourceMappingURL=ModelsSession.js.map