Skip to main content

cek-surface

Compose list[Op]. Host authorizes. Peer applies. Peer IR is perception only.

from cek_host import Host
from cek_surface import Surface, Op, search_hits
from cek_surface.domain_loader import load_bundled

load_bundled()
s = Surface(kernel=Host(secret=b"dev-only-not-for-production-32!!"), carrier_kind="memory")
s.use_stdlibs(["baseline", "ui", "search"])

@s.action("hello")
def hello(ctx):
    return [Op.ui_morph("shell", {"tag": "main", "text": "hi"})]

@s.action("find")
def find(ctx):
    return [search_hits("results", [{"title": "a"}], q="a", stamp=ctx.surface.stamp)]

The declared catalog is frozen (Baseline ∪ UI seed). search.hits is a runtime stdlib pair — projected only after Host↔Peer agree and the session stamp includes it.

Carriers: subprocess (default Node Peer) · memory · websocket · kernel (in-process cek_peer_pyo3).

In-process peer: Surface(carrier_kind="kernel")cek_peer_pyo3.PeerAbi construct → bind → apply → release. Install from cek-runtime (cargo build -p cek-peer-pyo3 --features extension-module --release; export CEK_PEER_PYO3=.../libcek_peer_pyo3.so). CEK_KERNEL_CARRIER=subprocess shells cek apply. That is not the default.

Perception (not shared world): s.mark_pending("btn") · s.mint_continuation("timer.fired:x", "find").

pip install cek-surface          # pulls cek-host>=0.2.0

Release files for cek-surface 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cek-surface 0.2.0
File Size Uploaded
cek_surface-0.2.0.tar.gz 52.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cek-surface 0.2.0
File Interpreter ABI Platform
cek_surface-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 87.2 kB

Release files / cek_surface-0.2.0.tar.gz

Download URL cek_surface-0.2.0.tar.gz
Size 52.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7e0a30d2781fc20a6b03f3ffdafbe9da6eef6540cb38e0d12b6b1e15eb021333
BLAKE2b-256 checksum
How to use checksums
a1b8a0d3011cccf901130ada09c3b03c70d57941af39f9fef64ab9a4972337be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / cek_surface-0.2.0-py3-none-any.whl

Download URL cek_surface-0.2.0-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc728712dd2f3a0770be0b25ea59aa10ef61d27fc1d1738d131569147ea6caae
BLAKE2b-256 checksum
How to use checksums
5ebaef326c3856c7b105677a65a8d989eb900aec6484db8b311fab9ec07a0e7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page