64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
// ============================================================
|
|
// ARCADIA SUITE - CENTRAL DE PROTOCOLOS
|
|
// Ponto de entrada para todos os protocolos de interoperabilidade
|
|
// ============================================================
|
|
|
|
import { Router, Request, Response } from 'express';
|
|
import mcpRoutes from './mcp/routes';
|
|
import a2aRoutes from './a2a/routes';
|
|
import * as a2aService from './a2a/service';
|
|
import { protocolAuth } from './middleware';
|
|
|
|
const router = Router();
|
|
|
|
// ==================== MCP Routes (com autenticação) ====================
|
|
router.use('/mcp/v1', protocolAuth, mcpRoutes);
|
|
|
|
// ==================== A2A Routes (com autenticação) ====================
|
|
router.use('/a2a/v1', protocolAuth, a2aRoutes);
|
|
|
|
// ==================== Status Geral (público) ====================
|
|
router.get('/protocols/status', (req: Request, res: Response) => {
|
|
res.json({
|
|
status: 'healthy',
|
|
timestamp: new Date().toISOString(),
|
|
protocols: {
|
|
mcp: {
|
|
version: '1.0.0',
|
|
status: 'active',
|
|
endpoint: '/mcp/v1'
|
|
},
|
|
a2a: {
|
|
version: '1.0.0',
|
|
status: 'active',
|
|
endpoint: '/a2a/v1'
|
|
},
|
|
ap2: {
|
|
version: '0.0.0',
|
|
status: 'planned',
|
|
endpoint: '/ap2/v1'
|
|
},
|
|
ucp: {
|
|
version: '0.0.0',
|
|
status: 'planned',
|
|
endpoint: '/ucp/v1'
|
|
}
|
|
},
|
|
documentation: {
|
|
mcp: 'https://modelcontextprotocol.io',
|
|
a2a: 'https://google.github.io/A2A'
|
|
}
|
|
});
|
|
});
|
|
|
|
// Agent Card no caminho padrão .well-known (público)
|
|
export function registerAgentCard(app: any) {
|
|
app.get('/.well-known/agent.json', (req: Request, res: Response) => {
|
|
const baseUrl = `${req.protocol}://${req.get('host')}`;
|
|
const agentCard = a2aService.getAgentCard(baseUrl);
|
|
res.json(agentCard);
|
|
});
|
|
}
|
|
|
|
export default router;
|