# Lokalna demonstracja granicy wysyłki formularza

Opracowanie: ekspertodsztucznejinteligencji.pl, 11.10.2026.

To deterministyczna demonstracja infrastruktury. Nie używa Claude, innego
modelu, przeglądarki ani prawdziwego formularza. Błędne wywołanie i zastępcza
droga po awarii są zapisane w skrypcie przed uruchomieniem. Tekst instrukcji
nie jest interpretowany. Nie mierzymy, czy model go posłucha.

## Uruchomienie

Rozpakuj paczkę do jednego katalogu. Potrzebujesz Node.js; zapisany przebieg
wykonano na v26.3.0, macOS arm64. Skrypt używa bibliotek standardowych,
bez npm install i bez zależności zewnętrznych.

```bash
node agent-formularz-demo.mjs moj-wynik.json
node agent-formularz-demo.mjs --verify moj-wynik.json
```

Pierwsza komenda uruchamia pięć przypadków i zapisuje nowy plik. Skrypt odmawia
nadpisania istniejącego pliku. Druga ponownie liczy wyniki z dzienników żądań
i rekordów oraz porównuje sumy SHA-256 protokołu, przypadków i kodu.

Aby sprawdzić wynik autora bez otwierania portu:

```bash
node agent-formularz-demo.mjs --verify agent-formularz-wyniki.json
```

Skrypt nasłuchuje na 127.0.0.1 na porcie przydzielonym przez system i łączy się
wyłącznie z tym adresem. Nie ma parametru zewnętrznego URL, proxy, DNS ani
automatycznych przekierowań. Ograniczenie wynika z kodu; nie przeprowadzano
niezależnego przechwycenia pakietów. Otwarcie lokalnego portu może wymagać zgody
środowiska uruchomieniowego. Kod serwera jest atrapą do tej demonstracji,
nie produkcyjną biblioteką bezpieczeństwa.

## Co jest w paczce

- `agent-formularz-protokol.md`: pytanie, granice, oczekiwania przed wykonaniem.
- `agent-formularz-przypadki.json`: syntetyczna treść i konfiguracje A–E.
- `agent-formularz-demo.mjs`: uruchomienie i weryfikacja bez nowych zależności.
- `agent-formularz-wyniki.json`: pełny pierwszy udany przebieg, konfiguracje,
  statusy HTTP, stan tablicy zapisów, czas i środowisko.
- `agent-formularz-manifest.json`: sumy SHA-256 plików paczki poza samym manifestem.
- `agent-formularz-README.md`: odtworzenie, ograniczenia i licencje.

## Wynik z 11 października 2026

| ID | POST | Status POST | Zapisane rekordy | Miejsce odmowy |
| --- | --- | --- | --- | --- |
| A | 1 | 201 | 1 | brak; kontrola dodatnia |
| B | 1 | 201 | 1 | brak; tekst instrukcji nie jest blokadą serwera |
| C | 0 | brak | 0 | rejestr narzędzi |
| D | 1 | 201 | 1 | brak; ogólny klient HTTP omija rejestr |
| E | 1 | 403 | 0 | serwer |

Każdy przypadek ma własny serwer i pustą tablicę. Zapisane rekordy są wyłącznie
w jego pamięci, a po zamknięciu instancji znikają. A używa sprawnej atrapy
ćwiczeniowej. B–E zaczynają od jej błędu 503 i przechodzą do drugiej lokalnej
atrapy nazwanej `production-like`. Ta nazwa nie oznacza połączenia z produkcją.

W C testujemy próbę przez rejestr bez funkcji wysyłki. W D celowo próbujemy
tej samej operacji klientem HTTP. E różni się od D wyłączeniem zapisów w
konfiguracji serwera. Klient nie zmienia jej nagłówkiem ani treścią formularza.
Nie zaimplementowano autoryzacji użytkowników, zgody człowieka, przeglądarki,
CSRF, przekierowań, powtórzeń po utracie odpowiedzi ani innych endpointów.
Pięć przypadków nie stanowi próby statystycznej i nie daje odsetka bezpieczeństwa.

## Historia wykonania

Protokół, przypadki i skrypt zapisano przed pierwszym wykonaniem. Kontrola
składni `node --check` przeszła. Pierwsza próba w sandboxie zakończyła się
`listen EPERM` na 127.0.0.1 przed wysłaniem jakiegokolwiek żądania; nie powstał
plik wyników. Po zezwoleniu na lokalny nasłuch ten sam skrypt uruchomiono
11.10.2026 o 15:02:30 UTC. Publikujemy ten pierwszy udany przebieg. Nie zmieniono
protokołu, przypadków ani kodu między obiema próbami.

## Licencje

Własny protokół, dane, wyniki i opis są na licencji Creative Commons
Attribution 4.0 International (CC BY 4.0). Przy wykorzystaniu podaj źródło:
Robert Marczyński, ekspertodsztucznejinteligencji.pl, „Wysyłka formularza przez
agenta AI: gdzie działa blokada”, 11.10.2026.

Kod `agent-formularz-demo.mjs` udostępniono na licencji MIT:

Copyright (c) 2026 Robert Marczyński

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
