poka.sh

Docs

Viewer manifest fields

<!-- GENERATED by build/scripts/gen-manifest-reference.py from build/viewer-plugin.schema.json. Do not edit by hand: change the schema, then run the script. -->

Generated page. It is built from build/viewer-plugin.schema.json, the schema that build/scripts/validate-viewer-plugin.py checks every manifest against. SPEC.md section 2 is the normative text; where they differ, SPEC.md wins.

Manifest for a Poka viewer plugin (SPEC.md, interface version 1).

Fields

Field Type Required Constraints Meaning
id string yes pattern ^poka-[a-z0-9]+(-viewer|-viewer-[a-z0-9]+)?$|^[a-z0-9]+(-[a-z0-9]+)*-viewer$ Unique plugin id. Canonical form: poka-<name>-viewer.
name string yes min length 1 Human-readable name, e.g. "Table Viewer".
version string yes pattern ^[0-9]+\.[0-9]+\.[0-9]+$ SemVer.
kind "viewer" yes Must mark this as a viewer, never a parser.
role "viewer" yes What the hosts read (extension_manifest.rs::is_viewer, gen_formats_json.py). Must agree with kind.
file_extension "" yes Always empty: a viewer follows a parser. The host routes any manifest with a file_extension as a parser.
abi integer no min 1 Runtime ABI version this plugin targets.
tags array of strings no unique items Free-form labels, e.g. ["text", "diff"].
wasm object yes The compiled WASI command module and its sandbox caps.
wasm.path string yes min length 1 Wasm file name, co-located with plugin.json: a bare *.wasm name, no directory (checked by validate-viewer-plugin.py).
wasm.sha256 string no pattern ^([a-f0-9]{64})?$ Optional content hash of the wasm; the host verifies it when present. Written by install-extensions.py --stamp-hashes.
wasm.size integer no min 0 Optional wasm size in bytes.
wasm.memory_mb integer no min 1; max 1024 Sandbox memory cap in MB; the host has a default when absent. A module that exceeds it is killed and reported.
wasm.max_time_ms integer no min 1 Wall-clock cap for one render in milliseconds; the host has a default when absent. A module that exceeds it is killed and reported.