pasteToPrint · AI dokumentácia

Implementačný záznam · technická dokumentácia · runbook

Univerzálny jazykový asistent pre dokumenty

Kompletný záznam implementácie GPT-5.5 asistenta v pasteToPrint: od výsuvnej vrstvy cez univerzálny dokumentový kontrakt a 48 lokalít až po bezpečné dokumenty, generované obrázky, omaľovánky, fullscreen režim a akceptačné testy.

Verzia dokumentu 1.0 Stav k 26. 8. 2026 Model GPT-5.5 PTDF-native Bez kľúča v prehliadači
Etapy13 / 13implementované
Lokalizácie48vrátane RTL
Typy dokumentov14univerzálny register
Lokálny runtimeoverujem…bez volania modelu
Builddynamickýmanifest sa načíta lokálne

01 · Výsledok

Čo bolo implementované

Asistent je univerzálna dokumentová vrstva, nie fakturačné jadro. Rozumie požiadavke, vyberie vhodný typ dokumentu, použije iba údaje, ktoré zadal používateľ, a chýbajúce polia ponechá ako vyplniteľné zástupné miesta v striktne validovanom PTDF. Po jednorazovom povolení môže bežné dokumentové zmeny aplikovať priamo do editora.

8
zámerov asistenta vrátane bezpečného generovania obrázka alebo omaľovánky
10
povolených PTDF operácií v aplikačnom kontrakte
0
API kľúčov odoslaných do JavaScriptu alebo vložených do HTML
20/20
lokálnych akceptačných scenárov v poslednom zázname testovania
Povinná bezpečnostná akcia

API kľúč, ktorý bol niekedy vložený do chatu, ticketu, zdrojového súboru alebo klienta, treba zrušiť a nahradiť novým. Dokumentácia kľúč neobsahuje. Nový kľúč sa ukladá iba cez chránenú administráciu a backend ho šifruje v MySQL.

Aktuálny lokálny stav

Lokálny status endpoint pri vytvorení tejto dokumentácie hlásil model gpt-5.5 ako nakonfigurovaný a dostupný. Prípravný preflight prešiel s jediným upozornením: pred produkčným štartom treba nastaviť verejný HTTPS pôvod.

Preflight: ready with warnings produkčné HTTPS čaká

Autoritatívny zdroj stavu

Hodnoty v hornom paneli sa pri otvorení cez lokálny server načítajú z status.php a manifest.php. Otvorenie dokumentácie ako lokálneho súboru používa statický fallback a nevykoná žiadnu požiadavku na model.

02 · Rozsah

Návrhové princípy

Rozhodnutia, ktoré držia asistenta všeobecného, bezpečného a rozšíriteľného aj pri raste počtu jazykov a dokumentových modulov.

  1. 01Univerzálnosť. Faktúra je iba jeden modul registra. Jadro pracuje so zámermi, blokmi, operáciami a schémami bez účtovnej doménovej závislosti.
  2. 02Šablóna je deterministická opora. Model vyberá typ a dodáva obsah; vizuálne pravidlá, povinné polia a PTDF blueprinty spravuje aplikácia.
  3. 03Človek povoľuje priame úpravy. Prvý zápis vyžaduje verziovaný súhlas. Ďalšie validované zmeny sú automatické, vratné a povolenie možno kedykoľvek odvolať.
  4. 04Server je hranica dôvery. Kľúč, rate limit, prístupová politika, skenovanie tajomstiev aj validácia odpovede sú serverové.
  1. 05Kontrakty pred voľným textom. Responses API vracia strict Structured Output, ktorý prejde provider schémou, registrom šablón, PTDF validátorom a odpoveďovým kontraktom.
  2. 06Jazyk konverzácie ≠ jazyk dokumentu. Obe lokality sú samostatné polia, čo podporuje napríklad slovenské pokyny pre nemecký dokument.
  3. 07Minimum trvalých dát. História, návrhy a diagnostika sú v pamäti stránky; server ukladá iba neobsahové agregáty a prevádzkový stav.
  4. 08Bezpečný default. Neznámy dokument padá na blank, neúplné údaje zostanú vo vyplniteľných poliach bez vypytovania a nedostupný runtime nevytvorí modelovú požiadavku.
03 · Implementačný záznam

Etapy 1 až 13

Každá etapa je samostatne dohľadateľná podľa cieľa, funkcie, súboru alebo akceptačného kritéria.

01Výsuvná vrstva asistentaElegantný vstupný bod v strede spodnej hrany editora+
Cieľ: pridať asistenta bez narušenia pracovnej plochy.
  • Plávajúci launcher, dialógová vrstva, mobilný režim a klávesnicové ovládanie.
  • Stavy zavreté / otvorené / spracovanie / chyba a lokalizované texty.
  • Vstup ostáva súčasťou existujúceho editora a neotvára samostatnú aplikáciu.
Akceptácia: otvorenie, fokus, Escape a návrat fokusu fungujú; rozloženie je responzívne.
02Univerzálny dokumentový kontraktVerzionované schémy namiesto fakturačného jadra+
Cieľ: definovať stabilnú hranicu medzi UI, modelom a dokumentovými režimami.
  • 8 akcií: create_document, update_document, format_content, change_template, analyze_document, request_missing_data, answer_question a generate_image.
  • Kontrakt ptp.assistant/2 prenáša contentMode, zdôvodnenie voľby a diskriminovaný PTDF alebo HTML artifact.
  • ptp.html-pipeline/1 zjednocuje všeobecný HTML/CSS import, preview, finálne vloženie a konštrukciu dôveryhodného HTML artifactu; výstup obsahuje report odstránených elementov, atribútov a CSS deklarácií.
  • Etapa 3 prijíma HTML zo siete iba ako nedôveryhodný kandidát, lokálne ho kanonizuje a zobrazí v izolovanom iframe. Použitie vyžaduje samostatné potvrdenie nahradenia a zmeny formátu; PTDF direct-edit súhlas sa na HTML nevzťahuje.
  • Etapa 4 zapája produkčný provider: server podľa explicitnej voľby, aktuálneho režimu a vizuálnej zložitosti autoritatívne volí PTDF alebo statické HTML/CSS.
  • Etapa 5 povoľuje iba jednorazový JavaScript generátor pre výpočty, podmienky a programové opakovanie. Beží mimo aplikačného originu v zničiteľnom Web Workeri; do dokumentu vstupuje len sanitizované statické HTML/CSS. Aktívny JavaScript po importe ostáva zakázaný.
  • Starší ptp.assistant/1 zostáva podporovaný pre PTDF a chybové odpovede.
Akceptácia: platné príklady oboch vetiev prejdú; reálny browser test odstráni spustiteľné HTML a nepovolené CSS, zachová povolený štýl a finálne vloženie emituje strojovo čitateľný sanitizačný report.
02.6Real-time orchestrácia dokumentových režimovPravdivý priebeh, viditeľná voľba PTDF/HTML a bezpečné zrušenie+
Cieľ: sprístupniť reálne fázy jednej požiadavky bez streamovania čiastočných dokumentov.
  • Nový klient explicitne vyžiada striktne verzovaný ptp.assistant.stream/1 NDJSON prúd; starý JSON transport zostáva nezmenený.
  • Server oznamuje validáciu požiadavky, autoritatívnu voľbu režimu, generovanie a prijatie úplného kandidáta. Klient dopĺňa skutočné lokálne fázy generátora, sanitizácie, validácie a prípravy preview.
  • Stop preruší fetch a zničí lokálny generátor pred hranicou návrhu/aplikácie. Neskorý výsledok sa ignoruje; už prijatú upstream požiadavku však klient nevie garantovane zrušiť.
  • Prúd je iba informačný: nepovoľuje formát, JavaScript ani zmenu dokumentu a nikdy neprenáša čiastočný artifact.
