Marca e painel do The Blueprint no terminal.

Um roadmap local-first que o seu agente (Claude Code, Codex…) lê e atualiza pelo MCP, e que você revisa numa folha de blueprint. O agente propõe, você aplica; o agente marca o que concluiu com evidência, você vê o robozinho andando pela folha.

English, in short: a local-first roadmap app (single Rust binary, SQLite, web UI in a native WebView2 window) that your own coding agent drives over MCP. Workspace → Blueprint → Action → Plan/Checkpoint. Agents propose changes (you review and apply them) and mark work done only with evidence. The app does not manage agent sessions; the explicit
blueprint claudecommand starts Claude Code in the current terminal. Windows is the primary target (window + tray + installer);blueprint serveruns the same app as a plain local web server.
Workspace
└─ Blueprint o escopo
└─ Projeto agrupa ações dentro do blueprint (opcional; sem projeto, a ação fica em "Geral")
└─ Ação início, fim, status, instruções (era "fase")
├─ Plano título, descrição, horas estimadas, feito (era "tarefa")
└─ Checkpoint nome, data, feito, evidência (era "marco")
Na folha, cada projeto é uma seção numerada (01, 02…) com o cabeçalho de um blueprint e as ações dele abaixo (nasce fechada); as ações são numeradas por projeto (02.3 = projeto 2, ação 3).
blueprint claude, ou pelo botão Iniciar com o Claude na folha da ação, que pede confirmação (gasta tokens), abre um terminal novo na pasta do blueprint com o Claude Code e o prompt da ação como argumento da sessão nova (nunca por monitor ou canal, e nada vai para uma sessão já aberta). Fora isso o app só mostra o que os agentes informam: o Claude na folha (um por agente e subagente, no plano em que trabalha; o concluído fica até você clicar e ler a mensagem) e o Claude esperando na próxima ação.Windows 10/11 (janela, bandeja e instalador)
Blueprint-<versão>-instalador.exe da página de Releases (instala só para o seu usuário, sem administrador), oucargo build --release; o executável sai em target/release/blueprint.exe (cerca de 2,5 MB, a interface vai embutida). O instalador sai de ISCC instalador\blueprint.iss (Inno Setup 6).Os dados ficam em %APPDATA%\Blueprint\ (banco SQLite blueprint.db e prototipos\). Para começar com dados de exemplo: blueprint importar data.exemplo.json %APPDATA%\Blueprint\blueprint.db.
Atualizar
O app procura sozinho uma versão nova nas Releases do GitHub (ao abrir, no máximo uma vez por dia), baixa o instalador em segundo plano e confere o SHA-256 contra o SHA256SUMS da release. Nada é instalado sem o seu clique: quando o instalador está pronto aparece o aviso na janela (e o item "Atualizar para X…" na bandeja); só ao clicar em Atualizar o app copia o banco para %APPDATA%\Blueprint\backups, roda o instalador em silêncio, fecha e abre de novo. Se houver aviso do agente que a tela ainda não aplicou, ele recusa e diz o porquê (fechar o app o perderia). Na linha de comando: blueprint atualizar (procura e baixa), blueprint atualizar --verificar (só consulta) e blueprint atualizar --instalar (o clique, pelo terminal).
O app só faz um GET ao GitHub (sem token, sem identificador, sem telemetria), pelo curl.exe do Windows. Para desligar: item "Verificar sozinho ao abrir" na bandeja ou BLUEPRINT_SEM_ATUALIZACAO=1; desligado, o app não verifica nem baixa nada. BLUEPRINT_ATUALIZACAO_SO_ESTAVEL=1 ignora as releases marcadas como pré-lançamento.
Qualquer sistema (só o servidor)
cargo build --release
./target/release/blueprint serve # http://127.0.0.1:3000
Variáveis do serve: HOST (padrão 127.0.0.1), PORT (3000), BLUEPRINT_DB (banco), DADOS_ARQ (JSON importado na primeira execução com o banco vazio), PROTOTIPOS_DIR, BLUEPRINT_ASSETS_DIR (serve web/ direto da pasta, sem recompilar) e MCP_REDE=1 (veja SECURITY.md antes de usar).
Comandos: blueprint (janela), blueprint --version, blueprint atualizar [--verificar|--instalar], blueprint serve, blueprint --mcp (MCP por stdio), blueprint claude [args] (abre uma sessão Claude com o plugin e a status line; ativa o agente quando a pasta está ligada), blueprint importar <json> <banco>, blueprint exportar <banco> <json>, blueprint registrar [--remover] (instala ou remove o plugin no Claude Code e o MCP no Codex), blueprint registrar --status-line [--remover] (status line global opcional) e blueprint hook sessao|statusline|status|statusline-config (usados pelo plugin; veja abaixo).
Com o instalador isso já vem feito, e blueprint registrar repete o passo à mão. Ele instala no Claude Code, para o seu usuário e em qualquer pasta, o plugin blueprint@blueprint-local:
blueprint (as ferramentas da tabela abaixo; no Claude elas aparecem como plugin:blueprint:blueprint);blueprint-planejamento (o guia de planejar e executar, que o Claude carrega sozinho) e o agente blueprint (peça com claude --agent blueprint:blueprint; não vira o padrão das suas sessões);/blueprint:status: o estado do blueprint da pasta (ação atual, planos e próximo checkpoint).Pasta do projeto: um blueprint novo proposto pelo agente liga a pasta da sessão quando você aplica. Numa pasta sem vínculo, o app oferece a escolha do blueprint; basta selecionar. Em Editar → Dados do blueprint → Pasta do projeto você vê, troca, adiciona e remove os vínculos, sem gravar arquivos na pasta.
Status line: blueprint claude ativa só nessa sessão. Para todas as sessões, use blueprint registrar --status-line (opcional e desmarcado no instalador); blueprint registrar --status-line --remover restaura a anterior. A instalação guarda settings.json.bak, preserva as demais opções e repetições não duplicam a integração. Se já houver um comando, o wrapper executa os dois com o mesmo JSON, conservando sua saída; um pipe simples perderia a entrada da status line. Configura ~/.claude e também CLAUDE_CONFIG_DIR quando definido. Fora das pastas ligadas o Blueprint não imprime nada.
Para testar sem mexer na sua configuração: node scripts/testar-plugin-claude.mjs <caminho do blueprint.exe> instala e remove o plugin com pastas temporárias.
Terminal e avisos: blueprint claude também carrega a marca do app (painel em terminais largos, faixa acima do prompt nos estreitos; /blueprint-marca reabre) e o monitor blueprint watch, que recebe propostas aplicadas e checkpoints marcados após o app salvar. Os avisos usam texto fixo, filtro pela pasta e limite de 20 por minuto. Veja o mod e os testes e limites do monitor.
| Monitor (padrão) | Channels (opcional) | |
|---|---|---|
| Ativação | Plugin, sem flag de canal | BLUEPRINT_CHANNEL=1 e flag de desenvolvimento |
| Confirmação | Confiança normal do plugin | Confirmação em cada sessão |
| Estabilidade | API experimental de monitors | Research preview |
| Custo | Contexto quando recebe aviso | Contexto quando recebe aviso; substitui o monitor |
Para experimentar com o plugin instalado no PowerShell: $env:BLUEPRINT_CHANNEL='1' e blueprint claude --dangerously-load-development-channels plugin:blueprint@blueprint-local. Use Remove-Item Env:BLUEPRINT_CHANNEL antes da próxima sessão normal. Para MCP registrado diretamente, o identificador é server:blueprint. O canal é informativo, sem ferramentas de resposta nem aprovação de permissões. Comparação e validação real.
No Codex (e no Claude Code sem o plugin), ligue só o MCP. O instalador e o blueprint registrar já fazem isso no Codex que acharem no PATH. À mão, com o app aberto (ou blueprint serve rodando):
claude mcp add blueprint -- <caminho>\blueprint.exe --mcp
codex mcp add blueprint -- <caminho>\blueprint.exe --mcp
Se o app não estiver em http://127.0.0.1:3000, passe BLUEPRINT_URL (claude mcp add blueprint -e BLUEPRINT_URL=http://127.0.0.1:3917 -- …). A tela ✦ Planejar → Como conectar mostra o comando exato. Sem o plugin do Claude Code, o agente não sabe sozinho de qual blueprint é a pasta: grave no CLAUDE.md ou AGENTS.md dela a linha Blueprint: workspace_id …, blueprint_id … (MCP blueprint). (o agente descobre os ids com listar_blueprints).
Com o app fechado o agente continua registrando: registrar_progresso, marcar_concluido, marcar_checkpoint_feito, propor_blueprint, anexar_prototipo e vincular_pasta ficam guardados em arquivos em %APPDATA%\Blueprint\pendentes\ e, quando o app abre, entram na fila, na ordem, com a mesma validação (a tela os aplica ao abrir o workspace). O que o app recusar na abertura fica em pendentesecusados\ com o motivo. As ferramentas de leitura (ler_blueprint, listar_blueprints) precisam do app aberto.
Ferramentas:
| Ferramenta | Para quê |
|---|---|
listar_blueprints | workspaces e blueprints, com ids |
guia_de_planejamento | o guia por partes (planejar, editar, executar, prototipos) |
ler_blueprint | só a estrutura, ou uma ação inteira (acao_id) |
propor_blueprint | propõe ações, planos e checkpoints (parciais completam o que existe; remover é pedido que você aprova) |
registrar_progresso, reportar_bloqueio | o que está fazendo agora; aparece na folha como o Claude (uma figura por agente, no plano em que ele trabalha) |
marcar_concluido, marcar_nao_concluido | plano concluído (com evidência) ou não |
marcar_checkpoint_feito, marcar_checkpoint_nao_feito | idem para checkpoints |
anexar_prototipo | protótipo HTML autocontido de uma ação, visto num visor isolado |
vincular_pasta | liga a pasta da sessão a um blueprint (o app guarda o vínculo) |
O guia que o agente lê está em skills/blueprint-planejamento/.
cargo dev # o app em modo dev, com recarga automática (precisa do cargo-watch)
cargo dev abre a janela do app com os seus dados (%APPDATA%\Blueprint), então feche o app antes. Salvou web/, kit/ ou blueprint.html: a janela recarrega (CSS troca sem perder a tela; F12 abre as ferramentas). Salvou src/, skills/ ou Cargo.toml: o cargo-watch (cargo install cargo-watch, uma vez) recompila e reabre. Sem ele: cargo run -- dev. Para trabalhar no navegador com dados de exemplo, sem Node na janela: node dev.mjs (http://127.0.0.1:3917; opções --porta N, --limpar, --abrir).
cargo test # 95 testes (92 fora do Windows): dados, validação, MCP, HTTP
node emblemas.test.mjs # marcas e figuras (kit do anatomy)
node agentes-figura.test.mjs
node scripts/migrar-vocabulario.test.mjs
Verificações de ponta a ponta (precisam do target/release/blueprint.exe e, as de tela, do Microsoft Edge): scripts/contrato-http.mjs, fumaca-rust.mjs, ui-e2e.mjs, robo-e2e.mjs, painel-agentes-e2e.mjs, capturas.mjs --comparar, mutacoes.mjs (quebra as regras de segurança de propósito e confere que algum teste falha) e testar-instalador.mjs. Veja CONTRIBUTING.md.
Binário de 2,5 MB, servidor com ~11 MB de memória e 0% de CPU em repouso, GET /api/dados abaixo de 5 ms, janela visível em ~0,1 s. Detalhes em referencias/relatorio-medicao.md.
As rotas /api/mcp/* só respondem em loopback e conferem Host e Origin; os protótipos rodam num iframe com sandbox de origem opaca e sem rede. Leia SECURITY.md.
O que já existe, o que está em andamento e o que vem depois (incluindo a integração nativa com o Codex, a apresentação do blueprint e o modo colaborativo): ROADMAP.pt-BR.md · ROADMAP.md (English). Ideias e votos são bem-vindos nas Issues.
MIT. O kit isométrico descende do Anatomy (MIT); veja NOTICE.md.
hooks/register.tsx 77 lines1import { pequena, png } from "../assets/marca.mjs";
2
3const visible = { plugin: "blueprint-terminal", key: "visible" } as const;
4const image = { plugin: "blueprint-terminal", key: "image" } as const;
5const estado = { plugin: "blueprint-terminal", key: "estado" } as const;
6const pasta = { plugin: "blueprint-terminal", key: "pasta" } as const;
7const id = "blueprint-marca";
8const app = "http://127.0.0.1:3000/api/mcp/hook/status"; // a porta fixa que os hooks do plugin já usam
9
10/** Pergunta ao app o estado do blueprint da pasta. Sem app, sem blueprint ou com erro: estado vazio e o painel volta a ser só a marca. */
11async function atualizar($, cwd?: string) {
12 let novo = { texto: "", linha: "" };
13 try {
14 if (cwd) await $.state.set(pasta, cwd);
15 const dir = cwd ?? (await $.state.get(pasta)).value;
16 const r = await $.http.fetch(app, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ cwd: dir }) });
17 const j = r.ok ? JSON.parse(r.text) : {};
18 if (j.vinculado) novo = { texto: String(j.texto), linha: String(j.linha) };
19 } catch {}
20 await $.state.set(estado, novo);
21 return novo;
22}
23const feitos = (linha: string) => Number(/ (\d+)\/\d+$/.exec(linha)?.[1] ?? -1);
24
25export function register(on) {
26 on("session.start", async ($, e, next) => {
27 const result = await next(e);
28 if (!e.isInteractive || e.surface !== "terminal") return result;
29 await $.command.register({ name: id, description: "Reabre a marca do The Blueprint" });
30 const term = await $.env.get("TERM_PROGRAM");
31 const version = await $.env.get("TERM_PROGRAM_VERSION");
32 const kitty = await $.env.get("KITTY_WINDOW_ID");
33 const iterm = term === "iTerm.app" && /^(?:[4-9]|3\.(?:[5-9]|[1-9]\d))/.test(version ?? "");
34 await atualizar($, e.cwd);
35 await $.state.set(image, !!kitty || term === "ghostty" || iterm);
36 // Uma recarga do mod preserva o fechamento explícito da pessoa.
37 if ((await $.state.get(visible)).value === undefined) await $.state.set(visible, true);
38 return result;
39 });
40
41 on("command.run", { command: id }, async ($) => {
42 await $.state.set(visible, true);
43 return {};
44 }).catch(($, e, next) => next(e));
45
46 on("ui.render", { component: "AbovePrompt" }, async ($, e, next) => {
47 if (e.surface !== "terminal" || e.props.hasSurvey) return next(e);
48 if (!(await $.state.get(visible)).value) return next(e);
49 return marca($, e);
50 });
51
52 on("turn.complete", async ($, e, next) => {
53 const result = await next(e);
54 if (e.agentId) return result;
55 const antes = (await $.state.get(estado)).value?.linha ?? "";
56 const { linha } = await atualizar($);
57 const plano = linha && feitos(linha) > feitos(antes) && feitos(antes) >= 0;
58 await $.ui.toast(linha ? `The Blueprint · ${plano ? "tarefa concluída · " : ""}${linha.replace(/^Blueprint · /, "")}` : "The Blueprint · resposta concluída");
59 return result;
60 });
61}
62
63/** A faixa sobre o prompt: marca, linha curta do blueprint e o botão que a fecha (o comando `blueprint-marca` a reabre). */
64async function marca($, e) {
65 const { Box, Text, Raster, Image, Button } = $.ui.resolve(e);
66 const title = Text({ color: "cyan", bold: true, children: "The Blueprint" });
67 const { linha } = (await $.state.get(estado)).value ?? { texto: "", linha: "" };
68 if (e.props.bodyColumns < pequena.columns) return title;
69 const picture = (await $.state.get(image)).value
70 ? Image({ source: { png }, columns: pequena.columns, rows: pequena.rows, alt: "Marca do The Blueprint" })
71 : Raster({ key: "marca", ...pequena });
72 const largura = e.props.bodyColumns - 1;
73 const linhas = linha.split("\n").filter(Boolean).map((l: string, i: number) => Text({ key: `l${i}`, children: l.slice(0, largura) }));
74 const fechar = Button({ key: "fechar", label: "fechar ×", role: "dismiss", plain: true, dimColor: true, onPress: () => $.state.set(visible, false) });
75 return Box({ flexDirection: "column", alignItems: "center", children: [title, picture, ...linhas, fechar] });
76}
77assets/marca.mjs 5 lines1// Gerado por scripts/marca-terminal.mjs; não editar.
2export const png = "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";
3export const grande = {"columns":32,"rows":16,"cells":"IAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABhCUAAOq6jQAAAAABgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAhCUAAOq6jQAAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAOq6jQCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgBK0v8AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgBK0v8AgCUAAErS/wBK0v8AgCUAAErS/wBK0v8AgCUAAErS/wBK0v8AgCUAAJxKEgBK0v8AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAErS/wC4XRwAgCUAAErS/wBK0v8AgCUAAErS/wCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAALhdHAD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAP/06gC4XRwAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gC4XRwAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAAP/06gCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAP/06gD/9OoAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAALhdHAC4XRwAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQAAAAABgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAOq6jQAAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAAB"};
4export const pequena = {"columns":16,"rows":8,"cells":"IAAAAAAAAAEAAAABIAAAAAAAAAEAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABhCUAAOq6jQAAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgDquo0AgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgDQj18AgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgBK0v8AgCUAAErS/wBK0v8AgCUAAJxKEgBK0v8AgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAErS/wCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgD/9OoAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQDquo0AgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAJxKEgCcShIAgCUAAOq6jQDquo0AIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABgCUAAOq6jQAAAAABIAAAAAAAAAEAAAABIAAAAAAAAAEAAAAB"};
5types/index.d.ts 6 lines1declare module "claude-code" {
2 interface PluginState {
3 "blueprint-terminal": { visible: boolean; image: boolean; pasta: string; estado: { texto: string; linha: string } };
4 }
5}
6