Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CLI argument reference (generated)

This fragment is generated from trustworthiness_checker::cli::args::Cli::command(); the hand-written semantic notes are in CLI notes and are included below.

Clap argument groups

These groups are the parser-level requirements and mutual-exclusion boundaries exposed by Clap. Additional cross-option validation is described in the surrounding reference pages.

Group IDMembersRequiredMultiple
Clinoyes
DistributionModecentralised, distributed_work, distribution_graph, local_topics, mqtt_centralised_distributed, mqtt_dynamic_optimized, mqtt_randomized_distributed, mqtt_static_optimized, ros_centralised_distributed, ros_dynamic_optimized, ros_randomized_distributed, ros_static_optimizednono
InputModeinput_config, input_file, input_mqtt_file, input_redis_file, input_ros_file, mqtt_input, redis_input, redis_knowledge_inputyesno
OutputSelectionmqtt_output, output_config, output_mqtt_file, output_redis_file, output_ros_file, output_stdout, redis_outputnono

1. Model, language, and semantics

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
language--language <LANGUAGE>LANGUAGE1 value(s)no—core-dsrv — Core DSRV: the basic temporal language, for files without a language line
distributed-dsrv — Distributed DSRV: DSRV with the distribution primitives, for files without a language line
dsrv — DSRV runtime-verification language
mstlo — Signal Temporal Logic properties monitored by the MSTLO runtime
dsrv—Specification language to use—
model<MODEL>MODEL1 value(s)yes————Path to the model specification file—
semantics--semantics <SEMANTICS>SEMANTICS1 value(s)no—causal — Causal-set explanations for DSRV on the semi-sync runtime
delayed-qualitative
delayed-quantitative
eager-qualitative
robustness-interval
typed-untimed
untimed — Untimed evaluation with gradual type checking and inference
untimed—Semantics engine to use for monitoring—

2. Finite file processing

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
input_file--input-file <INPUT_FILE>INPUT_FILE1 value(s)no————Path to input file containing trace data—

3. Live input sources

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
input_config--input-config <INPUT_CONFIG>INPUT_CONFIG1 value(s)no————Named multi-source input configuration file—
input_mqtt_file--input-mqtt-file <INPUT_MQTT_FILE>INPUT_MQTT_FILE1 value(s)no————MQTT topics configuration file for input—
input_redis_file--input-redis-file <INPUT_REDIS_FILE>INPUT_REDIS_FILE1 value(s)no————Redis topics configuration file for inputRequires the Cargo feature redis.
input_ros_file--input-ros-file <INPUT_ROS_FILE>INPUT_ROS_FILE1 value(s)no————ROS topics configuration file for input (requires running with --features ros)Requires the Cargo feature ros.
mqtt_input--mqtt-inputflag (no value)no——false—Enable generic MQTT input mode—
redis_input--redis-inputflag (no value)no——false—Enable generic Redis Pub/Sub channel input modeRequires the Cargo feature redis.
redis_knowledge_input--redis-knowledge-inputflag (no value)no——false—Enable Redis knowledge-state input mode (selected keys, not Pub/Sub channels)Requires the Cargo feature redis.

4. Output destinations and routing

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
mqtt_output--mqtt-outputflag (no value)no——false—Enable generic MQTT output mode—
output_config--output-config <OUTPUT_CONFIG>OUTPUT_CONFIG1 value(s)no————Advanced multi-destination output configuration file—
output_mqtt_file--output-mqtt-file <OUTPUT_MQTT_FILE>OUTPUT_MQTT_FILE1 value(s)no————MQTT topics configuration file for output—
output_redis_file--output-redis-file <OUTPUT_REDIS_FILE>OUTPUT_REDIS_FILE1 value(s)no————Redis channels configuration file for outputRequires the Cargo feature redis.
output_ros_file--output-ros-file <OUTPUT_ROS_FILE>OUTPUT_ROS_FILE1 value(s)no————ROS topics configuration file for outputRequires the Cargo feature ros.
output_stdout--output-stdoutflag (no value)no——false—Output monitoring results to stdout—
redis_output--redis-outputflag (no value)no——false—Enable generic Redis output modeRequires the Cargo feature redis.