Akceptácia: striktne sa odmietne neznáma alebo neusporiadaná udalosť, JSON fallback ostáva funkčný a reálny browser test potvrdí zrušenie bez aplikácie a sanitizované HTML bez spustenia skriptu.
02.7Bezpečné priame úpravy HTMLSamostatný súhlas, úzka eligibility a strážené Undo+
Cieľ: umožniť automatickú aplikáciu bezpečnej úpravy existujúceho HTML bez prenesenia PTDF súhlasu.
  • HTML má vlastný verzovaný consent scope a oddelený úložný kľúč bez správ alebo obsahu dokumentu.
  • Automaticky sa použije iba čistý HTML→HTML návrh s dôvodom preserve_current_html, platným fingerprintom, nulovým sanitizačným zásahom a bez generátora.
  • Nový HTML dokument, zmena formátu, neaktuálny návrh, opravené HTML a JavaScript-generator výstup zostávajú v manuálnom izolovanom review.
  • Finálne vloženie znovu prejde ptp.html-pipeline/1, vytvorí jeden históriový krok a sprístupní strážené Undo.
Akceptácia: PTDF súhlas neautorizuje HTML, zmena editora zneplatní návrh a browser test potvrdí čistú auto-aplikáciu, návrat presného snapshotu aj review fallback pri odstránenom event handleri.
02.8Vyjednávanie reálnych schopností prehliadačaRuntime probe, serverový prienik a bezpečný statický fallback+
Cieľ: povoliť HTML a jednorazový JavaScript generátor iba v prehliadači, ktorý reálne zvládol ich bezpečnostné hranice.
  • Klient pred prvou správou vykoná neobsahový test ptp.html-pipeline/1, scriptless review iframe a skutočný disposable iframe/Worker generátor.
  • Na server posiela presne päť polí kontraktu ptp.assistant.client-capabilities/1; žiadny user-agent, hardvér, device ID, obsah dokumentu ani detail chyby.
  • Server hodnoty iba pretne s vlastnou politikou. Neúspešný JS probe prepne na kompletné statické HTML; nedostupný bezpečný HTML review HTML požiadavku zablokuje; PTDF ostáva dostupné.
  • activeJavascriptDocument musí byť vždy false. Capability nikdy nepovolí skript v uloženom dokumente ani v aplikačnom origine.
Akceptácia: striktný parser odmietne neznáme a nekonzistentné polia, chýbajúce capability sú fail-closed a reálny Chromium test potvrdí úspešný izolovaný probe, odstránenie jeho iframe aj odoslanie presného kontraktu.
02.9Ohraničená obnova po zlyhaní generátoraJeden viditeľný retry so statickým HTML a nulovým čiastočným stavom+
Cieľ: bezpečne dokončiť požiadavku, keď prehliadač prešiel runtime probe, ale konkrétny jednorazový skript zlyhá alebo timeoutne.
  • Recovery je povolené iba pre platný generator kandidát a explicitné runtime/input/execution chyby; nie pre sieť, sanitizér, kontrakt alebo zrušenie používateľom.
  • Klient zahodí prvý výstup, zobrazí stav fallbacku a zopakuje nezmenenú správu a snapshot s novým request ID najviac raz.
  • Druhý capability objekt ponechá overený HTML pipeline/review, ale nastaví javascriptGenerator: false; ďalší generátor je policy mismatch a nespustí sa.
  • Druhý request opakuje access, rate limit, runtime admission, secret scan, routing aj provider/output validáciu a výsledok zostáva v manuálnom HTML review.
Akceptácia: reálny Chromium test vyvolá chybu Workera, zachytí presne dva requesty, overí downgrade capability, viditeľný priebeh, žiadny čiastočný dokument a označený statický návrh.
02.10Reálny systémový action contractAutoritatívny register, command binding a nulové vymyslené schopnosti+
Cieľ: vytvoriť pravdivý základ pre budúce ovládanie pasteToPrint asistentom.
  • ptp.assistant.actions/1 prenáša iba aktuálnu dostupnosť 20 registrovaných systémových workflow; klientsky snapshot nikdy nie je oprávnenie.
  • Každá akcia je mapovaná na reálny pasteToPrint.editor-commands/1 príkaz, má uzavretú vstupnú schému, účinok, bezpečnostnú úroveň, pravidlo potvrdenia a undo vlastnosť.
  • Formát a orientácia papiera majú nové verejné aplikačné príkazy. Tlač, exporty, e-mail PDF, podpis, cloud a mobilný prenos sa objavia iba vtedy, keď ich reálny command adapter registruje a povolí.
  • executionEnabled je v celej etape presne false; model smie schopnosť pravdivo opísať, ale nesmie tvrdiť, že niečo vykonal, odoslal alebo exportoval.
Akceptácia: PHP a JS odmietnu vymyslené ID, neznáme polia a zapnutie executora; Chromium potvrdí reálny binding orientácie a odoslanie snapshotu bez zmeny dokumentu či exportu.
02.11Lokálny transakčný executorPäť reálnych nízkorizikových príkazov s live recheckom a postcondition+
Cieľ: umožniť asistentovi bezpečne dokončiť prvé lokálne požiadavky v reálnom rozhraní pasteToPrint.
  • ptp.assistant/3 a ptp.assistant.provider/4 prenášajú najviac jeden serverom validovaný plán ptp.assistant.action-plan/1.
  • Allowlist obsahuje iba formát a orientáciu papiera, Undo, Redo a prepnutie témy; všetky majú účinok mutate, nízke riziko a nepotrebujú potvrdenie.
  • Prehliadač pred dispatchom znovu overí živú dostupnosť a canExecute, vykoná existujúci command binding, počká na front a skontroluje výsledný command state.
  • Request ID chráni pred replay a lokálne mutácie sa serializujú. Úspešná veta sa zobrazí až po overenom výsledku.
  • Tlač, export, download, e-mail, podpis, import, cloud a prenos zostávajú vykonávaním vypnuté a patria do ďalších etáp.
Akceptácia: serverové a klientské testy blokujú nepovolené ID, zlé vstupy, replay, zmenu politiky a neúspešnú postcondition; Chromium reálne zmení orientáciu aj tému, nespustí download a nezobrazí úspech stale plánu.
02.12Potvrdené lokálne výstupyTlač a šesť reálnych exportov s výsledkovým handshake+
Cieľ: umožniť asistentovi dokončiť reálnu tlač a lokálne exporty bez falošných tvrdení.
  • Allowlist pridáva iba file.print, PDF, TXT, HTML, JSON a PTDF; každý výstup má politiku export / guarded / review.
  • Klient vyžaduje nové viditeľné potvrdenie pri každom výstupe. Odmietnutie nič nedispatchne a úspešná modelová veta sa zahodí.
  • Existujúci command dispatcher volá reálne output workflow. Executor čaká na zhodné action ID a request ID v pasteToPrint.output-result/1.
  • Download je úspešný až po reálnom kliknutí odkazu. Pri tlači možno potvrdiť iba otvorenie dialógu, nikdy dokončenú tlač.
  • E-mail PDF, cloud, podpis, import, prenos a ľubovoľné UI kliknutia zostávajú blokované.
Akceptácia: unit testy blokujú chýbajúci súhlas, odmietnutie, timeout, replay aj externé ID; Chromium po súhlase reálne stiahne TXT a po odmietnutí nevytvorí druhý download ani falošný úspech.
02.13Explicitné odoslanie PDF e-mailomJedna reálna externá akcia s adresou, súhlasom a potvrdením accepted+
Cieľ: dovoliť asistentovi bezpečne odoslať aktuálny dokument ako PDF bez tvrdenia o nedokázanom doručení.
  • Externý allowlist obsahuje iba file.email-pdf s politikou external / high / explicit a povinným validným vstupom email.
  • Server overí, že adresa je priamo v aktuálnej správe používateľa. Pred dispatchom sa zobrazí v čerstvom explicitnom potvrdení spolu s hranicou výsledku.
  • Existujúci PDF generátor odošle multipart na reálny email endpoint. Executor čaká na zhodné action ID a request ID v pasteToPrint.external-result/1.
  • Úspech znamená iba deliveryStatus: accepted; nie doručenie, otvorenie ani prečítanie.
  • Cloud, mobilný prenos, podpis, import a navigácia zostávajú nevykonateľné.
