mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 02:57:12 -05:00
Add Next.js frontends with health endpoints
This commit is contained in:
3
apps/prism-console/.eslintrc.json
Normal file
3
apps/prism-console/.eslintrc.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": ["next/core-web-vitals"]
|
||||
}
|
||||
14
apps/prism-console/app/globals.css
Normal file
14
apps/prism-console/app/globals.css
Normal file
@@ -0,0 +1,14 @@
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
background-color: #0f1115;
|
||||
color: #f5f6f8;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
8
apps/prism-console/app/health/route.ts
Normal file
8
apps/prism-console/app/health/route.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
export async function GET() {
|
||||
return NextResponse.json({
|
||||
service: "blackroad-os-prism-console",
|
||||
status: "ok"
|
||||
});
|
||||
}
|
||||
35
apps/prism-console/app/layout.tsx
Normal file
35
apps/prism-console/app/layout.tsx
Normal file
@@ -0,0 +1,35 @@
|
||||
import "./globals.css";
|
||||
import type { ReactNode } from "react";
|
||||
|
||||
export const metadata = {
|
||||
title: "BlackRoad OS – Prism Console",
|
||||
description: "Operator console for BlackRoad OS"
|
||||
};
|
||||
|
||||
export default function RootLayout({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body>
|
||||
<div style={{ display: "flex", minHeight: "100vh" }}>
|
||||
<aside
|
||||
style={{
|
||||
width: "240px",
|
||||
borderRight: "1px solid #222",
|
||||
padding: "1rem"
|
||||
}}
|
||||
>
|
||||
<h1 style={{ fontSize: "1.1rem", marginBottom: "1rem" }}>
|
||||
Prism Console
|
||||
</h1>
|
||||
<nav style={{ display: "flex", flexDirection: "column", gap: "0.5rem" }}>
|
||||
<a href="/" style={{ textDecoration: "none" }}>Dashboard</a>
|
||||
<a href="/agents" style={{ textDecoration: "none" }}>Agents</a>
|
||||
<a href="/health" style={{ textDecoration: "none" }}>Health</a>
|
||||
</nav>
|
||||
</aside>
|
||||
<main style={{ flex: 1, padding: "1.5rem" }}>{children}</main>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
13
apps/prism-console/app/page.tsx
Normal file
13
apps/prism-console/app/page.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
export default function Page() {
|
||||
return (
|
||||
<div>
|
||||
<h2>Prism Console</h2>
|
||||
<p>Welcome to the BlackRoad OS operator console.</p>
|
||||
<ul>
|
||||
<li>Monitor services</li>
|
||||
<li>Inspect agents</li>
|
||||
<li>Trigger workflows</li>
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
5
apps/prism-console/next-env.d.ts
vendored
Normal file
5
apps/prism-console/next-env.d.ts
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/// <reference types="next" />
|
||||
/// <reference types="next/image-types/global" />
|
||||
|
||||
// NOTE: This file should not be edited
|
||||
// see https://nextjs.org/docs/basic-features/typescript for more information.
|
||||
12
apps/prism-console/next.config.mjs
Normal file
12
apps/prism-console/next.config.mjs
Normal file
@@ -0,0 +1,12 @@
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
output: "standalone",
|
||||
experimental: {
|
||||
appDir: true
|
||||
},
|
||||
env: {
|
||||
API_URL: process.env.API_URL || "https://api.blackroad.systems"
|
||||
}
|
||||
};
|
||||
|
||||
export default nextConfig;
|
||||
25
apps/prism-console/package.json
Normal file
25
apps/prism-console/package.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "blackroad-os-prism-console",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev -p 8080",
|
||||
"build": "next build",
|
||||
"start": "next start -p 8080",
|
||||
"lint": "next lint",
|
||||
"health": "curl -f http://localhost:8080/health || exit 1"
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "14.2.3",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.11.0",
|
||||
"@types/react": "^18.3.0",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"eslint": "^9.0.0",
|
||||
"eslint-config-next": "^15.0.0",
|
||||
"typescript": "^5.6.0"
|
||||
}
|
||||
}
|
||||
19
apps/prism-console/tsconfig.json
Normal file
19
apps/prism-console/tsconfig.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"esModuleInterop": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"jsx": "preserve",
|
||||
"incremental": true
|
||||
},
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
Reference in New Issue
Block a user