Pular para o conteúdo
miblo

SDK

Novidades do SDK do Miblo: o que mudou em cada versão

O que cada versão do SDK do Miblo (@miblo/status e miblo-status) deixa você fazer, da 1.0.0 à mais nova, com a mudança que quebra na 2.0.0 marcada.

O que cada versão do SDK do Miblo deixa você fazer, da mais nova para a mais antiga. O @miblo/status (Node.js 20+) e o miblo-status (Python 3.9+) têm a mesma versão. Quando só um dos pacotes tem um método, o texto diz. Um método que não aparece numa versão não foi acrescentado nem mudou nela.

Para atualizar, siga a Instalação: os pacotes saem só do miblo.ai, não do npm nem do PyPI. Para ver qual versão você tem, rode npm ls @miblo/status ou pip show miblo-status.

2.1.0 (2026-10-27)

  • App do Desk como página web (Miblo 1.45, só TypeScript). screen.page(file, { data, quality, max }) faz de uma página web a sua tela, desenhada pelo Miblo Hub em 240x240 e enviada ao Miblo Desk; screen.data(data) manda à página um JSON novo (no máximo 16 KB); screen.quality(quality, { max }) muda a rapidez do desenho (auto, verylow, low, medium, high, ultra). data() e quality() antes de page() dão o erro novo no_page (409). O guia está em Apps do Desk de página.

  • Obsoletos, não removidos: screen.card(), frame(), layer(), animate(), mesh(), mode7() e push() (gráficos ao vivo) continuam funcionando; um App do Desk novo deve desenhar uma página web.

  • Planos (Miblo 1.42.0). app.plans(), app.plans.wait(rev) e app.plans.onChange(cb) leem o progresso dos planos da pessoa (título, estado, progresso, as tarefas em andamento, a IA e o nome da pasta, nunca o texto do plano). O app declara e a pessoa permite; até lá o erro é not_declared ou plans_off (asked). Só no Miblo+ Pro.

  • Este computador (Miblo 1.44.0, só TypeScript). app.sys(name, params) lê um valor do computador (cpu, memory, battery, network, gpu, processes, containers, tcpProbe, nowPlaying, notifications, calendar) depois que a pessoa permite o grupo dele; o app declara em system. Erros: system_off (asked), not_declared.

  • Sessões (Miblo 1.34.0). app.sessions() lista as sessões de IA que a pessoa permitiu o app ver (id, ferramenta, o nome da pasta do projeto, estado, desde quando); nunca prompts, comandos nem arquivos. Erros not_declared e sessions_off (asked) até lá.

  • Estimativa de custo. screen.budget() devolve o que a tela custa ao Miblo (RAM, armazenamento e processamento, cada um numa faixa), ou null de uma ponte mais antiga; o screen.status() também traz (budget).

  • Códigos de erro novos nos tipos: plans_off, sessions_off, not_declared.

2.0.0 (2026-10-11)

  • Quebra: uma versão mínima de cada lado (Miblo 1.30.0). O SDK 2.x fala a Status API 2 e precisa do Miblo 1.30.0 ou mais novo no computador. Todo pedido leva x-miblo-sdk-api. Um SDK mais antigo do que a ponte aceita recebe o erro upgrade (426); uma ponte mais antiga que o SDK dá bridge_outdated: atualize o Miblo com miblo update. Não há retrocompatibilidade com SDKs, pontes nem firmwares mais antigos: o SDK 1.x deixa de funcionar com o Miblo 1.30.0 e mais novos, então passe para o 2.x.

  • API_VERSION passa a 2 (era 1). As rotas continuam /sdk/v1/*.

  • Pedir a tela (Miblo 1.29). screen.request({ seconds }) põe a sua tela na tela App por 5 a 120 s, a não ser que algo importante esteja acontecendo, e responde com honestidade em shown e why; screen.release() devolve antes do fim. O screen.status() tem request (os segundos que faltam).

  • Os slots de animação passam de 0-7 para 0-47 num Miblo a partir do 1.29.

1.4.0 (2026-10-09)

  • Alertas. app.alerts({ id, tool }) declara tipos de alerta e os envia (send, trySend) com um type, uma key contra repetição (dedupeMin) e whenQuiet (drop ou later); test() e status() (permissão, tipos, horário de silêncio). Erros novos: type_off, quiet e rate_limited (com reason: limit ou cooldown).

  • Apps do Desk só de alertas: declare({ screen: false, alerts: [...] }), sem tela nenhuma. O screen.status() tem allowed: false quando a pessoa desliga a tela do app (o app roda pelos alertas e o desenho dele responde hidden).

  • declare({ dwell }) sugere por quantos segundos (5 a 120) a tela do app aparece.

  • O screen.status() diz se a sua animação está playing ou queued esperando a vez da sua tela.

1.3.0 (2026-10-09)

  • Gráficos ao vivo. screen.push(id, value) (ou push({ id: value })) manda valores para um item ao vivo do card: agrupados a 60 Hz por id e enviados a cada 500 ms ou 32 amostras; flush() envia na hora, e stop() ou clear() encerram os fluxos. O status() tem live.

  • app.alert({ title, text, level, seconds }): um alerta sobre a tela, depois que a pessoa permite os alertas do app. MibloError.asked diz que a pessoa foi perguntada.

1.2.0 (2026-10-09)

  • Animações. screen.animate() (um GIF/APNG, PNGs, uma sprite sheet ou uma malha), mesh(), mode7(), stop() e preview(); o status() tem anim.

  • Contas. app.connect.start(), token() e off() conectam uma conta Google ou Microsoft que a pessoa escolhe; o token fica no Miblo.

  • Configurações. Um select aceita até 2000 opções ({ value, label }), escolha múltipla (max) e dependsOn; uma configuração text aceita suggest para sugestões enquanto a pessoa digita, respondidas com app.settings.onSuggest(key, handler); app.settings.suggest(key, q) pergunta.

1.1.0 (2026-10-08)

  • A tela App. client.screen({ tool }) com card(), frame(), layer(), show(), peek(), removeFrame() e clear(): um card com números, anéis, barras e gráficos, e até 4 imagens de fundo.

  • Apps do Desk e configurações. client.app({ id, tool }) com declare() e settings: get(), request(), wait() e onChange().

  • client.call() para qualquer rota /sdk/v1.

1.0.0 (2026-10-08)

  • Primeira versão: session() com working, needsYou, idle e done, say(), focus(), timer() e um snapshot() só de leitura. Os dois pacotes conferem a prova do hello da ponte e o MAC de cada resposta, assinam cada pedido sobre um desafio de uso único com o token só de status e recusam corpos acima de 4096 bytes. Node.js 20+ sem dependências; Python 3.9+ com a biblioteca padrão.