sapiens-mcp 1.90.0 → 1.91.0
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/skills.js +10 -3
- package/dist/tools/distribution.js +6 -1
- package/dist/tools/publicar.js +11 -3
- package/package.json +1 -1
package/dist/skills.js
CHANGED
|
@@ -846,7 +846,7 @@ A tela é uma FILA: cada peça numa rede é um cartão (rascunho, agendado, envi
|
|
|
846
846
|
## O fluxo
|
|
847
847
|
|
|
848
848
|
1. \`sapiens_publicar action=painel handle=<img_..., vid_... ou car_...>\`. Volta:
|
|
849
|
-
- \`redes\`: cada rede com \`conectada\`, o \`conta\` (@), o \`copyMax\` (limite de texto) e o \`fit\` (o que rende lá).
|
|
849
|
+
- \`redes\`: cada rede com \`conectada\`, o \`conta\` (@), o \`copyMax\` (limite de texto) e o \`fit\` (o que rende lá). No LinkedIn com \`comoPagina: true\`, o \`conta\` é o nome da Página da empresa onde o post sai, não um @: diga "sai na Página X". Trocar entre perfil e Página é na tela, embaixo do LinkedIn em Suas redes.
|
|
850
850
|
- \`peca.porRede\`: onde a peça já está, uma linha por rede, com \`status\` (rascunho, enviado, agendado, publicado, falhou, cancelado) e \`url\` quando saiu.
|
|
851
851
|
- \`sugestao\`: \`sugeridas\` (conectadas, na ordem do que rende, com o motivo), \`fora\` (as que não levam essa peça e por quê) e \`valeConectar\` (não ligadas onde a peça iria bem).
|
|
852
852
|
2. Proponha as redes pela \`sugestao\`, na voz da pessoa. Não repita rede onde a peça já saiu, a não ser que ela peça.
|
|
@@ -855,6 +855,12 @@ A tela é uma FILA: cada peça numa rede é um cartão (rascunho, agendado, envi
|
|
|
855
855
|
5. \`action=publicar\` com \`handle\`, \`redes\`, os blocos e, se for agendar, \`agendarPara\` em ISO com fuso (mínimo 5 minutos à frente, até um ano). O retorno traz \`adaptadas\`: diga quais redes receberam menos do que foi escrito.
|
|
856
856
|
6. A casa confere sozinha o que saiu (a cada 10 minutos) e avisa a pessoa no sino, e no Telegram se ela ligou, quando o post sai ou falha. Pra saber na hora, \`action=lista\` e \`action=conferir postId=...\` mostram o que cada rede fez, com o link.
|
|
857
857
|
|
|
858
|
+
## Conta extra
|
|
859
|
+
|
|
860
|
+
Quem comprou CONTA EXTRA (€ 9,90 por mês cada, na tela do Distribution, em Suas redes) tem mais de uma conta na mesma rede. Cada conta extra é um DESTINO com a conta no id: \`tiktok\` é o TikTok da conta 1, \`tiktok@2\` o da conta 2. O \`painel\` traz \`contasExtras\`, cada uma com os destinos ligados nela, e a \`sugestao\` já sugere cada conta pelo nome ("TikTok · Conta 2"). Rascunho, publicar, legenda própria e Teia aceitam o destino do mesmo jeito que aceitam a rede.
|
|
861
|
+
|
|
862
|
+
Um envio sai por UMA conta. Pra a peça sair na conta 1 e na conta 2, chame \`publicar\` duas vezes, uma por conta. Comprar, devolver e ligar as redes de uma conta extra é sempre na tela.
|
|
863
|
+
|
|
858
864
|
## Rascunho
|
|
859
865
|
|
|
860
866
|
\`action=rascunho handle rede legenda\` guarda a legenda de uma rede sem mandar. Ela aparece no painel da tela quando a pessoa abrir a peça, e o envio usa ela. Legenda vazia apaga. Acima do limite da rede volta erro com o número: corte você, não deixe pra rede.
|
|
@@ -870,8 +876,9 @@ A Teia é da pessoa: "quando sai no Instagram, entra na fila do Threads". \`acti
|
|
|
870
876
|
## Limites
|
|
871
877
|
|
|
872
878
|
- Sem custo em Sinapses. O teto é o do plano do Distribution: publicações por ciclo, mais o limite diário de cada rede. O erro diz qual bateu.
|
|
873
|
-
- Imagem não vai pra TikTok nem YouTube (só vídeo).
|
|
874
|
-
-
|
|
879
|
+
- Imagem não vai pra TikTok nem YouTube (só vídeo).
|
|
880
|
+
- Música (\`trk_...\`) e artigo (\`art_...\`) saem pela CAPA, como imagem, com o link da página no fim da legenda de cada rede (o corpo encurta, o link fica inteiro): por isso nada de TikTok e YouTube. Só sai peça no ar (música publicada na Comunidade, artigo publicado) e com capa; o erro diz qual falta.
|
|
881
|
+
- Carrossel (\`car_...\`) sai INTEIRO, até 10 slides: vira carrossel no Instagram e no Threads, fio de 4 em 4 no X, as 4 primeiras no Bluesky. No LinkedIn, publicado SOZINHO (\`redes=['linkedin']\`), vira documento de arrastar (PDF) e o retorno traz \`comoDocumento: true\`; junto de outras redes, ou se o PDF não sair, leva as imagens soltas. Pra ter o documento, mande o LinkedIn numa chamada própria. O Pinterest recusa mais de 5: tire ele da lista. Carrossel que nunca foi exportado nem guardado no editor ainda não tem arquivo e volta erro dizendo isso.
|
|
875
882
|
- Cancelar o agendamento (\`action=cancelar postId=...\`, até 2 minutos antes da hora) NÃO cancela a peça: ela só perde a hora e volta pra fila daquela rede, como rascunho, com a mesma legenda. Pra trocar a hora, cancele e publique de novo com \`agendarPara\`; pra mandar agora, cancele e publique sem hora.`,
|
|
876
883
|
},
|
|
877
884
|
{
|
|
@@ -78,6 +78,7 @@ const CHANNELS = [
|
|
|
78
78
|
"bluesky-7",
|
|
79
79
|
"bluesky-8",
|
|
80
80
|
"bluesky-9",
|
|
81
|
+
"bluesky-10",
|
|
81
82
|
"farcaster",
|
|
82
83
|
"telegram",
|
|
83
84
|
// Canais de personagem no Telegram (telegram-2 = Aria, telegram-3 = Arak,
|
|
@@ -127,6 +128,9 @@ const CHANNELS = [
|
|
|
127
128
|
// Segunda via pelo Buffer (conta que a casa liga lá).
|
|
128
129
|
"x-buffer",
|
|
129
130
|
"tiktok-buffer",
|
|
131
|
+
"tiktok-buffer-2",
|
|
132
|
+
// O TikTok de linhagem pelo upload-post, no profile da linhagem dona do canal.
|
|
133
|
+
"tiktok-up",
|
|
130
134
|
// X e LinkedIn do Obsolete Human, pelo Buffer próprio do selo.
|
|
131
135
|
"x-buffer-2",
|
|
132
136
|
"x-buffer-3",
|
|
@@ -138,6 +142,7 @@ const CHANNELS = [
|
|
|
138
142
|
"instagram-5",
|
|
139
143
|
"instagram-6",
|
|
140
144
|
"instagram-7",
|
|
145
|
+
"instagram-8",
|
|
141
146
|
"threads-3",
|
|
142
147
|
"threads-4",
|
|
143
148
|
"threads-5",
|
|
@@ -210,7 +215,7 @@ export const distributionSchema = z.object({
|
|
|
210
215
|
assetKind: z
|
|
211
216
|
.enum(["image", "video", "audio"])
|
|
212
217
|
.optional()
|
|
213
|
-
.describe("queue: o tipo da mídia. Ausente, o servidor infere pela URL. A MÍDIA ESCOLHE O CANAL, e o servidor recusa o par errado com o caminho certo no erro: youtube, youtube-2..5 e bilibili levam só vídeo (foto ou texto no YouTube vai por youtube-community); tiktok sobe só vídeo pro inbox (foto no TikTok vai por tiktok-buffer); pinterest, google-business e youtube-community levam só imagem (vídeo nesses três: manda a capa como imagem, ou muda o canal). Áudio conta como imagem: nenhum canal sobe áudio pela API, a peça empacota pro post manual. O resto leva os três."),
|
|
218
|
+
.describe("queue: o tipo da mídia. Ausente, o servidor infere pela URL. A MÍDIA ESCOLHE O CANAL, e o servidor recusa o par errado com o caminho certo no erro: youtube, youtube-2..5 e bilibili levam só vídeo (foto ou texto no YouTube vai por youtube-community); tiktok sobe só vídeo pro inbox (foto no TikTok vai por tiktok-buffer); tiktok-up (o TikTok de linhagem pelo upload-post) publica e leva só vídeo; pinterest, google-business e youtube-community levam só imagem (vídeo nesses três: manda a capa como imagem, ou muda o canal). Áudio conta como imagem: nenhum canal sobe áudio pela API, a peça empacota pro post manual. O resto leva os três."),
|
|
214
219
|
assetPageAssetId: z
|
|
215
220
|
.string()
|
|
216
221
|
.optional()
|
package/dist/tools/publicar.js
CHANGED
|
@@ -16,6 +16,8 @@ import { need } from "../schema.js";
|
|
|
16
16
|
* (rascunho, agendado, enviado, publicado, falhou, descartado).
|
|
17
17
|
* - painel: as redes (conectada ou não, @, limite, régua). Com `handle`,
|
|
18
18
|
* a peça: onde já está, por rede, e a sugestão de onde mandar.
|
|
19
|
+
* Quem comprou CONTA EXTRA vê `contasExtras`: cada conta com os
|
|
20
|
+
* destinos ligados nela ("tiktok@2" é o TikTok da conta 2).
|
|
19
21
|
* - rascunho: guarda a legenda de UMA rede pra peça (vazia apaga).
|
|
20
22
|
* - publicar: manda agora ou agenda. Legenda em blocos: text (corpo), cta,
|
|
21
23
|
* hashtags. Cada rede leva o que cabe no limite dela.
|
|
@@ -39,9 +41,15 @@ export const publicarSchema = z.object({
|
|
|
39
41
|
.string()
|
|
40
42
|
.optional()
|
|
41
43
|
.describe("A peça (img_..., vid_..., car_... pro carrossel inteiro). Obrigatório em rascunho e publicar; em painel traz a peça junto."),
|
|
42
|
-
rede: z
|
|
44
|
+
rede: z
|
|
45
|
+
.string()
|
|
46
|
+
.optional()
|
|
47
|
+
.describe("rascunho: a rede (id do painel: instagram, tiktok, threads...). Numa conta extra, o destino com a conta: tiktok@2."),
|
|
43
48
|
legenda: z.string().optional().describe("rascunho: a legenda daquela rede. Vazia apaga o rascunho."),
|
|
44
|
-
redes: z
|
|
49
|
+
redes: z
|
|
50
|
+
.array(z.string())
|
|
51
|
+
.optional()
|
|
52
|
+
.describe("publicar: as redes (ids do painel), só as conectadas. Conta extra vai com a conta: tiktok@2 é o TikTok da conta 2 (painel, contasExtras). Um envio sai por UMA conta: pra publicar na conta 1 e na 2, chame publicar duas vezes."),
|
|
45
53
|
text: z.string().optional().describe("publicar: o CORPO da legenda. Ausente usa o título da peça."),
|
|
46
54
|
cta: z.string().optional().describe("publicar: a chamada, em bloco à parte. Sai antes do corpo quando não cabe."),
|
|
47
55
|
hashtags: z
|
|
@@ -51,7 +59,7 @@ export const publicarSchema = z.object({
|
|
|
51
59
|
legendas: z
|
|
52
60
|
.record(z.string(), z.string())
|
|
53
61
|
.optional()
|
|
54
|
-
.describe("publicar: legenda própria por rede ({threads: '...'}), passa por cima dos blocos naquela rede."),
|
|
62
|
+
.describe("publicar: legenda própria por rede ({threads: '...'}, ou {'threads@2': '...'} na conta extra), passa por cima dos blocos naquela rede."),
|
|
55
63
|
agendarPara: z
|
|
56
64
|
.string()
|
|
57
65
|
.optional()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sapiens-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.91.0",
|
|
4
4
|
"mcpName": "com.sapiensinteticos/sapiens",
|
|
5
5
|
"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.",
|
|
6
6
|
"type": "module",
|