Sistema Operacional Agêntico — orquestração ReAct, persistência SQLite, sandbox nativo Windows e dashboard web com live polling.
┌─────────────────────────────────────────────────────────────────┐
│ #0a0a0a VOID │ #ff3333 BLOOD SIGNAL │
│ #111111 PANEL │ #00ff00 CORE LINK │
│ #2d2d2d GRAPHITE │ #666666 TELEMETRY MUTED │
└─────────────────────────────────────────────────────────────────┘
Repositório: github.com/nettycpu/nullain-agentic-os
O Nullain Agentic OS v1.0 é um MVP full-stack que une um Core Engine .NET 8 com loop ReAct, um Frontend Next.js para operação e auditoria em tempo real, e um Sandbox C++ baseado em Windows Job Objects para isolar execução de comandos de sistema.
O agente recebe prompts, decide ferramentas via LLM (OpenRouter), executa ações enjauladas e persiste trajetórias completas — incluindo ToolCalls, arguments e result (stdout) — no SQLite. O operador dispara agentes pelo dashboard web, acompanha o registry de trajetórias e abre o Audit Trail com streaming live enquanto o status estiver Running.
Blindagem em camadas:
| Camada | Proteção |
|---|---|
| Política de comandos | Bloqueio de paths sensíveis e operações fora do workspace permitido |
| Sandbox nativo | Job Object: 512 MB RAM, 20% CPU (hard cap) |
| Persistência | SQLite WAL + busy_timeout para concorrência API / worker / TUI |
┌──────────────────────────────┐
│ nullain-web (Next.js 16) │
│ :3000 Live Polling UI │
└──────────────┬───────────────┘
│ HTTP + CORS
┌──────────────▼───────────────┐
│ Nullain.CoreEngine.Service │
│ :5080 Minimal APIs + TUI │
├──────────────────────────────┤
│ ReAct Loop · OpenRouter │
│ EF Core · Tool Registry │
└──────┬───────────────┬───────┘
│ │
┌────────────▼────┐ ┌──────▼──────────────┐
│ SQLite (WAL) │ │ SandboxGuardian.dll │
│ Trajectories │ │ C++ · Job Objects │
│ ToolCalls │ │ CMD shell redirect │
└─────────────────┘ └─────────────────────┘
| Item | Detalhe |
|---|---|
| Stack | Next.js 16 (App Router), TypeScript, Tailwind CSS |
| Dashboard | Registry de trajetórias, formulário DISPATCH, estética dark/terminal |
| Audit Trail | /trajectory/[id] — logs de ToolCalls com SYSTEM OUTPUT |
| Live Polling | Refresh a cada 1s enquanto status === Running |
| API alvo | http://localhost:5080 (CORS policy WebDashboard) |
| Item | Detalhe |
|---|---|
| Runtime | C# .NET 8 |
| API | Minimal APIs — POST /api/agent/run, GET /api/trajectories, GET /api/trajectories/{id} |
| Agente | Loop ReAct dinâmico com OpenRouter (deepseek/deepseek-v4-flash) |
| Ferramentas | Plugins JSON: system.execute_command, file.read_text, file.write_text |
| Telemetria | TUI Spectre.Console (Active Registry + Live Thought Stream) |
| Serialização | System.Text.Json — camelCase, enums como string, IgnoreCycles |
Camadas da solution:
Nullain.CoreEngine.Domain— entidades, contratos, trajetóriasNullain.CoreEngine.Infrastructure— OpenRouter, EF Core, orchestration, sandbox P/InvokeNullain.CoreEngine.Service— host HTTP, TUI, endpoints, plugins
| Item | Detalhe |
|---|---|
| Arquivo | nullain_agentic_os.db (raiz de execução do Service) |
| ORM | EF Core 8 + EnsureCreated() |
| Concorrência | PRAGMA journal_mode=WAL; PRAGMA busy_timeout=5000 |
| Modelo | Trajectory ↔ ToolCall (FK cascade), ChatMessages / Steps em JSON |
| Datas | DateTimeOffset serializado como long (ticks) para ORDER BY nativo |
| Item | Detalhe |
|---|---|
| Tecnologia | DLL C++ (SandboxGuardian.dll) — Windows Job Objects |
| Limites | 512 MB memória de processo · 20% CPU (hard cap) |
| Execução | CreateProcessW + polling 500ms com callback de telemetria (RAM / CPU time) |
| Stdout/Stderr | Redirecionamento shell nativo via cmd.exe /c "... > temp 2>&1" orquestrado pelo C# |
| Integração | P/Invoke em SandboxNativeWrapper → SystemCommandToolHandler |
Nota: O sandbox nativo é Windows-only. Em Linux/macOS,
system.execute_commandusa fallback via/bin/bash.
| Método | Rota | Descrição |
|---|---|---|
POST |
/api/agent/run |
Enfileira nova trajetória agentica |
GET |
/api/trajectories |
Lista trajetórias (mais recentes primeiro) |
GET |
/api/trajectories/{id} |
Detalhe completo + toolCalls + result |
GET |
/api/agent/trajectory/{id} |
Status legado da trajetória |
- .NET 8 SDK
- Node.js 20+ e npm
- Windows + Visual Studio Build Tools 2022 (C++) — compilar
SandboxGuardian.dll - Chave OpenRouter — copie
.env.example→.envna raiz do workspace:
OPENROUTER_API_KEY=sk-or-v1-...Abra dois terminais na raiz do workspace (nullain-agent-cursor).
# 1. Compilar sandbox nativo (primeira vez ou após mudanças C++)
cd core-engine\src\Nullain.Sandbox.Native
.\build_sandbox.ps1
# 2. Subir API + TUI + worker de agentes
cd ..\..
dotnet run --project src/Nullain.CoreEngine.Service- API: http://localhost:5080
- TUI interativa no mesmo processo (menu Calvin S → dashboard)
- Banco SQLite criado automaticamente na primeira execução
cd nullain-web
npm install
npm run dev- Dashboard: http://localhost:3000
- DISPATCH → dispara agente via
POST /api/agent/run - Clique no ID da trajetória → Audit Trail com live polling
Certifique-se de que o Core Engine está ativo antes de usar o dashboard. O front-end consome
http://localhost:5080com CORS liberado para:3000.
nullain-agent-cursor/
├── core-engine/ # Solution .NET 8
│ ├── src/
│ │ ├── Nullain.CoreEngine.Domain/
│ │ ├── Nullain.CoreEngine.Infrastructure/
│ │ ├── Nullain.CoreEngine.Service/ # API :5080 + TUI
│ │ └── Nullain.Sandbox.Native/ # SandboxGuardian.dll
│ └── Nullain.CoreEngine.sln
├── nullain-web/ # Dashboard Next.js :3000
│ └── src/
│ ├── app/ # App Router (registry + audit trail)
│ ├── components/ # DispatchForm
│ └── types/ # Contratos TypeScript
├── docs/images/
├── .env.example
└── README.md
| Componente | Versão / Tecnologia |
|---|---|
| Frontend | Next.js 16, React, Tailwind CSS |
| Backend | .NET 8, Minimal APIs, EF Core 8.0.11 |
| LLM | OpenRouter |
| Database | SQLite (WAL) |
| Sandbox | C++17, Windows Job Objects |
| TUI | Spectre.Console |
Projeto proprietário Nullain — uso interno e evolução contínua do ecossistema Agentic OS.
NULLAIN AGENTIC OS v1.0 · █ DARK INDUSTRIAL · ● CORE ONLINE