Akceptácia: unit testy blokujú zlú, chýbajúcu aj v aktuálnej správe neprítomnú adresu, nesprávnu politiku, cloud, transfer, odmietnutie a timeout; Chromium v lokálne zachytenom endpointe overí PDF multipart a potlačí úspech po odmietnutí aj chybe.
02.14Dočasný mobilný prenosReálny HTML/TXT odkaz a QR kód s pravdivým stavom ready+
Cieľ: umožniť asistentovi vytvoriť reálny mobilný prenos bez tvrdenia, že ho zariadenie prevzalo.
  • Allowlist pridáva iba transfer.send-mobile s politikou external / high / explicit a povinným formátom html alebo txt.
  • Server overí, že formát je priamo v aktuálnej správe. Potvrdenie zobrazí formát aj informáciu o dočasnom externom odkaze.
  • Existujúci send-mobile workflow odošle sanitizovaný HTML alebo čistý text na reálny create endpoint a zobrazí modal, prijímací odkaz a lokálny QR kód.
  • Úspech vyžaduje platný token, status: ready a zhodný pasteToPrint.external-result/1; znamená iba pripravený odkaz a QR.
  • Cloud, prijímanie z mobilu, podpis, import a navigácia zostávajú nevykonateľné.
Akceptácia: testy blokujú chýbajúci alebo zlý formát, formát mimo aktuálnej správy, cloud, receive-mobile, odmietnutie, chybu aj timeout; Chromium vytvorí jeden lokálne zachytený HTML prenos a overí modal, odkaz a QR kód bez skutočného serverového súboru.
02.15Prijímacia relácia z mobiluUpload odkaz a QR kód s pravdivým stavom pending+
Cieľ: pripraviť reálnu reláciu na prijatie súboru bez tvrdenia, že súbor už prišiel.
  • Allowlist pridáva transfer.receive-mobile s politikou external / high / explicit a bez vstupných parametrov.
  • Potvrdenie vysvetlí vytvorenie dočasnej externej upload relácie, odkazu a QR kódu aj to, že súbor ešte nie je prijatý.
  • Existujúci transfer workflow zavolá reálny create endpoint, overí pending stav a token, zobrazí modal a spustí polling status endpointu.
  • Asistentov úspech vyžaduje zhodný pasteToPrint.external-result/1 so stavom pending; nesmie tvrdiť upload ani prijatie súboru.
  • Cloud, podpis, import a navigácia zostávajú nevykonateľné.
Akceptácia: testy blokujú vstupné polia, inú politiku, cloud, podpis, odmietnutie, chybu aj timeout; Chromium vytvorí jednu lokálne zachytenú pending reláciu, overí modal, odkaz, QR a polling bez skutočného tokenu alebo súboru.
02.16Lokálne importné pickeryOffice/PDF, fotografia a PTDF bez prístupu AI k lokálnym súborom+
Cieľ: umožniť asistentovi vyžiadať reálny systémový výber súboru bez tvrdenia, že import už prebehol.
  • Allowlist pridáva file.import-office, file.import-photo a file.import-ptdf s politikou navigate / guarded / explicit a bez vstupných parametrov.
  • Čerstvé potvrdenie pomenuje druh súboru a vysvetlí, že výber, načítanie aj import zostávajú pod kontrolou používateľa.
  • Core vyvolá presný existujúci file input a vyšle zhodný pasteToPrint.import-result/1 iba so stavom picker_requested.
  • Úspech nesmie znamenať vybraný, načítaný, validovaný, vložený alebo aplikovaný súbor.
  • Podpis, cloud a všeobecná navigácia zostávajú nevykonateľné.
Akceptácia: serverové a klientské testy blokujú lokálnu cestu, inú politiku, odmietnutie, chybu aj timeout; Chromium zachytí reálne filechooser udalosti na troch správnych inputoch bez výberu skutočného súboru.
03Register šablón a typov dokumentov14 univerzálnych typov, povinné polia a PTDF blueprinty+
Cieľ: oddeliť obsahový zámer od vizuálnej šablóny.
  • Typy od prázdneho dokumentu a poznámky po faktúru, ponuku, list, reklamáciu, zápisnicu a servisný záznam.
  • Každý typ deklaruje zámery, kategóriu, povinné/voliteľné polia, prekladové kľúče a blueprint.
  • Neznámy alebo neurčitý zámer bezpečne používa blank.
Akceptácia: PHP aj browser registry vracajú rovnakých 14 typov a všetky prejdú schémou.
04Serverový GPT-5.5 providerOpenAI Responses API, strict Structured Outputs, žiadny kľúč v klientovi+
Cieľ: bezpečne pripojiť model k dokumentovému kontraktu.
  • POST https://api.openai.com/v1/responses, model gpt-5.5, store: false, reasoning effort low.
  • Modelový výstup má zúžených 7 PTDF operácií alebo kompletný statický HTML/CSS kandidát; server autoritatívne vynucuje zvolený režim.
  • Médiá sa z kontextu odstraňujú; binárne dataUrl sa modelu neposielajú.
Akceptácia: provider testy používajú injektovaný mock transport a nevykonajú platené volanie.
05Kontrolovaná vrstva návrhovPreview, história návrhov a ochrana pred zastaraným dokumentom+
Cieľ: zabrániť neaktuálnej zmene dokumentu.
  • Maximálne 8 posledných návrhov len v pamäti stránky; obnovenie stránky alebo nový rozhovor ich odstráni.
  • Návrh možno prezrieť, stiahnuť ako PTDF, odmietnuť a počas relácie obnoviť.
  • Fingerprint vstupného PTDF odhalí, že editor sa od vytvorenia návrhu zmenil, a aplikáciu zablokuje.
Akceptácia: fingerprint sa kontroluje pred manuálnym aj automatickým použitím; neaktuálny návrh dokument nezmení.
06Kvalita, spätná väzba a observabilityNeobsahová telemetria a offline viacjazyčné evaly+
Cieľ: merať kvalitu bez ukladania dokumentov a konverzácií.
  • Explicitné „Pomohlo / Nepomohlo“; server prijíma iba strict feedback kontrakt.
  • Mesačné agregované počty, retencia 12 mesiacov, limit 60 spätných väzieb / IP / 24 h.
  • Max. 40 diagnostických udalostí v pamäti stránky; export neobsahuje prompt ani odpoveď.
  • Viacjazyčné evaly používajú mock transport.
Akceptácia: agregácia neobsahuje message, history, document, reply, request ID ani IP.
07Produkčné runtime brzdyFeature flag, rollout, rozpočet, kapacita a circuit breaker+
Cieľ: kontrolovať dostupnosť a náklady pred každou provider požiadavkou.
  • Hlavný prepínač, deterministický rollout podľa zdrojovej IP, denný UTC rozpočet a súbežné lease.
  • Circuit breaker pri opakovaných chybách provideru a verejný, ne-senzitívny status endpoint.
  • Klient status obnoví pri otvorení asistenta; server ostáva autoritatívny.
