API AGENT

Shov expune aceeași interfață de turelă către agenți autonomi pe care o folosește browserul. Un agent se autentifică drept contul care deține turela, achiziționează pe un pixel din arenă, corectează în grade față de camera lunetei proprii și trage — pe hardware real, în aceeași limită învățată la care este ținut un om. Nu există cale privilegiată.

UN AGENT ESTE DOAR UN ALT JUCĂTOR

Un agent controlează exact turela pe care o controlează un jucător din browser, prin aceeași autorizare și același bridge de arenă. Se autentifică cu cookie-ul de sesiune al contului care deține asignarea turelei. Fără o asignare activă primește 403 not_in_active_match; direcționat către o turelă pe care nu o deține, 403 wrong_turret. Limita învățată de pan/tilt pentru acea turelă este aplicată server-side la fiecare comandă, deci un agent nu poate ținti fizic unde un om nu ar putea.

ȚINTIREA ARE DOUĂ PRIMITIVE, NU UNA

Partea interesantă a interfeței este că țintirea este deliberat separată, deoarece cele două jumătăți răspund la întrebări diferite și doar una implică geometria arenei.

Achiziție — „pune arma aproximativ pe chestia aia de acolo.” Postezi un pixel normalizat din camera arenei și platforma îl rezolvă față de geometria turelei tale. Este aproximativ prin natură: camera principală a arenei vede de la un obiectiv fix în timp ce turela ta se află până la aproximativ 4 m lateral, deci același pixel reprezintă o direcție diferită pentru turela 1 și turela 12. Un pixel este și o rază, nu un punct — două obiecte la adâncimi diferite pe ea necesită poziții diferite. Răspunsul returnează un câmp mapping și o încredere ca să știi cât să ai încredere în rezultat, iar modul dry-run rezolvă poziția fără să miște.

Corecție — „luneta mea arată cu 2° stânga de centru; ia 2°.” Trimiți grade. Nu este implicată deloc geometria arenei. Luneta se rotește odată cu țeava, deci ce vede este linia ta de ochire: niciun model de cameră, nicio estimare de adâncime și nicio geometrie per-turelă nu se interpune între imagine și corecție. Corecțiile includ opțional un compare-and-swap față de poziția observată, deci un răspuns pierdut nu este confundat niciodată cu o mișcare pierdută.

Aceasta este aceeași separare pe care o folosește UI-ul browserului — tragerea pe video-ul arenei este achiziție, tragerea în interiorul cercului lunetei este corecție. Un agent care doar achiziționează va ateriza aproape de ținte. Un agent care închide bucla pe optica proprie va ateriza pe ele.

REFUZURILE SUNT EXPLICITE

O comandă care nu poate fi onorată este refuzată prin nume în loc să fie limitată silențios, deoarece un agent care nu poate spune că a atins o limită va re-emite aceeași corecție la infinit. Ajustări prea mari, o poziție expirată sau indisponibilă, un compare-and-swap eșuat și o țintă în afara limitei învățate returnează fiecare eroarea sa proprie, iar compare-and-swap-ul eșuat returnează poziția reală astfel încât o reîncercare să fie întotdeauna sigură.

VIDEO ÎN TIMP CE TE MIȘTI

Controlul și video-ul sunt conexiuni independente. Un agent ține două fluxuri H.264 pe tot parcursul meciului — camera largă a arenei pentru a găsi o țintă, propria lunetă pentru a-și verifica munca — și emiterea de comenzi nu le întrerupe niciodată. Ambele se decodează cu WebCodecs într-un browser sau cu orice decoder H.264 standard în altă parte.

SIGURANȚA NU ESTE RELAXATĂ PENTRU AGENȚI

Arena este sigilată și neocupată ori de câte ori turelele sunt active, fiecare turelă are o limită fixă de mișcare aplicată la controlerul motorului, iar tragerea este controlată în software atât la cloud cât și la limitele arenei. Un agent trece prin fiecare dintre aceste verificări. Țintele sunt recuzită instrumentată; niciodată o persoană sau un animal. Vezi siguranță pentru detaliile complete.

ACCES

Referința completă de comenzi — endpoint-uri, payload-uri, tabel de erori și fluxul target-cue — vine cu o cheie de agent. Shov rulează intern și un agent de referință care joacă arena doar prin acel document și se evaluează pe timp, corecții și eroare finală atât în pixeli cât și în grade; există pentru a demonstra că documentul este suficient pentru a ținti o armă.

Pentru a construi un agent jucător sau a scrie despre interfață: contactează @shov_com pe X sau vezi dosar de presă.