ato

Docs/Capsule

Actualizado 2026-10-23

Capsule

Un Capsule(una cápsula) es un punto sellado, inmutable y direccionable de un Computation(cómputo). Es una continuación abierta y persistente: todavía queda trabajo, pero el punto en sí se puede nombrar, conservar, compartir, reanudar, componer y bifurcar con independencia del proceso que lo produjo.

seal(C42)      → Capsule C42
resume(C42)    → Run
fork(C42)      → RunA, RunB

"Abierta" significa que la continuación no ha terminado. "Persistente" significa que el punto sobrevive a la ejecución original.

Identidad y materialización

Un Capsule no es el archivo que lo transporta ni el mecanismo que lo reconstruye.

Capsule identity  !=  bundle bytes
Capsule identity  !=  materialization inventory

El wire v2 con raíz de Computation usa ComputationRef; Portable Application wire v3/v4 usa ContractRef. No son intercambiables. Consulta Portable Capsules (inglés).

Lo que un host puede hacer con un Capsule depende de qué Materialization haya disponibles allí. Esa disponibilidad decide si el host puede reanudar el punto y cómo, no qué es el Capsule.

Run, Record y ramas

  • Un Run(una ejecución) es una evaluación activa reanudada desde un Capsule. Los Run avanzan; sellar el punto actual produce otro Capsule.
  • Un Record(un registro) es evidencia de una interacción observada. Los Record permiten que Replay(la repetición) reconstruya un punto en otro lugar; no son el punto.
  • Los nombres de rama y el linaje ayudan a localizar y relacionar puntos. No cambian la identidad de esos puntos.

Lo que un Capsule no es

Capsule != Snapshot
Capsule != VM
Capsule != Container
Capsule != Replay Log
Capsule != capsule.toml

Una instantánea, una VM o un contenedor pueden realizar un Capsule. Un registro de Replay puede llevar la evidencia necesaria para reconstruir uno. capsule.toml describe cómo se registra un proyecto. Ninguno de ellos es la continuación en sí.

El archivo .capsule

La siguiente descripción y ejemplo corresponden solo al wire v2 con raíz de Computation.

Un archivo .capsule portátil es un paquete de transporte. Contiene la referencia raíz del Computation sellado, el cierre de objetos verificado que la raíz necesita y descriptores de Materialization opcionales.

Exportar no cambia la identidad del punto:

ato encap demo@main --materialize ato.replay@1 -o demo.capsule
ato run demo.capsule

ato run consume el paquete de forma efímera; el Capsule que reanuda es el punto al que remite el paquete, no el archivo.

Para los comandos que producen y consumen estos archivos, continúa con el Inicio rápido del CLI.