Skip to content
Console

Events and Rich Output

SDK responses may contain more than plain text. A reply can include speech, display items, event metadata, or policy information.

Build clients so they can read the normalized response first, then inspect richer fields when the app needs them.

OutputUse it for
textPlain answer text for logs, chat, tests, and fallback displays.
speechSpeakable text after SSML and markup cleanup.
display_itemsCards, choices, tables, images, and attachments.
raw_eventAdvanced integrations that need the original event payload.
policy_deniedUser-safe handling when access blocks a request.

Use SDK constants when a language exposes them. The underlying event names stay stable across SDKs.

EventMeaning
recognizer_loop:utteranceA client sends a user utterance.
speakThe hub returns speech or reply text.
complete_intent_failureA request could not be matched to an available skill.
hive.policy.deniedAccess policy blocked the request.
mycroft.skill.handler.startA skill handler started.
mycroft.skill.handler.completeA skill handler finished.

Display items let apps show structured results without reverse-engineering the text.

Text

A paragraph, title, subtitle, or status message.

Choice

A selectable option that can map back to send_action.

Table

Rows and columns for comparison, status, or inventory style output.

Image

A URL or attachment reference that the client can render.

from thalovant import ThalovantClient
with ThalovantClient.from_identity_file("_identity.json") as client:
reply = client.ask("Show the next maintenance steps.")
print(reply.text)
for item in reply.display_items:
print(item.kind, item.title, item.payload)
CaseRecommended handling
text is presentShow it as the fallback user-visible answer.
speech is presentSpeak it in voice clients after local safety checks.
display_items is presentRender the items the client understands and ignore unknown kinds.
policy_denied is trueShow a safe denied message and log the request ID.
No useful outputTreat it as an empty reply and include the raw event in diagnostics.