Akceptácia: zablokovaný runtime nevytvorí požiadavku na OpenAI a vracia stabilný kód s retryAfter, kde je relevantný.
08Ochrana obsahu a tajomstievVstupný aj výstupný scanner a hranice dôvery promptu+
Cieľ: zabrániť odoslaniu vysokokonfidenčných tajomstiev a prijatiu nebezpečného výstupu.
  • Pred rate limitom a runtime admission sa skenuje správa, história a normalizovaný text PTDF.
  • Preskočí sa iba validované obrazové pole dataUrl normalizovaného PTDF; reťazec, ktorý iba vyzerá ako Data URI v správe, histórii alebo textovom bloku, sa naďalej skenuje.
  • Blokujú sa API kľúče, private-key hlavičky, bearer credentials, JWT a známe access tokeny; IBAN, IČ DPH, adresy a fakturačné údaje ostávajú povolené.
  • Po validácii sa rovnakou politikou skenuje aj výstup modelu.
  • Dokument a história sú označené ako nedôveryhodný referenčný obsah; pokyny v nich nemajú prioritu.
Akceptácia: detekcia vracia 422 a telemetria uloží iba kategóriu a zdroj, nikdy nájdenú hodnotu.
09Pripravenosť na nasadenie a povereniaŠifrovaný kľúč, pseudonymný safety identifier a preflight+
Cieľ: pripraviť kontrolovaný handoff bez vystavenia kľúča.
  • API kľúč sa spravuje cez chránenú administráciu, šifruje Sodium secretboxom a ukladá do jedného riadka MySQL tabuľky.
  • Šifrovací kľúč a salt pre safety_identifier sa odvodzujú z master secretu oddelenými HKDF kontextmi.
  • Safety identifikátor je 48-znakový HMAC digest; raw IP ani account ID nejde modelu.
  • Preflight kontroluje PHP, cURL, schémy, register, poverenia, úložiská, model a produkčné HTTPS.
Akceptácia: report neobsahuje tajomstvá; produkčný režim zlyhá bez HTTPS a externých zapisovateľných adresárov.
10Launch acceptance a prístupnosťDeterministický manifest, bezpečný smoke test a voliteľná live sonda+
Cieľ: získať reprodukovateľný dôkaz o tom, čo sa nasadzuje.
  • Secret-free manifest obsahuje build ID, verzie komponentov a počty schopností.
  • Bezpečný launch check kontroluje manifest a runtime bez modelovej požiadavky.
  • Platená live sonda je nemožná bez súčasného produkčného režimu, --live a --confirm-live.
  • Dialóg vracia fokus launcheru, používa aria-busy, aria-live a bezpečnostný popis vstupu.
Akceptácia: safe launch check vykáže live_probe: skipped. Súhrnná release gate má prejsť po odstránení aktuálneho false-positive nálezu syntetických credential fixture v dvoch testovacích súboroch.
11Generovanie obrázkov a omaľovánokImage Generation tool, bezpečný WebP a kontrolovaný PTDF import+
Cieľ: umožniť používateľovi v tom istom rozhovore vytvoriť a vložiť nový vizuál.
  • Bežná textová požiadavka nástroj image_generation vôbec nedostane. Sprístupní ho iba explicitná rýchla voľba Obrázok alebo Omaľovánka cez pevnú serverovú capability.
  • Pri autorizovanom obrazovom toku sa modelu neposiela história ani obsah aktuálneho dokumentu; zostane iba neobsahový PTDF shell potrebný na bezpečné pripojenie výsledku.
  • Neurčitá požiadavka najprv vyvolá otázku na námet a server zachová rovnakú capability iba pre túto nadväzujúcu odpoveď.
  • Výstup je jeden portrétový WebP; server overí Base64, skutočnú signatúru formátu a limit 1,1 MB ešte pred zostavením PTDF.
  • Omaľovánka dostáva tlačové pravidlá: biele pozadie, čisté uzavreté obrysy, okraje, bez sivej, tieňov a gradientov.
  • Pri otvorenom dokumente server zachová existujúci obsah a pridá validovaný image blok; nikdy nevloží binárne dáta vytvorené modelovým JSON plánom.
  • Verejný kontrakt prenáša jazykovo neutrálny mediaKind, ktorý sa musí zhodovať s autorizovanou capability: bežný obrázok ostáva v PTDF kontrole, ale coloring_page sa po schválení odošle do spoločného importu Omaľovánky.
  • Spoločný import raster normalizuje, označí a zamkne ako coloring-reference. Referencia sa tak zapojí do kompozitnej mapy hraníc nástroja Výplň a AI obrázok neobíde proces, ktorý drží farbu v uzavretých líniách.
  • Rýchle voľby Obrázok a Omaľovánka preberajú názvy z existujúceho drawing katalógu vo všetkých 48 lokalitách a iba predvyplnia zadanie, aby používateľ doplnil námet.
  • Výsledok ostáva návrhom; bežný obrázok čaká na PTDF potvrdenie a Omaľovánka otvorí upraviteľnú drawing reláciu až po schválení návrhu.
Akceptácia: mock testy pokrývajú izoláciu nedôveryhodnej histórie a PTDF obsahu, nový dokument, append do existujúceho PTDF, explicitné rozlíšenie omaľovánky, neautorizovaný, chýbajúci aj neočakávaný tool output; bez plateného API volania.
12Priame úpravy dokumentuJednorazový súhlas, automatická PTDF aplikácia a Undo+
Cieľ: odstrániť opakované modálne kroky pri bežných textových úpravách bez oslabenia validácie a ochrany pred súbežnou zmenou.
  • Prvá vhodná zmena otvorí prístupný dialóg s vysvetlením a odkazom na podmienky.
  • Verziovaný lokálny súhlas obsahuje iba verziu a čas udelenia; správy ani dokument sa doň neukladajú.
  • Po súhlase sa nemediálny PTDF výsledok znovu overí fingerprintom, striktne validuje a programovo nahradí aktuálny stav editora.
  • Každý zápis vytvorí krok histórie, zobrazí tlačidlo Vrátiť AI úpravu a povolenie možno vypnúť priamo v paneli.
  • Obrázky a omaľovánky ostávajú v explicitnom kontrolnom toku.
Akceptácia: starý alebo neplatný návrh sa neaplikuje; platná zmena po súhlase neotvorí modal pridať/nahradiť a posledný automatický zápis možno vrátiť.
13AI asistent vo fullscreen režimeTá istá stavová vrstva nad celoobrazovkovým náhľadom+
Cieľ: zachovať asistenta dostupného aj v natívnom a náhradnom fullscreen režime bez duplikácie rozhrania alebo stavu.
  • Pred requestFullscreen() sa existujúci DOM uzol asistenta presunie do fullscreen kontajnera náhľadu.
  • Otvorený panel, rozpísaný vstup, konverzácia, návrhy aj rozpracovaná odpoveď ostávajú v pôvodnej inštancii.
  • Pri odchode z fullscreen sa uzol vloží späť do pôvodného rodiča a na pôvodné miesto v DOM.
  • Rovnaký lifecycle pokrýva natívny fullscreen aj CSS fallback.
  • Samostatné vrstvenie, limit výšky a mobilné safe-area odsadenie držia panel čitateľný nad náhľadom.
Akceptácia: asistent sa dá vo fullscreen otvoriť a používať, stav sa pri vstupe ani výstupe nestratí a nevznikne druhá inštancia.
04 · Systémový pohľad

Architektúra a tok dát

Prehliadač posiela len kontraktovanú požiadavku aplikačnému endpointu. Všetky dôveryhodné kontroly a provider komunikácia prebiehajú na serveri.

Klient

UI, lokality, serializácia aktuálneho PTDF, história konverzácie v pamäti, proposal review, feedback a neobsahová diagnostika.

Aplikačný server

Prístupová politika, input validácia, secret scan, rate limit, runtime admission, provider prompt, output validácia, PTDF operácie a response contract.

Externý provider

