brito-cli 0.7.4 → 0.7.5
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/mcp/server.js +1 -1
- package/dist/tools/skills.js +6 -8
- package/package.json +1 -1
package/dist/mcp/server.js
CHANGED
|
@@ -19,7 +19,7 @@ export const MCP_INSTRUCTIONS = [
|
|
|
19
19
|
"- Para localizar código, use graph_search/graph_context antes de ler arquivos; antes de alterar, meça o impacto com graph_callers/graph_impact. O grafo se atualiza sozinho após edições (graph_index só força).",
|
|
20
20
|
`- O grafo cobre ${INDEXED_EXTENSIONS.join(", ")} (em .svelte/.vue/.astro, o script e as chamadas do template). Imports relativos e por alias (paths/baseUrl do tsconfig, imports do package.json, $lib do SvelteKit) viram arestas. Em Java, Kotlin, Go, Ruby, PHP, C# e Rust os imports são resolvidos pelo pacote/namespace/módulo e o receptor de uma chamada é casado com o tipo pelo nome (sem inferência de tipos). Outras linguagens e arquivos ignorados pelo .gitignore não entram: use busca de texto para eles.`,
|
|
21
21
|
"- recall/remember: notas duráveis (decisões, convenções, bugs descobertos). Consulte recall ao começar uma tarefa.",
|
|
22
|
-
"- skill_load: carregue a skill antes de uma tarefa que ela cobre. No modo \"tudo liberado\", skill_save
|
|
22
|
+
"- skill_load: carregue a skill antes de uma tarefa que ela cobre. No modo \"tudo liberado\", skill_save grava em teste; só o arriscado (comando destrutivo, mudança em skill aprovada) vira proposta pendente para /skills approve.",
|
|
23
23
|
].join("\n");
|
|
24
24
|
/**
|
|
25
25
|
* O claude CLI adia as tools MCP atrás de uma busca (ToolSearch): o modelo só as usa se pensar em procurá-las, e o grafo
|
package/dist/tools/skills.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { defineTool } from "./registry.js";
|
|
3
|
-
import { bumpUses, deleteSkill, getSkill, listPending,
|
|
3
|
+
import { bumpUses, deleteSkill, getSkill, listPending, saveSkill, validate } from "../skills/store.js";
|
|
4
|
+
import { saveAuto } from "../skills/trial.js";
|
|
4
5
|
import { describeSave } from "../skills/describe.js";
|
|
5
6
|
import { perms } from "../permissions.js";
|
|
6
7
|
defineTool({
|
|
@@ -18,7 +19,7 @@ defineTool({
|
|
|
18
19
|
});
|
|
19
20
|
defineTool({
|
|
20
21
|
name: "skill_save",
|
|
21
|
-
description: "Cria ou atualiza uma skill: procedimento reutilizável aprendido numa tarefa. Só para padrões GERAIS e repetíveis (como fazer X neste projeto, armadilhas, como verificar) — nunca fatos de uma tarefa única, segredos ou caminhos absolutos. Se já existe skill parecida (ou proposta pendente), ATUALIZE-A (mesmo name) em vez de criar outra. No modo \"tudo liberado\" a skill
|
|
22
|
+
description: "Cria ou atualiza uma skill: procedimento reutilizável aprendido numa tarefa. Só para padrões GERAIS e repetíveis (como fazer X neste projeto, armadilhas, como verificar) — nunca fatos de uma tarefa única, segredos ou caminhos absolutos. Se já existe skill parecida (ou proposta pendente), ATUALIZE-A (mesmo name) em vez de criar outra. No modo \"tudo liberado\" a skill entra em teste (se for segura) ou vira proposta pendente (comando destrutivo, ou mudança numa skill aprovada pelo usuário). body em markdown: ## Quando usar, ## Passos, ## Armadilhas, ## Verificação.",
|
|
22
23
|
schema: z.object({
|
|
23
24
|
name: z.string().describe("kebab-case"),
|
|
24
25
|
description: z.string().describe("uma frase: QUANDO usar (10–200 chars)"),
|
|
@@ -31,12 +32,9 @@ defineTool({
|
|
|
31
32
|
describe: (i, ctx) => describeSave(ctx.root, i),
|
|
32
33
|
async run({ name, description, body, refs, scope, reason }, ctx) {
|
|
33
34
|
validate({ name, description, body });
|
|
34
|
-
// Em bypass nada pede aprovação
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const target = savePending(ctx.root, { name, description, body, refs, reason }, scope);
|
|
38
|
-
return `Skill ${name} proposta (${target}) e aguardando revisão: /skills approve ${name} (modo "tudo liberado": nenhuma skill fica ativa sem revisão).`;
|
|
39
|
-
}
|
|
35
|
+
// Em bypass nada pede aprovação: usa a mesma política segura da reflexão autônoma (em teste; o arriscado vai para a fila de revisão).
|
|
36
|
+
if (perms.mode === "bypass")
|
|
37
|
+
return saveAuto(ctx.root, { name, description, body, refs, reason }).msg;
|
|
40
38
|
const r = saveSkill(ctx.root, { name, description, body, refs }, scope);
|
|
41
39
|
return r.created ? `Skill ${name} criada (${r.scope}, v1).` : `Skill ${name} atualizada (${r.scope}, v${r.version}); a anterior ficou em history/.`;
|
|
42
40
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brito-cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5",
|
|
4
4
|
"description": "Coding-agent CLI with a code knowledge graph, memory and reviewable skills / CLI de agente de código com grafo de conhecimento, memória e skills revisáveis",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|