Pular para o conteúdo

O navegador

Janela do terminal
eidos browser # http://127.0.0.1:6180, só esta máquina
eidos browser --port 7000 --no-open

A moldura é a do VS Code. Um centro de comandos no topo abre a paleta: vazia, lista o que você abriu recentemente e, conforme você digita, encontra Blueprints (os planos), documentos, rascunhos, tarefas, canvases e arquivos de assets por título, id e caminho (T-A7GJ encontra a tarefa, B-5KFM o Blueprint), e o que você escolhe abre na sua página própria, não no leitor sobre uma tabela; > lista todos os comandos que o anfitrião e cada plugin registraram, com a sua tecla. ⌘P ou / abre a paleta, ⇧⌘P a abre nos comandos (as teclas são uma preferência: as do VS Code, / ou ⌘K). Setas de voltar e avançar ficam ao lado.

/ abre na Home: primeiro os achados do Health Check, os erros antes dos avisos; o que os plugins põem ali (as tarefas atribuídas a você e o quadro por coluna, do Backlog); depois os Blueprints da raiz por coleção, com os seus documentos e rascunhos contados. O cabeçalho da Home é o nome da raiz: o produto que ela define (eidos setup --product, ou o lápis ao lado dele), senão o repositório em que ela está. A aba do navegador leva o mesmo nome.

Uma barra de atividades na borda esquerda tem primeiro uma casa para a Home, depois um ícone por visão da barra lateral principal: primeiro a visão Root (os documentos de nível superior, os rascunhos, uma entrada por coleção, o grupo de cada plugin), depois a atividade de cada plugin na ordem que você definir (Canvas, Comments, Backlog, Source control, Assets, Settings); a pessoa como quem você age e uma engrenagem ficam no pé. Uma barra lateral auxiliar na borda direita e um painel sob a área principal são fileiras de abas que um plugin preenche (o histórico de um Blueprint, suas tarefas e assets anexados, o Plato, o Terminal), escondidas até serem mostradas. Cada setor mostra, esconde e redimensiona como no VS Code (⌘B, ⌥⌘B, ⌘J, arrastando a borda), e tudo é lembrado por pessoa em local.yaml. Onde um plugin coloca uma visão é só onde ela começa: arraste o ícone ou a aba dela para outro setor (o Plato para o painel, o Terminal para a barra lateral principal), ou clique com o botão direito para Mover para, e ela fica lá em todas as raízes até você devolvê-la ou executar Repor a localização das vistas.

Procurar, a primeira das atividades até você arrastá-la para outro lugar, é a busca do centro de comandos aberta na barra lateral principal (⇧⌘F): primeiro o que corresponde pelo título, depois cada menção no texto com a correspondência marcada. Abas, no app de desktop (um navegador tem as suas): as páginas abrem como abas sobre a área principal. Uma página abre na aba visível, ⌘ e clique num link ou + abre uma aba própria, fixe uma aba para manter a sua página e feche uma com o seu ×, um clique com o botão do meio ou o seu menu; ao fechar a última, a área principal fica vazia até você abrir uma página. As abas abertas são lembradas para cada raiz. O modo foco, em Preferences → Workbench, mostra uma página de cada vez. Procurar no arquivo (⌘F) encontra texto na página ou no arquivo aberto, com cada correspondência marcada, e Enter e ⇧Enter para percorrê-las.

