jssm 5.162.11 → 5.162.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,10 +18,10 @@ Please edit the file it's derived from, instead: `./src/md/readme_base.md`
18
18
 
19
19
 
20
20
 
21
- * Generated for version 5.162.11 at 7/12/2026, 8:54:54 AM
21
+ * Generated for version 5.162.12 at 7/12/2026, 10:09:04 AM
22
22
 
23
23
  -->
24
- # jssm 5.162.11
24
+ # jssm 5.162.12
25
25
 
26
26
  [**Try the live editor**](https://stonecypher.github.io/jssm-viz-demo/graph_explorer.html) ·
27
27
  [Documentation](https://stonecypher.github.io/jssm/docs/) ·
@@ -333,7 +333,7 @@ That decision shows up everywhere downstream:
333
333
  or run `npm run benny` against your own machine.
334
334
 
335
335
  - **More thoroughly tested than any other JavaScript state-machine
336
- library.** 8,623 tests at 100.0% line coverage
336
+ library.** 8,640 tests at 100.0% line coverage
337
337
  ([report](https://coveralls.io/github/StoneCypher/jssm)), plus
338
338
  fuzz testing via `fast-check`, with parser test data across ten natural
339
339
  languages and Emoji.
@@ -467,11 +467,11 @@ If your contribution is missing here, please open an issue.
467
467
 
468
468
  <br/>
469
469
 
470
- ***8,623 tests***, run 97,921 times.
470
+ ***8,640 tests***, run 98,037 times.
471
471
 
472
- - 7,721 specs with 100.0% coverage
473
- - 902 fuzz tests with 56.6% coverage
474
- - 10,907 TypeScript lines - 0.8 tests per line, 9.0 generated tests per line
472
+ - 7,737 specs with 100.0% coverage
473
+ - 903 fuzz tests with 56.5% coverage
474
+ - 10,946 TypeScript lines - 0.8 tests per line, 9.0 generated tests per line
475
475
 
476
476
  [![Actions Status](https://github.com/StoneCypher/jssm/workflows/Node%20CI/badge.svg)](https://github.com/StoneCypher/jssm/actions)
477
477
  [![NPM version](https://img.shields.io/npm/v/jssm.svg)](https://www.npmjs.com/package/jssm)
@@ -1104,6 +1104,12 @@ declare class Machine<mDT> {
1104
1104
  * {@link Machine.transition}, so it fires no hooks, mutates no machine
1105
1105
  * state, and touches no `data`. A state with no probabilistic exits
1106
1106
  * (a terminal, or a forced-only `~>` state) ends the walk.
1107
+ *
1108
+ * Terminality is checked before the first transition and after every
1109
+ * transition. A terminal start therefore completes with length zero even
1110
+ * when `max_steps` is zero, and a terminal reached on the final permitted
1111
+ * transition is completed rather than step-capped.
1112
+ *
1107
1113
  * @param start - State to begin the walk from.
1108
1114
  * @param max_steps - Maximum transitions before the walk is step-capped.
1109
1115
  * @param exit_memo - Per-run-set cache of {@link Machine.probable_exits_for}
@@ -1126,7 +1132,9 @@ declare class Machine<mDT> {
1126
1132
  * current state, each ending at a terminal or after `max_steps`. In
1127
1133
  * `steady_state` mode yields exactly one walk of `max_steps` steps. This
1128
1134
  * is the lazy engine behind {@link Machine.stochastic_summary}; the
1129
- * fsl-stochastic panel drives it across animation frames.
1135
+ * fsl-stochastic panel drives it across animation frames. A walk already
1136
+ * at a terminal is reported as terminated with length zero, including when
1137
+ * `max_steps` is zero.
1130
1138
  *
1131
1139
  * Passing `seed` reseeds the machine for reproducible runs. Unlike
1132
1140
  * {@link Machine.stochastic_summary}, the generator does NOT restore the
@@ -1149,6 +1157,10 @@ declare class Machine<mDT> {
1149
1157
  * per-run `path_lengths`, `terminal_reached`, and `capped`; `steady_state`
1150
1158
  * mode runs one long walk and omits those fields.
1151
1159
  *
1160
+ * Monte-Carlo runs count as `terminal_reached` when they start at a
1161
+ * terminal or reach one on the final permitted transition. Terminal
1162
+ * starts contribute zero to `path_lengths`, even when `max_steps` is zero.
1163
+ *
1152
1164
  * Timing (`after`) decorations and data-guard conditions are not modeled
1153
1165
  * by this sampler; it walks the probabilistic graph topology.
1154
1166
  * @param opts - {@link JssmStochasticOptions}. `runs` defaults to the