Elamur GroupantsโŒ•
โ˜ฐ

mova-serve

The groupant beside models/mova-serve.groupant in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

Facts

Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

Components

componentlabelwhere
Approximantpartial source derivedForward
Astnot materialized
Compositionpartial source derivedComposition
Costpartial source derivedCost
Descriptantpartial source derivedDescriptant
Invariantpartial source derivedInvariant
Testsfinite evidenceTests

Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

relationtypelabelwhere
Behavior complementbehavior complementpartial source derived finite checksBehavior complement
Reverse reconstructionreverse reconstructionpartial source derived finite checksReverse reconstruction

Model text

Descriptant

The public parse service: the parse pages with shareable addresses, the JSON API and the MCP server over mova-parse (level 1 and the per-language models) and prag (frames, the speech-act perceptron, inferences), with a W-TinyLFU cache, a fixed worker pool behind a bounded queue, word quotas by plan, accounts (Google sign-in, API keys, terms acceptance), and a bounded request log.

Forward

request โ†’ server::respond โ†’ identity (auth: key or session; else the address) โ†’ limits (quota words, ratelimit burst, characters) โ†’ cache or the pool running engine::analyse โ†’ html page (with svg trees), JSON, CoNLL-U or mcp result โ†’ store log line, ring slot, usage count.

Invariant

The analysis is a function of (normalised text, language choice, model files); the cache key holds all three. Every parse answer carries the client's quota; every parse request is logged with its text; state lives under one directory with bounded sizes and ages.

Cost

A cache hit โ‰ˆ0.01โ€“0.06 ms through the route; a miss โ‰ˆ18 ms for 100 words, 0.66 s for 5 000 words; 821 MB resident after loading (2026-11-06).

Composition

Leaves are the file groupants beside tools/mova-serve/src/*.rs. The wiring is checked by server::tests (API schema and cache, limits, quotas, busy queue with a control, MCP with a key, pages and log, the account flow) and by two mova-serve bench processes giving the same digest; the leaves' own tests check each part alone.

Behavior complement

No TLS (the proxy's), no billing, no OAuth 2.1 authorization for MCP (API keys), no frames or pragmatics for French, no expression lens.

Reverse reconstruction

The request log recovers what was asked, when, through which endpoint, with which outcome; the versions in every answer recover which model files answered.

Tests

cargo test --release -p mova-serve: all module tests (2026-11-06); mova-serve bench twice; headless screenshots at 1280 and 390 px; the MCP stdio transport end to end against a local server.

Provenance

This page in Markdown โ†’ https://md.groupants.elamur.ai/free/en/mova/models/mova-serve.groupant/