sapiens_carrossel
O CARROSSEL do Instagram da pessoa, pelo agente (qualquer conta logada, só os carrosséis DELA). Puxe a skill 'carrossel' antes. Sub-actions: generate (gera do zero a partir de UMA fonte: brief, articleId de artigo publicado ou userArticleId de artigo dela; 350 Sinapses já com a escolha de fotos, estorna se falhar; model é a FORMA: feed (padrão, 9 slides), reflexao, case ou editorial; aspect é o TAMANHO: 4:5 (padrão, a folha que o feed mostra inteira) ou 9:16; devolve id + url do editor), list (os carrosséis dela, com id, título, nº de slides e url), get (payload inteiro + catálogo de layouts com os slots e limites de cada um, paletas, folhas e a assinatura: tudo pra VOCÊ escrever os slides), update (payload INTEIRO de volta, normalizado no servidor: mande o theme inteiro, com folha e assinatura, e o image de todo slide que não mexeu, senão volta pro padrão e a foto some), auto_images (a IA escolhe fotos do banco pros slides, 60 Sinapses, estorna se não tiver o que preencher; makeVisual converte slides de texto em layout de foto antes; generateMissing gera foto nova pros que o banco não cobrir, até 4, ~450 Sinapses cada, avise o custo antes), generate_image (foto nova pra UM slide, ~450 Sinapses, customPrompt opcional), set_image (põe no slide uma peça da pessoa ou pública pelo ID citável img_…, sem custo; é como ela usa as PRÓPRIAS fotos), cover (a Capa IA: capa 16:9 com a manchete QUEIMADA na imagem e um elemento vivo cruzando as letras; com carouselId fatia em duas e põe na frente do carrossel no lugar da capa IA anterior; cobra pelo motor da capa, confirme o custo antes). A ASSINATURA (theme.signature: o nome no topo, a marca no canto e o @ do fecho) nasce da marca da pessoa, ou do nome dela quando não tem marca; o @ é o dela no Instagram, não invente. O BRAND veste a peça inteira: cor (o destaque é a cor do brand que lê no fundo, trocável no editor), fonte do título e do corpo, voz e assinatura; no generate, brandSlug escolhe outro brand que não o padrão da conta. Carrossel que vem de FORA entra pelo update: cada slide de lá casa com um layout do catálogo do get pelo papel (capa, corpo, cta) e pela foto, e o estilo vem do brand (sapiens_brand action=import), não do layout. O carrossel vai até 15 slides. generate, auto_images com generateMissing, generate_image e cover são SÍNCRONAS e pesadas: vale a REGRA DO TIMEOUT (confira em action=list antes de repetir). Baixar o arquivo é no editor (a url): aqui sai a receita pronta. O carrossel atrelado a uma jogada do Workflow segue pela sapiens_pipeline.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brief | No | generate: o tema e o ângulo do carrossel, em um parágrafo. Use brief OU articleId OU userArticleId. | |
| force | No | auto_images: true troca também as fotos que já estão nos slides. | |
| model | No | generate: a FORMA. 'feed' (padrão: 9 slides, abre numa dor, mostra o mecanismo, fecha em ação), 'reflexao' (tema existencial sustentado por uma analogia), 'case' (análise de tendência a partir de link ou manchete, fecha em keyword), 'editorial' (a IA escolhe os layouts livremente, 7 a 9 slides). | |
| title | No | update: novo título do carrossel (opcional). | |
| action | Yes | generate (gera um carrossel do zero a partir de brief OU artigo, 350 Sinapses, estorna se falhar) · list (seus carrosséis) · get (payload inteiro + catálogo de layouts, paletas, folhas e a assinatura, tudo pra você escrever os slides) · update (grava o payload inteiro de volta, normalizado no servidor) · auto_images (a IA escolhe fotos do banco pros slides, 60 Sinapses; generateMissing gera as que faltarem, ~450 cada) · generate_image (foto nova pra UM slide, ~450) · set_image (põe no slide uma peça SUA ou pública, pelo ID citável img_…, sem custo) · cover (a Capa IA: capa 16:9 com o texto queimado, fatiada em duas e posta na frente do carrossel, cobra pelo motor da capa). | |
| aspect | No | generate: o TAMANHO da folha. '4:5' (padrão, o feed do Instagram mostra inteira) ou '9:16' (tela cheia). Dá pra trocar depois no editor. | |
| focalX | No | set_image: ponto focal horizontal (0 a 1, default 0.5). | |
| focalY | No | set_image: ponto focal vertical (0 a 1, default 0.5). | |
| handle | No | set_image: o ID citável da peça (img_…), que o usuário copia no detalhe dela ou vem de sapiens_reference/sapiens_gallery. Peça sua ou pública. | |
| payload | No | update: o payload INTEIRO, no shape do get: { theme: { palette, sheet, signature, brand?, fonts? }, slides: [{ id, templateId, slots, image }], meta }. Preserve image dos slides que você não mexeu e o theme inteiro (folha, assinatura, cor e fonte do brand): o que faltar volta pro padrão. Na peça que veste um brand (palette 'brand'), theme.brand traz os tokens de cor (bg, text, accent, kicker em hex) e theme.fonts a tipografia ({ display: família do título, text: família do corpo }, sem fonts = a da casa). Pra trocar a cor de DESTAQUE, ponha o mesmo hex em accent e kicker. Carrossel que vem de FORA (outro app, outro editor): case cada slide de lá com um layout do catálogo do get pelo PAPEL (role: capa, corpo, cta), pela foto (requiresImage) e pelos slots, e ponha o texto nos slots daquele layout; o estilo (cor, fonte, logo) vem do brand, não do layout. Layout de fora sem par no catálogo vira o corpo mais próximo, nunca layout inventado. Foto NOVA não entra por URL aqui: use set_image (ID da peça) ou generate_image. | |
| slideId | No | generate_image e set_image: o id do slide (vem do get). | |
| capaVibe | No | cover: o cenário (omita e a IA escolhe). | |
| articleId | No | generate: id de um artigo PUBLICADO do blog da casa, usado como fonte (o carrossel fica fiel ao argumento dele). | |
| brandSlug | No | generate: o brand da peça (slug de sapiens_brand action=list), quando não é o padrão da conta. Veste a cor, a fonte, a voz e a assinatura dele. Sem isso vale o padrão da conta. Brand que a pessoa não pode usar cai no padrão. | |
| carouselId | No | O id do carrossel (vem do generate e do list). Obrigatório em get, update, auto_images, generate_image, set_image; opcional no cover (sem ele a capa só é gerada). | |
| makeVisual | No | auto_images: true converte slides só de texto em layouts com foto antes de escolher (dá ritmo a carrossel texto-pesado). | |
| capaElement | No | cover: o elemento vivo que cruza as letras (omita e a IA escolhe pela pauta). | |
| capaSubline | No | cover: linha de apoio (opcional). | |
| capaHeadline | No | cover: a manchete que vai queimada na capa (obrigatória). | |
| customPrompt | No | generate_image: direção da cena (opcional; sem ela a cena sai do texto do slide). | |
| useSintetico | No | generate: true = a voz do seu Sintético escreve o texto por cima da voz da sua marca. | |
| baseUpdatedAt | No | update: o updatedAt que o get devolveu. Mande sempre: se o carrossel mudou depois do get (uma foto gerada, uma edição no editor), o update recusa em vez de apagar isso com o payload velho. Aí faça get de novo e reaplique. | |
| capaRightText | No | cover: o texto que cai no 2º slide (opcional). | |
| userArticleId | No | generate: id de um artigo SEU do perfil (sapiens_write), usado como fonte. | |
| autoPickImages | No | generate: false = só o texto, sem escolher fotos (default true, incluso no preço). | |
| capaImageModel | No | cover: o motor da capa. Default o que escreve letra pequena legível; veja o preço em sapiens_image action=models. | |
| generateMissing | No | auto_images: true gera foto nova pros slides que o banco não cobriu (até 4, ~450 Sinapses cada). Avise o custo antes. |