5. Runtime and execution policy

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
execution_policy--execution-policy <EXECUTION_POLICY>EXECUTION_POLICY1 value(s)no—buffered — Permit runtime-specific pipelining and output batching
synchronous — Complete the current tick's downstream computation before accepting the next. This requires a runtime with a global logical-tick boundary
buffered—Input execution policy for Dataflow and MSTLO runtimes—
io_shutdown_timeout_ms--io-shutdown-timeout-ms <MILLISECONDS>MILLISECONDS1 value(s)no————Whole graceful I/O shutdown limit; omitted means unlimited—
mstlo_algorithm--mstlo-algorithm <MSTLO_ALGORITHM>MSTLO_ALGORITHM1 value(s)no—incremental
naive
incremental—MSTLO monitor algorithm—
mstlo_synchronization--mstlo-synchronization <MSTLO_SYNCHRONIZATION>MSTLO_SYNCHRONIZATION1 value(s)no—linear
none
zero-order-hold
zero-order-hold—MSTLO multi-signal synchronization strategy—
mstlo_vars--mstlo-vars <MSTLO_VARS>...MSTLO_VARS1–unbounded value(s); repeatable; delimiter no————MSTLO variable bindings as name=value pairs—
runtime--runtime <RUNTIME>RUNTIME1 value(s)no—async
dataflow
distributed
reconf-dataflow — Reconfigurable dataflow runtime
reconf-semi-sync — Independent semisynchronous reconfiguration reference runtime
semi-sync
dataflow—DSRV runtime system to use for execution—

6. Input windows and tick composition

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
input_window_mode--input-window-mode <INPUT_WINDOW_MODE>INPUT_WINDOW_MODE1 value(s)no—atomic-step
batch
——Input window semantics: batch preserves ticks; atomic-step applies last-update-wins—
input_window_ms--input-window-ms <INPUT_WINDOW_MS>INPUT_WINDOW_MS1 value(s)no————Maximum input window delay in milliseconds—
input_window_update_limit--input-window-update-limit <INPUT_WINDOW_UPDATE_LIMIT>INPUT_WINDOW_UPDATE_LIMIT1 value(s)no————Input-window flush threshold in variable updates; a logical tick is never split—

7. Reconfiguration

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
no_context_transfer--no-context-transferflag (no value)no——false—Disable context transfer between old and new runtimes during reconfiguration—
reconf_topic--reconf-topic <RECONF_TOPIC>RECONF_TOPIC1 value(s)no————Override the selected source's reconfiguration route; otherwise use its configured route or reconf—

8. Distributed monitoring and scheduling

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
centralised--centralisedflag (no value)no——true—Run monitoring in centralised mode (default)—
dist_constraint_solver--dist-constraint-solver <DIST_CONSTRAINT_SOLVER>DIST_CONSTRAINT_SOLVER1 value(s)no—brute-force
sat
brute-force—Solver used for distributed optimized schedulingThe sat value requires the Cargo feature sat.
distributed_work--distributed-workflag (no value)nolocal_node—false—Wait for work assignment from scheduler in distributed mode—
distribution_constraints--distribution-constraints <DISTRIBUTION_CONSTRAINTS>...DISTRIBUTION_CONSTRAINTS1–unbounded value(s); repeatable; delimiter no————Distribution constraints for optimized scheduling—
distribution_graph--distribution-graph <DISTRIBUTION_GRAPH>DISTRIBUTION_GRAPH1 value(s)no————Path to distribution graph JSON5 file for local monitoring—
local_node--local-node <LOCAL_NODE>LOCAL_NODE1 value(s)no————Identifier for this node in distributed monitoring—
local_topics--local-topics <LOCAL_TOPICS>LOCAL_TOPICS1 value(s); repeatableno————List of local topics to monitor in distributed mode—
mqtt_centralised_distributed--mqtt-centralised-distributed <MQTT_CENTRALISED_DISTRIBUTED>...MQTT_CENTRALISED_DISTRIBUTED1–unbounded value(s); repeatable; delimiter no————Node locations for MQTT-based centralised distributed monitoring—
mqtt_dynamic_optimized--mqtt-dynamic-optimized <MQTT_DYNAMIC_OPTIMIZED>...MQTT_DYNAMIC_OPTIMIZED1–unbounded value(s); repeatable; delimiter nodistribution_constraints———Node locations for MQTT-based dynamic optimized distributed monitoringOptimized modes require distribution constraints.
mqtt_randomized_distributed--mqtt-randomized-distributed <MQTT_RANDOMIZED_DISTRIBUTED>...MQTT_RANDOMIZED_DISTRIBUTED1–unbounded value(s); repeatable; delimiter no————Node locations for MQTT-based randomized distributed monitoring—
mqtt_static_optimized--mqtt-static-optimized <MQTT_STATIC_OPTIMIZED>...MQTT_STATIC_OPTIMIZED1–unbounded value(s); repeatable; delimiter nodistribution_constraints———Node locations for MQTT-based static optimized distributed monitoringOptimized modes require distribution constraints.
ros_centralised_distributed--ros-centralised-distributed <ROS_CENTRALISED_DISTRIBUTED>...ROS_CENTRALISED_DISTRIBUTED1–unbounded value(s); repeatable; delimiter no————Node locations for ROS-based centralised distributed monitoringRequires the Cargo feature ros.
ros_dynamic_optimized--ros-dynamic-optimized <ROS_DYNAMIC_OPTIMIZED>...ROS_DYNAMIC_OPTIMIZED1–unbounded value(s); repeatable; delimiter nodistribution_constraints———Node locations for ROS-based dynamic optimized distributed monitoringRequires the Cargo feature ros; optimized modes also need constraints.
ros_randomized_distributed--ros-randomized-distributed <ROS_RANDOMIZED_DISTRIBUTED>...ROS_RANDOMIZED_DISTRIBUTED1–unbounded value(s); repeatable; delimiter no————Node locations for ROS-based randomized distributed monitoringRequires the Cargo feature ros.
ros_static_optimized--ros-static-optimized <ROS_STATIC_OPTIMIZED>...ROS_STATIC_OPTIMIZED1–unbounded value(s); repeatable; delimiter nodistribution_constraints———Node locations for ROS-based static optimized distributed monitoringRequires the Cargo feature ros; optimized modes also need constraints.
scheduler_reconf_topic--scheduler-reconf-topic <SCHEDULER_RECONF_TOPIC>SCHEDULER_RECONF_TOPIC1 value(s)noscheduler_ros_node_name—reconfig—Base ROS topic for scheduler work/reconfiguration messages (used with --scheduling-mode ros)Used by ROS scheduling; ROS operation requires the Cargo feature ros.
scheduler_ros_node_name--scheduler-ros-node-name <SCHEDULER_ROS_NODE_NAME>SCHEDULER_ROS_NODE_NAME1 value(s)no——tc_scheduler—ROS node name to use for scheduler communicator (used with --scheduling-mode ros)Used by ROS scheduling; ROS operation requires the Cargo feature ros.
scheduling_mode--scheduling-mode <SCHEDULING_MODE>SCHEDULING_MODE1 value(s)no—mock — Mock scheduler implementation for testing and development
ros — ROS-topic--based distributed scheduler for production environments
mock—Scheduling mode for distributed coordinationThe ros value requires the Cargo feature ros.