OpenAI Responses API dostane aplikačné pravidlá a explicitne označené používateľské vstupy. store: false vypína ukladanie response objektu providerom; vstavaný image_generation tool sa pridá iba pri explicitnej obrazovej capability a v tomto toku sa vynechá nedôveryhodná história aj obsah PTDF.

Poradie serverových kontrol

#KontrolaDôvod poradiaVýsledok pri chybe
1HTTP metóda a veľkosť telaNajlacnejšie odmietnutie neplatného vstupu.405 / 413
2JSON, povolené polia, verzia a localeNedovolí neznámy kontrakt do ďalších vrstiev.400 / 422
3História a PTDF normalizáciaModel nikdy nedostane neplatnú dokumentovú štruktúru.422
4Prístup účtuGuest / Free / Premium politika je serverovo vynútená.403
5Vstupný secret scannerTajomstvo sa odmietne ešte pred rate limitom a providerom.422
6IP rate limitChráni verejný endpoint pred zneužitím.429
7Runtime admission + leaseKontroluje rollout, denný budget, circuit a kapacitu.429 / 503
8Provider + strict outputJediná vrstva, ktorá môže vytvoriť platenú požiadavku.429 / 502 / 503
9Schema, registry, PTDF a výstupný scanDo browsera sa vráti iba bezpečný a konzistentný návrh.502
10Uvoľnenie leasePrebehne po úspechu aj chybe; expirované lease majú TTL 240 s, teda viac než 180 s provider timeout.interné zotavenie
05 · Dátové rozhrania

Kontrakty, request a PTDF

Verejný aplikačný kontrakt má verziu ptp.assistant/3 a rozlišuje PTDF, HTML artifact a jeden ohraničený lokálny systémový plán. Produkčný provider vie pripraviť PTDF, statický HTML/CSS kandidát, autorizovaný jednorazový generátor statického HTML alebo jednu povolenú akciu Etapy 11. Aktívny JavaScript v dokumente ostáva vypnutý. Verzie ptp.assistant/2 a ptp.assistant/1 zostávajú kompatibilné pre pôvodné dokumentové odpovede, nie pre vykonávanie akcií. Provider používa užšiu internú verziu ptp.assistant.provider/4; používateľský klient ju priamo nevidí.

Príklad požiadavky browser → pasteToPrint

JSON · bez poverení
{
  "contractVersion": "ptp.assistant/3",
  "requestId": "req-demo-0001",
  "message": "Vytvor cenovú ponuku v nemčine pre troch používateľov.",
  "conversationLocale": "sk",
  "documentLocale": "de",
  "state": {
    "history": [],
    "lastDocumentType": null,
    "missingFields": [],
    "currentDocument": null
  }
}

Serverový payload pre Responses API — zjednodušený tvar

Pole tools v ukážke sa pridáva iba pri explicitnej obrazovej capability; v bežnej požiadavke úplne chýba.

JSON · Authorization hlavička zámerne nie je zobrazená
{
  "model": "gpt-5.5",
  "instructions": "Aplikačné pravidlá a hranice dôvery…",
  "input": [
    { "role": "user", "content": [{ "type": "input_text", "text": "Používateľská požiadavka…" }] }
  ],
  "store": false,
  "reasoning": { "effort": "low" },
  "max_output_tokens": 12000,
  "tools": [{
    "type": "image_generation",
    "action": "generate",
    "size": "1024x1536",
    "quality": "medium",
    "background": "opaque",
    "output_format": "webp",
    "output_compression": 72
  }],
  "text": {
    "format": {
      "type": "json_schema",
      "name": "pastetoprint_document_plan",
      "strict": true,
      "schema": "obsah provider/v4/schema.json"
    }
  },
  "safety_identifier": "pseudonymný 48-znakový HMAC digest"
}

Statusy odpovede

  • needs_input — iba výber jedného podporovaného režimu alebo chýbajúci námet pri explicitne spustenej tvorbe obrázka.
  • preview_ready — kompletný validovaný artifact je pripravený; neznáme dokumentové údaje obsahuje ako prázdne polia.
  • action_ready — server pripravil jeden povolený lokálny plán; úspešná odpoveď sa zobrazí až po overenom vykonaní.
  • informational — odpoveď bez režimu a artifactu.
  • unsupported — zámer mimo rozsahu.
  • error — aplikačná chyba s kódom a retryable flagom.

Pravidlá chýbajúcich údajov

requiredFields určujú štruktúru dokumentu, nie otázky pre používateľa. Provider môže použiť údaje, ktoré používateľ sám zadal v správe alebo dokumente. Chýbajúce údaje nesmie vypytovať ani vymýšľať; zobrazí ich ako lokalizované názvy s prázdnym miestom alebo neutrálnym zástupným poľom. Toto pravidlo platí pre všetky typy, jazyky, režimy, vytvorenia, úpravy aj analýzy.

Povolené aplikačné operácie PTDF

OperáciaÚčelTypická ochrana
set_titleNastavenie názvu dokumentu.Dĺžka a normalizácia textu.
set_metadataKontrolovaná zmena metadát PTDF.Povolené kľúče a typy.
set_templateZmena vizuálnej šablóny.ID musí existovať v registry.
append_blockPridanie bloku na koniec.Validný typ bloku, max. počet.
insert_blockVloženie na index.Index v povolenom rozsahu.
update_blockÚprava existujúceho bloku.Existujúci index a validný blok.
delete_blockOdstránenie bloku.Existujúci index.
move_blockPresun medzi indexmi.Zdroj aj cieľ v rozsahu.
replace_documentCelý nový dokument.Zakázané pri existujúcom dokumente s médiami.
format_runsFormátovanie behov v texte.Rozsahy a podporované štýly.
Ochrana médií

Existujúce Base64 médiá sa do modelového kontextu neposielajú. Pri generovaní modelový JSON plán obsahuje iba druh, názov, alt text a voliteľný popis; binárny výsledok prichádza oddeleným tool outputom a server pred PTDF kontroluje Base64, signatúru WebP/PNG/JPEG aj veľkosť. Úplná AI náhrada existujúceho PTDF s médiami je naďalej odmietnutá.

06 · Internacionalizácia

48 lokalít a 14 dokumentových typov

Asistent nededukuje jazyk iba z prehliadača. Konverzačný a dokumentový jazyk putujú kontraktom oddelene a server ich zachová v odpovedi.

Konverzačná lokalita

Určuje jazyk otázok, vysvetlení, chybových hlášok a priebehu rozhovoru.

Dokumentová lokalita

Určuje jazyk výsledného dokumentu; môže byť odlišná od jazyka používateľského pokynu.

RTL

Arabčina a ďalšie pravostranné scenáre majú testovaný smer rozhrania aj dokumentu bez zmeny kontraktu.

Typy dokumentov v univerzálnom registry

IDKategóriaPríkladyPovinné dáta — príklady
blankgeneralvoľný dokument, textbody
noteinternalpoznámka, memo, záznambody
invoicefinancefaktúra, vyúčtovaniesupplier, customer, dates, currency, VAT, items
price_offerfinancecenová ponuka, odhadsupplier, customer, subject, items, currency
orderbusinessobjednávka, nákupcustomer, supplier, items, deadline
business_letterbusinessobchodný list, korešpondenciasender, recipient, subject, body
complaintofficialreklamácia, sťažnosťparties, problem, requested resolution
handoverserviceodovzdávací protokolparties, subject, items, date
meetinginternalzápisnica, agendadate, participants, topic
requestofficialžiadosť, podanieapplicant, recipient, subject, body
declarationofficialvyhlásenie, čestné vyhláseniedeclarant, body, date
work_reportservicevýkaz práce, timesheetworker, date, entries
delivery_notebusinessdodací listsupplier, customer, items, date
serviceserviceservisný alebo opravárenský záznamcustomer, location, request description

