# Resolve (/ro/docs/resolve)

Remedieri de bug-uri verificate prin execuție: îndrepți Resolve către un repo public GitHub și un issue, primești un patch dovedit prin teste și o atestare publică. Fără fix, fără plată.

**Resolve** transformă un issue GitHub într-un pull request în care poți avea încredere fără să citești întâi diff-ul. Scrie un test de reproducere *înainte* să atingă codul tău, repară bug-ul într-un sandbox, dovedește că reproducerea trece acum și că suita ta existentă încă trece, și publică o **atestare** — patch-ul, testul de reproducere, output-ul testelor înainte/după, digest-ul imaginii runner-ului — la un URL pe care oricine îl poate deschide. Plătești un preț fix cotat doar după ce acea atestare există. **Încercările eșuate nu costă nimic și nu deschid niciun PR.**

URL de bază `https://resolve.codai.ro`. Aceeași cheie `codai_` ca pe gateway.

<Callout type="info">
Beta privat. Doar repo-uri publice `github.com`; **Python (pytest)** și **JavaScript/TypeScript (vitest, jest, node:test)** sunt căile de verificare suportate.
</Callout>

## Trei pași [#trei-pași]

<Steps>
<Step>

### Trimiți un repo și un issue [#trimiți-un-repo-și-un-issue]

Etichetezi issue-ul **`codai-fix`** cu [acțiunea GitHub](./github-action.mdx) instalată, sau apelezi API-ul:

```bash
curl -X POST https://resolve.codai.ro/v1/resolve/jobs \
  -H "Authorization: Bearer $CODAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "repo_url": "https://github.com/owner/repo",
    "issue_url": "https://github.com/owner/repo/issues/42"
  }'
```

Triajul citește issue-ul și răspunde cu una din trei cotații fixe — **7 €**, **19 €** sau **49 €** — sau **refuză gratuit** când nu crede că un fix verificat este probabil. Primele **3** remedieri verificate sunt gratuite și pornesc imediat.

```json
{
  "id": "5f0c…",
  "status": "quoted",
  "tier": "t19",
  "quote_micro_usd": 19000000,
  "triage_reason": "moderate: multi-file, needs investigation",
  "free_tier_remaining": 0
}
```

</Step>
<Step>

### Accepți cotația [#accepți-cotația]

Job-urile gratuite se auto-acceptă. Pentru o cotație plătită, `POST /v1/resolve/jobs/{id}/accept` (sau lași acțiunea să o facă sub `max-tier`-ul tău). Job-ul trece în `accepted` și pornește un runner izolat: întâi testul de reproducere, apoi fix-ul, apoi suita completă.

</Step>
<Step>

### Primești atestarea [#primești-atestarea]

Interoghezi `GET /v1/resolve/jobs/{id}` până când `status` este `resolved` (sau `failed` / `error`). Un job rezolvat poartă `attestation_url` — un document JSON public la `/v1/resolve/attestations/{id}` cu patch-ul și fiecare output de teste. Aplici patch-ul, sau lași acțiunea să deschidă PR-ul pentru tine, cu atestarea legată.

</Step>
</Steps>

## De ce contează atestarea [#de-ce-contează-atestarea]

Rândul de facturare **nu poate fi scris fără un rând de atestare verificată** — asta este impus în cod, nu prin politică. Așadar URL-ul pe care îl dai echipei este exact artefactul care a decis dacă ai fost taxat. Nimic de luat pe încredere: reproducerea eșuează *înainte* pe commit-ul de bază, trece *după* cu patch-ul, iar output-ul suitei de regresie este chiar acolo.

<Cards>
  <Card title="Acțiunea GitHub" href="./github-action.mdx" description="Etichetezi un issue, primești un PR cu dovadă. Intrări, ieșiri, permisiuni, workflow-uri exemplu." />
  <Card title="Cum funcționează" href="./how-it-works.mdx" description="Ciclul de viață al job-ului, ce dovedește atestarea, ce atinge și ce nu atinge runner-ul." />
  <Card title="Prețuri și limite" href="./pricing-and-limits.mdx" description="Praguri fixe, nivelul gratuit, blocarea în portofel și rambursarea, plafoane și timeout-uri." />
  <Card title="Referință API" href="../api/resolve.mdx" description="Fiecare rută și câmp, cu playground." />
</Cards>
