Repository guide · 1 diagram

View source on GitHub ↗
Original documentation, preserved from the repository. Historical projections and scenario ambitions are not evidence of live performance. See the current readiness record for deployment requirements.

AGI Jobs v0 (v2) — Demo → CULTURE v0

Start here: Open the interactive Culture Studio · Operator runbook · Studio guide

The published preview is a complete, deterministic browser learning loop: create a lesson, register its lineage, schedule a follow-on evaluation, inspect student scores, compare ratings and difficulty, and export the evidence. It uses no providers or real funds. The separate service stack remains an integration fixture; authentic production commissioning is not simulated away.

AGI Jobs v0 (v2) is our sovereign intelligence engine; this module extends that superintelligent machine with specialised capabilities for demo/CULTURE-v0.

Overview

Capabilities

Systems Map

Architecture diagram · source preserved below
View original Mermaid source
flowchart LR
    Operators((Mission Owners)) --> demo_CULTURE_v0[[Demo → CULTURE v0]]
    demo_CULTURE_v0 --> Core[[AGI Jobs v0 (v2) Core Intelligence]]
    Core --> Observability[[Unified CI / CD & Observability]]
    Core --> Governance[[Owner Control Plane]]

Working With This Module

Use Node 22.23.3 from the root .nvmrc. This module is an independent pnpm 10.5.2 workspace; a root npm installation does not install it.

cd demo/CULTURE-v0
corepack enable
pnpm install --frozen-lockfile
pnpm -r run build
pnpm run lint

For a browser-only preview, run:

VITE_DEMO_MODE=true pnpm --filter culture-studio dev --host 127.0.0.1

Open the URL printed by Vite. The visible Interactive preview banner identifies simulated drafting, uploads, minting, jobs, and rounds. This mode makes no service requests, spends no funds, and supplies illustrative results. All existing workflow screens remain available.

For service integration, leave VITE_DEMO_MODE unset or false, configure VITE_ORCHESTRATOR_URL and VITE_INDEXER_URL, then rebuild/restart the UI. Failed requests remain visible and never turn into simulated successes. Open Operator connection to enter the operator API token; it stays in browser memory and is sent only to the orchestrator. Never enter a wallet private key there.

The arena service can run locally after building:

pnpm --filter culture-arena-orchestrator start

Leave both arena address and operator key unset for its in-memory simulation. On-chain mode requires all three server settings: a deployed nonzero SELF_PLAY_ARENA_ADDRESS, its authorized ORCHESTRATOR_PRIVATE_KEY, and an independent ORCHESTRATOR_API_TOKEN of at least 32 characters. The legacy SELFPLAY_ARENA_ADDRESS alias is supported, but conflicting values stop startup. Use HTTPS and a secret store for remote deployments. Public reads remain available; writes require the token when configured. Corrupt state or failed chain initialization stops startup instead of silently resetting state.

Copy .env.example to .env before using Compose and replace its local placeholders. Its public Anvil keys are for disposable local networks only. Vite settings are build-time values, so rebuild the studio image after changing them. The full Compose/deployment path still needs the integration work listed below.

Run pnpm test for the module gates. Foundry v1.4.4 is required for contract checks. Capture mission telemetry using the module runbooks and OperatorRunbook.md.

Integration and release status

This module is a working preview and development integration, not a completed production deployment. The arena HTTP API implements round operations and telemetry; the studio's LLM, IPFS upload, artifact mint, job creation, and owner-control requests still require real provider implementations. Some backend adapters are simulations even when an on-chain arena client is selected. A configured address alone does not establish end-to-end settlement.

The 2026-10-04 local checks pass: 39 Foundry, 3 Hardhat, 101 orchestrator, 30 indexer, and 28 Studio model/API tests. Studio model/API coverage is 100% lines and 98.45% branches; orchestrator coverage is 99.04% lines and 97.8% branches within its configured coverage scope (which excludes several adapters and the service implementation). Browser checks exercise the complete preview journey, all four sections, keyboard-accessible content, and 320px/390px layouts. These are engineering checks, not an independent security certification. The 39 Foundry tests cover lifecycle, authorization, ownership transfer, configuration, and signed-difficulty boundaries; contract line coverage is 94.06% for CultureRegistry and 97.44% for SelfPlayArena. The indexer has 30 tests with 91.62% lines, 90.64% branches, and 93.42% functions in the current coverage report, including ordered live replay, graph growth, and validator outages. A separate compiled-runtime rehearsal verifies database migration, three real local-chain artifact events, graceful shutdown, and idempotent restart. The gas baseline review explicitly records the two revised scenario ceilings and restored tests. These checks do not establish mainnet settlement or complete provider integration; see the production-readiness record.

Verify the arena adapter against the actual contract

# From demo/CULTURE-v0 after installing the locked workspace:
pnpm run test:arena-adapter

This automated rehearsal starts its own disposable local EVM, checks the compiled contract ABI, exercises the compiled adapter through start/register/close/finalize, and verifies that rejected validation never becomes a finalized round. It uses labeled mock dependencies, no external RPC, and no real funds. CI runs it alongside the contract tests. The service now enforces absolute submission deadlines and durable acknowledgements, requires explicitly reviewed winners, isolates job registries between clients, and preserves confirmed difficulty/PID state when contract finalization fails. The runbook explains these boundaries and recovery steps.

Start the local fixture stack

With Docker Compose, Node 22.23.3, and pnpm 10.5.2 installed, run from demo/CULTURE-v0:

pnpm install --frozen-lockfile
pnpm run local:up

Open http://localhost:4173. Setup writes a separate .env.local, deploys the CULTURE contracts with explicitly labeled test dependency contracts on chain 31337, and seeds three artifacts. RPC and service ports bind to localhost. Existing local deployments are reused; shutdown with pnpm run e2e:down preserves volumes. If the chain was reset independently, setup stops rather than silently associating an old indexer database with a new deployment.

Run pnpm run test:e2e for the Compose health/ingestion checks and the Cypress UI walkthrough. Cypress uses explicit UI response fixtures; the separate health check verifies actual seeded-chain ingestion and rejects unauthenticated arena writes. LLM generation, IPFS upload/minting, job creation, paid settlement, and production dependency adapters still require their intended provider integrations. Local fixture keys must never be used on a funded network.

The UI smoke test uses Cypress 16.1.1 and an installed Chrome browser. CI downloads Chrome for Testing 155.0.8059.39, verifies its pinned SHA-256, and passes its exact executable path to Cypress; it does not depend on the runner image's auto-updated browser. The version and checksum live in the active workflow. To reproduce with another installed Chrome executable, start the stack, run node scripts/check-local-stack.mjs, then pnpm exec cypress run --browser /absolute/path/to/chrome --config-file cypress.config.ts. Use node scripts/run-local-stack.mjs --logs to inspect the same isolated Compose project before shutting it down.

Directory Guide

Key Directories

Key Files

Quality & Governance

Next Steps

← Back to CULTURE