Všetky položky deklarujú supportedLocales: ["*"]; počet 48 v release manifeste predstavuje podporované aplikačné lokality, nie 48 kópií registry.

07 · HTTP rozhranie

Endpointy, limity a chyby

EndpointMetódaÚlohaÚspechAutorizácia / cache
/api/assistant/message.phpPOSTHlavná dokumentová požiadavka.200 JSON kontraktPrístup podľa účtu, no-store
/api/assistant/status.phpGETVerejný runtime stav bez tajomstiev.200 statusVerejný, no-store
/api/assistant/manifest.phpGETBuild ID, verzie a schopnosti.200 manifestVerejný, secret-free
/api/assistant/templates/index.phpGETUniverzálny template registry.200 registryVerejný, cache 300 s
/api/assistant/feedback.phpPOSTExplicitná agregovaná spätná väzba.202 accepted60 / IP / 24 h
/api/ads-manager/index.php?action=save-assistant-keyPOSTŠifrované uloženie alebo výmena kľúča.200 public statusChránená admin session
/api/ads-manager/index.php?action=delete-assistant-keyPOSTOdstránenie credential riadka.200 configured=falseChránená admin session

Validované limity

3 000
znakov v jednej správe alebo položke histórie
12
správ histórie v otvorenej stránke
750 kB
maximum celého request body
3 MB
maximum provider response body vrátane jedného obrázka
500 k
serializovaných znakov aktuálneho PTDF snapshotu
50
provider operácií na jednu odpoveď
100
blokov v generovanom drafte
1 / 1,1 MB
obrázok na request / maximálna binárna veľkosť
30/10m
verejný limit správ na zdrojovú IP

Stabilné chybové skupiny

HTTPPríklady kódovKlientské správanie
400invalid_jsonNeopakovať automaticky; opraviť request.
403assistant_disabledZobraziť nedostupnosť pre typ účtu.
405method_not_allowedPoužiť dokumentovanú metódu.
413request_too_largeZmenšiť históriu alebo PTDF kontext.
422unsupported_contract, invalid_state, assistant_sensitive_data_detectedVyžiadať opravu; neodosielať znova bez zmeny.
429assistant_rate_limited, assistant_daily_limit_reachedRešpektovať Retry-After.
502assistant_invalid_response, assistant_image_generation_failed, assistant_invalid_image, assistant_image_too_largeNávrh nepoužiť; ponúknuť bezpečné opakovanie.
503assistant_not_configured, assistant_circuit_open, assistant_capacity_reached, assistant_provider_unavailableZobraziť stav; opakovať iba ak retryable.
08 · Threat model

Bezpečnosť a súkromie

Ochrana je viacvrstvová: credential storage, prístup účtu, vstupná kontrola, dôveryhodnostné značky promptu, strict output, výstupný scan a minimalizovaná telemetria.

Poverenia

  • Admin formulár posiela kľúč iba na server v chránenom same-origin requeste.
  • Sodium secretbox používa náhodný nonce; ciphertext, nonce a verzia sú v ptp_assistant_credentials.
  • Šifrovací kľúč sa odvodí HKDF-SHA256 z master secretu s osobitným kontextom.
  • Public status vracia len configured a čas zmeny, nikdy kľúč ani jeho časť.

Prístup

  • Master switch v admin konfigurácii.
  • Oddelené prepínače pre guest, free a premium.
  • Environment kill switch má najvyššiu prioritu.
  • Serverová kontrola je v status aj message ceste; úprava DOM ju neobíde.

Obsah a prompt injection

  • User message, history a dokument sú nedôveryhodné vstupy.
  • Inštrukcie nájdené v dokumente sa interpretujú iba ako obsah dokumentu.
  • Vysokokonfidenčné tokeny sa blokujú pred providerom aj po ňom.
  • Business identifikátory sa neblokujú plošne, aby ostala použiteľnosť dokumentov.

Minimalizácia dát

  • Konverzácia, proposal history a diagnostika sú len v pamäti stránky.
  • Lokálny súhlas s priamymi úpravami obsahuje iba verziu, boolean a čas udelenia; neobsahuje správu ani dokument.
  • Feedback a security telemetria sú mesačné počty s retenciou max. 12 mesiacov.
  • store: false je súčasťou každej Responses API požiadavky.
  • Existujúce mediálne data URL sú z modelového kontextu odstránené; novo vygenerovaný obraz sa drží iba v PTDF návrhu v pamäti stránky.

Klasifikácia uložených dát

DátaMiestoRetenciaObsah používateľa?
História konverzácieRAM aktuálnej browser stránkydo reloadu / nového rozhovoruáno
Návrhy PTDFRAM stránky, max. 8do reloadu / nového rozhovoruáno
DiagnostikaRAM stránky, max. 40 eventovdo reloadunie; iba metadáta
Súhlas s priamymi úpravamilocalStorage aktuálneho browserado odvolania alebo zmeny verzienie; iba verzia, stav a čas
Feedbackserverové mesačné agregátymax. 12 mesiacovnie
Security detectionsserverové mesačné agregáty podľa kategórie/zdrojamax. 12 mesiacovnie; matched value sa neukladá
Runtime statezamknutý JSON mimo web rootu v produkciipriebežný stav UTC dňanie
API kľúčMySQL ciphertext + noncedo výmeny alebo odstráneniatajomstvo, šifrované
09 · Prevádzkové riadenie

Runtime konfigurácia

Nasledujúce premenné nemenia kontrakt. Umožňujú bezpečný rollout, nákladový limit a núdzové vypnutie bez úpravy klienta.

PremennáDefaultRozsah / účelProdukčné odporúčanie
PTP_ASSISTANT_ENABLEDtrueEnvironment kill switch.Mať pripravenú hodnotu false pre rollback.
PTP_ASSISTANT_ROLLOUT_PERCENT1000–100; deterministická IP kohorta.Začať 5–10 %, potom zvyšovať.
PTP_ASSISTANT_DAILY_REQUEST_LIMIT5001–100000 provider requestov za UTC deň.Nastaviť podľa rozpočtu a meranej spotreby.
PTP_ASSISTANT_MAX_CONCURRENT41–50 aktívnych lease.Zladiť s PHP worker poolom.
PTP_ASSISTANT_CIRCUIT_FAILURES51–20 chýb na otvorenie circuitu.Ponechať konzervatívne pri štarte.
PTP_ASSISTANT_CIRCUIT_WINDOW_SECONDS30030–3600 s rolling window.Monitorovať provider incidenty.
PTP_ASSISTANT_CIRCUIT_COOLDOWN_SECONDS12030–3600 s pauza.Vyhnúť sa agresívnemu retry.
PTP_ASSISTANT_RUNTIME_DIRserver tempState, budget a lease.Perzistentný zapisovateľný adresár mimo web rootu.
PTP_ASSISTANT_SECURITY_DIRserver tempAgregované security počty.Zapisovateľný adresár mimo web rootu.
PTP_ASSISTANT_ACCESS_FILEstorage/private/assistant-access.jsonMaster a account-type prepínače.Explicitná súkromná cesta mimo web rootu.
PTP_ASSISTANT_PUBLIC_URLprázdneVerejný pôvod pre preflight.Presná HTTPS origin URL bez path.
Environment už nie je miesto pre API kľúč

Aktuálna implementácia číta OpenAI credential zo šifrovanej MySQL tabuľky. Do prostredia patria iba prevádzkové prepínače a privátne cesty. Master secret pochádza z existujúcej privátnej konfigurácie aplikácie.

10 · Zdrojový inventár

Technické súbory

Druhé vyhľadávacie pole filtruje iba implementačný inventár podľa cesty, vrstvy alebo zodpovednosti.

