Gateway transport for the shared View lifecycle.
The engine publishes :view/open, :view/patch and :view/close envelopes on
every selected channel. This namespace projects the :app copy into the matching
view.open, view.patch and view.close session events, preserving :kind so
clients choose capability policy without guessing from event names.
An :input View blocks while a :live View streams coalesced patches on
[[live-flush-ms]]. Operator intent for either kind enters through one action!
and one kind-independent REST resource; the engine owns the closed action
vocabulary and capability checks.
A :view/send envelope carries a Send of an app of the python_execution sandbox.
It becomes one bounded notification turn of the session that owns the app.
An input View belongs only to the session that raises it. A managed subagent
never raises one: the engine refuses its request, because its leader answers
for it. Each input View carries an :origin that names the session which asks.
Gateway transport for the shared View lifecycle. The engine publishes `:view/open`, `:view/patch` and `:view/close` envelopes on every selected channel. This namespace projects the `:app` copy into the matching `view.open`, `view.patch` and `view.close` session events, preserving `:kind` so clients choose capability policy without guessing from event names. An `:input` View blocks while a `:live` View streams coalesced patches on [[live-flush-ms]]. Operator intent for either kind enters through one [[action!]] and one kind-independent REST resource; the engine owns the closed action vocabulary and capability checks. A `:view/send` envelope carries a Send of an app of the python_execution sandbox. It becomes one bounded notification turn of the session that owns the app. An input View belongs only to the session that raises it. A managed subagent never raises one: the engine refuses its request, because its leader answers for it. Each input View carries an `:origin` that names the session which asks.
(action! view-id action)Apply one closed operator action to open View view-id. Kind policy and all
validation stay in the engine, so every remote surface receives the same verdict.
The decoded action's own keys become engine keywords here, once; the values
it submits stay keyed by field name.
Apply one closed operator action to open View `view-id`. Kind policy and all validation stay in the engine, so every remote surface receives the same verdict. The decoded action's own keys become engine keywords here, once; the `values` it submits stay keyed by field name.
Channel the companion app is served on.
Channel the companion app is served on.
(flush-live-patches!)Publish every buffered patch NOW. The tick decides when this happens in a running gateway; a caller that needs the stream settled — a test, a shutdown — asks for it.
Publish every buffered patch NOW. The tick decides when this happens in a running gateway; a caller that needs the stream settled — a test, a shutdown — asks for it.
(input-view-of sid view-id)Input View view-id when it is pending in sid, else nil.
Input View `view-id` when it is pending in `sid`, else nil.
(input-views sid)Input Views session sid is BLOCKED on right now, oldest first, each with its
:origin.
Input Views session `sid` is BLOCKED on right now, oldest first, each with its `:origin`.
(install!)Subscribe the gateway to :app View lifecycle events. Idempotent.
Subscribe the gateway to `:app` View lifecycle events. Idempotent.
(live-log-range sid view-id node-id from limit & [query])Read one bounded page of a live or closed log. query is a case-insensitive
literal substring; from counts matches, not source lines. Nil paging values
use the log-window policy, which is also the maximum response size.
Read one bounded page of a live or closed log. `query` is a case-insensitive literal substring; `from` counts matches, not source lines. Nil paging values use the log-window policy, which is also the maximum response size.
(live-view-of sid view-id)Live view view-id when it belongs to sid, else nil. Every REST answer goes
through this: a view id from another session must not be readable from here.
Live view `view-id` when it belongs to `sid`, else nil. Every REST answer goes through this: a view id from another session must not be readable from here.
(live-views sid)(live-views sid placement)(live-views sid placement archived?)The live views of session sid, oldest first — the resync a client reads after
joining late, waking up or losing its stream. A placement (inline, panel
or attachment) keeps only the views it names. An app stays in the list after
it closes, until it is archived. With archived?, the list holds only the
archived apps.
The live views of session `sid`, oldest first — the resync a client reads after joining late, waking up or losing its stream. A `placement` (`inline`, `panel` or `attachment`) keeps only the views it names. An app stays in the list after it closes, until it is archived. With `archived?`, the list holds only the archived apps.
(on-channel-event! event)Project one canonical :app View event into the session journal. A Send of a
sandbox app becomes a notification turn of its session.
Project one canonical `:app` View event into the session journal. A Send of a sandbox app becomes a notification turn of its session.
(person-may-answer? sid)Whether the person may be asked in session sid. This is the ask gate of the
engine: a managed subagent may not ask, because its leader answers for it.
Whether the person may be asked in session `sid`. This is the ask gate of the engine: a managed subagent may not ask, because its leader answers for it.
(uninstall!)Drop the subscription installed by install!. Anything a view still has
buffered is published first: a gateway going away must not swallow patches
the engine already accepted.
Drop the subscription installed by [[install!]]. Anything a view still has buffered is published first: a gateway going away must not swallow patches the engine already accepted.
(view-of sid view-id)Open View view-id when session sid may act on it, as a kind/document
descriptor, else nil. This is the ownership gate for the shared action route.
A View belongs only to its session.
Open View `view-id` when session `sid` may act on it, as a kind/document descriptor, else nil. This is the ownership gate for the shared action route. A View belongs only to its session.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |