ask answer and interaction-state models.
InteractionResponse is the validated answer pushed onto the reply channel;
InteractionState is the mutable record the answer endpoint reads;
SuspendedInteraction is the sentinel an async ask returns in place of an answer.
InteractionResponse
tai42_contract.interactions.models.response.InteractionResponse
params is the OPTIONAL opaque channel enrichment carried WITH the answer — the answer-path
counterpart of the bridge path’s params and a
conversation entry’s params: when a tap/reply that ANSWERS a pending ask also carries
channel-specific context (a tapped reply id, a template button payload, a referral, the
reply-to context the participant quoted) the channel encodes it as string entries here so the asking
flow reads them beside answer. The SAME transport vocabulary
(validate_entry_params) bounds it as every params seam;
the platform attaches no meaning and NO TRUST. None means no enrichment — a plain answer,
byte-identical to the pre-params envelope.
Attributes
InteractionState
tai42_contract.interactions.models.response.InteractionState
SuspendedInteraction
tai42_contract.interactions.models.response.SuspendedInteraction
async ask returns in place of an answer.
Any async-suspending tool returns it to signal the caller was parked, keyed by
interaction_id so the resume path can find the parked question. Generic:
a resuming driver’s resume state is keyed by this id, not carried here.
Attributes
ResumeBuffered
tai42_contract.interactions.models.response.ResumeBuffered
remaining_ids are the
still-unanswered asks of the same step. It is NOT terminal — the platform’s delivery chokepoint
delivers nothing for it (the run stays parked), and visit normalises it to the caller/user
partition of the remaining ids. Generic: it names interaction ids only, no driver
or engine state. Kept by TYPE through the run-tool seam alongside SuspendedInteraction so a
caller recognises a still-suspended step rather than mistaking it for a terminal result.
Attributes
RunFailed
tai42_contract.interactions.models.response.RunFailed
outcome is the failing driver’s opaque mapping.
A driver that resumes another driver’s run through a chain-delivery tool reads the failure by
TYPE, never by a status word inside the outcome: the outcome stays the failing driver’s own
JSON mapping, carried whole. A continuation face raises
RunTerminalFailed with it, so the platform delivers FAILED.
Attributes

