Initial commit: Agentic OS troubleshooting platform

Self-hosted, Docker-based agentic troubleshooting platform: FastAPI backend +
LangGraph agent, Next.js UI, tiered LLM routing (local Ollama -> Gemini ->
DeepSeek -> OpenRouter), MCP server manager, encrypted device credentials,
RBAC, audit log, project-memory + Obsidian integrations, and editable
troubleshooting decision rules tuned for the GeneseasX vessel stack.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-14 22:11:07 +03:00
commit 6185b9b85a
126 changed files with 14565 additions and 0 deletions

53
frontend/app/globals.css Normal file
View File

@@ -0,0 +1,53 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
color-scheme: dark;
}
body {
@apply bg-ink text-slate-100;
background-image: radial-gradient(1200px 600px at 80% -10%, rgba(91, 140, 255, 0.12), transparent),
radial-gradient(900px 500px at -10% 10%, rgba(34, 211, 238, 0.08), transparent);
min-height: 100vh;
}
@layer components {
.card {
@apply rounded-2xl border border-edge bg-panel/80 backdrop-blur p-5 shadow-lg shadow-black/20;
}
.btn {
@apply inline-flex items-center justify-center gap-2 rounded-xl px-4 py-2 text-sm font-medium transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-ink disabled:cursor-not-allowed disabled:opacity-50;
}
.btn-primary {
@apply btn bg-accent text-white hover:bg-accent/90;
}
.btn-ghost {
@apply btn border border-edge bg-panel2 text-slate-200 hover:border-accent/60;
}
.btn-secondary {
@apply btn border border-accent/40 bg-accent/10 text-accent hover:bg-accent/20;
}
.btn-danger {
@apply btn bg-bad/90 text-white hover:bg-bad;
}
.btn-sm {
@apply px-2.5 py-1 text-xs;
}
.input {
@apply w-full rounded-xl border border-edge bg-ink/60 px-3 py-2 text-sm outline-none focus:border-accent focus-visible:ring-2 focus-visible:ring-accent/40;
}
.label {
@apply mb-1 block text-xs font-medium uppercase tracking-wide text-muted;
}
.badge {
@apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium;
}
.th {
@apply px-3 py-2 text-left text-xs font-semibold uppercase tracking-wide text-muted;
}
.td {
@apply px-3 py-2 text-sm border-t border-edge/60;
}
}