VrstvaSúborZodpovednosť
klientassets/js/ai-assistant.jsOrchestrácia UI, message request, lokality, spracovanie odpovede a prístupnosť.
klientassets/css/ai-assistant.cssVýsuvná vrstva, bottom-center launcher a responzívne stavy.
klientassets/js/assistant-contract.jsBrowser reprezentácia verziovaného kontraktu a PTDF operácií.
klientassets/js/assistant-template-registry.jsKlientská registry dokumentových typov.
klientassets/js/assistant-proposals.jsMemory-only návrhy, fingerprint, stale guard a PTDF export.
klientassets/js/assistant-direct-edit.jsVerziovaný jednorazový súhlas a pravidlá vhodnosti automatickej aplikácie.
klientassets/js/assistant-runtime.jsČítanie verejného runtime statusu a klientské availability stavy.
klientassets/js/assistant-observability.jsFeedback UX, pamäťová diagnostika a privacy-safe export.
klientassets/js/html-document-pipeline.jsKanonická dvojpriechodová HTML/CSS sanitizácia, limity, report a konštrukcia budúceho assistant HTML artifactu.
klientassets/js/assistant-client-capabilities.jsJednorazový reálny browser preflight HTML pipeline, review iframe a izolovaného generátora.
klientassets/js/assistant-generator-recovery.jsStriktný zoznam obnoviteľných chýb, limit jedného retry a nemenný downgrade capability na statické HTML.
klientassets/js/assistant-action-registry.jsFail-closed discovery reálnych command bindingov bez vykonania systémovej akcie.
serverapi/assistant/message.phpHlavný POST endpoint a kompletné poradie kontrol.
serverapi/assistant/provider.phpGPT-5.5 prompt, Responses API a Image Generation tool, binárna kontrola, output parsing a PTDF aplikácia.
serverapi/assistant/contract.phpAplikačný response kontrakt, normalizácia a error response.
serverapi/assistant/client-capabilities.phpStriktná normalizácia capability objektu a fail-closed predvolený stav.
serverapi/assistant/generator-recovery.phpRelease identita a maximálny počet statických recovery requestov.
serverapi/assistant/actions.phpAutoritatívna validácia action snapshotu a bezpečný prienik pre provider.
serverapi/assistant/templates/registry.phpAutoritatívny register 14 dokumentových typov.
serverapi/assistant/runtime.phpRollout, budget, lease, circuit breaker a public state.
serverapi/assistant/security.phpDetekcia tajomstiev a privacy-preserving mesačné počty.
serverapi/assistant/credentials.phpSodium šifrovanie, MySQL čítanie a HKDF derivácia.
serverapi/assistant/access.phpGuest / Free / Premium rozhodnutie a master access config.
serverapi/assistant/deployment.phpPreflight a safety_identifier.
serverapi/assistant/release.phpDeterministický build ID a capability manifest.
serverapi/assistant/launch.phpHTTP launch acceptance a guarded live probe.
schemaapi/assistant/schema/v2/schema.jsonAktuálny dvojformátový assistant response JSON Schema.
schemaapi/assistant/schema/v1/schema.jsonLegacy PTDF assistant response Schema pre kompatibilitu.
schemaapi/assistant/client-capabilities/v1/schema.jsonPresný klientsky capability kontrakt bez možnosti aktívneho JavaScript dokumentu.
schemaapi/assistant/actions/v1/schema.jsonUzavretá schéma systémových capability stavov s trvalo vypnutým executorom Etapy 10.
schemaapi/assistant/provider/v2/schema.jsonStrict Structured Output pre PTDF alebo HTML/CSS modelový plán.
schemaapi/assistant/templates/v1/schema.jsonSchema registra typov a blueprintov.
adminads-manager.htmlChránené UI pre kľúč a account access.
adminapi/ads-manager/index.phpAdmin actions pre credential a access config.
testscripts/test-assistant-stage10-release.ps1Súhrnná release gate etáp 1–10.
testscripts/test-assistant-stage11-media.ps1Mockovaná gate obrázkov, omaľovánok, PTDF médií, 48 lokalít a manifestu.
testscripts/test-assistant-stage13-fullscreen.ps1Fullscreen gate pre presun jednej stavovej vrstvy, návrat do pôvodného DOM, prístupnosť a mobilné rozloženie.
testscripts/test-assistant-document-modes-stage1-release.ps1Kontraktová gate PTDF/HTML artifactov, runtime gatingu a spätnej kompatibility v1.
testscripts/test-assistant-document-modes-stage2-release.ps1Offline gate spoločného HTML/CSS pipeline, reportu, browser sanitizácie a nezapnutého HTML/JavaScript runtime.
testscripts/test-assistant-document-modes-stage9-release.ps1Súhrnná dual-format gate etáp 0–9 vrátane reálneho browser capability probe a jedného statického generator recovery retry.
testscripts/test-assistant-document-modes-stage10-release.ps1Súhrnná gate etáp 0–10 vrátane action parsera, command bindingov a ne-exekučného Chromium discovery testu.
testscripts/assistant-deployment-check.phpPrípravný a produkčný deployment preflight.
testscripts/assistant-launch-check.phpSafe smoke test a explicitná live sonda.
testscripts/run-assistant-evals.phpOffline multilingual eval cases s mock transportom.
11 · Verifikácia

Akceptačná matica — 20 prípadov

Záznam posledného 20-prípadového lokálneho overenia. Provider testy boli mockované; akceptačný beh nevykonal platenú OpenAI požiadavku. Runtime konfigurácia sa odvtedy môže meniť, preto horný panel zobrazuje aktuálny live status.

#VrstvaScenárOčakávanieZáznam
1UINačítanie editora a launcheruPrvok je prítomný na spodnom strede.PASS
2UIOtvorenie asistentaVrstva sa otvorí a fokus prejde do vstupu.PASS
3A11yEscape a návrat fokusuVrstva sa zavrie, fokus sa vráti launcheru.PASS
4i18nSlovenská lokalizáciaTexty a locale kontrakt sú slovenské.PASS
5i18nArabčina / RTLRozhranie rešpektuje pravostranný smer.PASS
6HTTPStatus GET200 a validný runtime JSON.PASS
7HTTPStatus POST405, Allow: GET.PASS
8ReleaseManifest GET200, validný build ID a verzie.PASS
9ReleaseManifest POST405.PASS
10RegistryZoznam šablónPresne 14 typov a default blank.PASS
11RegistryVýber faktúryTyp invoice s povinnými poliami.PASS
12RegistryNeznámy typBezpečný fallback blank.PASS
13RegistryNejednoznačný query parameter400 namiesto tichého uhádnutia.PASS
14MessageGET na POST endpoint405.PASS
15MessageNeplatný JSON400 invalid_json.PASS
16ContractNepodporovaná verzia422 unsupported_contract.PASS
17ContractNeplatná história422 invalid_state.PASS
18SecuritySyntetický secret vo vstupe422, nič nejde provideru.PASS
19RuntimeBezpečný request pri nenakonfigurovanom stave503 bez provider call (stav test fixture).PASS
20FeedbackPlatná spätná väzba202 accepted, iba agregát.PASS

Doplňujúce evaly a release gates

4 offline jazykové prípady

  • slovenská faktúra → preview,
  • anglický prázdny vzor faktúry → preview s vyplniteľnými poľami bez otázok,
  • arabská zápisnica → RTL dokumentový tok,
  • slovenská bezpečná aktualizácia existujúceho PTDF.

4 / 4 PASS

Stage 11 media gate

test-assistant-stage11-media.ps1 skladá provider media mocky, strict schémy, 48 lokalít, verejný kontrakt, observability a manifest. Lokálny browser navyše overil lokalizované nemecké quick actions.

etapa 11 PASS bez plateného volania

Stage 13 fullscreen gate

test-assistant-stage13-fullscreen.ps1 kontroluje presun asistenta pred natívnym fullscreen, CSS fallback, návrat na pôvodné miesto, zachovanie jednej inštancie, prístupnosť a mobilné safe-area pravidlá.

etapa 13 PASS bez volania modelu

Otvorený nález z 26. 8. 2026

Aktuálny rerun prešiel kontraktmi, 14 šablónami, 48 lokalitami, provider mockom, proposal, observability, runtime a 4/4 offline evalmi. Následne ho zastavil globálny scanner, pretože dva credential testy obsahujú syntetický projektový prefix skladaný priamo v testovacom zdroji. Nejde o reálny kľúč, ale gate zostáva červená, kým sa fixture alebo pravidlo scanneru neupraví.

Príkazy na opakovanie bezpečných testov

PowerShell · bez plateného modelového volania
& 'C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64\php.exe' scripts/test-assistant-provider.php
& 'C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64\php.exe' scripts/test-assistant-security.php
& 'C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64\php.exe' scripts/run-assistant-evals.php
& scripts/test-assistant-stage10-release.ps1
& scripts/test-assistant-stage11-media.ps1
& scripts/test-assistant-stage13-fullscreen.ps1
12 · Runbook

Nasadenie a rollback

Poradie je navrhnuté tak, aby prvé platené volanie nastalo až po úspešnom produkčnom preflighte a výslovnom potvrdení.

Rotovať exponovaný credential

Zrušiť každý kľúč, ktorý sa objavil mimo zabezpečenej administrácie. Vytvoriť nový projektový kľúč a nevkladať ho do HTML, JavaScriptu, URL, logu ani dokumentácie.

Aplikovať credential migráciu

Raz na databázu vytvoriť tabuľku ptp_assistant_credentials.

PowerShell
& 'C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64\php.exe' scripts/migrate-assistant-credentials.php --confirm=MIGRATE-ASSISTANT-CREDENTIALS

Nastaviť privátne úložiská a HTTPS origin

Runtime, security a access cesty musia byť zapisovateľné a mimo web rootu. PTP_ASSISTANT_PUBLIC_URL musí byť produkčná HTTPS origin URL.

Uložiť nový kľúč cez administráciu

Prihlásiť sa do ads-manager.html, otvoriť kartu Asistent a uložiť nový kľúč. Browser po úspechu dostane iba configured: true.

Uzavrieť release gate a spustiť produkčný preflight

Najprv odstrániť false-positive syntetických credential fixture a vyžadovať zelený test-assistant-stage10-release.ps1. Potom spustiť produkčný preflight:

PowerShell
& 'C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64\php.exe' scripts/assistant-deployment-check.php --production

Pokračovať iba pri stave READY alebo vedome akceptovanom READY WITH WARNINGS bez povinného failu.

Spustiť bezpečný HTTP launch check

PowerShell · žiadna modelová požiadavka
& 'C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64\php.exe' scripts/assistant-launch-check.php --base-url=https://www.pastetoprint.com --production

Voliteľne vykonať jednu live sondu

Iba po safe checku a so súhlasom na platenú požiadavku.

PowerShell · vykoná jedno provider volanie
& 'C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64\php.exe' scripts/assistant-launch-check.php --base-url=https://www.pastetoprint.com --production --live --confirm-live

Postupný rollout a monitoring

Začať malou kohortou, sledovať agregovaný feedback, latency bands, HTTP 429/5xx a circuit stav. Zvyšovať percento až po stabilnom období.

Okamžitý rollback

Nastaviť PTP_ASSISTANT_ENABLED=false. Ak problém súvisí iba s účtami, vypnúť master alebo konkrétny account type v administrácii. Pri podozrení na credential incident kľúč zároveň odstrániť v administrácii a zrušiť u provideru.

13 · Diagnostika

Riešenie problémov

PrejavPravdepodobná príčinaOverenieNáprava
not_configuredChýba credential riadok alebo sa nedá dešifrovať.Admin credential status + deployment check.Migrácia, master secret, znovu uložiť nový kľúč.
assistant_disabledEnvironment, master alebo account switch.Status endpoint a admin Asistent.Povoliť správnu vrstvu; neobchádzať server.
rollout_unavailableZdrojová IP nie je v kohorte.Skontrolovať rolloutPercent.Zvýšiť rollout alebo testovať povolenú kohortu.
daily_limitVyčerpaný UTC denný budget.Status + runtime state.Počkať do ďalšieho UTC dňa alebo vedome zvýšiť limit.
circuit_openViac provider chýb v rolling window.Status retryAfter, serverové 5xx metriky.Nechať cooldown; overiť provider a credential.
capacityDosiahnutý počet aktívnych lease.Status a PHP worker využitie.Počkať 5 s; až potom ladiť concurrency.
422 sensitive dataVo vstupe je vysokokonfidenčný token alebo private key.UI bezpečnostné hlásenie; raw hodnota sa neloguje.Odstrániť secret a okamžite ho rotovať.
502 invalid responseModelový výstup neprešiel strict validáciou.Request ID a neobsahová diagnostika.Skontrolovať schema/model konzistenciu; návrh nepoužiť.
Produkčný preflight: HTTPS failChýba alebo je neplatná public origin.--production report.Nastaviť presnú HTTPS origin URL.
Manifest build sa líšiRozdiel nasadených súborov alebo OPcache.HTTP manifest vs CLI po redeployi.Dokončiť atomický deploy a bezpečne obnoviť PHP cache.
Release gate hlási API key-like value v credential testochSyntetický testovací prefix zodpovedá globálnemu scanneru.Výstup stage 7/10 gate a dva credential testy.Poskladať fixture bez doslovného citlivého prefixu alebo zúžiť scanner tak, aby neoslabil kontrolu produkčných súborov.
14 · Životný cyklus

Údržba a zmeny

Pridanie typu dokumentu

  1. Rozšíriť autoritatívny registry a jeho JSON.
  2. Doplniť prekladové kľúče vo všetkých podporovaných lokalitách.
  3. Ak treba, pridať modul a vizuálnu template ID.
  4. Rozšíriť provider enum a eval case.
  5. Spustiť registry, locale, provider a release testy.

Zmena modelu alebo API

  1. Najprv overiť aktuálnu oficiálnu dokumentáciu OpenAI vrátane Image Generation tool parametrov.
  2. Upraviť provider a runtime model konzistentne.
  3. Ak sa mení výstup, vytvoriť novú verziu schémy; existujúcu v1 neprepisovať nekompatibilne.
  4. Spustiť všetky mock evaly, stage 10 gate aj test-assistant-stage11-media.ps1.
  5. Nový build overiť safe launch checkom; platený obrazový test vykonať iba po výslovnom potvrdení.

Monitoring po štarte

  • Dostupnosť status endpointu a podiel runtime states.
  • Latencia podľa pásiem, nie obsah promptov.
  • 429, 502 a 503 podľa stabilného error code.
  • Helpful / not helpful trend po lokalite a type flow, ak ostáva neidentifikujúci.
  • Rozpočet a frekvencia circuit open.

Pravidlá kompatibility

  • Klient posiela explicitnú verziu kontraktu.
  • Server odmieta neznáme polia a verzie.
  • Build ID sa mení pri zmene kľúčových serverových, schémových alebo browser orchestrátorových vstupov.
  • Template registry je autoritatívny; model nesmie vymyslieť nové ID.
15 · Zdroje

Referencie a stav overenia

Technické tvrdenia o OpenAI rozhraní boli overené 26. 8. 2026 proti oficiálnej dokumentácii. Pri budúcej zmene modelu alebo payloadu treba referencie overiť znova.

Tento HTML súbor je dokumentácia a nemení release build ID asistenta. Build ID sa odvodzuje z kontraktov, provideru, credential vrstvy, orchestrácie, bezpečnosti, deployment/release/launch vrstiev a hlavného browser kontroléra.