PerceptionExtension mixin

Marks an LeonardExtension as the sole observation surface for its namespace. The binding's single observation loop emits a extensions.<namespace> fragment for every registered extension that mixes this in (subject to isPerceptionIdle); extensions that do NOT mix it in contribute no fragment (mirroring the retired observe() => null).

The two non-build members below relocate behaviors the retired observe() method silently provided:

Superclass constraints

Properties

hashCode int
The hash code for this object.
no setterinherited
namespace String
Extension namespace; must match ^[a-z][a-z0-9_]*$.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
tools List<LeonardTool>
Tools this extension contributes. Returned in stable order.
no setterinherited

Methods

buildPerception() → Seed
Build the perception tree serialized into this extension's fragment.
busyState() Future<BusyState>
Report whether the extension considers the app busy.
inherited
dispose() Future<void>
Tear down resources. Called once at session end. Exception-isolated by the registry; every extension's dispose runs even if earlier extensions throw.
inherited
initialize(ExtensionContext ctx) Future<void>
Called once per session, in registration order. May register error handlers, VM extensions, and frame callbacks via ctx.
inherited
isPerceptionIdle() bool
Whether the extension has nothing to contribute this turn. When true, the binding emits no extensions.<namespace> fragment — the exact suppression the retired observe() => null provided. Defaults to false (always contribute). Evaluated AFTER prepareForObservation.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onActionExecuted(ExecutedAction action) Future<void>
Notify the extension that an action just executed.
inherited
prepareForObservation() → void
Pre-build side-effect hook, called by the binding immediately before isPerceptionIdle and buildPerception each observation turn. This relocates side effects that used to run inside observe() (e.g. draining a pending-change ring). Defaults to a no-op.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited