Opis za rad
Node 20+, bez zavisnosti. Gateway je micro-router (`node:http`) sa SSE; rute se zadaju kao `{ method, path, auth, rate, requiredRole }`. Tenanti, ključevi, budžeti i politike su u `config/`, podaci u `data/`. Model je zamenljiv (openai-kompatibilni provajder, fallback lanac ili mock).
Kako se pokreće
node scripts/serve.mjs # gateway (NMQ_PORT, default 8787)
NMQ_LLM_PROVIDER=mock node scripts/serve.mjs # demo without an API key ($0)
node scripts/smoke.mjs # 40/42 in this environment (2 known: selfplay, swarm UDP)
curl -X POST http://127.0.0.1:8800/v1/agents/support/run \
-H "content-type: application/json" -d '{"input":"Kako da resetujem lozinku?"}'
API
| metod | putanja | šta radi |
|---|---|---|
GET | / | landing (SR) — ovaj demo |
GET | /watch | živi demo agenta (widget + API) |
GET | /healthz | da li radi + verzija |
GET | /metrics | Prometheus metrike |
GET | /v1/agents | katalog agenata |
GET | /v1/agents/:id | jedan agent |
POST | /v1/agents/:id/run | pokreni agenta |
GET | /v1/tools | alati i nivo rizika |
GET | /v1/patterns | patterni orkestracije |
Podaci
- config/tenants.json — tenanti, budžeti, dozvoljeni agenti (u demou jedan tenant „demo")
- config/tools.json — koji su alati uključeni; u demou su isključeni http_fetch, email_send, notify i svi MCP serveri
- config/autonomy.json — nivoi autonomije (demo: L0/L1, bez samostalnog zakazivanja)
- data/ — sesije, istorija, vektorska baza, audit, trošak (po tenantu)
Ograničenja — šta ovaj demo ne radi
- Demo koristi mock model: tekst nije od pravog modela, mehanika jeste.
- U demou su isključeni http_fetch, email_send, notify, invoice_create i MCP; admin, keys, chaos, worker i audit rute su blokirane na nginx-u.
- Jedan demo tenant, budžet mali, rate limit 20/min — demo nije za opterećenje.
- Bez ključa nema živog modela; mock je namerno, da demo ne troši novac.
Kako se postavlja
Jedan Node proces iza nginx-a, systemd servis, Let’s Encrypt, demo konfiguracija preko `demo-config/`. Recept: E:\poslovi\DEMO-REGISTAR.md.
Smoke u ovom okruženju: 40/42 (pali su selfplay i swarm UDP test — poznato, ne tiče se demoa).