sapiens-mcp 1.46.4 → 1.47.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/registry.js +16 -7
- package/dist/resume/template.js +1044 -0
- package/dist/skills.js +51 -1
- package/dist/tools/image.js +1 -1
- package/dist/tools/meta.js +13 -0
- package/dist/tools/resume.js +154 -0
- package/dist/tools/studios.js +2 -2
- package/dist/tools/write.js +47 -6
- package/package.json +3 -2
package/dist/registry.js
CHANGED
|
@@ -33,6 +33,7 @@ import { trilhas, trilhasSchema } from "./tools/trilhas.js";
|
|
|
33
33
|
import { semana, semanaSchema } from "./tools/semana.js";
|
|
34
34
|
import { shareDrop, shareDropSchema } from "./tools/shareDrop.js";
|
|
35
35
|
import { skill, skillSchema } from "./tools/skill.js";
|
|
36
|
+
import { resume, resumeSchema } from "./tools/resume.js";
|
|
36
37
|
import { describeConvexError } from "./convexClient.js";
|
|
37
38
|
import { skillMenuLine } from "./skills.js";
|
|
38
39
|
/**
|
|
@@ -84,7 +85,7 @@ export const TOOLS = {
|
|
|
84
85
|
handler: article,
|
|
85
86
|
},
|
|
86
87
|
sapiens_write: {
|
|
87
|
-
description: "Artigos self-serve do PRÓPRIO usuário (qualquer conta logada, não só admin)
|
|
88
|
+
description: "Artigos self-serve do PRÓPRIO usuário (qualquer conta logada, não só admin): espaço pessoal, aparece em /u/<username>, NÃO é o blog editorial. ESCOLHA A PORTA CERTA: texto que a PESSOA já escreveu vai em create (GRÁTIS, nada reescrito); IA só entra em generate (400 Sinapses). Gerar e depois sobrescrever com o texto original é queimar 400 à toa. Sub-actions: create (salva o texto pronto do autor: title obrigatório + content markdown; nasce rascunho, custo 0; brandSlug veste a peça com um design system (omitido, herda o padrão da conta) e é o que faz capa e imagens saírem no estilo DELE, não no da casa; coverImageId/coverImageUrl anexam uma capa que ele já tem, também de graça), generate (gera 1 artigo na voz Sapiens a partir de brief livre, ou reescrevendo um artigo publicado/texto teu; custa 400 Sinapses, reembolsa se falhar; salva como rascunho. Capa: por padrão gera uma capa-cortesia grátis, já no design system do autor quando ele tem um; se você JÁ tem a imagem (gerou via sapiens_image, ou o artigo é sobre ela), passe coverImageId (id da tua galeria) ou coverImageUrl (host Sapiens) pra ELA virar a capa em vez da cortesia), list (teus artigos), get (1 artigo teu por id, corpo completo), update (edita title/content/excerpt/tldr), publish (publish=true publica no teu perfil, false volta pra rascunho). Identidade vem do sessionToken; cobra as Sinapses do dono do token. Pra blog editorial curado (owner-only) use sapiens_article. NOTA (generate): é SÍNCRONA (texto + capa) e cai na REGRA DO TIMEOUT; sem idempotência, repetir às cegas cria um 2º rascunho e cobra 400 de novo (cheque action=list antes; o artigo do timeout fica salvo como rascunho).",
|
|
88
89
|
schema: writeSchema,
|
|
89
90
|
handler: write,
|
|
90
91
|
},
|
|
@@ -99,7 +100,7 @@ export const TOOLS = {
|
|
|
99
100
|
handler: search,
|
|
100
101
|
},
|
|
101
102
|
sapiens_studios: {
|
|
102
|
-
description: "O SEU studio (o perfil de EMPRESA da casa do user) + o catálogo dos estúdios/experimentos Sapiens. Sub-actions: mine (o studio do user: nome/endereço público/marca/operador/tamanho do time), create (FUNDA um studio novo, exige name; nasce
|
|
103
|
+
description: "O SEU studio (o perfil de EMPRESA da casa do user) + o catálogo dos estúdios/experimentos Sapiens. Sub-actions: mine (o studio do user: nome/endereço público/marca/operador/tamanho do time), create (FUNDA um studio novo, exige name; nasce NO AR com endereço público, sem rascunho, de graça, teto de 4 por pessoa), list (catálogo com URL+status+tags+mcpReady), get (detalhe de 1 slug), publishable_url (formata URL /articles/<slug>). Use quando user pergunta 'que estúdios existem', 'qual o meu studio', ou diz 'quero abrir/fundar meu studio', 'criar a página da minha empresa'. Estúdios cobertos: helen-voice, musicator, persona-sapiens, personagem-atlas, sapiens-shorts, sapiens-video, text-post-builder, comic-builder, carrosel-editorial, comunidade, repertorio.",
|
|
103
104
|
schema: studiosSchema,
|
|
104
105
|
handler: studios,
|
|
105
106
|
},
|
|
@@ -208,6 +209,11 @@ export const TOOLS = {
|
|
|
208
209
|
schema: shareDropSchema,
|
|
209
210
|
handler: shareDrop,
|
|
210
211
|
},
|
|
212
|
+
sapiens_resume: {
|
|
213
|
+
description: "Currículo PRO — o gerador de currículo da casa, DE GRAÇA e sem login (mundo fechado: não fala com o backend, não cobra Sinapse). VOCÊ conduz a entrevista (ou lê o texto de LinkedIn/currículo antigo que a pessoa colar), monta o JSON no contrato e recebe o HTML pronto pra imprimir em PDF (A4). Sub-actions: 'schema' (o contrato de dados + os 4 modelos; leia ANTES do primeiro render), 'render' (data -> HTML completo). Modelos (arg theme): 'pro' (default, duas colunas com sidebar verde-jade: foto/monograma, contato, chips de competências, barras de idioma, timeline de experiência), 'executivo' (duas colunas grafite + bronze, nome em serifa), 'moderno' (coluna única, roxo da casa), 'minimal' (coluna única preto e branco); accentColor troca a cor de destaque. FOTO DE PERFIL: opcional e NUNCA persistida em banco. No MCP instalado (stdio), photoPath lê a foto local e embute como data URI direto no HTML, sem sair da máquina; no remoto, data.photo aceita URL https. No stdio, outPath salva o .html direto no disco e a resposta volta enxuta (sem trafegar o HTML inteiro). Regra de conteúdo: melhore a redação, jamais invente fato; lang ('pt'|'en') casa os títulos de seção com o idioma do conteúdo. É o MESMO template do Lab /experimentos/resume-builder.",
|
|
214
|
+
schema: resumeSchema,
|
|
215
|
+
handler: resume,
|
|
216
|
+
},
|
|
211
217
|
};
|
|
212
218
|
// Guia de uso server-level: o protocolo MCP devolve isto no handshake (initialize)
|
|
213
219
|
// e TODO cliente (Helen no Hermes, Gemini CLI, Cursor, Antigravity) injeta no modelo.
|
|
@@ -221,7 +227,7 @@ O passo a passo travado de cada fluxo mora na tool sapiens_skill, servida por es
|
|
|
221
227
|
- sapiens_skill action=list -> o índice (slug + quando usar cada uma).
|
|
222
228
|
- sapiens_skill action=get name=<slug> -> a skill inteira.
|
|
223
229
|
Slugs: ${skillMenuLine()}
|
|
224
|
-
Puxe a skill ANTES de: gerar música ou efeito sonoro (musica), escolher modelo de vídeo (video), gerar imagem (imagem), criar na identidade do usuário (studio), montar tirinha (tirinha), postar no Fórum ou no chat (forum-comunidade), redigir qualquer texto publicável (voz-da-casa), incorporar o Sintético (companhia), missão de Desafio (trilhas). Perdido no começo: primeiros-passos.
|
|
230
|
+
Puxe a skill ANTES de: gerar música ou efeito sonoro (musica), escolher modelo de vídeo (video), gerar imagem (imagem), criar na identidade do usuário (studio), montar tirinha (tirinha), postar no Fórum ou no chat (forum-comunidade), redigir qualquer texto publicável (voz-da-casa), incorporar o Sintético (companhia), missão de Desafio (trilhas), montar currículo (curriculo). Perdido no começo: primeiros-passos.
|
|
225
231
|
Cliente que lê resources MCP acha o MESMO conteúdo em skill://sapiens/<slug>/SKILL.md.
|
|
226
232
|
|
|
227
233
|
REGRA DE OURO:
|
|
@@ -249,10 +255,12 @@ const READ_ONLY_TOOLS = new Set([
|
|
|
249
255
|
"sapiens_reference",
|
|
250
256
|
"sapiens_skill",
|
|
251
257
|
]);
|
|
252
|
-
//
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
|
|
258
|
+
// As tools que NÃO falam com o backend: skills são conteúdo estático do pacote
|
|
259
|
+
// e o currículo é render puro (data -> HTML). openWorldHint=false é honesto e
|
|
260
|
+
// ajuda o client a auto-aprovar sem nem pensar (nenhuma ação na conta de
|
|
261
|
+
// ninguém). sapiens_resume fica FORA do READ_ONLY_TOOLS: outPath escreve um
|
|
262
|
+
// .html no disco da pessoa (no stdio), então read-only seria mentira.
|
|
263
|
+
const CLOSED_WORLD_TOOLS = new Set(["sapiens_skill", "sapiens_resume"]);
|
|
256
264
|
const TOOL_TITLES = {
|
|
257
265
|
sapiens_pipeline: "Pipeline de Conteúdo",
|
|
258
266
|
sapiens_image: "Gerar Imagem",
|
|
@@ -286,6 +294,7 @@ const TOOL_TITLES = {
|
|
|
286
294
|
sapiens_semana: "Minha Semana",
|
|
287
295
|
sapiens_instagram: "Auto-DM Instagram",
|
|
288
296
|
sapiens_share: "Share Drop",
|
|
297
|
+
sapiens_resume: "Currículo PRO",
|
|
289
298
|
};
|
|
290
299
|
// Tools ADMIN-ONLY de ponta a ponta (o Convex recusa user comum em toda action):
|
|
291
300
|
// escondidas do tools/list quando o servidor SABE que o tier é user. São as
|