eoka-protocol 0.5.0

Protocol and tool catalog definitions for eoka browser automation
Documentation

eoka-protocol

Protocol types and tool catalog metadata for Eoka browser automation.

This crate is the source of truth for daemon request wire commands, stable tool paths, operation metadata, input schemas, and manifest projection. Downstream surfaces such as the CLI manifest, Tack adapter, SDK, and MCP integration use these definitions to avoid drift.

The sidecar module defines the NDJSON envelopes, lifecycle negotiation, structured errors and the actual implemented sidecar method registry. It is separate from the daemon/CLI catalog. Export complete per-method input and result JSON Schemas with cargo run -p eoka-protocol --bin export-sidecar-schema.

Sidecar request IDs are positive integers through 9007199254740991. Integer fields in exported schemas retain their Rust bounds and are capped at the JavaScript exact integer range; runtime validation rejects unsafe integers rather than rounding. Responses contain exactly one result or error, including successful null results. Action and CDP errors retain structured evidence.

Evaluation preserves the existing { "result": ... } wire wrapper and accepts only JSON-compatible data. Explicit null is successful; undefined, functions, symbols, BigInt, non-finite or unsafe integral numbers, array holes, cycles and non-JSON objects are errors. page.execute discards its return value.

Protocol 1.3 preserves the screenshot {dataBase64} result while adding typed PNG/JPEG/WebP options and direct non-overwrite file output. In-memory screenshot bytes are bounded at 16 MiB. Artifact metadata reports absolute paths and JavaScript-safe byte counts; native video is MP4 with Chrome-selected codec.

Canonical recording start/get/stop/cancel DTOs use caller-known UUIDs and expose running/finalizing/completed/cancelled/failed states. Completed records require a published artifact; failures preserve stage, code, retained private partial path and uncertain-cleanup evidence. Recovery is live-session-scoped, never automatic restart. Method/capability negotiation does not guarantee a browser encoder. The Node contracts and bundled schemas are generated from this module. See the wire protocol for transition, retry, cancellation and file-publication semantics.