Aegis Runtime governance for AI agents. Built for JEVATHON (TypeSafe × The AI Collective). Aegis wraps any agent turn as input → reasoning → output, judges the triple against the EU AI Act with Jev, gates the response (ALLOW / FLAG / BLOCK), and writes every decision to a SHA-256 hash-chained ledger. This produces runtime controls and evidence. It is not a legal certification. Another model continuing this code should read AGENTS.md first, then CHANGELOG.md. Docker Docker Desktop (or another Engine with Compose v2) is the way to run the loan agent. From aegis/: cd aegis cp .env.example .env docker compose up --build On PowerShell: cd aegis Copy-Item .env.example .env docker compose up --build Open http://localhost:3001. Compose publishes 3001 on the host. Stop npm run dev before starting the container; both bind that port. .env is optional. Compose reads ./.env and passes each key through. An empty value is recorded as skipped, unavailable, or pending, and the loan decision still completes. Without TYPESAFE_API_KEY the judge is the deterministic mock. The service is loan-agent. The image is aegis-loan-agent:latest, the container name is aegis-loan-agent, and the Compose project name is aegis. docker compose ps # status and health docker compose logs -f # follow next start docker compose restart # ledger stays on the volume docker compose down # stop; the aegis-data volume remains docker compose down -v # stop and delete the ledger volume GET /api/health returns { ok, runs } and is the container health check. A 503 means SQLite could not be opened. What the image does Dockerfile is a two-stage build on node:22-bookworm-slim. Build. Install build tools so better-sqlite3 can compile if no prebuilt binary matches, npm ci, then npm run build. Dev dependencies are pruned. TypeScript is installed back into the image because next start loads next.config.ts. Run. Copy the build, node_modules, public, next.config.ts, and tsconfig.json. Listen on 0.0.0.0:3001 as the unprivileged node user. The SQLite file is /app/data/aegis.db (AEGIS_DB_PATH). That directory is the named volume aegis-data, so docker compose restart keeps the hash chain. Secrets stay out of the image; .dockerignore excludes .env and .env.*. The Platform control Check local Docker runs docker version and docker compose config in the process that is serving the UI. Use it from npm run dev on the host. The container image has no Docker CLI, so that same control reports Docker missing while you are browsing the container. Local dev cd aegis npm install cp .env.example .env.local # Next reads this file; Compose reads .env npm run dev Open http://localhost:3001. npm run build is the same compile the image runs. It shares .next with the dev server, so stop npm run dev before building, then start it again after. Views Hash routes on one page: Playground (#playground) — chat with the loan agent under test. A named customer is retrieved with LlamaIndex from a local book centered on Ram Guttikonda. The agent calculates a FICO-shaped score from that file. A credit decision opens a Browserbase cloud browser, reads the public prime-rate page, and folds that excerpt into the reasoning. Aegis judges the turn, then Photon emails the decision to guttikondasriram1234@gmail.com, the customer's address, and any email in the query. Ledger (#ledger) — Article 12 record. Filter by decision, open any event, verify the chain. Integrate (#integrate) — TypeScript SDK wrap, REST /api/verify, Python decorator, LangChain callback, Node middleware. Platform (#platform) — CodeRabbit reviews the repo, Cognition opens a Devin session, and GMI prices the loan agent for this Compose deploy. Each action stays available when its key or CLI is missing. About (#about) — what Aegis judges, and what the loan agent is for. Feedback (#feedback) — upcoming events from The AI Collective's public calendar, and a note filed against one of them. A Photon copy goes to the operator when that key is set. Subscribe (#subscribe) — Wrap, Team, and Firm seats, paid through Whop. Demo path Say hello — ALLOW. Ram's file — LlamaIndex retrieves Ram, the agent calculates his FICO, Photon records the alert. Standard applicant — FLAG (Annex III credit), released with oversight. Social scoring — BLOCK before the agent runs (Article 5). Demographic proxy — agent produces a discriminatory denial; Aegis withholds it. Invented income — Article 15; fabricated facts withheld. API GET /api/health — { ok, runs }; 503 when SQLite is unreachable. POST /api/govern — { input } → runs the wrapped Loan Approval agent. POST /api/verify — { agent, input, reasoning, output, mode? } → governs a turn from any external agent. GET /api/ledger?limit=&decision=&agent= — recent runs, chain verification, and aggregate stats. GET /api/ledger/:id — one run. GET /api/community — upcoming AI Collective events and filed notes. POST /api/community — { name, email, eventId, rating, message } files a note. eventId must be an id from the current calendar, or omitted. GET /api/platform — CodeRabbit, Whop, Cognition, GMI, and the AI Collective calendar link. POST /api/deploy — host-side Docker check used by the Platform button. Storage On the host dev server the database is data/aegis.db (override with AEGIS_DB_PATH). In the container that path is /app/data/aegis.db on the aegis-data volume. The runs table keeps the full triple, both Jev gate payloads as JSON, the LlamaIndex customer brief, the Photon alert receipt, judge model, latency, token usage, indexed columns for decision / agent / article, and the SHA-256 chain (prev_hash, hash). Optional fields enter the hash only when present, so older rows still verify. Appends run inside a transaction so concurrent turns cannot fork the chain. GET /api/ledger re-verifies the entire chain on every call. The same database holds the customers table. LlamaIndex builds a local vector index over those files (no embedding API). FICO is round(300 + quality × 550) with weights 35% payment history, 30% utilization headroom, 15% history length, 10% new credit, and 10% credit mix. Photon uses Spectrum's iMessage provider and treats each address as an Apple ID email handle. Without PHOTON_PROJECT_ID and PHOTON_PROJECT_SECRET the receipt is stored with status skipped. Platform CodeRabbit — POST /api/review runs coderabbit review --agent --light when the CLI is on PATH. Otherwise the review is stored as unavailable. Whop — Wrap ($29), Team ($99), and Firm ($249) monthly seats. POST /api/billing opens a hosted checkout when WHOP_API_KEY and WHOP_ACCOUNT_ID are set. Cognition — POST /api/cognition with { task: "wrap" | "review" } creates a Devin session when DEVIN_API_KEY and DEVIN_ORG_ID are set, and stores the prompt either way. GMI — reasoning goes to https://api.gmi-serving.com/v1 when GMI_API_KEY is set, including inside the container. Dedicated H100 ($2/hr) and reserved H200 ($2.50/hr) figures are GMI's published rates. Serverless dollar prices are left to the live model card. The local deploy is the Compose service above. The AI Collective — #feedback lists events from https://lu.ma/genai-collective and files a note against one. No key. Photon delivers a copy to the operator when configured. Layout Dockerfile, docker-compose.yml, .dockerignore — container build, the loan-agent service, and the aegis-data volume src/sdk/wrap-agent.ts — wrapAgent, the SDK entry point src/sdk/core.ts — verifyTurn and the shared gate logic src/compliance/eu-ai-act.ts — policy questions and thresholds (single reviewable file) src/ledger/db.ts — SQLite connection and schema src/ledger/store.ts — append / query / verify / stats over the chain src/agents/loan-approval.ts — the agent under test src/content/snippets.ts — integration snippets shown in the UI
Built at JEVATHON (w/ The AI Collective)
AEGIS
Aegis Runtime governance for AI agents. Built for JEVATHON (TypeSafe × The AI Collective). Aegis wraps any agent turn as input → reasoning → output, judges the triple against the EU AI Act with Jev, gates the response (ALLOW / FLAG / BLOCK), and writes every decision to a SHA-256 hash-chained ledger. This produces runtime controls and evidence. It is not a legal certification. Another model continuing this code should read AGENTS.md first, then CHANGELOG.md. Docker Docker Desktop (or another Engine with Compose v2) is the way to run the loan agent. From aegis/: cd aegis cp .env.example .env docker compose up --build On PowerShell: cd aegis Copy-Item .env.example .env docker compose up --build Open http://localhost:3001. Compose publishes 3001 on the host. Stop npm run dev before starting the container; both bind that port. .env is optional. Compose reads ./.env and passes each key through. An empty value is recorded as skipped, unavailable, or pending, and the loan decision still completes. Without TYPESAFE_API_KEY the judge is the deterministic mock. The service is loan-agent. The image is aegis-loan-agent:latest, the container name is aegis-loan-agent, and the Compose project name is aegis. docker compose ps # status and health docker compose logs -f # follow next start docker compose restart # ledger stays on the volume docker compose down # stop; the aegis-data volume remains docker compose down -v # stop and delete the ledger volume GET /api/health returns { ok, runs } and is the container health check. A 503 means SQLite could not be opened. What the image does Dockerfile is a two-stage build on node:22-bookworm-slim. Build. Install build tools so better-sqlite3 can compile if no prebuilt binary matches, npm ci, then npm run build. Dev dependencies are pruned. TypeScript is installed back into the image because next start loads next.config.ts. Run. Copy the build, node_modules, public, next.config.ts, and tsconfig.json. Listen on 0.0.0.0:3001 as the unprivileged node user. The SQLite file is /app/data/aegis.db (AEGIS_DB_PATH). That directory is the named volume aegis-data, so docker compose restart keeps the hash chain. Secrets stay out of the image; .dockerignore excludes .env and .env.*. The Platform control Check local Docker runs docker version and docker compose config in the process that is serving the UI. Use it from npm run dev on the host. The container image has no Docker CLI, so that same control reports Docker missing while you are browsing the container. Local dev cd aegis npm install cp .env.example .env.local # Next reads this file; Compose reads .env npm run dev Open http://localhost:3001. npm run build is the same compile the image runs. It shares .next with the dev server, so stop npm run dev before building, then start it again after. Views Hash routes on one page: Playground (#playground) — chat with the loan agent under test. A named customer is retrieved with LlamaIndex from a local book centered on Ram Guttikonda. The agent calculates a FICO-shaped score from that file. A credit decision opens a Browserbase cloud browser, reads the public prime-rate page, and folds that excerpt into the reasoning. Aegis judges the turn, then Photon emails the decision to guttikondasriram1234@gmail.com, the customer's address, and any email in the query. Ledger (#ledger) — Article 12 record. Filter by decision, open any event, verify the chain. Integrate (#integrate) — TypeScript SDK wrap, REST /api/verify, Python decorator, LangChain callback, Node middleware. Platform (#platform) — CodeRabbit reviews the repo, Cognition opens a Devin session, and GMI prices the loan agent for this Compose deploy. Each action stays available when its key or CLI is missing. About (#about) — what Aegis judges, and what the loan agent is for. Feedback (#feedback) — upcoming events from The AI Collective's public calendar, and a note filed against one of them. A Photon copy goes to the operator when that key is set. Subscribe (#subscribe) — Wrap, Team, and Firm seats, paid through Whop. Demo path Say hello — ALLOW. Ram's file — LlamaIndex retrieves Ram, the agent calculates his FICO, Photon records the alert. Standard applicant — FLAG (Annex III credit), released with oversight. Social scoring — BLOCK before the agent runs (Article 5). Demographic proxy — agent produces a discriminatory denial; Aegis withholds it. Invented income — Article 15; fabricated facts withheld. API GET /api/health — { ok, runs }; 503 when SQLite is unreachable. POST /api/govern — { input } → runs the wrapped Loan Approval agent. POST /api/verify — { agent, input, reasoning, output, mode? } → governs a turn from any external agent. GET /api/ledger?limit=&decision=&agent= — recent runs, chain verification, and aggregate stats. GET /api/ledger/:id — one run. GET /api/community — upcoming AI Collective events and filed notes. POST /api/community — { name, email, eventId, rating, message } files a note. eventId must be an id from the current calendar, or omitted. GET /api/platform — CodeRabbit, Whop, Cognition, GMI, and the AI Collective calendar link. POST /api/deploy — host-side Docker check used by the Platform button. Storage On the host dev server the database is data/aegis.db (override with AEGIS_DB_PATH). In the container that path is /app/data/aegis.db on the aegis-data volume. The runs table keeps the full triple, both Jev gate payloads as JSON, the LlamaIndex customer brief, the Photon alert receipt, judge model, latency, token usage, indexed columns for decision / agent / article, and the SHA-256 chain (prev_hash, hash). Optional fields enter the hash only when present, so older rows still verify. Appends run inside a transaction so concurrent turns cannot fork the chain. GET /api/ledger re-verifies the entire chain on every call. The same database holds the customers table. LlamaIndex builds a local vector index over those files (no embedding API). FICO is round(300 + quality × 550) with weights 35% payment history, 30% utilization headroom, 15% history length, 10% new credit, and 10% credit mix. Photon uses Spectrum's iMessage provider and treats each address as an Apple ID email handle. Without PHOTON_PROJECT_ID and PHOTON_PROJECT_SECRET the receipt is stored with status skipped. Platform CodeRabbit — POST /api/review runs coderabbit review --agent --light when the CLI is on PATH. Otherwise the review is stored as unavailable. Whop — Wrap ($29), Team ($99), and Firm ($249) monthly seats. POST /api/billing opens a hosted checkout when WHOP_API_KEY and WHOP_ACCOUNT_ID are set. Cognition — POST /api/cognition with { task: "wrap" | "review" } creates a Devin session when DEVIN_API_KEY and DEVIN_ORG_ID are set, and stores the prompt either way. GMI — reasoning goes to https://api.gmi-serving.com/v1 when GMI_API_KEY is set, including inside the container. Dedicated H100 ($2/hr) and reserved H200 ($2.50/hr) figures are GMI's published rates. Serverless dollar prices are left to the live model card. The local deploy is the Compose service above. The AI Collective — #feedback lists events from https://lu.ma/genai-collective and files a note against one. No key. Photon delivers a copy to the operator when configured. Layout Dockerfile, docker-compose.yml, .dockerignore — container build, the loan-agent service, and the aegis-data volume src/sdk/wrap-agent.ts — wrapAgent, the SDK entry point src/sdk/core.ts — verifyTurn and the shared gate logic src/compliance/eu-ai-act.ts — policy questions and thresholds (single reviewable file) src/ledger/db.ts — SQLite connection and schema src/ledger/store.ts — append / query / verify / stats over the chain src/agents/loan-approval.ts — the agent under test src/content/snippets.ts — integration snippets shown in the UI
Keep exploring what builders shipped.
manubaba
AgentGate
**AgentGate** is a safety loop for code that agents write. A builder opens a pull request, CodeRabbit reviews it, and Jev is the only thing allowed to merge. If CodeRabbit still has a critical or security finding, or the tests are failing, the pull request stays blocked and goes back to be fixed. On a live GitHub pull request, CodeRabbit flagged a refund endpoint that dropped the payment lookup, so any payment id could receive a completed refund, and that never checked the amount. Jev’s decision on that evidence is fix, at risk 9.9 out of 10. After a clean review the same gate can say merge, at risk 2.7. Nothing ships while a blocking finding is open. Built for JEVATHON with CodeRabbit and Jev. Repo: https://github.com/manvendersingh21/PR-slayer
HackerSquad project
Elevator Sense
# Elevator Sense TypeSafe calls Jev "programmable common sense." I tried giving some to a hospital elevator. Live demo: https://jev-elevator-dispatch.vercel.app Code: https://github.com/tanishkgovil/jev-elevator-dispatch ## The problem A normal elevator dispatcher knows where you're going, not who's waiting. In a hospital, a trauma patient on a bed, a nurse on break, and a family heading to the cafeteria are all just "a hall call." LLMs can read that meaning, but at seconds per call they're too slow to sit inside a control loop. ## What I built A simulated 10-floor hospital with two identical elevator banks side by side: same building, same stream of requests, same dispatch algorithm. The only difference is that on the right, Jev reads each free-text request first (e.g. "Bed transport ER to ICU, pt intubated, need to go NOW"). ## How Jev is used One Jev call per request, three typed questions, ~100–200 ms: - Priority (Choice): stat / urgent / routine / visitor - Load (Choice): bed / wheelchair / cart / walking - Needs its own car? (Noul): probability 0–1 Plain code turns the answers into rules: a bed fills a whole car; emergencies go first and get an empty car. The same ETA-based dispatcher then picks the car. Jev never picks the elevator or does arithmetic, because TypeSafe's docs say it's weak at numbers, so it supplies only the meaning. Live incidents typed into the demo ("Car C door keeps sticking", "Trauma incoming to the ED in 5 minutes") go through a second Jev call (event type, floor, car). The physical effect happens in both buildings, but only the Jev side responds. ## Results Mean over 16 randomized traffic scenarios that were NOT used for tuning: - Emergency patients wait: 46s → 13s (−71%) - Patient beds wait: 80s → 24s (−70%) - Everyone, on average: 31s → 19s (−38%) - Trips where a bed didn't fit: 120 → 3 Jev came out ahead in 14 of 16 scenarios. ## Limitations - It's a simulation; the physics and traffic mix are assumptions. - I wrote the test requests myself, so Jev's accuracy on real hospital language is untested. - The baseline is a textbook dispatcher, not a commercial controller. The claim is "same dispatcher with vs. without understanding." ## What's next Test on requests written by real clinical staff; use Jev's confidence scores to handle uncertain requests conservatively; compare against published dispatch algorithms; generalize to other fleets (hospital porters, ambulances, warehouse robots).
jevolution
Jevolution
Jevolution - Explore the ecosystems we can’t experiment on Understanding what keeps a species alive requires understanding its interactions: where it finds food, how it avoids predators, and how it responds when its environment changes. For many species, researchers lack enough observations to assess even their extinction risk. A 2022 study predicted that 56% of the 7,699 Data Deficient species it assessed were threatened. https://www.nature.com/articles/s42003-022-03638-9 We can’t freely experiment on endangered ecosystems. Simulations offer a way to explore possible outcomes—but their usefulness depends on the assumptions and behaviors they capture. The problem Rules-based simulations are fast and can produce complex emergent patterns, but extending their behavior often requires researchers to design and maintain additional rules. Generative AI offers more flexible decision-making, but calling a language model for every animal’s decisions introduces latency and cost. The 2023 Stanford-led Generative Agents project reported spending thousands of dollars in token credits to simulate 25 characters over two in-game days. Scaling that approach to an ecosystem presents a significant challenge. https://arxiv.org/html/2304.03442v2 What we built Jevolution is an interactive ecosystem simulator exploring a more efficient approach: Jev agents that select structured actions from their local observations. In our predator–prey demo, every rabbit and wolf has its own Jev-powered controller. Rabbits choose how to forage, move, flee, and signal. Wolves choose how to search for and pursue prey. The simulation engine handles movement, energy, reproduction, inheritance, and the consequences of those decisions. This separation lets us explore flexible agent behavior within consistent environmental rules, while measuring the cost and responsiveness of each controller. What the demo reveals Individual decisions accumulate into population-level patterns. Rabbits can warn nearby animals about danger, advertise food, and respond to signals. Our demo shows rabbits gathering around resource patches without a centrally scripted colony formation sequence. Communication actions are available to the agents; the interesting question is when they use them, how others respond, and what collective patterns follow. Offspring also inherit and mutate five predefined traits. As populations change, users can inspect which trait distributions persist alongside changes in food availability, predation, and population size. Built to investigate Jevolution makes these interactions visible and inspectable: - Rewind a run and follow individual animals. - Inspect traits, observations, and recorded model decisions. - Track births, deaths, predation, and population changes. - Compare supported controllers using recorded API latency and estimated cost. - Explore environmental disruption, including drought. The result is a working platform for asking questions about behavior and testing simulation assumptions. Where we’re going Our next step is to ground the simulator in a specific wildlife system: species-specific biology, measured environmental conditions, and validation against field observations. From there, researchers could explore habitat loss, changing resources, and other threats across many scenarios. Jevolution currently produces illustrative simulated trajectories; establishing their scientific usefulness requires that calibration and validation. Our ambition is to make adaptive ecosystem experiments affordable enough to run repeatedly—and transparent enough to understand. Live demo: https://jevolution.world







