mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-03-28 03:29:25 +01:00
168 lines
6.7 KiB
TypeScript
168 lines
6.7 KiB
TypeScript
/*
|
|
|--------------------------------------------------------------------------
|
|
| Routes file
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The routes file is used for defining the HTTP routes.
|
|
|
|
|
*/
|
|
import BenchmarkController from '#controllers/benchmark_controller'
|
|
import ChatsController from '#controllers/chats_controller'
|
|
import DocsController from '#controllers/docs_controller'
|
|
import DownloadsController from '#controllers/downloads_controller'
|
|
import EasySetupController from '#controllers/easy_setup_controller'
|
|
import HomeController from '#controllers/home_controller'
|
|
import MapsController from '#controllers/maps_controller'
|
|
import OllamaController from '#controllers/ollama_controller'
|
|
import RagController from '#controllers/rag_controller'
|
|
import SettingsController from '#controllers/settings_controller'
|
|
import SystemController from '#controllers/system_controller'
|
|
import ZimController from '#controllers/zim_controller'
|
|
import router from '@adonisjs/core/services/router'
|
|
import transmit from '@adonisjs/transmit/services/main'
|
|
|
|
transmit.registerRoutes()
|
|
|
|
router.get('/', [HomeController, 'index'])
|
|
router.get('/home', [HomeController, 'home'])
|
|
router.on('/about').renderInertia('about')
|
|
router.on('/chat').renderInertia('chat')
|
|
router.on('/knowledge-base').renderInertia('knowledge-base')
|
|
router.get('/maps', [MapsController, 'index'])
|
|
|
|
router.get('/easy-setup', [EasySetupController, 'index'])
|
|
router.get('/easy-setup/complete', [EasySetupController, 'complete'])
|
|
router.get('/api/easy-setup/curated-categories', [EasySetupController, 'listCuratedCategories'])
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/system', [SettingsController, 'system'])
|
|
router.get('/apps', [SettingsController, 'apps'])
|
|
router.get('/legal', [SettingsController, 'legal'])
|
|
router.get('/maps', [SettingsController, 'maps'])
|
|
router.get('/models', [SettingsController, 'models'])
|
|
router.get('/update', [SettingsController, 'update'])
|
|
router.get('/zim', [SettingsController, 'zim'])
|
|
router.get('/zim/remote-explorer', [SettingsController, 'zimRemote'])
|
|
router.get('/benchmark', [SettingsController, 'benchmark'])
|
|
})
|
|
.prefix('/settings')
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/:slug', [DocsController, 'show'])
|
|
router.get('/', ({ inertia }) => {
|
|
return inertia.render('Docs/Index', {
|
|
title: 'Documentation',
|
|
content: 'Welcome to the documentation!',
|
|
})
|
|
})
|
|
})
|
|
.prefix('/docs')
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/regions', [MapsController, 'listRegions'])
|
|
router.get('/styles', [MapsController, 'styles'])
|
|
router.get('/curated-collections', [MapsController, 'listCuratedCollections'])
|
|
router.post('/fetch-latest-collections', [MapsController, 'fetchLatestCollections'])
|
|
router.post('/download-base-assets', [MapsController, 'downloadBaseAssets'])
|
|
router.post('/download-remote', [MapsController, 'downloadRemote'])
|
|
router.post('/download-remote-preflight', [MapsController, 'downloadRemotePreflight'])
|
|
router.post('/download-collection', [MapsController, 'downloadCollection'])
|
|
router.delete('/:filename', [MapsController, 'delete'])
|
|
})
|
|
.prefix('/api/maps')
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/list', [DocsController, 'list'])
|
|
})
|
|
.prefix('/api/docs')
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/jobs', [DownloadsController, 'index'])
|
|
router.get('/jobs/:filetype', [DownloadsController, 'filetype'])
|
|
})
|
|
.prefix('/api/downloads')
|
|
|
|
router.get('/api/health', () => {
|
|
return { status: 'ok' }
|
|
})
|
|
|
|
router
|
|
.group(() => {
|
|
router.post('/chat', [OllamaController, 'chat'])
|
|
router.get('/models', [OllamaController, 'availableModels'])
|
|
router.post('/models', [OllamaController, 'dispatchModelDownload'])
|
|
router.delete('/models', [OllamaController, 'deleteModel'])
|
|
router.get('/installed-models', [OllamaController, 'installedModels'])
|
|
})
|
|
.prefix('/api/ollama')
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/', [ChatsController, 'index'])
|
|
router.post('/', [ChatsController, 'store'])
|
|
router.delete('/all', [ChatsController, 'destroyAll'])
|
|
router.get('/:id', [ChatsController, 'show'])
|
|
router.put('/:id', [ChatsController, 'update'])
|
|
router.delete('/:id', [ChatsController, 'destroy'])
|
|
router.post('/:id/messages', [ChatsController, 'addMessage'])
|
|
})
|
|
.prefix('/api/chat/sessions')
|
|
|
|
router
|
|
.group(() => {
|
|
router.post('/upload', [RagController, 'upload'])
|
|
router.get('/files', [RagController, 'getStoredFiles'])
|
|
})
|
|
.prefix('/api/rag')
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/info', [SystemController, 'getSystemInfo'])
|
|
router.get('/internet-status', [SystemController, 'getInternetStatus'])
|
|
router.get('/services', [SystemController, 'getServices'])
|
|
router.post('/services/affect', [SystemController, 'affectService'])
|
|
router.post('/services/install', [SystemController, 'installService'])
|
|
router.post('/services/force-reinstall', [SystemController, 'forceReinstallService'])
|
|
router.post('/subscribe-release-notes', [SystemController, 'subscribeToReleaseNotes'])
|
|
router.get('/latest-version', [SystemController, 'checkLatestVersion'])
|
|
router.post('/update', [SystemController, 'requestSystemUpdate'])
|
|
router.get('/update/status', [SystemController, 'getSystemUpdateStatus'])
|
|
router.get('/update/logs', [SystemController, 'getSystemUpdateLogs'])
|
|
})
|
|
.prefix('/api/system')
|
|
|
|
router
|
|
.group(() => {
|
|
router.get('/list', [ZimController, 'list'])
|
|
router.get('/list-remote', [ZimController, 'listRemote'])
|
|
router.get('/curated-collections', [ZimController, 'listCuratedCollections'])
|
|
router.post('/fetch-latest-collections', [ZimController, 'fetchLatestCollections'])
|
|
router.post('/download-remote', [ZimController, 'downloadRemote'])
|
|
router.post('/download-collection', [ZimController, 'downloadCollection'])
|
|
router.post('/save-installed-tier', [ZimController, 'saveInstalledTier'])
|
|
router.delete('/:filename', [ZimController, 'delete'])
|
|
})
|
|
.prefix('/api/zim')
|
|
|
|
router
|
|
.group(() => {
|
|
router.post('/run', [BenchmarkController, 'run'])
|
|
router.post('/run/system', [BenchmarkController, 'runSystem'])
|
|
router.post('/run/ai', [BenchmarkController, 'runAI'])
|
|
router.get('/results', [BenchmarkController, 'results'])
|
|
router.get('/results/latest', [BenchmarkController, 'latest'])
|
|
router.get('/results/:id', [BenchmarkController, 'show'])
|
|
router.post('/submit', [BenchmarkController, 'submit'])
|
|
router.post('/builder-tag', [BenchmarkController, 'updateBuilderTag'])
|
|
router.get('/comparison', [BenchmarkController, 'comparison'])
|
|
router.get('/status', [BenchmarkController, 'status'])
|
|
router.get('/settings', [BenchmarkController, 'settings'])
|
|
router.post('/settings', [BenchmarkController, 'updateSettings'])
|
|
})
|
|
.prefix('/api/benchmark')
|