sim_sequences
Returns a deterministic suite of firing sequences generated from ONE stored model, for replaying against an implementation outside sim (for example the code a sim_code_to_flow model came from): every transition fired once, a refusal probe for each transition at a marking where the model refuses it, and each conflict found (two enabled transitions where firing one disables the other) fired then probed. Each sequence starts from the declared initial marking: fire each of fires in order (the model fires each), then try refused once when it is set (the model refuses it); covers names its targets and final is the model's nonzero marking after fires. calls counts every fire and probe, not the resets. The reading is untimed, as sim_reach's is: each firing is one atomic step under the shared firing rule (read and inhibitor arcs, capacities, guards decidable from the marking); rates, schedules, delays and stages play no part, and a transition whose guard reads action parameters (or does not parse, or whose precondition was lost) is never fired or probed (excluded lists it). Each target is covered; unreachable, said only after an exhaustive search; or not-covered with a reason: depth-bound (markings or targets were left unexplored past depth: ask a larger depth), state-budget or work-budget (the 20,000-marking or 10,000,000-unit search budget), token-cap, guard-error, excluded-live (an excluded transition was enabled, so markings past it were not searched), excluded, or suite-budget (past 20,000 calls or 100,000 listed entries, each fire, probe and final-marking place counting one). notCovered gives each reason's detail and remedy, and coverage.conflict.complete is true only after an exhaustive search. depth is 1..16, default 8; a model over 128 transitions is refused. defects (0..200, default 50; 0 omits the figure) seeds up to that many single-point net mutants (all of them when the model has fewer; defects.candidates and defects.seeded say how many) (drop-arc, weight-up, weight-down, test-flip, read-to-consume, initial-up, initial-down, capacity-down, capacity-drop, guard-drop; rates and timing are never mutated), picked by seed (default 1), replays the suite against each with markings compared, and runs 8 seeded random testers (seeds seed to seed+7) against each with the suite's own call budget, resetting every depth fires. defects.suite.detected counts seeded mutants the suite told apart from the model, beside defects.random.detected's mean, min and max across the runs; it is a count of seeded defects, never a share of real bugs. survivors lists the mutants the suite missed: a survivor may be equivalent (no sequence of any length tells it apart), and this figure does not decide which. A mutant no suite sequence told apart and at least one could not drive to an answer (a firing it cannot decide, such as one past the token cap) is undecided: undecidedDefects lists it with its first error, and it counts in neither figure. The score is priced before it runs (defects.price) and refused over 2,000,000,000 work units: each call costs its arc test, its guard and passes over the model's token places, and each mutant its compile. summary true omits the sequences array (the key is absent, not null). MCP only: there is no HTTP route. Public: no sign-in; costs 2 compute tokens (one bounded search plus a priced replay battery). Writes nothing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | content id of one stored model (a sim_compose result is one) | |
| seed | No | picks the mutants and seeds the 8 random testers (seed to seed+7): a whole number 0 or more, default 1 | |
| depth | No | the longest sequence, in fires before its probe: a whole number 1..16, default 8 | |
| defects | No | how many net mutants to seed: a whole number 0..200, default 50; 0 omits the seeded-defect figure | |
| summary | No | true omits the sequences array (the key is absent); default false |