• English
  • API index

    Every public export, generated from the TypeScript sources. If something is exported and not listed here, the extractor is wrong — not the documentation.

    Components

    ExportKindPackageDescription
    ActivityMarkcomponent@aora-bot/reactThe "an agent is doing something" line in a conversation.
    ActivityTickercomponent@aora-bot/reactSingle-line text that swaps rather than changes.
    AgentAvatarcomponent@aora-bot/reactThe avatar an application actually drops into a list.
    AgentCharacterPickercomponent@aora-bot/reactA `CharacterPicker` that holds its edits until they are confirmed.
    AgentHudcomponent@aora-bot/reactThe arbiter's current reading, as a character and a plate.
    AgentStateProvidercomponent@aora-bot/reactShare one arbiter across a subtree.
    AppearanceProvidercomponent@aora-bot/reactSet drawing defaults for every mark below.
    AvatarEditorcomponent@aora-bot/reactThe avatar dialog: pick a character, generate a picture, or upload one.
    AvatarSlotcomponent@aora-bot/surfacesThe empty circle a character flies into at the end of a scene.
    AvatarStackcomponent@aora-bot/reactOverlapping cluster of group members.
    AvatarStatusDotcomponent@aora-bot/reactCorner presence indicator.
    AvatarTriggercomponent@aora-bot/reactThe button that opens the avatar editor, showing what it would edit.
    BootLoopcomponent@aora-bot/surfacesSomething is starting up and nobody knows how long it will take.
    CastMembercomponent@aora-bot/surfacesOne character in a scripted scene, in two nested boxes.
    CastStagecomponent@aora-bot/surfaces—
    CharacterMarkcomponent@aora-bot/reactA single animated character.
    CharacterMarkMirrorcomponent@aora-bot/reactDraw an already-running character again, somewhere else.
    CharacterPickercomponent@aora-bot/reactShape and colour chooser, with an optional face style and nose.
    CompactCharacterPickercomponent@aora-bot/reactThe picker cut down to what fits beside a sign-up form.
    Composercomponent@aora-bot/surfacesA message field with a character that pays attention to it.
    ConfettiLayercomponent@aora-bot/reactConfetti on its own, with no character attached.
    DemoDesktopcomponent@aora-bot/surfacesA window frame to put a demo inside.
    DeviceBezelcomponent@aora-bot/surfacesA device around a character: rounded shell, inset screen, status light.
    EditableAvatarcomponent@aora-bot/reactAn avatar that says it can be edited, and opens the editor when pressed.
    GroupActivityMarkcomponent@aora-bot/reactGroup equivalent, rotating through the members.
    GroupAvatarcomponent@aora-bot/reactConvenience wrapper that reads members off a group record.
    HandOffcomponent@aora-bot/surfacesOne agent handing work to another.
    HudPlatecomponent@aora-bot/reactThe words around a dial.
    JobBubblescomponent@aora-bot/surfacesWork in flight, as words around a character.
    LandingWaitcomponent@aora-bot/surfacesThe screen before anything has happened.
    LoadingMarkcomponent@aora-bot/surfacesA placeholder in the shape of the character that is coming.
    LocaleProvidercomponent@aora-bot/reactLanguage for the component layer.
    MarkStageProvidercomponent@aora-bot/reactHosts one hidden animation per distinct appearance, for mirrors to reuse.
    OccupancyListcomponent@aora-bot/surfacesWhich agents are on which resource.
    OccupancyMarkcomponent@aora-bot/surfacesOne agent, small, in a list of who is using something.
    RestrictedScenecomponent@aora-bot/surfacesThe page you land on when something says no.
    ShareCardcomponent@aora-bot/surfacesA template as something you can hand to someone: face, name, link.
    SpriteMarkcomponent@aora-bot/reactA raster character driven by the same states as the vector ones.
    StagedMarkcomponent@aora-bot/reactA character that shares its animation with every other character of the same
    SuggestionCardscomponent@aora-bot/surfacesThree starting points, each with a face.
    SurfaceLocaleProvidercomponent@aora-bot/surfacesCopy overrides for the surfaces.
    TemplateDialogcomponent@aora-bot/surfacesCreate or edit an agent template.
    UnreadBadgecomponent@aora-bot/reactUnread counter, capped so a runaway number cannot stretch the layout.
    VisibilityControlscomponent@aora-bot/surfacesWho can use a template, as two labelled choices rather than a switch.
    WorkingBadgecomponent@aora-bot/reactThree dots, pulsing out of phase.

    Hooks

    ExportKindPackageDescription
    useActivityPresencehook@aora-bot/reactMount on show, play the exit animation, then unmount.
    useAgentHudhook@aora-bot/reactThe HUD the arbiter is currently showing, if there is an arbiter at all.
    useAgentStatehook@aora-bot/reactThe nearest `AgentStateProvider`. Throws outside one, because there is no sensible default to fall back to.
    useAppearancehook@aora-bot/reactThe defaults in effect here. An empty record outside any provider.
    useArbiterhook@aora-bot/reactRun an arbiter for the lifetime of a component.
    useCastScenehook@aora-bot/surfacesWalk a scripted scene, one step at a time.
    useCyclehook@aora-bot/reactShared rotation counter.
    useDeadlinehook@aora-bot/reactA deadline that restarts whenever its dependencies change.
    useEventSourceChannelhook@aora-bot/reactSubscribe to a server-sent event stream of state messages.
    useHudSpechook@aora-bot/reactBuild a HUD spec from live numbers, or `null` if it does not hold up.
    useIdleSleephook@aora-bot/reactA character that nods off when the visitor does.
    useLabelhook@aora-bot/reactThe id-driven half of the locale, as functions.
    useLocalehook@aora-bot/reactTranslate a key. Falls back to English outside a provider.
    useMarkCommandhook@aora-bot/reactSubscribe to one agent.
    useMarkCommandshook@aora-bot/reactCommand side of the stage. Works with or without a provider above it.
    useMarkSettlehook@aora-bot/reactHold a state until it has stopped changing.
    useMarkStagehook@aora-bot/react—
    useOptionalAgentStatehook@aora-bot/reactThe nearest provider, or `null`. For components that work either way.
    usePokeCyclehook@aora-bot/reactCycle a character through its three flourishes, one per call.
    usePublishMarkhook@aora-bot/surfacesThree states for the one moment a form is worth animating.
    useReducedMotionhook@aora-bot/reactReduced motion, as a subscription so a mid-session change is picked up.
    useSpawnEntrancehook@aora-bot/reactPlay an arrival the first time an agent shows up, and never again.
    useSpriteManifesthook@aora-bot/reactLoad a manifest by URL. Resolves to `{ manifest: null, loading: false }` with no URL.
    useStateChannelhook@aora-bot/reactAccept `postMessage` state updates for as long as the component is mounted.
    useSurfaceLocalehook@aora-bot/surfacesTranslate a surface key in the language of the surrounding `LocaleProvider`; English outside one.

    Functions

    ExportKindPackageDescription
    activityFromToolfunction@aora-bot/react—
    activityLabelForStatefunction@aora-bot/reactThe label for a state, for hosts that already know the state and only need the words.
    agentColorfunction@aora-bot/react—
    agentFacefunction@aora-bot/react—
    agentNosefunction@aora-bot/reactThe agent's nose, or `null` unless its face is the line face.
    agentShapefunction@aora-bot/reactResolve an agent's appearance.
    allShapesfunction@aora-bot/engineEvery shape, derived. Only call this when you genuinely need all of them.
    autoColorForKeyfunction@aora-bot/engineDeterministic colour for an arbitrary key (an agent id, a username, anything).
    autoNoseForKeyfunction@aora-bot/engineDeterministic nose for an arbitrary key, for the line face. Salted so a
    autoPausefunction@aora-bot/engine—
    autoShapeForKeyfunction@aora-bot/engineDeterministic body shape for an arbitrary key.
    bangGlyphPathfunction@aora-bot/engineAn exclamation mark: a tapered capsule over a round dot.
    behaviourForfunction@aora-bot/engine—
    beltBodyRingfunction@aora-bot/engineThe body outline while a belt takes over, as points.
    beltForStatefunction@aora-bot/engine—
    blendBeltFramesfunction@aora-bot/engineCross-fade two belt frames.
    castMemberfunction@aora-bot/engineLook up a cast member. Returns `null` for unknown ids rather than throwing, so a stored preference can go stale safely.
    characterStateForActivityfunction@aora-bot/react—
    characterStateForAgentfunction@aora-bot/reactResolve what an agent is doing to a state.
    characterStateForRosterfunction@aora-bot/engineResolve a roster row to a state.
    clampfunction@aora-bot/engine—
    clampPanfunction@aora-bot/reactHold the crop window inside the image.
    clampZoomfunction@aora-bot/react—
    computeEyePlacementfunction@aora-bot/engineWork out where the two eyes go and how they are distorted by the pose.
    computeFaceGeometryfunction@aora-bot/enginePlace the whole face: eyes, and in line mode the nose and mouth too.
    computeFacePlacementfunction@aora-bot/engineThe same placement as SVG strings. A thin wrapper over `computeFaceGeometry`
    coverScalefunction@aora-bot/reactPixels of stage per pixel of image.
    createArbiterfunction@aora-bot/engine—
    createCharacterfunction@aora-bot/engineBuild and drive one character.
    createConfettiControllerfunction@aora-bot/engine—
    createImpulseBehaviourfunction@aora-bot/engineBehaviours that fire discrete impulses rather than tracking a continuous
    createMarkCommandRegistryfunction@aora-bot/reactThe agent-keyed half of the stage.
    createParticleSystemfunction@aora-bot/engineConfetti bursts and spin ribbons.
    createSimulationfunction@aora-bot/engineBuild the part of a character that is not drawing.
    cropToDataUrlfunction@aora-bot/reactRender the crop to a PNG data URL.
    cxfunction@aora-bot/reactJoin class names, dropping the falsy ones.
    defineShapefunction@aora-bot/engineRegister a custom shape, or replace a built-in one.
    defineStylefunction@aora-bot/engineRegister a style series, or replace one with the same id.
    easeInOutCubicfunction@aora-bot/engine—
    easeOutCubicfunction@aora-bot/engine—
    easeOutQuartfunction@aora-bot/engine—
    emotionIdForStatefunction@aora-bot/engineThe canonical id for a state — what a kit-side host should emit for it.
    emotionIdForToolfunction@aora-bot/engine—
    emotionSegmentfunction@aora-bot/engine—
    evaluateBeltfunction@aora-bot/engineEvaluate a belt at time `t` seconds.
    evaluateFxfunction@aora-bot/engineThe effect `kind` at time `t`, in seconds.
    evaluateHudfunction@aora-bot/engineEvaluate a HUD at `tMs` milliseconds.
    evaluateHudPrimitivesfunction@aora-bot/engine`evaluateHud` without the SVG: polylines stay as points.
    exportPlacementfunction@aora-bot/reactWhere the image lands on the export canvas.
    eyeOutlinefunction@aora-bot/engineConvert a spec into a closed outline.
    eyePairForfunction@aora-bot/engineThe eye pair a name means on a given face. The cute face reads cute names
    faceTuneForStatefunction@aora-bot/engine—
    fitFacefunction@aora-bot/engineFind the largest ellipse that fits comfortably inside a body outline.
    fitImagefunction@aora-bot/reactThe size to decode a source image at.
    fnv1a32function@aora-bot/engine32-bit FNV-1a. Stable across runs and platforms, which is the whole point.
    formatHudfunction@aora-bot/engineFormat a spec the way a status bar would print it.
    frameLerpfunction@aora-bot/engineFrame-rate independent exponential approach. `rate` is the fraction covered
    gazeForStatefunction@aora-bot/engine—
    getAdapterfunction@aora-bot/engine—
    getCuteMouthfunction@aora-bot/engine—
    getEmotionfunction@aora-bot/engine—
    getEyeScaleForShapefunction@aora-bot/engineCounter-scale for eyes so they read the same size on every body.
    getInkColorfunction@aora-bot/engine—
    getInkColorCssfunction@aora-bot/engineInk as a `light-dark()` pair.
    getInkGradientfunction@aora-bot/engine—
    getInkGradientForfunction@aora-bot/engineResolved (non-`light-dark`) gradient, for contexts that cannot use CSS colour functions.
    getInkVarsfunction@aora-bot/engineThe CSS custom properties a host puts on a character for this colour.
    getLeafColorfunction@aora-bot/engine—
    getMouthfunction@aora-bot/engine—
    getShapefunction@aora-bot/engineShapes are derived on first use, not at import. Face fitting is a grid
    getShapeScalefunction@aora-bot/engine—
    getStylefunction@aora-bot/engineLook a series up. Throws for an id nobody registered, naming the ones that exist.
    getSwatchfunction@aora-bot/engine—
    getSwatchHexfunction@aora-bot/engine—
    haloBackgroundfunction@aora-bot/engineSoft multi-stop wash used behind avatars.
    hasPicturefunction@aora-bot/react—
    hasStylefunction@aora-bot/engine—
    isCastIdfunction@aora-bot/engine—
    isCharacterStatefunction@aora-bot/engine—
    isGroupfunction@aora-bot/react—
    isHudKindfunction@aora-bot/engine—
    isHudSpecfunction@aora-bot/engineStrict validation, used by the protocol parser.
    isKnownActivityfunction@aora-bot/reactWhether the catalogue recognises a verb, rather than falling back to work.
    isMouthIdfunction@aora-bot/engine—
    isNoseIdfunction@aora-bot/engine—
    isOneshotEmotionfunction@aora-bot/engine—
    isSpriteManifestfunction@aora-bot/engineStructural check for something fetched off the network.
    kaomojifunction@aora-bot/engineThe character as one line of text: `(・ω・)`, `☁(^▽^) ♪`, `ฅ(・ω・)ฅ`.
    layoutAvatarStackfunction@aora-bot/reactWhere the discs in a cluster go.
    lerpfunction@aora-bot/engine—
    listStylesfunction@aora-bot/engineEvery registered series: the built-ins in the order of `STYLE_IDS`, then the
    loadImagefunction@aora-bot/reactDecode a data URL and bring it down to a workable size.
    loadSpriteManifestfunction@aora-bot/reactFetch and validate a manifest. Cached per URL for the page's lifetime; a failure is forgotten so a retry can succeed.
    mapPointerToGazefunction@aora-bot/engineMap a point in viewport pixels to a gaze target.
    morphEyefunction@aora-bot/engineBlend two eye specs. Every field is independent, so the result is always a valid eye.
    morphEyePairfunction@aora-bot/engine—
    morphMouthfunction@aora-bot/engineBlend two mouths. Every field is independent, so the result is always a valid mouth.
    mouthForStatefunction@aora-bot/engine—
    mouthOutlinefunction@aora-bot/engineConvert a mouth spec into a closed outline: the upper lip left to right,
    mouthSpecForfunction@aora-bot/engineThe mouth a name means on a given face, or `undefined` when that face has no such mouth.
    mulberry32function@aora-bot/engineMulberry32 PRNG. Small, fast, and good enough for scatter and jitter.
    normaliseIdfunction@aora-bot/engineAccept `3`, `'3'`, `'03'`, `' 03 '` as the same id.
    normalizefunction@aora-bot/engine—
    normalizeLinefunction@aora-bot/engineParse and normalise one line of newline-delimited JSON. Blank lines are skipped, not errors.
    normalizeTemplateDraftfunction@aora-bot/surfacesClean a template up and say what is still wrong with it.
    nosePolylinefunction@aora-bot/engineNose polyline scaled to a radius and positioned at an anchor.
    onReducedMotionChangefunction@aora-bot/engineSubscribe to reduced-motion changes. Returns an unsubscribe function.
    openMessageChannelfunction@aora-bot/engineListen for `{ type: 'aora:state', payload }` messages. Returns a closer.
    panLimitfunction@aora-bot/reactHow far the centre may travel before an edge of the image enters the window.
    paramsForVariantfunction@aora-bot/engineThe parameters a variant actually reads, for a control panel that shows only those.
    parseAgentMessagefunction@aora-bot/engineParse the wire form of a message: `{ aoraBotId, tips?, hud? }`,
    participantsFromMembersfunction@aora-bot/reactSplit a membership list into the faces to draw and a count for the rest.
    particleFramesfunction@aora-bot/enginePaper as renderers see it: position, size and a ready-made opacity.
    particleOpacityfunction@aora-bot/engineOpacity curve: quick fade in, long power fade out.
    particleSizefunction@aora-bot/engineConfetti shrinks a little as it falls.
    pencilGlyphPathfunction@aora-bot/engineA pencil, pointing down.
    polylinePathfunction@aora-bot/engineStraight-segment SVG path through a list of points.
    polylinesPathfunction@aora-bot/engineSeveral open polylines as one path, each its own subpath.
    poseMatrixfunction@aora-bot/engineCombined pose and rest-pose matrix.
    prefersReducedMotionfunction@aora-bot/engineWhether the visitor asked for reduced motion. Safe to call during SSR.
    projectOnSpherefunction@aora-bot/engineProject a point on the character's notional sphere through the current pose.
    readImageFilefunction@aora-bot/reactValidate and read a dropped, pasted or chosen file.
    readLineStreamfunction@aora-bot/engineConsume newline-delimited JSON from any async source of text chunks.
    renderAvatarDataUrlfunction@aora-bot/engineOne-line deterministic avatar for an arbitrary key.
    renderStaticSvgfunction@aora-bot/engineRender a character to an SVG string.
    renderStaticSvgDataUrlfunction@aora-bot/enginePercent-encoded data URL. Smaller and more readable than base64 for SVG.
    resetSpawnEntrancesfunction@aora-bot/reactForget every introduction. Exists for tests and for host-side session resets.
    resolveEmotionIdfunction@aora-bot/engineResolve either form of address to an id: a two-digit protocol id, or a
    resolveLineWeightfunction@aora-bot/engineResolve a per-character line weight from a multiplier.
    resolveSpriteFramesfunction@aora-bot/enginePick the frames for an id.
    resolveStyleOptionsfunction@aora-bot/engineMerge caller parameters over a series' defaults.
    ribbonColorfunction@aora-bot/engineA ribbon's colour: soft and a little light, so it reads as a flourish and not as part of the body.
    ribbonRunsfunction@aora-bot/engineThe stretches of a ribbon on one side of the body, as `[first, last]` index
    roundTofunction@aora-bot/engineRound to a number of decimal places.
    settleForStatefunction@aora-bot/engine—
    settleSpringfunction@aora-bot/engineDrop a spring onto its target instantly. Used for reduced-motion.
    shapeMaskImagefunction@aora-bot/engineSilhouette-only SVG, for use as a CSS `mask-image`.
    shapeRingMaskImagefunction@aora-bot/engineHollow ring version of the silhouette, for selection indicators.
    smoothClosedPathfunction@aora-bot/engineClosed Catmull-Rom spline through `points`, converted to cubic Béziers.
    smoothstepfunction@aora-bot/engine—
    springfunction@aora-bot/engine—
    springPositionfunction@aora-bot/engineNormalised spring position at time `t`, starting at 0 and settling at 1.
    springSettleTimefunction@aora-bot/engineTime in seconds for a spring to visually settle. Used to derive CSS
    springToLinearEasingfunction@aora-bot/engineSample a spring into a CSS `linear()` easing function so a DOM transition
    spriteCoveragefunction@aora-bot/engineAudit a manifest against a list of ids (normally `EMOTION_IDS`).
    stackMetricsfunction@aora-bot/react—
    stackMetricsForPxfunction@aora-bot/reactThe band an arbitrary pixel size falls in.
    stateForActivityfunction@aora-bot/engineState for an activity verb; anything unrecognised is generic work.
    stateForAgentEventfunction@aora-bot/engineTranslate a tool event through its adapter. `null` when either is unknown.
    stateForEmotionfunction@aora-bot/engineResolve an id to the state a character should adopt.
    stateForToolfunction@aora-bot/engineState for a tool name; unknown tools are "working".
    stepSpringfunction@aora-bot/engineAdvance a spring by `dt` seconds using semi-implicit Euler at a fixed
    streamChunksfunction@aora-bot/engineTurn a `ReadableStream` (as returned by `fetch`) into an async iterable of chunks.
    tangentTransformfunction@aora-bot/engine—
    tangentTransformStringfunction@aora-bot/engineThe same transform as an SVG attribute value, at four decimals.
    trailFramesfunction@aora-bot/engineRibbons as renderers see them; one too short or too thin to draw is left out.
    validateStyleOptionsfunction@aora-bot/engineReport what `resolveStyleOptions` would silently fix.
    wrapperForfunction@aora-bot/engineThe wrapper a shape wears.

    Constants and data

    ExportKindPackageDescription
    ACTIVITY_EXIT_MSconstant@aora-bot/reactHow long the row stays in the DOM after it has been told to go.
    ACTIVITY_LABELSconstant@aora-bot/reactThe verb to show for each state a tool can put the character in.
    ACTIVITY_MARK_PXconstant@aora-bot/react—
    ACTIVITY_VERB_IDSconstant@aora-bot/engineThe verbs a product surface uses to say what an agent is doing.
    ACTIVITY_VERBSconstant@aora-bot/engine—
    AGENT_ADAPTERSconstant@aora-bot/engine—
    ANTIC_STATESconstant@aora-bot/engineStates in which an unattended character may occasionally do something on
    ASSIGNABLE_COLOR_IDSconstant@aora-bot/engineColours that deterministic assignment may pick. `black` is reserved for defaults.
    AUTO_SHAPE_POOLconstant@aora-bot/engineShapes that deterministic assignment may pick — the eight that read well at 16px.
    AVATAR_PREVIEW_PXconstant@aora-bot/reactDefault size of the character preview.
    AVATAR_SIZESconstant@aora-bot/react—
    BELT_CORE_SIZEconstant@aora-bot/engineHow far the body shrinks when this belt takes over.
    BELT_GLYPH_SIZEconstant@aora-bot/engineHeight of a belt glyph in shape units, before the frame's own scale.
    BELT_KINDSconstant@aora-bot/engine—
    CASTconstant@aora-bot/engineThe named characters, one per body, in catalogue order.
    CAST_IDSconstant@aora-bot/engine—
    CENTERconstant@aora-bot/engineCentre of shape space. All generators build around this point.
    CHARACTER_STATESconstant@aora-bot/engine—
    claudeCodeconstant@aora-bot/engineClaude Code hook events.
    COLOR_IDSconstant@aora-bot/engine—
    COLOR_SWATCHESconstant@aora-bot/engineThree colour layers per hue.
    CONFETTI_COLORSconstant@aora-bot/engine—
    CROP_STAGE_PXconstant@aora-bot/reactSide of the square crop window.
    cursorconstant@aora-bot/engineCursor agent hook events.
    CUTE_EYE_IDSconstant@aora-bot/engine—
    CUTE_EYE_TOPOLOGIESconstant@aora-bot/engine—
    CUTE_MOUTH_IDSconstant@aora-bot/engineNamed mouths for the cute face. Every state wears one; see `STATE_CUTE_MOUTH`.
    CUTE_MOUTHSconstant@aora-bot/engine—
    DEFAULT_ACTIVITYconstant@aora-bot/react—
    DEFAULT_FACE_TUNEconstant@aora-bot/engine—
    DEFAULT_POSEconstant@aora-bot/engineLive pose, layered on top of the rest pose. Neutral by default — animation
    DEFAULT_POSE_HOMEconstant@aora-bot/engineRest pose: the slight three-quarter turn the character holds when it is not
    DEFAULT_PRIORITYconstant@aora-bot/engineDefault priorities. Errors and refusals beat everything because they need
    DEFAULT_STYLE_IDconstant@aora-bot/engineThe series a character is drawn in when nothing names one.
    DEFAULT_TOOL_STATEconstant@aora-bot/engine—
    EMOTION_IDSconstant@aora-bot/engine—
    EMOTION_SEGMENTSconstant@aora-bot/engine—
    EMOTIONSconstant@aora-bot/engine—
    enUSconstant@aora-bot/reactSource of truth for translatable strings. Every other locale mirrors these keys.
    EXPORT_PXconstant@aora-bot/reactSide of the exported PNG. Four times the stage, so a retina avatar stays sharp.
    EYE_TOPOLOGIESconstant@aora-bot/engine—
    EYE_TOPOLOGY_IDSconstant@aora-bot/engine—
    FACE_STYLESconstant@aora-bot/engineHow the face is drawn.
    FX_COLORSconstant@aora-bot/engineColours the effects keep on every variant. Ink-coloured ones are `null`, so the renderer picks the ink.
    FX_KINDSconstant@aora-bot/engineThe mood effects of the cute face: what a character throws off besides its expression.
    GROUP_CYCLE_MSconstant@aora-bot/react—
    GROUP_INK_MSconstant@aora-bot/reactInk crossfade when the group rotates. Slower, because the rotation itself is abrupt.
    GROUP_MARK_PXconstant@aora-bot/react—
    HUD_FONTconstant@aora-bot/engineTabular face for the printed figure.
    HUD_KIND_LABELSconstant@aora-bot/engine—
    HUD_KINDSconstant@aora-bot/engineThe HUD data contract.
    HUD_PRINT_MIN_PXconstant@aora-bot/engineBelow this CSS size the ring keeps the track and drops the glyphs.
    IDLE_EMOTION_IDconstant@aora-bot/engine—
    IDLE_STATEconstant@aora-bot/engine—
    INK_GRADIENT_ANGLEconstant@aora-bot/engine—
    LEAF_COLORconstant@aora-bot/engineThe green of a leaf accessory (`ShapePart` tone `leaf`), and the lighter one
    LEAF_COLOR_ON_GREENconstant@aora-bot/engine—
    LINE_FACE_TUNEconstant@aora-bot/engineEye size multipliers applied in line mode.
    LINE_WEIGHTconstant@aora-bot/engineStroke weight for nose, mouth and thin eye expressions, as a fraction of the
    LINE_WEIGHT_RANGEconstant@aora-bot/engineHow far a character may stray from the shared line weight, either way.
    LOCALESconstant@aora-bot/react—
    MarkCommandContextconstant@aora-bot/react—
    MAX_SOURCE_PXconstant@aora-bot/reactLongest edge kept after loading. A source photo is usually several times this.
    MAX_UPLOAD_BYTESconstant@aora-bot/reactRefuse anything larger. Above this a data URL alone is enough to stall a tab.
    MESSAGE_TYPEconstant@aora-bot/engineWire shape for the `postMessage` transport.
    MOUTH_DROPconstant@aora-bot/engineWhere the mouth sits below the eye line, in eye radii.
    MOUTH_IDSconstant@aora-bot/engineNamed mouths for the line face. Every state wears one; see `STATE_MOUTH`.
    MOUTHSconstant@aora-bot/engineThe thirteen mouths. Together they cover every state; see `STATE_MOUTH`.
    NOSE_DROPconstant@aora-bot/engineWhere the nose sits below the eye line, in eye radii.
    NOSE_IDSconstant@aora-bot/engineNose shapes for the line face. A trait, not an expression: chosen once per
    NOSESconstant@aora-bot/engineSixteen-point polylines in eye-radius units, centred on their bounding box.
    PART_TONESconstant@aora-bot/engineHow a part of a figure is painted.
    PathBuilderconstant@aora-bot/engine—
    PICKER_MARK_PXconstant@aora-bot/react—
    POKE_COOLDOWN_MSconstant@aora-bot/reactIgnore a second poke inside this window, so a rapid click cannot stack flourishes.
    SEGMENT_FALLBACKconstant@aora-bot/engineFallback chain for unknown ids, by segment.
    SETTLE_MSconstant@aora-bot/reactHow long a state has to hold still before a roster believes it.
    SHAPE_FAMILIESconstant@aora-bot/engineThe roster on its shelves.
    SHAPE_IDSconstant@aora-bot/engineThe roster in catalogue order, `mochi` (the default shape) first.
    SHAPE_SPACEconstant@aora-bot/engineShape space is a square of this size; every generated path is normalised into it.
    SHAPE_WRAPPERSconstant@aora-bot/engineWrappers for the shapes that dress up (a few of the roster); every other shape is a plain pair of brackets.
    SPAWN_STATEconstant@aora-bot/reactThe state an agent wears on its way in.
    SPRITE_FALLBACK_HOPSconstant@aora-bot/engineThe manifest's own chain is followed at most this many hops.
    STACK_MAX_VISIBLEconstant@aora-bot/react—
    STACK_OVERLAPconstant@aora-bot/reactDefault overlap, as a fraction of one disc.
    STAGE_SOURCE_PXconstant@aora-bot/reactSource marks render at a real size rather than 1px.
    STATE_BELTconstant@aora-bot/engineWhich states hand their body over to a belt overlay.
    STATE_BLINK_MSconstant@aora-bot/engineBlink interval range. `null` means the state does not blink — either the
    STATE_BLUSHconstant@aora-bot/engineHow strongly the cheeks are flushed in each state, 0..1. Only happy, success
    STATE_CUTE_EYESconstant@aora-bot/engineThe cute face's expression sequence per state: the same cycle as
    STATE_CUTE_MOUTHconstant@aora-bot/engineThe cute face's mouth per state. Most states have none: a mouth is there
    STATE_ENTRY_EFFECTSconstant@aora-bot/engine—
    STATE_EYE_SWITCH_MSconstant@aora-bot/engineRandom interval range, in milliseconds, before switching to the next expression.
    STATE_EYE_TOPOLOGIESconstant@aora-bot/engineExpression sequence per state. The first entry is adopted on entry; the rest
    STATE_FACE_TUNEconstant@aora-bot/enginePer-state face adjustments layered over DEFAULT_FACE_TUNE.
    STATE_FACESconstant@aora-bot/engineThe face inside the wrapper, for every state.
    STATE_FXconstant@aora-bot/engineThe effect a state throws off: a mood's mark, or for the sixteen belt
    STATE_GAZEconstant@aora-bot/engineGaze drift: amplitude in shape units and the interval between new targets.
    STATE_GROUP_IDSconstant@aora-bot/engine—
    STATE_GROUPSconstant@aora-bot/engine—
    STATE_MOUTHconstant@aora-bot/engineThe mouth each state wears in line mode.
    STATE_MOUTH_TALKconstant@aora-bot/engineStates whose mouth pulses open and shut, as though speaking. The pulse is
    STATE_SETTLE_TOconstant@aora-bot/engineStates that are moments rather than conditions, and what they become when
    STATE_TAILSconstant@aora-bot/engineWhat follows the closing wrapper: the mood's effect, as a mark. Empty when the state has none.
    STYLE_IDSconstant@aora-bot/engineThe style series that ship with the engine, in display order.
    SURFACE_LOCALESconstant@aora-bot/surfaces—
    surfaceEnUSconstant@aora-bot/surfacesSource of truth for the surfaces' strings. zh-CN mirrors these keys.
    surfaceZhCNconstant@aora-bot/surfaces—
    TEMPLATE_ERROR_KEYSconstant@aora-bot/surfacesCopy for each failure, so a host does not have to write its own.
    TEMPLATE_LIMITSconstant@aora-bot/surfacesCeilings on the two free-text fields.
    TEMPLATE_MARK_PXconstant@aora-bot/surfacesDefault size of the template's character.
    tickerconstant@aora-bot/engine—
    TOOL_ACTIVITIESconstant@aora-bot/react—
    TOOL_STATESconstant@aora-bot/engineGeneric tool names, for hosts that report which tool is running rather
    UNREAD_BADGE_CAPconstant@aora-bot/react—
    VIEWBOXconstant@aora-bot/engine—
    VIEWBOX_STRconstant@aora-bot/engine—
    zhCNconstant@aora-bot/react—
    ZOOM_MAXconstant@aora-bot/react—
    ZOOM_MINconstant@aora-bot/react—
    ZOOM_STEPconstant@aora-bot/reactStep for the plus and minus buttons — eight presses from end to end.

    Next