Skip to main content
Glama

Zero-Trust Physics

run_trajectory

Read-onlyIdempotent

One anchored run under a changing load. Same bytes as POST /run_trajectory. The size of the answer follows from the request: about 230 characters for each recorded state, plus the request as it was sent, plus up to 8000 characters for the final state and the seals. A state is recorded at each multiple of record_every and at the last landed step, so 10,000 steps with record_every 1 answer with about 2.3 million characters, and the same steps with record_every 10000 with one recorded state. What keeps it small: a larger record_every; the final state is returned in full whatever is recorded. To read quantities without the frames, add readout: {"quantities": [names the card publishes], "first_past": {"quantity": , "above" or "below": }}. The answer then holds each quantity in decimals at the recorded steps, its minimum and maximum over every landed step with the step, the time (the step times dt_s) and every other listed quantity at that step (at_minimum, at_maximum), and, when asked, the first landed step at which it is past the level, with every other listed quantity there (at_step); with record_every equal to the steps, one state is recorded and the readout gives the extremes of every step. The readout is not part of the sealed request: the run_seal is the seal of the same run without it, the receipt covers it, and at most 8 quantities are read. With from (see its schema) the run starts from a sealed run, and is refused by name when the upstream's seal or a carried value does not hold. A run can be refused in two ways, and they come back differently. A request the door turns away before computing is an error, not a result: its text is one sentence, nothing is sealed, and when the sentence gives the card's name for the refusal the name is in round brackets. A run that starts and is refused part way is a result: outcome is "refused", reject holds the name (null when the cause has none), reject_detail holds the sentence, which ends "The run is sealed to step N. The state at step N+1 was refused and is not sealed.", and the run is sealed up to that last landed step N: steps_landed is N, the count of steps that landed, so the step that was refused is steps_landed + 1. A run that reaches an end its card declares (the first maximum of power of a reactor burst, a capsule's flown parachute deployment, a mission's last day, the end of a record's clock or track) is not refused: outcome is "ended", reject holds the end's name, reject_detail a sentence beginning "Ended" that names the end, and the run is sealed up to its last landed step; describe_card lists a card's declared ends under declared_ends. A sentence that begins "Physical Failure" says the state asked for or reached is outside the card: past a published bound, a limit of the specimen, or the conservation ledger. A sentence that begins "Physical Violation" says the request, or a number in it or computed from it, is not one the engine takes: its shape, a missing or unknown key, the number rule, the step floor or ceiling, a load rule, a size limit, or a value that is not finite. On this open connection one address holds at most 1 physics permit at a time, and a solve, a dataset job and a run of more than 10000 steps are long work, of which 1 runs at a time: a call that finds no permit or no place is answered "Too many concurrent physics tasks." and is sent again; nothing waits. An answer is waited for 60 seconds.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardYesThe card of the pair, as list_cards names it.
dt_sYesStep, in seconds. Held for the whole run.
fromNoOptional: start from a sealed run. request: that run_trajectory request as sent (it may hold its own from); run_seal: its seal; coupling: absent to continue the same card (describe_card says how), or a coupling's name. The upstream is computed again; each carried value must equal its sealed value bit for bit. The run_seal is that of this request without from; chain.chain_seal commits it to the upstream.
domainYesThe domain of the pair, as list_cards names it.
initialYesThe phase fields of the card at the start of the run, each a number (a vector field is an array of three numbers), and no other key. describe_card gives them, with each unit and bound.
readoutNoOptional. The named quantities in decimals at the recorded steps, each one's minimum and maximum over every landed step with its step, its time and every other listed quantity at that step (at_minimum, at_maximum), and first_past when asked. Not part of the sealed request: the run_seal is that of the same run without it.
segmentsYes
record_everyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources