sapiens-mcp 1.24.4 → 1.24.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -34,7 +34,7 @@ import { trilhas, trilhasSchema } from "./tools/trilhas.js";
34
34
  import { describeConvexError } from "./convexClient.js";
35
35
  const TOOLS = {
36
36
  sapiens_pipeline: {
37
- description: "CRUD do content pipeline Sapiens (sources/productions/publishables). Sub-actions: list_sources, list_articles (use includeDrafts pra incluir drafts; onlyAvailable pra esconder os já virados em source), get_source, get_production, list_versions, add_article_as_source, create_draft_article_and_source (seed), create_production (sourceId+format → productionId draft), update_production (substitui payload, opcionalmente muda status), finalize_production (cria publishable v1, v2... com snapshot), remove_production, remove_source, set_source_done, update_source_notes, restore_version (volta payload duma versão antiga), propose_mega_grafico_plan (granular: só gera plano via Gemini, devolve fullPrompt+spec), run_mega_grafico_full (ONE-SHOT, recomendado: cria production+propõe plano+gera imagem+aplica selo Sapiens+finaliza publishable numa chamada só). Pra mega_grafico, SEMPRE prefira run_mega_grafico_full em vez de sequenciar manualmente — menos drift, idempotente (passa productionId pra reusar). OBRIGATÓRIO perguntar ao user antes se withHelen=true (cartoon Helen interage com tema, ~15-25% do poster) ou false (poster 100% diagramático). Custo ~900-1000 sinapses por geração. Use skipFinalize=true se quiser deixar production em 'ready' pro admin revisar antes de publishable. Payload livre por formato — chame sapiens_meta action=formats pra ver schemas sugeridos.",
37
+ description: "CRUD do content pipeline Sapiens (sources/productions/publishables). Sub-actions: list_sources, list_articles (use includeDrafts pra incluir drafts; onlyAvailable pra esconder os já virados em source), get_source, get_production, list_versions, add_article_as_source, create_draft_article_and_source (seed), create_production (sourceId+format → productionId draft), update_production (substitui payload, opcionalmente muda status), finalize_production (cria publishable v1, v2... com snapshot), remove_production, remove_source, set_source_done, update_source_notes, restore_version (volta payload duma versão antiga), propose_mega_grafico_plan (granular: só gera plano via Gemini, devolve fullPrompt+spec), run_mega_grafico_full (ONE-SHOT, recomendado: cria production+propõe plano+gera imagem+aplica selo Sapiens+finaliza publishable numa chamada só), generate_carousel (gera um carrossel editorial standalone a partir de brief OU articleId — 7-9 slides na voz Sapiens + imagens do banco; devolve id + url do editor pro humano abrir, ajustar e exportar; admin-only, cobra Sinapses, reembolsa se falhar). Pra mega_grafico, SEMPRE prefira run_mega_grafico_full em vez de sequenciar manualmente — menos drift, idempotente (passa productionId pra reusar). OBRIGATÓRIO perguntar ao user antes se withHelen=true (cartoon Helen interage com tema, ~15-25% do poster) ou false (poster 100% diagramático). Custo ~900-1000 sinapses por geração. Use skipFinalize=true se quiser deixar production em 'ready' pro admin revisar antes de publishable. Payload livre por formato — chame sapiens_meta action=formats pra ver schemas sugeridos.",
38
38
  schema: pipelineSchema,
39
39
  handler: pipeline,
40
40
  },
@@ -219,7 +219,7 @@ Mídia no Fórum (PADRÃO, faça sempre assim): a peça vai EMBEDADA num card es
219
219
  Trilhas e Ritos de Fogo (sapiens_trilhas): 'list'/'get' pra navegar as trilhas; 'list_challenges' mostra os Ritos ativos + seu status; 'claim_mission' (missionId + proofText) envia a prova pra revisão do dono — o crédito em Sinapses sai na aprovação dele, não na hora. Não prometa Sinapse na hora do claim.
220
220
 
221
221
  Voz da casa: 1ª pessoa, direto, anti-corporate, sem travessão. Pra bom entendedor, meia palavra basta.`;
222
- const server = new Server({ name: "mcp-sapiens", version: "1.24.4" }, { capabilities: { tools: {} }, instructions: SAPIENS_INSTRUCTIONS });
222
+ const server = new Server({ name: "mcp-sapiens", version: "1.24.6" }, { capabilities: { tools: {} }, instructions: SAPIENS_INSTRUCTIONS });
223
223
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
224
224
  tools: Object.entries(TOOLS).map(([name, t]) => ({
225
225
  name,
@@ -252,4 +252,4 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
252
252
  });
253
253
  const transport = new StdioServerTransport();
254
254
  await server.connect(transport);
255
- console.error("mcp-sapiens v1.24.4 rodando via stdio (27 tools)");
255
+ console.error("mcp-sapiens v1.24.6 rodando via stdio (27 tools)");
@@ -41,6 +41,7 @@ export const pipelineSchema = z.object({
41
41
  "backfill_via",
42
42
  "propose_mega_grafico_plan",
43
43
  "run_mega_grafico_full",
44
+ "generate_carousel",
44
45
  ]),
45
46
  // propose_mega_grafico_plan / run_mega_grafico_full
46
47
  withHelen: z
@@ -68,6 +69,19 @@ export const pipelineSchema = z.object({
68
69
  })
69
70
  .optional()
70
71
  .describe("Override de model/aspectRatio/size sobre os defaults do template. Cada um valida contra o allowedX do template; se sair do whitelist, action throws."),
72
+ // generate_carousel
73
+ brief: z
74
+ .string()
75
+ .optional()
76
+ .describe("Tema/ângulo do carrossel (fonte 'brief'). Quanto mais específico, melhor. Alternativa: articleId pra partir de um artigo publicado."),
77
+ autoPickImages: z
78
+ .boolean()
79
+ .optional()
80
+ .describe("generate_carousel: a IA escolhe imagens do banco pros slides de foto (default true)."),
81
+ useSintetico: z
82
+ .boolean()
83
+ .optional()
84
+ .describe("generate_carousel: se TRUE, a voz do Sintético do dono dirige o copy (amplificar). Default false = estilo do dono."),
71
85
  // list_articles
72
86
  includeDrafts: z.boolean().optional(),
73
87
  includeArchived: z.boolean().optional(),
@@ -296,5 +310,24 @@ export async function pipeline(args) {
296
310
  });
297
311
  return result;
298
312
  }
313
+ case "generate_carousel": {
314
+ // Gera um carrossel editorial standalone (7-9 slides na voz Sapiens) a
315
+ // partir de um brief OU de um artigo publicado, escolhe imagens do banco, e
316
+ // devolve { id, url, title, slidesCount } — o humano abre a URL do editor
317
+ // pra ajustar e exportar. ADMIN-ONLY. Cobra Sinapses (reembolsa se falhar).
318
+ const brief = args.brief?.trim();
319
+ const articleId = args.articleId;
320
+ if (!brief && !articleId) {
321
+ throw new Error('generate_carousel: passe brief (tema/ângulo) OU articleId (artigo publicado como fonte).');
322
+ }
323
+ return await convexAction("carouselAutofill:mcpCreateCarousel", {
324
+ sessionToken,
325
+ sourceKind: articleId ? "published_article" : "brief",
326
+ ...(brief ? { brief } : {}),
327
+ ...(articleId ? { publishedArticleId: articleId } : {}),
328
+ autoPickImages: args.autoPickImages,
329
+ useSintetico: args.useSintetico,
330
+ });
331
+ }
299
332
  }
300
333
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sapiens-mcp",
3
- "version": "1.24.4",
3
+ "version": "1.24.6",
4
4
  "description": "MCP server pra operar o Sapiens Sintéticos (sapiensinteticos.com) pelo Claude Code: gerar imagem, escrever artigo, voz, música e mais, na sua conta. Login pelo código de sapiensinteticos.com/conectar-claude.",
5
5
  "type": "module",
6
6
  "bin": {