Cada coleção é uma tabela: uma linha por Blueprint, as propriedades que se aplicam a ele como colunas, ordenável pelo cabeçalho, com uma caixa de busca, um seletor de colunas e um filtro por propriedade marcada como tal; uma propriedade que também tem Only show actively used in filters ligado oferece só os valores que um Blueprint da coleção tem. Um filtro com um valor mostra isso, em toda página que tem filtros: o botão nomeia o filtro e o valor na cor de destaque, e o × dele volta para todos. Um dropdown de dez opções ou mais, seja de um filtro ou de um campo, abre com uma busca: digite parte de um valor para estreitar a lista e escolha-o com as setas e Enter. Uma coleção agrupada aninha as linhas sob os seus grupos. Um ponto no fim de uma linha marca um Blueprint sobre o qual a verificação tem algo a dizer. N começa um Blueprint novo; toda tabela da página ordena do mesmo jeito, com os filtros à esquerda. Toda tabela tem a mesma caixa de busca, a primeira entre os seus filtros (a de uma coleção, a tabela, o quadro, os rascunhos e os marcos do Backlog, os rascunhos de Blueprints, os assets, Teclas de atalho, Vocabulary, Versions): ela deixa as linhas que têm cada palavra que você digita, sem importar maiúsculas nem ordem, no id, no título ou num valor que a linha mostra, e o × dela a esvazia. No quadro, na tabela e nos rascunhos do Backlog, na tabela de uma coleção e nos assets, os filtros (a busca entre eles como q) ficam no endereço da página, então uma tabela filtrada pode ir para os favoritos, ser compartilhada, recarregada e alcançada de novo com voltar e avançar; mudar um não acrescenta um passo ao histórico. As outras tabelas guardam os seus enquanto a página está aberta.

Quando o quadro, a tabela ou os rascunhos do Backlog, ou a tabela de uma coleção, estão filtrados, Save as view no ⋮ ao lado da sua busca guarda os filtros e a ordem da página com um nome: Private, só sua em local.yaml e nunca enviada ao git, ou Shared, em .eidos/plugins/eidosmd/views.yaml e enviada com a raiz, para que o time todo a veja. A visão aparece na hora na barra lateral principal num grupo das visões da sua página (Board views, Task views e Draft views no Backlog, as de uma coleção depois de Collections), uma privada com o olho riscado, e abre essa página como foi salva; o seu endereço é o da página com view=<id> (/p/backlog?view=V-7K2M&assignee=plato), e a ordem fica ao lado dos filtros como sort=<coluna>, com um - antes da coluna para o sentido contrário. Se você muda os filtros ou a ordem de uma visão que abriu, o ⋮ oferece Update view para ela ou Save as new view; clique com o botão direito numa visão, ou no seu ⋯, para renomeá-la, torná-la privada ou partilhá-la (Make private, Make shared; ela mantém o seu id, então uma página aberta nela continua nela) ou apagá-la. My work, By status e By type do Backlog são as visões com que toda raiz começa. eidos views →

Clique em uma linha para o leitor sobre a tabela: as propriedades à esquerda, o corpo à direita com o seu trilho de conteúdo, achados e comentários embaixo. Esc volta à tabela; Expand abre o Blueprint como página própria. Um documento de nível superior, um rascunho, uma tarefa e um asset abrem com a mesma forma. Clique com o botão direito em uma linha, aqui ou em qualquer tabela que liste coisas (os rascunhos, as tarefas e os marcos do Backlog, os assets), para ver as suas ações: primeiro as formas de entrar, o seu id ou caminho para copiar, as saídas para o arquivo, e por último a que o remove, que pergunta uma vez.

A página de um leitor abre sobre uma barra que fica parada enquanto você rola: o caminho de volta e o id do Blueprint (specs / B-5KFM; os pais de uma tarefa e o seu próprio id, Backlog / T-PARENT / T-TASK), com Save e Discard à direita enquanto você edita (Delete, Find in file e Move blueprint to…, que leva o arquivo para outro grupo da sua coleção com todos os links seguindo, ficam no ⋮); o título abaixo dela com o caminho embaixo, o id e o caminho cada um copiado de um link que aparece ao passar o mouse.

O leitor tem os três modos do Obsidian, escolhidos no ⋮ ao lado do título (o que está em uso, marcado) e levados de página em página durante a sessão (uma preferência Default view diz em qual ele começa). Reading mostra a página renderizada. Editor é um editor de markdown com a página renderizada enquanto você escreve: o bloco sob o cursor mostra a sua sintaxe, todos os outros são desenhados; uma alça + em um bloco, ou / em um vazio, abre um menu de blocos (títulos, listas, uma lista de tarefas, uma citação, código, uma tabela, uma régua, e o que os plugins oferecem: uma imagem ou um arquivo do Assets, uma tarefa do Backlog); transforma um bloco em outro tipo; uma imagem colada cai na pasta de assets e no texto. Source é o arquivo como texto.