9. MQTT, Redis, and ROS transport settings

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
mqtt_port--mqtt-port <MQTT_PORT>MQTT_PORT1 value(s)no————Port number for MQTT broker connection—
mqtt_protocol--mqtt-protocol <MQTT_PROTOCOL>MQTT_PROTOCOL1 value(s)no——3.1.1—MQTT protocol version (3.1.1 or 5)—
redis_knowledge_database--redis-knowledge-database <REDIS_KNOWLEDGE_DATABASE>REDIS_KNOWLEDGE_DATABASE1 value(s)no————Override the targeted Redis knowledge source database (default: 2)Requires the Cargo feature redis.
redis_knowledge_keys--redis-knowledge-key <INPUT=KEY>INPUT=KEY1 value(s); repeatableno————Map a checker input variable to a Redis knowledge key; repeatableRequires the Cargo feature redis.
redis_knowledge_no_initial--redis-knowledge-no-initialflag (no value)no——falseredis_knowledge_publish_initialDisable the Redis knowledge initial snapshotRequires the Cargo feature redis.
redis_knowledge_publish_initial--redis-knowledge-publish-initial <BOOL>BOOL1 value(s)no—false
true
—redis_knowledge_no_initialOverride whether Redis knowledge emits its initial snapshot into the checker input stream (true or false); this does not publish a Redis Pub/Sub messageRequires the Cargo feature redis.
redis_knowledge_retry_forever--redis-knowledge-retry-foreverflag (no value)no——falseredis_knowledge_retry_max_attemptsRetry Redis knowledge transport failures foreverRequires the Cargo feature redis.
redis_knowledge_retry_initial_delay_ms--redis-knowledge-retry-initial-delay-ms <MILLISECONDS>MILLISECONDS1 value(s)no————Initial Redis knowledge retry backoff delayRequires the Cargo feature redis.
redis_knowledge_retry_max_attempts--redis-knowledge-retry-max-attempts <ATTEMPTS>ATTEMPTS1 value(s)no———redis_knowledge_retry_foreverMaximum Redis knowledge connection attempts, including the initial attemptRequires the Cargo feature redis.
redis_knowledge_retry_max_delay_ms--redis-knowledge-retry-max-delay-ms <MILLISECONDS>MILLISECONDS1 value(s)no————Maximum Redis knowledge retry backoff delayRequires the Cargo feature redis.
redis_knowledge_source--redis-knowledge-source <SOURCE_ID>SOURCE_ID1 value(s)no————Target this Redis knowledge source when --input-config declares more than oneRequires the Cargo feature redis.
redis_port--redis-port <REDIS_PORT>REDIS_PORT1 value(s)no————Port number for Redis server connection—
ros_dist_graph_topic--ros-dist-graph-topic <ROS_DIST_GRAPH_TOPIC>ROS_DIST_GRAPH_TOPIC1 value(s)no——/dist_graph—Topic name used by ROS distribution graph providerUsed by ROS distribution graph providers; requires the Cargo feature ros.

