ato

Docs/Conceitos fundamentais

Atualizado em 2026-10-23

Conceitos fundamentais

O Ato descreve um Computation(computação) pelo que ele ainda pode fazer e mantém um ponto selado desse Computation separado da forma como o ponto é produzido fisicamente de novo. Os termos abaixo são o vocabulário usado pelo restante dos guias para desenvolvedores.

Mantenha as distinções: uma continuação não é um Capsule(uma cápsula), um Capsule não é um Run(uma execução), um Record(um registro) não é o Computation que descreve e uma Materialization(uma materialização) não é a identidade de nada.

Computation

Computation é o trabalho que resta a partir de um ponto atual. Não é uma transcrição de tudo o que aconteceu antes desse ponto: as etapas concluídas não estão mais lá, e o que importa é o que ainda pode acontecer a partir daqui.

Uma interação evolui um Computation para o próximo:

C ──α──▶ C'

As interações incluem um processo gravando na saída padrão, um usuário digitando um comando ou uma requisição de rede chegando. A composição constrói um Computation maior a partir de Computations menores conectados por Port(portas).

Contract

Um Contract(contrato) é uma condição observável sobre um Computation: "o build foi concluído", "o erro do compilador foi reproduzido", "o servidor responde a GET /health com 200".

C ⊨ K

Um Contract diz o que precisa valer para que um Computation futuro conte como o mesmo tipo de ponto. É um predicado, não um artefato. Um Record pode mostrar que um Contract valeu em uma observação, mas o Record não se torna o Contract.

Capsule

Um Capsule é um ponto selado, imutável e endereçável em um Computation — uma continuação aberta e persistente que pode ser preservada, passada, retomada, composta e bifurcada.

O wire v2 com raiz Computation usa ComputationRef; Portable Application wire v3/v4 usa ContractRef. As referências não são intercambiáveis. Consulte Portable Capsules (inglês).

Run

Um Run é uma avaliação ao vivo retomada de um Capsule. O selamento é imutável; um Run avança conforme as interações ocorrem.

Capsule   immutable
Run       evolving
Record    evidence

Dois Runs retomados do mesmo Capsule se desenvolvem separadamente sem alterar o ponto de onde partiram.

Record

Um Record é evidência durável de que uma interação foi observada. Records são como o histórico de um Run é mantido e como Replay(reprodução) reconstrói um ponto em outra máquina.

Um Record explica como um Run chegou a um ponto. Não é o ponto em si e não redefine o Capsule.

Materialization

Uma Materialization é uma forma física de realizar um Capsule lógico em um host específico. O Capsule responde "de onde devo continuar?"; a Materialization responde "como volto para lá nesta máquina?".

logical continuation  !=  physical realization

Adicionar, substituir ou remover uma Materialization compatível não cria um novo Capsule.

Status atual:

  • O wire v2 com raiz Computation pode usar Replay (ato.replay@1) por meio dos Adapter disponíveis. Portable Application v3/v4 usa a Derivation selecionada.
  • Um snapshot de workspace (ato.snapshot@1) pode ser capturado e verificado, mas ainda não restaura um ponto sozinho.
  • Um materializador de snapshot de VM oferece uma interface de restauração, mas exige backend adequado e host compatível; a retomada entre hosts arbitrários não é garantida.

Binding

Um Binding(uma vinculação) mapeia um requisito lógico para um recurso de runtime concreto. Uma Port que precisa de um terminal é vinculada a um PTY real; uma Port de workspace é vinculada a um diretório real no disco.

Bindings são resolvidos por execução. Eles não entram na identidade do Capsule.

Ports e Protocol

Uma Port(uma porta) é um limite tipado para interação em um Computation. Seu Protocol e papel decidem quais interações são válidas. A composição conecta Ports entre si; um runtime conecta uma Port a um endpoint físico por meio de um Binding.

Onde o modelo termina

A execução entre hosts depende de rotas e ambientes compatíveis e não é uma garantia universal. Consulte Portable Capsules (inglês).