Skip to content
Reference

m3.elicitation ​

Signatures use ... for factory-backed or opaque defaults. Model field tables show required status, defaults, constraints, and descriptions.

ElicitationPlan ​

python
m3.elicitation.ElicitationPlan(
    *,
    node: Literal['leaf', 'sequence', 'optional', 'one_of', 'round_of'] = 'leaf',
    request: m3.elicitation._FormExpectation | m3.elicitation._UrlExpectation | None = None,
    response: m3.elicitation.ElicitationResponse | None = None,
    children: tuple[m3.elicitation.ElicitationPlan, ...] = (),
    optional_occurrence: bool = False,
) -> None

An immutable, serializable elicitation expectation tree.

Model fields:

FieldTypeRequiredDefaultConstraintsDescription
nodeLiteral['leaf', 'sequence', 'optional', 'one_of', 'round_of']No'leaf'——
requestm3.elicitation._FormExpectation | m3.elicitation._UrlExpectation | NoneNoNonevariant 1: discriminator='mode'—
responsem3.elicitation.ElicitationResponse | NoneNoNone——
childrentuple[m3.elicitation.ElicitationPlan, ...]No()——
optional_occurrenceboolNoFalse——
  • is_complete (property)
  • mode (property)
  • requested_schema (property)
  • optional (property)
python
accept(
    self,
    content: Mapping[str, object] | None = None,
) -> ElicitationPlan
python
decline(
    self,
) -> ElicitationPlan
python
cancel(
    self,
) -> ElicitationPlan
python
canonical_identity(
    self,
) -> str
python
canonical_json(
    self,
) -> str
python
model_dump(
    self,
    *args: Any,
    **kwargs: Any,
) -> dict[str, Any]
python
model_dump_json(
    self,
    *args: Any,
    **kwargs: Any,
) -> str
python
matcher(
    self,
) -> PlanMatcher

ElicitationRequest ​

m3.elicitation.ElicitationRequest

ElicitationResponse ​

python
m3.elicitation.ElicitationResponse(
    *,
    action: Literal['accept', 'decline', 'cancel'],
    content: collections.abc.Mapping[str, object] | None = None,
    meta: collections.abc.Mapping[str, object] | None = None,
) -> None

The response that will be associated with one request key.

Model fields:

FieldTypeRequiredDefaultConstraintsDescription
actionLiteral['accept', 'decline', 'cancel']Yes———
contentcollections.abc.Mapping[str, object] | NoneNoNone——
metacollections.abc.Mapping[str, object] | NoneNoNone——

FormElicitationRequest ​

python
m3.elicitation.FormElicitationRequest(
    *,
    request_key: str,
    mode: Literal['form'] = 'form',
    message: str,
    requested_schema: collections.abc.Mapping[str, object],
    meta: collections.abc.Mapping[str, object] | None = None,
    task: collections.abc.Mapping[str, object] | None = None,
    server: str | None = None,
    operation_kind: Literal['tool', 'prompt', 'resource'] | None = None,
    operation_name: str | None = None,
) -> None

A normalized form-mode elicitation request.

Model fields:

FieldTypeRequiredDefaultConstraintsDescription
request_keystrYes—min_length=1—
modeLiteral['form']No'form'——
messagestrYes———
requested_schemacollections.abc.Mapping[str, object]Yes———
metacollections.abc.Mapping[str, object] | NoneNoNone——
taskcollections.abc.Mapping[str, object] | NoneNoNone——
serverstr | NoneNoNone——
operation_kindLiteral['tool', 'prompt', 'resource'] | NoneNoNone——
operation_namestr | NoneNoNone——

PendingElicitationRound ​

python
m3.elicitation.PendingElicitationRound(
    *,
    round_id: str,
    execution_id: str,
    logical_operation_id: str,
    server: str,
    operation_kind: Literal['tool', 'prompt', 'resource'],
    operation_name: str,
    request_state: str | None = None,
    requests: collections.abc.Mapping[str, m3.elicitation.FormElicitationRequest | m3.elicitation.UrlElicitationRequest],
    created_at: datetime.datetime,
    deadline: datetime.datetime | None = None,
) -> None

A persisted, keyed set of elicitation requests awaiting responses.

Model fields:

FieldTypeRequiredDefaultConstraintsDescription
round_idstrYes—min_length=1—
execution_idstrYes—min_length=1—
logical_operation_idstrYes—min_length=1—
serverstrYes—min_length=1—
operation_kindLiteral['tool', 'prompt', 'resource']Yes———
operation_namestrYes—min_length=1—
request_statestr | NoneNoNone——
requestscollections.abc.Mapping[str, m3.elicitation.FormElicitationRequest | m3.elicitation.UrlElicitationRequest]Yes—type argument 2: discriminator='mode'—
created_atdatetime.datetimeYes———
deadlinedatetime.datetime | NoneNoNone——

UrlElicitationRequest ​

python
m3.elicitation.UrlElicitationRequest(
    *,
    request_key: str,
    mode: Literal['url'] = 'url',
    message: str,
    url: str,
    elicitation_id: str | None = None,
    meta: collections.abc.Mapping[str, object] | None = None,
    task: collections.abc.Mapping[str, object] | None = None,
    server: str | None = None,
    operation_kind: Literal['tool', 'prompt', 'resource'] | None = None,
    operation_name: str | None = None,
) -> None

A normalized URL-mode elicitation request.

Model fields:

FieldTypeRequiredDefaultConstraintsDescription
request_keystrYes—min_length=1—
modeLiteral['url']No'url'——
messagestrYes———
urlstrYes———
elicitation_idstr | NoneNoNone——
metacollections.abc.Mapping[str, object] | NoneNoNone——
taskcollections.abc.Mapping[str, object] | NoneNoNone——
serverstr | NoneNoNone——
operation_kindLiteral['tool', 'prompt', 'resource'] | NoneNoNone——
operation_namestr | NoneNoNone——

expect_form ​

python
m3.elicitation.expect_form(
    request_key: str,
    *,
    message: str | None = None,
    schema: Mapping[str, object] | None = None,
    server: object | None = None,
    operation_kind: OperationKind | None = None,
    operation_name: str | None = None,
) -> ElicitationPlan

expect_url ​

python
m3.elicitation.expect_url(
    request_key: str,
    *,
    message: str | None = None,
    url: str | None = None,
    elicitation_id: str | None = None,
    server: object | None = None,
    operation_kind: OperationKind | None = None,
    operation_name: str | None = None,
) -> ElicitationPlan

maybe_form ​

python
m3.elicitation.maybe_form(
    request_key: str,
    *,
    message: str | None = None,
    schema: Mapping[str, object] | None = None,
    server: object | None = None,
    operation_kind: OperationKind | None = None,
    operation_name: str | None = None,
) -> ElicitationPlan

maybe_url ​

python
m3.elicitation.maybe_url(
    request_key: str,
    *,
    message: str | None = None,
    url: str | None = None,
    elicitation_id: str | None = None,
    server: object | None = None,
    operation_kind: OperationKind | None = None,
    operation_name: str | None = None,
) -> ElicitationPlan

one_of ​

python
m3.elicitation.one_of(
    *children: ElicitationPlan,
) -> ElicitationPlan

optional ​

python
m3.elicitation.optional(
    child: ElicitationPlan,
) -> ElicitationPlan

round_of ​

python
m3.elicitation.round_of(
    *children: ElicitationPlan,
) -> ElicitationPlan

sequence ​

python
m3.elicitation.sequence(
    *children: ElicitationPlan,
) -> ElicitationPlan