10. Logging and process operation

Argument IDSpellingValue namesMultiplicityRequiredRequiresPossible valuesClap defaultConflictsHelpFeature note
help-h, --helpflag (no value)no————Print help (see more with '--help')—
log_file--log-file <LOG_FILE>LOG_FILE1 value(s)no————Write tracing logs to this file—

Semantic notes

The generated rows above are parser metadata. The following constraints come from CLI validation and adapter construction.

Invocation and selection

Run the main binary as trustworthiness_checker MODEL INPUT_SELECTION [OUTPUT_SELECTION]. From a repository checkout, use cargo run -- MODEL .... Exactly one member of the InputMode group is required. The OutputSelection group is optional: when no output member is selected, the adapter falls back to stdout.

The default values are DSRV, untimed with gradual typing, the dataflow runtime, and buffered execution. The default distributed mode is centralised. These defaults are parser defaults; a parsed command still has to pass runtime, language, feature, and resource validation.

Compatibility rules

  • --language mstlo selects the MSTLO runtime. Omit --runtime; an explicit runtime is rejected.
  • DSRV accepts untimed (gradual typing), typed-untimed (strict typing), or causal through the CLI. Causal sets require --runtime semi-sync; they do not support async, dataflow, distributed, or reconfigurable runtimes. The DSRV distributed runtime accepts only untimed.
  • gradual-typed-untimed remains an accepted compatibility alias for untimed; help and generated reference show the canonical name.
  • For DSRV, --execution-policy synchronous requires the dataflow or reconf-dataflow runtime. MSTLO carries the selected policy in its automatically selected runtime. The policy is an input/evaluation boundary, not a transport transaction.
  • --input-file is rejected with reconf-semi-sync and reconf-dataflow. Reconfiguration needs a live, control-capable source.
  • --reconf-topic and --no-context-transfer require a reconfigurable runtime. The selected control route is the configured route, the CLI override, or reconf when no route is supplied.
  • --input-window-mode requires --input-window-ms or --input-window-update-limit. For file input, atomic-step also requires an update limit.
  • Redis knowledge options require --redis-knowledge-input or --input-config; --redis-knowledge-source requires --input-config. Redis knowledge input is not supported for MSTLO.
  • MQTT input and output use rumqttc, with --mqtt-protocol 3.1.1|5 selecting the protocol for shortcut inputs and outputs. Named MQTT sources and destinations use their own protocol field; an input source without the field inherits the CLI selection, while an output destination without it defaults to 3.1.1. The former implementation-selector flags are no longer accepted.
  • --distributed-work is present in generated parser metadata and requires --local-node, but the current adapter/runtime construction does not consume it to establish the waiting behavior described by its Clap help. Do not use it as an operational contract.

Features and resources

MQTT is always compiled; Redis is enabled by default. ROS routes, ROS distribution, and ROS scheduling require --features ros plus a sourced ROS 2 environment and interface overlay. SAT-backed distribution solving requires --features sat. Parsing an option does not prove that its external broker, ROS graph, or feature-gated backend can be opened.

Observable process behavior

The stdout sink writes <variable>[<zero-based row>] = <rendered value>. Ordinary DSRV values use source syntax; MSTLO values use JSON. Causal DSRV writes a JSON report containing value and causality after the same prefix. Redis carries that report directly; MQTT keeps its usual {"value": REPORT} envelope. Non-finite floats use JSON5. See causal-set output for a complete example and limitations. The sink suppresses auxiliary and NoVal outputs. Tracing defaults to stderr and can be appended to a file with --log-file PATH. File input is finite; live transports remain in the foreground until source/process termination or error. The checker currently has no separate readiness endpoint, custom signal handler, or cross-destination transaction.

Use the task pages for complete workflows: writing and running DSRV models, live MQTT, ROS input/output, Redis knowledge input, reconfiguration, distributed monitoring, and Docker service.

The separate developer-only tc-expand inspection tool is intentionally absent from the monitoring command tree above.