Skip to content

nvt M1: nvt-bridge + agents/nvt-fat-developer bak filkontrakten #97

Description

@olebhansen

Del av #95. Se doc/plans/nvt-agent-integrasjon.md (PR #94), avsnittene «Arkitektur» og «M1». Forutsetter funnene fra M0.

Mål

Ny utførende agent nvt-fat-developer bak uendret filkontrakt, med en deterministisk nvt-bridge som mapper topic → levende nvt-instans.

Leveranser

  1. agents/nvt-fat-developer/: triggers/-kontrakt som i dag, README, .env.example, og en instruks-mal som rendres inn i instansens AGENTS.local.md (tilpasset utgave av kodeagent-protokollen: «kjenn din begrensning», branch+PR-kontrakt med --base og Closes #, retro/KB-læringer, resultatlinje-format — men uten innboks-polling: oppgaver kommer som prompts, og agentdctl signal done sendes etter resultatlinja).
  2. nvt-bridge (Node/TS): poller inbox (samme dedupe-regel: id uten linje i results), topic = payload.origin.event_id uten delta-suffiks, topic→instans-state, agent-init/agent-up on demand, prompt-injeksjon via docker exec agentdctl prompt --source host --external, fallback-resultatlinje med status:"error" (aldri fabrikert suksess) hvis signal done kommer uten resultatlinje. Serielt per topic, parallelt på tvers (maks N). TTL-basert agent-down for inaktive topics (workspace beholdes).
  3. Container-kjøring av bridgen (docker-outside-of-docker): node-slim + docker/compose-cli, hostens socket mountet, nvt-sjekkout + agentkatalog mountet på samme absolutte sti som på hosten. Fallback: samme kode som node-prosess under WSL2.
  4. Mount av triggers/ inn i instansene som /triggers — agenten skriver resultatlinjer selv, så integrations er uendret.
  5. Én ny rute i AGENT_ROUTES (kun config i deploy-klonens .env), oppdatering av solution-proposal-skillens valgkriterier, doc/log.md.

Akseptansekriterier

  • Delegert issue → PR opprettet av bot-kontoen → resultatlinje → svar i opphavstråden.
  • Oppfølgingsevent i samme topic lander i samme levende sesjon (samme samtale, samme workspace).
  • To topics kjører parallelt i hver sin instans uten å påvirke hverandre.
  • Ingen mount av monorepo/deploy-klone i agentcontainere; deploy-treet urørt etter kjøring.
  • Bridgen kjører i container på WSL2-oppsettet; agentcontainere har aldri hostens Docker-socket.
  • Tokenet virker ikke utenfor arbeidsrepoene; direkte push til beskyttede brancher avvises.

Sikkerhet

  • Delegerte prompts er upålitelig input; --external-preamblen skal alltid med.
  • Ingen hemmeligheter i image, logger, events eller resultatlinjer; tokens kun i .broker/ på hosten.
  • Bot-kontoen skal ikke inn i GITHUB_ALLOWED_USERS; kontonavn holdes utenfor repoet (kun env/broker-config).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions