Salt la conținutul principal
La succes, fiecare instrument, cu excepția get-screen-image, returnează rezultatul de două ori: ca structuredContent (validat în raport cu schema de ieșire publicată a instrumentului) și ca același obiect serializat într-un bloc de text, { type: "text", text: "<json-string>" }, pentru clienții care nu citesc conținutul structurat. get-screen-image returnează doar un bloc de imagine MCP: { type: "image", data: "<base64>", mimeType: "image/png" }. La eroare, isError: true este setat, iar blocul de text conține un mesaj scurt de eroare. Erorile la care poți reacționa (o nepotrivire de nume la ștergere, un link Figma invalid, ghiduri de design invalide, o problemă cu un atașament sau expirarea generării) explică ce trebuie corectat. Alte erori returnează un mesaj generic, cum ar fi Failed to list files.
Prețuri: cele trei instrumente de design AI, adică ai-design-screens, ai-generate-screen-variant și ai-edit-screen-variant, folosesc aceeași limită de mesaje ca aplicația Flowstep. Toate celelalte instrumente sunt gratuite. Consultă Limite de utilizare.
Fiecare instrument publică și adnotări MCP, ca clientul tău să știe ce face. delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens și ai-edit-screen-variant sunt marcate ca distructive, deoarece elimină sau suprascriu conținut existent.

Instrumente pentru fișiere

list-files

Listează metadatele fișierelor tale Flowstep. Apelează-l primul ca să verifici dacă există deja un fișier relevant. Nu returnează conținutul ecranelor. Pentru asta folosește get-screen-image sau get-screen-jsx. Intrare Ieșire: { files }.
  • owner: true dacă tu ai creat fișierul.
  • shared_with_me: true dacă fișierul ți-a fost partajat direct, nu doar prin organizația ta.
  • url: deschide fișierul în editorul Flowstep.

get-file

Obține metadatele unui singur fișier. Conținutul fișierului este omis intenționat. Folosește get-screen-image sau get-screen-jsx ca să inspectezi ecranele și get-design-guidelines ca să obții ghidurile atașate. Dacă ai o invitație în așteptare pentru fișier, apelul get-file o acceptă. Intrare Ieșire: { file, user_access_level }.
  • access_level: private, read sau write.
  • visibility: private, member sau public.
  • user_access_level: accesul tău la fișier: read sau write.

create-file

Creează un fișier Flowstep gol, fără ecrane. Ca să creezi un fișier și să generezi ecrane într-un singur pas, apelează în schimb ai-design-screens fără fileId. Folosește create-file pentru fluxurile de lucru din cod, urmat de add-screen-jsx. Intrare Ieșire: { file, user_access_level }, în aceeași formă ca get-file. owner este întotdeauna true, iar user_access_level este întotdeauna write. Folosește file.id returnat ca fileId în apelurile de instrumente următoare.

update-file

Redenumește un fișier. Intrare Ieșire: { file, user_access_level }, în aceeași formă ca get-file.

delete-file

Șterge definitiv un fișier. name pe care îl transmiți este verificat în raport cu numele afișat curent al fișierului înainte de ștergere. Dacă nu se potrivește, ștergerea este anulată. Astfel se previne ștergerea accidentală a fișierului greșit. Agenții sunt instruiți să te întrebe mai întâi pe tine. Intrare Ieșire: { "deleted": true }
Această acțiune este ireversibilă. Toate ecranele din fișier sunt șterse.

Instrumente pentru ecrane

list-screens

Listează ecranele dintr-un fișier, în ordinea canvasului. Apelează-l după list-files ca să vezi ce există deja într-un fișier. Folosește valorile screenId returnate cu celelalte instrumente pentru ecrane și cu instrumentele de design AI. Intrare Ieșire: { screens }.
  • prompt: ultimul prompt de generare pentru ecran sau un șir gol, dacă ecranul nu a fost niciodată generat (de exemplu, un ecran adăugat cu add-screen-jsx).
  • fidelity: lofi, hifi sau ui.

get-screen-image

Randează un ecran ca PNG și îl returnează ca imagine în linie. Necesită un client care acceptă blocuri de conținut de tip imagine. Apelează-l o dată pentru fiecare screenId returnat de un instrument de design AI, de add-screen-jsx, de replace-screen-jsx sau de import-figma. Intrare Ieșire: bloc de conținut imagine MCP (image/png). data este base64 standard al octeților PNG, nu un URI de date. Acest instrument nu are structuredContent.

get-screen-jsx

Obține un ecran ca JSX, împreună cu metadatele sale, ca să construiești pornind de la el în baza ta de cod sau ca să îl editezi și să îl scrii înapoi cu replace-screen-jsx. Pentru o previzualizare vizuală, folosește în schimb get-screen-image. Intrare Ieșire: { fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
  • jsx: doar markup. Atributele data-id sunt incluse numai când includeIds este true.
  • prompt: ultimul prompt de generare sau un șir gol, dacă ecranul nu a fost niciodată generat.
  • fragments: elemente comune de interfață stocate pe ecran, cum ar fi o bară de navigare, un antet sau un logo, sub formă de obiecte { purpose, markup }. Este gol dacă nu există. Transmite-le înapoi către replace-screen-jsx ca să le păstrezi sau să le actualizezi.
Consultă Valorile câmpurilor ecranului pentru valorile fidelity, screenType și colorTheme.

add-screen-jsx

Adaugă un ecran nou într-un fișier, din JSX pe care l-ai scris. Este calea din cod și este gratuită. Folosește ai-design-screens când vrei ca AI-ul Flowstep să proiecteze ecranul. add-screen-jsx creează întotdeauna un ecran nou. Ca să suprascrii unul existent, folosește replace-screen-jsx. Pentru a afișa o imagine pe care ai încărcat-o, consultă Imagini în JSX. Când ecranul nou se bazează pe unul existent, pornește de la get-screen-jsx (fără includeIds) pentru name, fidelity, screenType, colorTheme și jsx, apoi schimbă ce trebuie să difere. Intrare Ieșire: { fileId, screenId }. Apelează get-screen-image cu screenId ca să vezi rezultatul.

replace-screen-jsx

Suprascrie un ecran existent cu JSX pe care l-ai scris. Ecranul își păstrează screenId și poziția pe canvas. Elementele imbricate primesc ID-uri noi. Este calea din cod și este gratuită. Pentru modificările AI, folosește ai-design-screens sau ai-edit-screen-variant. Ca să creezi un ecran nou, folosește în schimb add-screen-jsx. Pornește de la get-screen-jsx (fără includeIds), apoi schimbă ce trebuie să difere. Pentru a afișa o imagine pe care ai încărcat-o, consultă Imagini în JSX. Intrare Ieșire: { fileId, screenId }. Apelează get-screen-image cu screenId ca să vezi rezultatul.
Aceasta înlocuiește conținutul ecranului pe loc.

rename-screen

Redenumește eticheta de pe canvas a unui ecran, adică numele afișat de list-screens și în editor. Modifică doar eticheta, nu layoutul, dimensiunea sau conținutul ecranului. Pentru acestea, folosește ai-design-screens. Intrare Ieșire: { screenId, name }.

delete-screen

Șterge definitiv un ecran dintr-un fișier. name pe care îl transmiți este verificat în raport cu numele afișat curent al ecranului. Dacă nu se potrivește, ștergerea este anulată. Agenții sunt instruiți să te întrebe mai întâi pe tine. Intrare Ieșire: { "deleted": true }

Imagini în JSX

add-screen-jsx și replace-screen-jsx acceptă imagini într-un src al img-ului sau ca fundal în className, cu bg-[url(...)]. Scrie text alt și dimensionează fiecare imagine în funcție de rolul ei. Pentru a plasa o imagine proprie:
  1. Încarcă-o cu upload-attachment în Modul A (mimeType + fileName) și rulează uploadCommand returnat.
  2. Dacă type din răspuns este "image", lipește assetUrl exact cum a fost returnat în img src sau în bg-[url(assetUrl)].
Lasă orice altă adresă de imagine exact cum a returnat-o get-screen-jsx. Nu pune path, signedUrl sau uploadCommand în src.

Valorile câmpurilor ecranului

get-screen-jsx returnează, iar add-screen-jsx și replace-screen-jsx acceptă, aceste valori:

Instrumente pentru ghidurile de design

Ghidurile de design sunt text DESIGN.md stocat pe un fișier. Atunci când sunt setate, sunt injectate în fiecare generare AI pentru acel fișier. Consultă Ghiduri de design.

get-design-guidelines

Obține ghidurile de design atașate unui fișier. Intrare Ieșire: { guidelines }.
guidelines este null dacă nu au fost setate ghiduri.

update-design-guidelines

Setează sau înlocuiește ghidurile de design pentru un fișier. Transmite ghidurile ca șir simplu, în formatul DESIGN.md al Google, nu ca obiect sau JSON. Dacă citești dintr-un fișier, transmite textul acelui fișier. Intrare Reguli de validare
  • Frontmatter-ul trebuie deschis și închis corect
  • Liniile din frontmatter trebuie să fie YAML valid în stil block
  • Corpul Markdown nu trebuie să conțină titluri de secțiune ## duplicate
Dacă validarea eșuează, apelul returnează o eroare care începe cu Invalid design guidelines:. Ieșire: { updated, warnings? }.
warnings enumeră problemele de validare ușoară (chei necunoscute, culori care nu sunt hexazecimale) care au fost acceptate, dar pe care AI-ul le poate ignora. Este omis dacă nu există. Comunică-le acestea utilizatorului.

delete-design-guidelines

Golește ghidurile de design ale unui fișier. Ștergerea ghidurilor care nu există nu are efect. Intrare Ieșire: { "deleted": true }

Instrumente pentru chat

get-chat-history

Obține conversația de design asociată unui fișier, adică chatul Flowstep al fișierului, nu conversația clientului tău MCP. Folosește-l ca să reiei lucrul anterior la fișier. Intrare Ieșire: { messages }. messages este gol când nu ai nicio conversație de design pe fișier. Fiecare mesaj are un type ("request" sau "response"), un author ("human" sau "ai") și un content_type. Mesajele de răspuns folosesc "text", "summary" sau "followup".

Instrumente pentru atașamente

upload-attachment

Încarcă un fișier de referință pentru a-l folosi ca atașament în ai-design-screens, sau o imagine pe care să o plasezi în propriul JSX cu add-screen-jsx sau replace-screen-jsx. ai-generate-screen-variant și ai-edit-screen-variant nu acceptă atașamente. Octeții fișierelor nu trec niciodată prin model, iar serverul nu preia URL-uri în numele tău. Ca să faci referire la o pagină web, include adresa ei în message-ul ai-design-screens. Există două moduri. Folosește exact unul și nu le combina. Modul A: fișiere și imagini (mimeType + fileName) Un flux obligatoriu în trei pași pentru orice imagine, PDF sau fișier text mai mare:
  1. Apelează upload-attachment doar cu mimeType și fileName (de exemplu image/png și dog.png). Răspunsul este o încărcare pregătită, nu un fișier stocat:
  2. Înlocuiește LOCAL_FILE_PATH din uploadCommand cu calea absolută către fișierul tău și rulează exact această comandă în terminal. Trebuie să se încheie cu codul 0. Tokenul din signedUrl autorizează doar această singură încărcare. Dacă sari peste acest pas, stocarea rămâne goală, iar instrumentul de design eșuează la verificarea preliminară.
  3. Transmite doar { id, path, type } în lista attachments a ai-design-screens, nu signedUrl, uploadCommand sau nextStep. Ca să plasezi în schimb o imagine în propriul JSX, pune assetUrl în img src sau bg-[url(...)] din JSX-ul pe care îl transmiți către add-screen-jsx ori replace-screen-jsx. Consultă Imagini în JSX.
Ca să atașezi un fișier de la distanță, descarcă-l mai întâi tu într-o cale locală (de exemplu cu curl), apoi urmează aceiași trei pași. Nu transmite niciodată un URL către upload-attachment. Modul B: text scurt (text + mimeType) Încarcă text care se află deja în context, fără nevoie de o comandă de shell. Răspunsul este gata de utilizare direct:
Transmite { id, path, type } rezultat în lista attachments a ai-design-screens. Dimensiunea maximă a unui fișier este de 3 MB în ambele moduri, iar PDF-urile sunt limitate la 100 de pagini. Ieșire: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
  • type: "image" pentru fișiere imagine și "document" pentru PDF-uri și fișiere text.
  • assetUrl: URL-ul fișierului încărcat, returnat în ambele moduri. Folosește-l în JSX pentru add-screen-jsx sau replace-screen-jsx doar când type este "image" și numai după ce a rulat uploadCommand din Modul A.
  • signedUrl, uploadCommand, nextStep: setate doar în Modul A. Nu le transmite către instrumentele de design.

Instrumente pentru Figma

import-figma

Importă un cadru Figma într-un fișier Flowstep, ca elemente editabile pe canvasul lui. Fiecare import adaugă un ecran nou. Importarea aceluiași cadru de două ori îți oferă două ecrane, așa că șterge-l pe cel vechi cu delete-screen dacă vrei să îl înlocuiești. Organizația fișierului trebuie să aibă Figma conectat în setările Flowstep. Intrare Ieșire: { fileId, screenId, frameCount? }. screenId este ecranul importat. Transmite-l către get-screen-image ca să vezi rezultatul. Când un URL de pagină importă mai multe cadre, screenId este null, iar în schimb se returnează frameCount. Apelează list-screens, apoi get-screen-image pentru fiecare ecran nou.

Instrumente pentru plan și facturare

get-plan-details

Obține planul Flowstep al organizației tale, starea abonamentului, utilizarea și cota rămasă. Nu primește nicio intrare. Organizația se determină din utilizatorul conectat. Folosește-l ca să verifici limita înainte de a apela instrumentele de design AI. Ieșire: { plan, subscription, limits, usage, remaining }. Limitele variază în funcție de plan. Consultă Prețuri și Limite de utilizare.

Instrumente de design AI

Aceste trei instrumente proiectează pornind de la o descriere sau de la o presetare. Nu primesc și nu reutilizează niciodată JSX. Fiecare apel consumă din aceeași limită de mesaje ca aplicația Flowstep și blochează până când generarea se termină sau expiră (180 de secunde). Toate cele trei returnează { status, fileId, screenIds, designGuidelinesUpdated }. Apelează get-screen-image o dată pentru fiecare screenId ca să vezi rezultatul.
  • designGuidelinesUpdated: un rezumat scurt al modificării, atunci când ghidurile DESIGN.md ale fișierului au fost actualizate automat în timpul acestei runde. Altfel, null.

ai-design-screens

Generează unul sau mai multe ecrane noi, modifică ecrane existente pe loc sau pe amândouă într-un singur apel, pornind de la o descriere în text. Include fluxuri noi, teme, text, layout sau modificări coordonate pe mai multe ecrane. Acesta este același agent de design ca chatul din editorul Flowstep. Decide din message și elementIds ce să construiască și ce să modifice. Omite fileId ca să începi un fișier nou. Transmite fileId ca să lucrezi într-un fișier existent. Dacă cererea s-ar putea aplica unui fișier pe care îl ai deja, agentul tău ar trebui să verifice mai întâi list-files și list-screens. Pentru un pas următor, o stare de eroare sau goală ori o variantă pentru o platformă a unui singur ecran, folosește ai-generate-screen-variant. Pentru o presetare de editare sau de regândire a unui singur ecran, folosește ai-edit-screen-variant. Dacă ai deja JSX, folosește în schimb add-screen-jsx sau replace-screen-jsx. Intrare Exemplu: editează un ecran și adaugă altul într-un singur apel:
Ieșire: { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status: "generated" când au fost construite sau modificate ecrane. "chat" când Flowstep a răspuns fără să construiască nimic, caz în care reply conține răspunsul, iar screenIds este gol. Dacă brieful tău este ambiguu, agentul tău ar trebui să îți ceară clarificări și să apeleze din nou instrumentul.
  • screenIds: fiecare ecran construit sau modificat în timpul apelului, inclusiv ecranele editate pe loc. Dacă apelul expiră după ce au fost construite unele ecrane, returnează acele ecrane în loc de o eroare.
Ecranele pe care le ceri să fie editate sunt suprascrise pe loc.

ai-generate-screen-variant

Adaugă un ecran nou derivat dintr-un singur ecran existent: pasul următor din flux, o stare de eroare sau goală ori o versiune pentru altă platformă. Ecranul original rămâne neschimbat. Ca să adaugi un ecran care nu este o variantă a unui ecran existent (de exemplu, un ecran de setări), folosește ai-design-screens cu un fileId. Intrare Ieșire: { status, fileId, screenIds, designGuidelinesUpdated }. status este întotdeauna "generated".

ai-edit-screen-variant

Modifică exact un ecran existent pe loc, folosind o presetare: îl temi sau îl lustruiești, încerci un alt layout sau un alt stil vizual ori îl regândești de la zero. Pentru ecrane noi, instrucțiuni libere sau o modificare precisă a unor elemente individuale, folosește ai-design-screens. Intrare Ieșire: { status, fileId, screenIds, designGuidelinesUpdated }. status este întotdeauna "generated".
Aceasta suprascrie conținutul ecranului pe loc.

Instrumente redenumite

Numele instrumentelor s-au schimbat în septembrie și octombrie 2026. Dacă ai prompturi, scripturi sau instrucțiuni pentru agenți care folosesc numele vechi, actualizează-le: S-au schimbat și intrările: instrumentele de design AI primesc elementIds (sau un singur screenId pentru instrumentele de variante) în loc de targets. add-screen-jsx primește jsx și câmpuri explicite de metadate, în loc de jsxContent cu un comentariu de metadate. create-file primește name în loc de title, iar instrumentele pentru ghidurile de design primesc fileId în loc de resourceId și linkedTo.