Em todo modo as propriedades são editadas no lugar como campos tipados, do jeito que o Obsidian mostra: um dropdown onde a propriedade tem opções, chips para uma lista, uma caixa de seleção, um calendário para uma data; uma propriedade declarada que falta no arquivo está a um clique, listada pelo nome (nunca o id que o arquivo já tem, que a barra mostra), e uma que pertence a uma ferramenta aparece travada. Salvar escreve o arquivo no estilo da casa, aplica as regras ao salvar do Linter e roda a verificação nele. Sair de um editor com alterações as salva primeiro: outro modo, um link ou um modal fechado sai assim que o arquivo as tem. Quando o arquivo não as aceita, o erro diz por quê, e um link ou um modal fechado pergunta se você quer continuar editando ou sair sem elas. O mesmo menu abre o arquivo no editor externo que você nomeou em Preferences ou o mostra no Finder.

Um bloco de código marcado com uma linguagem (```ts, ```yaml, ```bash e o resto das gramáticas do Shiki) é colorido com as cores do tema em Reading, nos blocos desenhados do editor e em qualquer outro lugar onde a página mostra markdown; um bloco sem linguagem fica sem cor. Um bloco marcado como mermaid é desenhado como o seu diagrama, com as cores e a fonte da página, e desenhado de novo quando o tema ou o lado claro e escuro muda. O arquivo guarda o texto: no editor, um clique no diagrama o abre, Diagram no menu de blocos insere um, e um bloco que não pode ser lido mostra o seu texto com o erro do Mermaid embaixo. Export to PDF…, no ⋮ de um Blueprint, um documento, um rascunho ou uma tarefa, grava o arquivo aberto como PDF, com ou sem o seu título e as suas propriedades, no tamanho de página, orientação, margem e escala que você escolher; o app de desktop pergunta onde salvá-lo, e um navegador abre o diálogo de impressão nele.

Um Blueprint pode começar antes de pertencer a uma coleção: Save as draft no formulário de novo Blueprint mantém o arquivo com a CLI, partilhado com a raiz ou privado, fora de qualquer índice e verificação até que Publish o mova para a sua coleção sob as regras de new. Os rascunhos têm um grupo na visão Root e uma página própria. eidos draft →

A engrenagem abre Settings como visão da barra lateral: Eidos (a visão geral, o padrão, os guias para agentes), Framework (o documento do Framework (a estrutura) como formulários: Root, Folders, Templates, Properties, Vocabulary, Roles, Me, cada página um rascunho até Save to Framework), Eidosmd (Health Check com os achados da verificação e as suas correções, e uma aba Settings para o modo estrito e as regras de seções; Preferences, Users, Plugins, Versions), e uma página por plugin ligado, com o seu interruptor, as suas configurações e o seu guia.

  • Users: as pessoas que trabalham na raiz (nome, @alias, papel, email, e um interruptor Agente para um agente de IA que comenta como si mesmo), guardadas em settings.yaml; eidos users lista-as e eidos users add adiciona uma. Acting as escolhe como quem esta máquina assina comentários. Atribuição, não autenticação.
  • Plugins: cada plugin com o seu interruptor, a sua descrição e as suas configurações como formulário; uma configuração marcada privado é só sua. Plugins →
  • Preferences: a aparência, organizada como a Aparência do Obsidian: o esquema de cores base (Adaptar ao sistema, Claro ou Escuro), uma cor de destaque, um tema (o predefinido, um incluído com o Eidos como Catppuccin, AnuPpuccin, Nord, Gruvbox, Tokyo Night ou Things, ou um seu, feito no editor de temas com o lado claro ao lado do escuro, importado de um arquivo CSS ou de um cofre do Obsidian, e exportado como um único arquivo CSS), as fontes da interface, do texto e monoespaçada, o tamanho do texto ao ler e editar, e Ctrl com a roda do mouse para mudá-lo; depois o idioma (inglês, espanhol ou português, ou o que o seu navegador pedir), a visão padrão, a largura da página (Fixed ou Fluid, também Change default page width to na paleta), as teclas da paleta, o canto em que as notificações aparecem (em cima à direita por padrão), o editor externo, se as notas da versão aparecem depois de uma atualização, e a ordem dos grupos e atividades da barra lateral.
  • Novidades: cada versão com sua manchete e um resumo de uma frase, e uma página para cada uma, com suas entradas agrupadas em Novo, Melhorado, Alterado e Corrigido, a partir da página de versões. Depois de uma atualização, a página abre uma vez a da versão nova, com as versões que você pulou; What’s New na paleta lista todas, Show Release Notes abre a sua, e a Home termina com ela.

Tudo o que o navegador lembra é YAML em .eidos/plugins/eidosmd/: settings.yaml e o views.yaml das visões partilhadas viajam com a raiz, local.yaml é seu e ignorado pelo git (assim como uma pasta local/ ao lado). Nada fica no navegador nem em um banco de dados.

Registry, sob Eidosmd em Settings e na paleta, é o Registro dentro da página: cada Framework publicado lá e os três que vêm com o Eidos, como uma tabela de nome e descrição, categoria, coleções e instalações nos últimos 30 dias, com um filtro de categoria e uma busca à esquerda. Uma linha abre o Framework sobre a tabela (Expand para a sua própria página, /registry/@owner/name): as suas coleções com o template (o modelo) de cada variant (a variante) como o arquivo que é, os seus papéis, documentos de nível superior, propriedades e README, cada peça marcada conforme esta raiz a tem: de jeito nenhum, igual ou de outra forma.

Include in this root é o eidos install para a raiz em que você está. O que falta à raiz vem marcado, uma peça que a raiz tem de outra forma fica para você escolher, e uma propriedade vem com a sua coleção ou com Everything this root lacks (--all). O plano mostra o que é escrito e o que já está lá, e cada conflito pergunta Keep current ou Accept incoming antes de qualquer escrita; o botão diz quantas peças inclui. O que chega é exatamente o que eidos install <package> --collection … --on-conflict … --yes escreve: o índice reescrito, a verificação executada, a procedência registrada e a única requisição de contagem de instalações enviada. Cada peça que falta à raiz também tem o seu próprio Include, que abre o mesmo plano com só essa peça marcada, como eidos install <package> --variant … pega uma. eidos install →

Quando o Registro não pode ser alcançado, só os Frameworks incluídos com o Eidos são listados e incluídos a partir da cópia dentro da CLI, sem enviar nada, como com --offline. Um README é mostrado com o seu HTML como texto e as suas imagens como links, então a página continua sem carregar nada de fora.

Uma atividade própria, que lista cada canvas com as suas páginas. Um canvas é um quadro branco de páginas onde um nó é um esboço (uma ideia que ainda não é um Blueprint), um Blueprint (desenhado ao vivo a partir do seu arquivo), um adesivo ou texto livre, com fluxos entre eles, molduras em volta de regiões e threads de comentários fixados em qualquer coisa. Um esboço é promovido a Blueprint pelo mesmo esqueleto que eidos new e mantém o seu lugar. Os nós são estilizados pelas propriedades do próprio Framework. Uma página é exportada como PNG, SVG ou JSON Canvas para o Obsidian.

Navegando o canvas → é o manual: cada ferramenta, gesto, atalho e o arquivo em disco.

Um app Preact distribuído no pacote como arquivos estáticos, servido pelo módulo http do próprio Node com uma API JSON sob /api/ (as rotas de um plugin sob /api/plugins/<name>/), vinculado só à interface de loopback. Sem recursos externos, então funciona offline. A busca usa texto completo do SQLite no Node 22 (node:sqlite, nada para compilar) e uma varredura em memória no Node 20.