Add admin web UI (Phase 2): spend dashboard, media gallery, provider management

Fastify + single-page frontend on shared @nexusai/core. Reads the same SQLite
journal and media dir. Features: usage stats (by provider/capability/day),
content gallery (image/audio/video with local file serving + path-traversal
guard), provider CRUD with encrypted keys (masked in UI), enable/disable,
set-default, and real key validation via zero-cost /media/models call.
Adds Journal.getById and NordRouterMediaProvider.checkKey to core.
This commit is contained in:
OpenCode
2026-08-17 17:22:07 +07:00
parent 62c692c5a1
commit 679e56424b
13 changed files with 1495 additions and 5 deletions
+5 -2
View File
@@ -5,13 +5,16 @@
"description": "Universal MCP service for agents: TTS, STT, image/video/music generation and web search",
"workspaces": [
"packages/core",
"packages/mcp-server"
"packages/mcp-server",
"packages/admin"
],
"scripts": {
"build": "npm run build --workspace @nexusai/core && npm run build --workspace @nexusai/mcp-server",
"build": "npm run build --workspace @nexusai/core && npm run build --workspace @nexusai/mcp-server && npm run build --workspace @nexusai/admin",
"build:core": "npm run build --workspace @nexusai/core",
"build:mcp": "npm run build --workspace @nexusai/mcp-server",
"build:admin": "npm run build --workspace @nexusai/admin",
"start": "node packages/mcp-server/dist/index.js",
"admin": "node packages/admin/dist/server.js",
"dev": "npm run build && node packages/mcp-server/dist/index.js"
},
"license": "MIT"