
# Artefacte

Artefactele vă permit să stocați rezultate persistente ale fluxului de lucru fără să măriți payload-ul principal al stării acestuia.

Sunt potrivite pentru documente în curs de redactare, planuri JSON extrase, citări, manifeste de surse, căi către fișiere generate sau instantanee ale solicitărilor și răspunsurilor pe care doriți să le inspectați ulterior. Sunt deosebit de utile în fluxurile de lucru cu agenți, unde starea finală trebuie să rămână compactă și ușor de citit, chiar dacă fiecare execuție poate genera rezultate intermediare voluminoase.

## De ce artefacte în locul stării fluxului de lucru

Starea fluxului de lucru este ideală pentru datele publice de mici dimensiuni de care are nevoie imediat pasul următor.

Artefactele sunt mai potrivite când rezultatul este mai mare decât valorile obișnuite ale stării, este destinat în principal inspecției ulterioare, este util în interfețele de examinare sau export ori este pur și simplu mai bine reprezentat ca rezultat cu nume decât ca un singur bloc mare de stare.

## Stocarea unui artefact pentru pasul curent al fluxului de lucru

Când codul rulează deja într-un pas al fluxului de lucru, folosiți `Queuety::put_current_artifact()`:

```php
use Queuety\Queuety;
use Queuety\Step;

final class DraftBriefStep implements Step
{
    public function handle(array $state): array
    {
        $draft = [
            'title' => 'Pricing brief',
            'body' => '...',
        ];

        Queuety::put_current_artifact(
            'draft',
            $draft,
            'json',
            [ 'source' => 'planner' ],
        );

        return [ 'draft_ready' => true ];
    }

    public function config(): array
    {
        return [];
    }
}
```

Queuety atașează automat ID-ul fluxului de lucru curent și indexul pasului.

## Stocarea unui artefact din afara fluxului de lucru

Dacă știți deja ID-ul fluxului de lucru, folosiți `Queuety::put_artifact()`:

```php
Queuety::put_artifact(
    $workflow_id,
    'research_brief',
    "# Research Brief\n\nDone.",
    'markdown',
    metadata: [ 'reviewed_by' => 'editor@example.com' ],
);
```

## Citirea artefactelor

```php
$artifact = Queuety::workflow_artifact( $workflow_id, 'draft' );

$artifacts = Queuety::workflow_artifacts( $workflow_id );
```

Fiecare înregistrare de artefact include câmpurile `key`, `kind`, `content`, `metadata`, `step_index`, `created_at` și `updated_at`. `Queuety::workflow_artifacts()` omite `content`, cu excepția cazului în care îi transmiteți `true` ca al doilea argument.

## Integrarea cu starea fluxului de lucru

`Queuety::workflow_status()` include acum un rezumat compact al artefactelor:

```php
$status = Queuety::workflow_status( $workflow_id );

echo $status->artifact_count; // 2
print_r( $status->artifact_keys ); // ['draft', 'citations']
```

Astfel, artefactele rămân vizibile fără ca întregul lor conținut să fie inclus în rezultatul stării.

## CLI

Listați artefactele unui flux de lucru:

```bash
wp queuety workflow artifacts 42
```

Afișați un artefact împreună cu conținutul său:

```bash
wp queuety workflow artifact 42 draft
```

Consultați [CLIreferința completă a comenzilor](https://queuety.inline0.dev/ro/docs/cli).

## Exporturi și reluare

Artefactele sunt incluse în exporturile fluxurilor de lucru și copiate în fluxurile de lucru reluate.

Astfel, execuțiile agenților bazate pe artefacte rămân inspectabile chiar și când le mutați între medii sau recreați o execuție din istoricul ei de execuție exportat.
