Foundation in developmentSee verified status
Rust-only SDK

One typed contract from observation to UI.

ZavoBot scripts are Rust components. The SDK separates immutable snapshots, checked command requests, lifecycle state, and declarative UI so the host—not a script—owns unsafe resources.

The SDK foundation compiles and passes deterministic tests. It is not yet a stable public release.
src/lib.rsRust
use zavobot_sdk::{Script, ScriptOutput, UiDocument, UiValidationError};
use zavobot_sdk::{ExecutionContext, RenderContext};

struct MyScript;

impl Script for MyScript {
    type Error = UiValidationError;

    fn on_snapshot(
        &mut self,
        _context: &ExecutionContext<'_>,
    ) -> Result<ScriptOutput, Self::Error> {
        Ok(ScriptOutput::idle())
    }

    fn render_ui(
        &self,
        context: &RenderContext<'_>,
    ) -> Result<UiDocument, Self::Error> {
        UiDocument::empty(context.now.get())
    }
}

Immutable snapshots

Read one coherent observed generation instead of racing mutable client state.

Checked commands

Every action declares capability, deadline, intent, and meaningful postcondition.

Declarative UI

Render bounded host-owned controls without arbitrary native window access.

Deterministic testkit

Replay snapshots, host events, action acceptance, expiry, and duplicate requests.

Artifact path

Source becomes one verifiable .zbot.

The package binds code and intent together before the Store ever sees it.

01

Build

Compile a Wasm component against a compatible SDK.

02

Declare

Bind identity, capabilities, SDK range, and immutable source revision.

03

Sign

Produce deterministic metadata, component digest, key ID, and Ed25519 signature.

04

Verify

Reject noncanonical, oversized, tampered, unsupported, or mismatched artifacts.