Files
2025-11-06 11:08:59 +01:00

58 lines
1.9 KiB
JavaScript

const express = require('express');
const router = express.Router();
const {
getModelStatus,
getModelVersions,
createModelVersion,
updateModelVersion,
activateModel,
getTrainingData
} = require('../controllers/modelController');
const {
generatePlan,
validatePlan,
getPlan,
updatePlan,
getModelStatus: getModel1Status
} = require('../controllers/model1Controller');
const {
executePlan,
executeTool,
getExecutionStatus,
getToolExecutions,
getModelStatus: getQueryModelStatus,
orchestratePlan
} = require('../controllers/queryModelController');
const { authenticate, authorize } = require('../middleware/auth');
const { validate, schemas } = require('../middleware/validation');
// All model routes require authentication
router.use(authenticate);
// Public model status
router.get('/status', getModelStatus);
// MODEL1 routes
router.post('/model1/generate-plan', validate(schemas.generatePlan), generatePlan);
router.post('/model1/validate-plan/:planId', validatePlan);
router.get('/model1/plan/:planId', getPlan);
router.put('/model1/plan/:planId', updatePlan);
router.get('/model1/status', getModel1Status);
// QUERYMODEL routes
router.post('/querymodel/execute-plan', executePlan);
router.post('/querymodel/execute-tool', executeTool);
router.post('/querymodel/orchestrate', orchestratePlan);
router.get('/querymodel/execution-status/:planId', getExecutionStatus);
router.get('/querymodel/tool-executions', getToolExecutions);
router.get('/querymodel/status', getQueryModelStatus);
// Model management (admin only)
router.get('/versions', authorize('admin'), getModelVersions);
router.post('/versions', authorize('admin'), validate(schemas.createModelVersion), createModelVersion);
router.put('/versions/:modelId', authorize('admin'), updateModelVersion);
router.put('/versions/:modelId/activate', authorize('admin'), activateModel);
router.get('/training-data', authorize('admin'), getTrainingData);
module.exports = router;