Skip to main content

Module dynamic

Module dynamic 

Source
Expand description

Dynamic questions (spec 019): a separate, explicitly invoked class for one bounded proposition, classify or rubric question over caller-selected structured context.

Three documents live here: the request, rustev.dynamic-question/1; a backend’s opt-in declaration, rustev.dynamic-capability/1, distinct from its registered-plan descriptor; and the outcome, rustev.dynamic-outcome/1. None of them is a plan document, and no type here converts into a plan value, a backend output or a judgment (spec 019, 3.1).

Every caller-controlled byte (question, labels, levels, context) is untrusted data. Nothing here interprets it; a type only bounds it.

The request and the capability are checked against their structural bounds when parsed (DynamicQuestion::check_bounds, DynamicCapability::check_bounds); the bounded scan runs first, so an oversized document is refused before typed deserialization allocates anything. Cross-field rules (which labels an operation takes, which output kinds it allows, the abstention posture) are the core’s request validation.

Structs§

BoundsError
Why a document is outside its structural bounds. The message names the member and the bound; it never echoes caller bytes beyond 64 characters.
ContextField
One named context field (3.2). provenance and source state who asserted the value; they do not make it true or trusted (3.3).
DynamicAttempt
The one dispatched attempt (3.5).
DynamicCapability
A backend’s opt-in dynamic capability, rustev.dynamic-capability/1 (3.4), distinct from its registered-plan descriptor: classify there never implies dynamic classification here.
DynamicIdentity
The canonical request identity’s preimage (3.4): everything that can change what a backend computes for a question. The request id, deadline, cost cap and abstention policy are deliberately absent; they bound or judge the computation, they do not define it. Its digest, tagged with schema::DYNAMIC_QUESTION, is the DynamicRequestId.
DynamicLineage
What a proposal was computed from (3.6).
DynamicOperationSupport
What a backend declares for one dynamic operation.
DynamicOutcome
A dynamic outcome, rustev.dynamic-outcome/1 (3.6): evidence of what Rustev observed for one request, bounded by RECORD_V1. It is not proof that the context was true, the backend was correct, privacy options were honored, or an action was permitted.
DynamicProjection
The bytes a dynamic backend receives (3.3): the request’s data fields as canonical JSON, every value a length-delimited, escaped JSON string or scalar under a fixed member name. An adapter maps these members through its versioned template; no member names a system, developer, tool, function, role, header, endpoint, model or artifact field, so no caller value can enter one. Context provenance, the scope and the bounds stay with Rustev.
DynamicProposal
A dynamic proposal (3.6): always model-derived, with the request and backend output in its lineage. Never a grant, never a plan value.
DynamicQuestion
A dynamic question, rustev.dynamic-question/1 (3.2).
DynamicTiming
Monotonic milliseconds from the start of the request.
LabelMass
One label’s or level’s mass, in declared order.
ProjectedField
One context field as projected: its name and value only.
TaskFamily
A task family and its version, selected from a host allowlist (3.2).
TemplateRef
A structured template, identified by its producer (3.3, 3.4): the versioned mapping from request fields to the provider’s request, with fixed control instructions no caller value can enter.

Enums§

AbstentionDecision
How the abstention policy was applied (3.5). Exact processing over model-derived masses; the thresholds are not calibration claims.
AbstentionPolicy
How a request’s result may be accepted (3.5). Thresholds exist only when the required result is a distribution; label-only acceptance exists only when the request permits it explicitly. Neither is a calibration claim.
AbstentionRule
The abstention rule that refused a distribution.
ContextValue
A scalar or text context value in canonical form (3.2). Decimals are strings, so a request holds no binary floating-point number.
DynamicAnswer
What was proposed (3.6). A label is only a label; a distribution is uncalibrated mass, not a calibrated probability; an ordinal distribution is mass over ordered levels, not an interval score.
DynamicOperation
The three dynamic operations (3.2). Their names are R-05’s; rank, generate and extract are not dynamic operations in version 1.
DynamicOutputKind
The output kind a request requires (3.2): label for any operation, distribution for proposition and classify, ordinal_distribution for rubric. A distribution is never a calibrated probability, and an ordinal distribution is never an interval score (3.6).
DynamicRaw
The raw output or failure (3.6).
DynamicRawOutput
What a dynamic backend returned, before validation (3.3). Material that is not a label or a distribution (a tool call, instructions, a schema, a URL to fetch, an action) is carried as unrecognized, recorded as invalid output and never executed.
DynamicRefusal
Why a request was refused before dispatch (3.4, 3.5).
DynamicResult
A proposal or a named unresolved outcome (3.5, 3.6).
DynamicUnresolved
A named unresolved outcome (3.5). No neutral score, first label, majority label, empty distribution or provider confidence replaces it.
DynamicValidation
Exact validation of the raw output (3.3, 3.6). Exact processing: it never relabels the proposal exact-derived.
HiddenState
Whether output-affecting state exists that the request does not carry (3.4). Declared present makes the backend ineligible for qualification.
ResponseShape
The shape of response material that is not an answer (3.3).

Constants§

MAX_CANONICAL_BYTES
The most canonical bytes of a whole request (3.2).
MAX_CAPABILITY_ENTRIES
The most task families, privacy options or operations a capability lists.
MAX_CLASSIFY_LABELS
The most labels of classify (3.2).
MAX_CONTEXT_FIELDS
The most context fields (3.2).
MAX_CONTEXT_VALUE_BYTES
The most context value bytes, summed over every field (3.2).
MAX_DETAIL_BYTES
The most bytes of free text Rustev writes into an outcome (a detail or a response excerpt), cut at a character boundary.
MAX_LABEL_BYTES
The most bytes of one label or level (3.2).
MAX_META_BYTES
The most bytes of bounded metadata: the request id, a context field’s source and source revision.
MAX_NAME_BYTES
The most bytes of a name: a context field, a task family name or version, a template name or version, a preprocessing policy, a privacy option, a backend id.
MAX_QUESTION_BYTES
The most bytes of the question (3.2).
MAX_RUBRIC_LEVELS
The most levels of rubric (3.2).
MIN_LABELS
The fewest labels or levels of classify and rubric (3.2).
PROPOSITION_LABELS
The fixed ordered labels of proposition (3.2).