@typeonce/effect-machine 0.3.0 → 0.5.0

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.
Files changed (170) hide show
  1. package/README.md +410 -17
  2. package/dist/Machine.d.ts +1191 -510
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +371 -565
  5. package/dist/Machine.js.map +1 -1
  6. package/dist/internal/machine/activities.d.ts +57 -0
  7. package/dist/internal/machine/activities.d.ts.map +1 -0
  8. package/dist/internal/machine/activities.js +49 -0
  9. package/dist/internal/machine/activities.js.map +1 -0
  10. package/dist/internal/machine/atom.d.ts +69 -0
  11. package/dist/internal/machine/atom.d.ts.map +1 -0
  12. package/dist/{AtomMachine.js → internal/machine/atom.js} +20 -95
  13. package/dist/internal/machine/atom.js.map +1 -0
  14. package/dist/internal/machine/cluster.d.ts +63 -0
  15. package/dist/internal/machine/cluster.d.ts.map +1 -0
  16. package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
  17. package/dist/internal/machine/cluster.js.map +1 -0
  18. package/dist/internal/machine/command.d.ts +16 -0
  19. package/dist/internal/machine/command.d.ts.map +1 -0
  20. package/dist/internal/machine/command.js +45 -0
  21. package/dist/internal/machine/command.js.map +1 -0
  22. package/dist/internal/machine/commandRuntime.d.ts +13 -0
  23. package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
  24. package/dist/internal/machine/commandRuntime.js +16 -0
  25. package/dist/internal/machine/commandRuntime.js.map +1 -0
  26. package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +12 -61
  27. package/dist/internal/machine/configuration.d.ts.map +1 -0
  28. package/dist/internal/{machineModel.js → machine/configuration.js} +250 -545
  29. package/dist/internal/machine/configuration.js.map +1 -0
  30. package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +8 -8
  31. package/dist/internal/machine/errors.d.ts.map +1 -0
  32. package/dist/internal/{machineErrors.js → machine/errors.js} +8 -8
  33. package/dist/internal/machine/errors.js.map +1 -0
  34. package/dist/internal/machine/executionPlan.d.ts +49 -0
  35. package/dist/internal/machine/executionPlan.d.ts.map +1 -0
  36. package/dist/internal/machine/executionPlan.js +676 -0
  37. package/dist/internal/machine/executionPlan.js.map +1 -0
  38. package/dist/internal/machine/invocation.d.ts +23 -0
  39. package/dist/internal/machine/invocation.d.ts.map +1 -0
  40. package/dist/internal/machine/invocation.js +77 -0
  41. package/dist/internal/machine/invocation.js.map +1 -0
  42. package/dist/internal/machine/machine.d.ts +183 -0
  43. package/dist/internal/machine/machine.d.ts.map +1 -0
  44. package/dist/internal/machine/machine.js +552 -0
  45. package/dist/internal/machine/machine.js.map +1 -0
  46. package/dist/internal/machine/planner.d.ts +182 -0
  47. package/dist/internal/machine/planner.d.ts.map +1 -0
  48. package/dist/internal/machine/planner.js +1082 -0
  49. package/dist/internal/machine/planner.js.map +1 -0
  50. package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +11 -5
  51. package/dist/internal/machine/process.d.ts.map +1 -0
  52. package/dist/internal/machine/process.js +498 -0
  53. package/dist/internal/machine/process.js.map +1 -0
  54. package/dist/internal/machine/protocol.d.ts +34 -0
  55. package/dist/internal/machine/protocol.d.ts.map +1 -0
  56. package/dist/internal/machine/protocol.js +182 -0
  57. package/dist/internal/machine/protocol.js.map +1 -0
  58. package/dist/internal/machine/readiness.d.ts +4 -0
  59. package/dist/internal/machine/readiness.d.ts.map +1 -0
  60. package/dist/internal/machine/readiness.js +2 -0
  61. package/dist/internal/machine/readiness.js.map +1 -0
  62. package/dist/internal/machine/runtime.d.ts +255 -0
  63. package/dist/internal/machine/runtime.d.ts.map +1 -0
  64. package/dist/internal/machine/runtime.js +1489 -0
  65. package/dist/internal/machine/runtime.js.map +1 -0
  66. package/dist/internal/machine/serialization.d.ts +14 -0
  67. package/dist/internal/machine/serialization.d.ts.map +1 -0
  68. package/dist/internal/machine/serialization.js +338 -0
  69. package/dist/internal/machine/serialization.js.map +1 -0
  70. package/dist/internal/machine/stateDefinition.d.ts +15 -0
  71. package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
  72. package/dist/internal/machine/stateDefinition.js +210 -0
  73. package/dist/internal/machine/stateDefinition.js.map +1 -0
  74. package/dist/internal/machine/symbols.d.ts +3 -0
  75. package/dist/internal/machine/symbols.d.ts.map +1 -0
  76. package/dist/internal/machine/symbols.js +3 -0
  77. package/dist/internal/machine/symbols.js.map +1 -0
  78. package/dist/internal/machine/topology.d.ts +98 -0
  79. package/dist/internal/machine/topology.d.ts.map +1 -0
  80. package/dist/internal/machine/topology.js +347 -0
  81. package/dist/internal/machine/topology.js.map +1 -0
  82. package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
  83. package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
  84. package/dist/internal/testing/machine/arbitrary.js +68 -0
  85. package/dist/internal/testing/machine/arbitrary.js.map +1 -0
  86. package/dist/internal/testing/machine/exploration.d.ts +30 -0
  87. package/dist/internal/testing/machine/exploration.d.ts.map +1 -0
  88. package/dist/internal/testing/machine/exploration.js +237 -0
  89. package/dist/internal/testing/machine/exploration.js.map +1 -0
  90. package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
  91. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
  92. package/dist/internal/testing/machine/finiteModel.js +976 -0
  93. package/dist/internal/testing/machine/finiteModel.js.map +1 -0
  94. package/dist/internal/testing/machine/invariant.d.ts +31 -0
  95. package/dist/internal/testing/machine/invariant.d.ts.map +1 -0
  96. package/dist/internal/testing/machine/invariant.js +214 -0
  97. package/dist/internal/testing/machine/invariant.js.map +1 -0
  98. package/dist/internal/testing/machine/probe.d.ts +26 -0
  99. package/dist/internal/testing/machine/probe.d.ts.map +1 -0
  100. package/dist/internal/testing/machine/probe.js +45 -0
  101. package/dist/internal/testing/machine/probe.js.map +1 -0
  102. package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
  103. package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
  104. package/dist/internal/testing/machine/referenceModel.js +1012 -0
  105. package/dist/internal/testing/machine/referenceModel.js.map +1 -0
  106. package/dist/internal/testing/machine/runtime.d.ts +631 -0
  107. package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
  108. package/dist/internal/testing/machine/runtime.js +726 -0
  109. package/dist/internal/testing/machine/runtime.js.map +1 -0
  110. package/dist/internal/testing/machine/runtimeInvariant.d.ts +32 -0
  111. package/dist/internal/testing/machine/runtimeInvariant.d.ts.map +1 -0
  112. package/dist/internal/testing/machine/runtimeInvariant.js +334 -0
  113. package/dist/internal/testing/machine/runtimeInvariant.js.map +1 -0
  114. package/dist/internal/testing/machine/trace.d.ts +17 -0
  115. package/dist/internal/testing/machine/trace.d.ts.map +1 -0
  116. package/dist/internal/testing/machine/trace.js +94 -0
  117. package/dist/internal/testing/machine/trace.js.map +1 -0
  118. package/dist/internal/testing/machine/verification.d.ts +36 -0
  119. package/dist/internal/testing/machine/verification.d.ts.map +1 -0
  120. package/dist/internal/testing/machine/verification.js +1375 -0
  121. package/dist/internal/testing/machine/verification.js.map +1 -0
  122. package/dist/testing/MachineTest.d.ts +1588 -0
  123. package/dist/testing/MachineTest.d.ts.map +1 -0
  124. package/dist/testing/MachineTest.js +406 -0
  125. package/dist/testing/MachineTest.js.map +1 -0
  126. package/dist/testing/index.d.ts +7 -0
  127. package/dist/testing/index.d.ts.map +1 -0
  128. package/dist/testing/index.js +7 -0
  129. package/dist/testing/index.js.map +1 -0
  130. package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +56 -45
  131. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
  132. package/dist/unstable/cluster/ClusterMachine.js +144 -0
  133. package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
  134. package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
  135. package/dist/unstable/cluster/index.d.ts.map +1 -0
  136. package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
  137. package/dist/unstable/cluster/index.js.map +1 -0
  138. package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +116 -50
  139. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
  140. package/dist/unstable/reactivity/AtomMachine.js +164 -0
  141. package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
  142. package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
  143. package/dist/unstable/reactivity/index.d.ts.map +1 -0
  144. package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
  145. package/dist/unstable/reactivity/index.js.map +1 -0
  146. package/docs/agent-guide.md +316 -31
  147. package/package.json +28 -10
  148. package/dist/AtomMachine.d.ts.map +0 -1
  149. package/dist/AtomMachine.js.map +0 -1
  150. package/dist/ClusterMachine.d.ts.map +0 -1
  151. package/dist/ClusterMachine.js.map +0 -1
  152. package/dist/cluster.d.ts.map +0 -1
  153. package/dist/cluster.js.map +0 -1
  154. package/dist/internal/machineErrors.d.ts.map +0 -1
  155. package/dist/internal/machineErrors.js.map +0 -1
  156. package/dist/internal/machineModel.d.ts.map +0 -1
  157. package/dist/internal/machineModel.js.map +0 -1
  158. package/dist/internal/machinePlanner.d.ts +0 -74
  159. package/dist/internal/machinePlanner.d.ts.map +0 -1
  160. package/dist/internal/machinePlanner.js +0 -797
  161. package/dist/internal/machinePlanner.js.map +0 -1
  162. package/dist/internal/machineProcess.d.ts.map +0 -1
  163. package/dist/internal/machineProcess.js +0 -181
  164. package/dist/internal/machineProcess.js.map +0 -1
  165. package/dist/internal/machineRuntime.d.ts +0 -125
  166. package/dist/internal/machineRuntime.d.ts.map +0 -1
  167. package/dist/internal/machineRuntime.js +0 -365
  168. package/dist/internal/machineRuntime.js.map +0 -1
  169. package/dist/reactivity.d.ts.map +0 -1
  170. package/dist/reactivity.js.map +0 -1
@@ -0,0 +1,631 @@
1
+ /**
2
+ * Effect-native command-model testing for live machine references.
3
+ *
4
+ * @since 0.4.0
5
+ */
6
+ import * as Cause from "effect/Cause";
7
+ import * as Duration from "effect/Duration";
8
+ import * as Effect from "effect/Effect";
9
+ import { FastCheck } from "effect/testing";
10
+ import * as Machine from "../../../Machine.js";
11
+ import type { CausalRuntimeEvidence, Probe, ProbeStep, RuntimeInvariant } from "../../../testing/MachineTest.js";
12
+ import { type SchemaArbitraryReport } from "./arbitrary.js";
13
+ import { type RuntimeInvariantError } from "./runtimeInvariant.js";
14
+ type AnyMachine = Machine.Machine.Any;
15
+ /**
16
+ * A command applied to a running machine during model-based testing.
17
+ *
18
+ * @category models
19
+ * @since 0.4.0
20
+ */
21
+ export type RuntimeCommand<Event> = {
22
+ readonly _tag: "Send";
23
+ readonly event: Event;
24
+ } | {
25
+ readonly _tag: "Advance";
26
+ readonly duration: Duration.Input;
27
+ } | {
28
+ readonly _tag: "Stop";
29
+ } | {
30
+ readonly _tag: "Checkpoint";
31
+ readonly label: string | undefined;
32
+ };
33
+ /**
34
+ * Constructs a command that sends one public event.
35
+ *
36
+ * @category constructors
37
+ * @since 0.4.0
38
+ */
39
+ export declare const sendCommand: <Event>(event: Event) => RuntimeCommand<Event>;
40
+ /**
41
+ * Constructs a command that advances Effect's `TestClock`.
42
+ *
43
+ * @category constructors
44
+ * @since 0.4.0
45
+ */
46
+ export declare const advanceCommand: <Event = never>(duration: Duration.Input) => RuntimeCommand<Event>;
47
+ /**
48
+ * Constructs an idempotent command that stops the machine.
49
+ *
50
+ * @category constructors
51
+ * @since 0.4.0
52
+ */
53
+ export declare const stopCommand: <Event = never>() => RuntimeCommand<Event>;
54
+ /**
55
+ * Constructs a no-op command used to synchronize with work enqueued by earlier
56
+ * commands. Its behavior is selected by the reference-model step.
57
+ *
58
+ * @category constructors
59
+ * @since 0.4.0
60
+ */
61
+ export declare const checkpointCommand: <Event = never>(label?: string) => RuntimeCommand<Event>;
62
+ /**
63
+ * The result of executing one runtime command.
64
+ *
65
+ * @category models
66
+ * @since 0.4.0
67
+ */
68
+ export type RuntimeCommandResult = {
69
+ readonly _tag: "SendAccepted";
70
+ } | {
71
+ readonly _tag: "SendRejected";
72
+ readonly error: Machine.StoppedError;
73
+ } | {
74
+ readonly _tag: "ClockAdvanced";
75
+ } | {
76
+ readonly _tag: "Stopped";
77
+ } | {
78
+ readonly _tag: "Checkpoint";
79
+ };
80
+ /**
81
+ * Defines how a model step synchronizes with public machine observations.
82
+ *
83
+ * `None` is appropriate when a send is intentionally only enqueued. `Next`
84
+ * consumes the next snapshot published after the previously consumed one.
85
+ * `Until` also consumes intermediate snapshots and is useful for a checkpoint
86
+ * after several queued sends. `Current` is only a sample; it should be used
87
+ * when the model already knows there is no outstanding asynchronous work.
88
+ *
89
+ * @category models
90
+ * @since 0.4.0
91
+ */
92
+ export type RuntimeSynchronization<State, Error, Output> = {
93
+ readonly _tag: "None";
94
+ } | {
95
+ readonly _tag: "Current";
96
+ } | {
97
+ readonly _tag: "Next";
98
+ } | {
99
+ readonly _tag: "Until";
100
+ readonly predicate: (snapshot: Machine.RuntimeSnapshot<State, Error, Output>) => boolean;
101
+ };
102
+ /**
103
+ * Constructors for runtime synchronization policies.
104
+ *
105
+ * @category constructors
106
+ * @since 0.4.0
107
+ */
108
+ export declare const RuntimeSynchronization: {
109
+ readonly none: {
110
+ readonly _tag: "None";
111
+ };
112
+ readonly current: {
113
+ readonly _tag: "Current";
114
+ };
115
+ readonly next: {
116
+ readonly _tag: "Next";
117
+ };
118
+ readonly until: <State, Error = never, Output = never>(predicate: (snapshot: Machine.RuntimeSnapshot<State, Error, Output>) => boolean) => RuntimeSynchronization<State, Error, Output>;
119
+ };
120
+ /**
121
+ * The pure/reference-model result for one runtime command.
122
+ *
123
+ * @category models
124
+ * @since 0.4.0
125
+ */
126
+ export interface RuntimeModelStep<Model, Expected, State, Error, Output> {
127
+ readonly model: Model;
128
+ readonly expected: Expected;
129
+ readonly synchronize: RuntimeSynchronization<State, Error, Output>;
130
+ }
131
+ /**
132
+ * Explicit name for the model step used by the enqueue-oriented command
133
+ * runner. The `RuntimeModelStep` name remains as a compatibility alias.
134
+ *
135
+ * @category models
136
+ * @since 0.4.0
137
+ */
138
+ export type EnqueuedRuntimeModelStep<Model, Expected, State, Error, Output> = RuntimeModelStep<Model, Expected, State, Error, Output>;
139
+ /**
140
+ * Additional asynchronous observation requested after a causal command has
141
+ * completed. `None` never guesses that later invoke, timer, or child work is
142
+ * finished. `Until` observes the current runtime snapshot and subsequent
143
+ * publications until its predicate matches.
144
+ *
145
+ * @category models
146
+ * @since 0.4.0
147
+ */
148
+ export type RuntimeAwait<State, Error, Output> = {
149
+ readonly _tag: "None";
150
+ } | {
151
+ readonly _tag: "Until";
152
+ readonly predicate: (snapshot: Machine.RuntimeSnapshot<State, Error, Output>) => boolean;
153
+ };
154
+ /**
155
+ * The pure/reference-model result for one causally executed command.
156
+ *
157
+ * `await` is only for asynchronous behavior after the command boundary. A
158
+ * submitted `Send` always completes its exact managed macrostep first.
159
+ *
160
+ * @category models
161
+ * @since 0.4.0
162
+ */
163
+ export interface CausalRuntimeModelStep<Model, Expected, State, Error, Output> {
164
+ readonly model: Model;
165
+ readonly expected: Expected;
166
+ readonly await?: RuntimeAwait<State, Error, Output>;
167
+ }
168
+ /**
169
+ * Exact execution result for one causal runtime command.
170
+ *
171
+ * @category models
172
+ * @since 0.4.0
173
+ */
174
+ export type CausalRuntimeCommandResult<M extends AnyMachine> = {
175
+ readonly _tag: "SendProcessed";
176
+ readonly step: ProbeStep<M>;
177
+ } | {
178
+ readonly _tag: "SendRejected";
179
+ readonly error: Machine.StoppedError;
180
+ } | {
181
+ readonly _tag: "ClockAdvanced";
182
+ } | {
183
+ readonly _tag: "Stopped";
184
+ } | {
185
+ readonly _tag: "Checkpoint";
186
+ };
187
+ /**
188
+ * Actual causal evidence made available to inspection and assertions.
189
+ *
190
+ * @category models
191
+ * @since 0.4.0
192
+ */
193
+ export interface CausalRuntimeCommandActual<M extends AnyMachine, Error, Output, Observed> {
194
+ readonly result: CausalRuntimeCommandResult<M>;
195
+ readonly snapshot: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
196
+ /** Snapshots tested by an explicit `RuntimeAwait.until`, including its current snapshot. */
197
+ readonly awaited: ReadonlyArray<Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>>;
198
+ readonly inspected: Observed | undefined;
199
+ }
200
+ /**
201
+ * Context supplied to a custom causal runtime inspection effect.
202
+ *
203
+ * @category models
204
+ * @since 0.4.0
205
+ */
206
+ export interface CausalRuntimeInspectionContext<M extends AnyMachine, Error, Output> {
207
+ readonly index: number;
208
+ readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
209
+ readonly result: CausalRuntimeCommandResult<M>;
210
+ readonly probe: Probe<M, Error, Output>;
211
+ readonly ref: Probe<M, Error, Output>["ref"];
212
+ readonly snapshot: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
213
+ readonly awaited: ReadonlyArray<Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>>;
214
+ }
215
+ /**
216
+ * Context supplied to a causal reference-model assertion.
217
+ *
218
+ * @category models
219
+ * @since 0.4.0
220
+ */
221
+ export interface CausalRuntimeAssertionContext<M extends AnyMachine, Model, Expected, Error, Output, Observed> extends CausalRuntimeInspectionContext<M, Error, Output> {
222
+ readonly model: Model;
223
+ readonly expected: Expected;
224
+ readonly actual: CausalRuntimeCommandActual<M, Error, Output, Observed>;
225
+ }
226
+ /**
227
+ * Configuration for causally checking runtime commands against a reference
228
+ * model.
229
+ *
230
+ * @category models
231
+ * @since 0.4.0
232
+ */
233
+ export interface CausalRuntimeModelOptions<M extends AnyMachine, Model, Expected, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never> {
234
+ readonly initialModel: Model;
235
+ /** Live-clock bound for an explicit `RuntimeAwait.until`. Defaults to one second. */
236
+ readonly observationTimeout?: Duration.Input;
237
+ readonly transition: (model: Model, command: RuntimeCommand<Machine.Machine.InputEvent<M>>, index: number) => Effect.Effect<CausalRuntimeModelStep<Model, Expected, Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>, ModelError, ModelServices>;
238
+ readonly inspect?: (context: CausalRuntimeInspectionContext<M, Error, Output>) => Effect.Effect<Observed, InspectionError, InspectionServices>;
239
+ readonly assert: (context: CausalRuntimeAssertionContext<M, Model, Expected, Error, Output, Observed>) => Effect.Effect<void, AssertionError, AssertionServices>;
240
+ }
241
+ /**
242
+ * Context used to select additional asynchronous observation for a law-oriented command run.
243
+ *
244
+ * @category models
245
+ * @since 0.4.0
246
+ */
247
+ export interface CausalVerificationAwaitContext<M extends AnyMachine, Error, Output> {
248
+ readonly index: number;
249
+ readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
250
+ readonly probe: Probe<M, Error, Output>;
251
+ }
252
+ /**
253
+ * Configuration for causal verification without a separate reference model.
254
+ *
255
+ * @category models
256
+ * @since 0.4.0
257
+ */
258
+ export interface CausalVerificationOptions<M extends AnyMachine, Error, Output> {
259
+ readonly invariants: ReadonlyArray<RuntimeInvariant<M>>;
260
+ readonly observationTimeout?: Duration.Input;
261
+ readonly await?: (context: CausalVerificationAwaitContext<M, Error, Output>) => RuntimeAwait<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
262
+ }
263
+ /**
264
+ * A law-oriented causal transcript without dummy model or expected fields.
265
+ *
266
+ * @category models
267
+ * @since 0.4.0
268
+ */
269
+ export interface CausalVerificationTranscript<M extends AnyMachine, Error, Output> extends CausalRuntimeEvidence<M, Error, Output> {
270
+ }
271
+ /**
272
+ * Actual evidence made available to a runtime command assertion.
273
+ *
274
+ * @category models
275
+ * @since 0.4.0
276
+ */
277
+ export interface RuntimeCommandActual<State, Error, Output, Observed> {
278
+ readonly result: RuntimeCommandResult;
279
+ readonly snapshot: Machine.RuntimeSnapshot<State, Error, Output> | undefined;
280
+ readonly published: ReadonlyArray<Machine.RuntimeSnapshot<State, Error, Output>>;
281
+ readonly inspected: Observed | undefined;
282
+ }
283
+ /**
284
+ * Context supplied to a custom runtime inspection effect.
285
+ *
286
+ * @category models
287
+ * @since 0.4.0
288
+ */
289
+ export interface RuntimeInspectionContext<State, Event, Error, Output> {
290
+ readonly index: number;
291
+ readonly command: RuntimeCommand<Event>;
292
+ readonly result: RuntimeCommandResult;
293
+ readonly ref: Machine.MachineRef<State, Event, Error, Output>;
294
+ readonly snapshot: Machine.RuntimeSnapshot<State, Error, Output> | undefined;
295
+ readonly published: ReadonlyArray<Machine.RuntimeSnapshot<State, Error, Output>>;
296
+ }
297
+ /**
298
+ * Context supplied to the reference-model assertion.
299
+ *
300
+ * @category models
301
+ * @since 0.4.0
302
+ */
303
+ export interface RuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed> extends RuntimeInspectionContext<State, Event, Error, Output> {
304
+ readonly model: Model;
305
+ readonly expected: Expected;
306
+ readonly actual: RuntimeCommandActual<State, Error, Output, Observed>;
307
+ }
308
+ /**
309
+ * Configuration for an Effect-native runtime command-model run.
310
+ *
311
+ * @category models
312
+ * @since 0.4.0
313
+ */
314
+ export interface RuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never> {
315
+ readonly initialModel: Model;
316
+ /**
317
+ * Live-clock bound for `Next` and `Until` synchronization. Defaults to one
318
+ * second and never advances the machine's virtual `TestClock`.
319
+ */
320
+ readonly observationTimeout?: Duration.Input;
321
+ readonly transition: (model: Model, command: RuntimeCommand<Event>, index: number) => Effect.Effect<RuntimeModelStep<Model, Expected, State, Error, Output>, ModelError, ModelServices>;
322
+ readonly inspect?: (context: RuntimeInspectionContext<State, Event, Error, Output>) => Effect.Effect<Observed, InspectionError, InspectionServices>;
323
+ readonly assert: (context: RuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed>) => Effect.Effect<void, AssertionError, AssertionServices>;
324
+ }
325
+ /**
326
+ * One successfully checked command in a replayable runtime transcript.
327
+ *
328
+ * @category models
329
+ * @since 0.4.0
330
+ */
331
+ export interface RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed> {
332
+ readonly index: number;
333
+ readonly command: RuntimeCommand<Event>;
334
+ readonly model: Model;
335
+ readonly expected: Expected;
336
+ readonly actual: RuntimeCommandActual<State, Error, Output, Observed>;
337
+ }
338
+ /**
339
+ * A complete command-model execution transcript.
340
+ *
341
+ * @category models
342
+ * @since 0.4.0
343
+ */
344
+ export interface RuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed> {
345
+ readonly commands: ReadonlyArray<RuntimeCommand<Event>>;
346
+ readonly initial: Machine.RuntimeSnapshot<State, Error, Output>;
347
+ readonly records: ReadonlyArray<RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed>>;
348
+ readonly finalModel: Model;
349
+ /** The last explicitly synchronized snapshot, never a racy trailing sample. */
350
+ readonly final: Machine.RuntimeSnapshot<State, Error, Output>;
351
+ /**
352
+ * `false` when potentially outstanding work has not been bounded by an
353
+ * `Until` predicate or a terminal snapshot.
354
+ */
355
+ readonly synchronized: boolean;
356
+ }
357
+ /**
358
+ * Enqueue-oriented name for actual runtime command evidence.
359
+ *
360
+ * @category models
361
+ * @since 0.4.0
362
+ */
363
+ export type EnqueuedRuntimeCommandActual<State, Error, Output, Observed> = RuntimeCommandActual<State, Error, Output, Observed>;
364
+ /**
365
+ * Enqueue-oriented name for runtime inspection context.
366
+ *
367
+ * @category models
368
+ * @since 0.4.0
369
+ */
370
+ export type EnqueuedRuntimeInspectionContext<State, Event, Error, Output> = RuntimeInspectionContext<State, Event, Error, Output>;
371
+ /**
372
+ * Enqueue-oriented name for runtime assertion context.
373
+ *
374
+ * @category models
375
+ * @since 0.4.0
376
+ */
377
+ export type EnqueuedRuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed> = RuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed>;
378
+ /**
379
+ * Enqueue-oriented options for a runtime reference model.
380
+ *
381
+ * @category models
382
+ * @since 0.4.0
383
+ */
384
+ export type EnqueuedRuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never> = RuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed, ModelError, ModelServices, InspectionError, InspectionServices, AssertionError, AssertionServices>;
385
+ /**
386
+ * Enqueue-oriented name for a checked runtime command record.
387
+ *
388
+ * @category models
389
+ * @since 0.4.0
390
+ */
391
+ export type EnqueuedRuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed> = RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed>;
392
+ /**
393
+ * Enqueue-oriented name for a complete runtime transcript.
394
+ *
395
+ * @category models
396
+ * @since 0.4.0
397
+ */
398
+ export type EnqueuedRuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed> = RuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed>;
399
+ /**
400
+ * One successfully checked causal command.
401
+ *
402
+ * @category models
403
+ * @since 0.4.0
404
+ */
405
+ export interface CausalRuntimeCommandRecord<M extends AnyMachine, Model, Expected, Error, Output, Observed> {
406
+ readonly index: number;
407
+ readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
408
+ readonly model: Model;
409
+ readonly expected: Expected;
410
+ readonly actual: CausalRuntimeCommandActual<M, Error, Output, Observed>;
411
+ }
412
+ /**
413
+ * A complete causally executed command-model transcript.
414
+ *
415
+ * Every accepted send in `records` completed its managed macrostep. This does
416
+ * not claim that later timer, invoke, or child work has completed unless the
417
+ * corresponding model step requested `probe.await.until`.
418
+ *
419
+ * @category models
420
+ * @since 0.4.0
421
+ */
422
+ export interface CausalRuntimeTranscript<M extends AnyMachine, Model, Expected, Error, Output, Observed> {
423
+ readonly commands: ReadonlyArray<RuntimeCommand<Machine.Machine.InputEvent<M>>>;
424
+ readonly initial: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
425
+ readonly records: ReadonlyArray<CausalRuntimeCommandRecord<M, Model, Expected, Error, Output, Observed>>;
426
+ readonly finalModel: Model;
427
+ readonly final: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
428
+ }
429
+ /**
430
+ * Partial evidence retained when a causal command fails after execution has
431
+ * begun but before a complete checked record exists.
432
+ *
433
+ * @category models
434
+ * @since 0.4.0
435
+ */
436
+ export interface CausalRuntimeCommandAttempt<M extends AnyMachine, Model, Expected, Error, Output, Observed> {
437
+ readonly index: number;
438
+ readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
439
+ readonly model: Model;
440
+ readonly expected: Expected;
441
+ readonly result: CausalRuntimeCommandResult<M> | undefined;
442
+ readonly snapshot: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output> | undefined;
443
+ readonly awaited: ReadonlyArray<Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>>;
444
+ readonly inspected: Observed | undefined;
445
+ }
446
+ declare const RuntimeObservationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
447
+ readonly _tag: "MachineTestRuntimeObservationError";
448
+ } & Readonly<A>;
449
+ /**
450
+ * Failure raised when an expected public change stream observation is absent.
451
+ *
452
+ * @category errors
453
+ * @since 0.4.0
454
+ */
455
+ export declare class RuntimeObservationError extends RuntimeObservationError_base<{
456
+ readonly index: number;
457
+ readonly synchronization: "Next" | "Until";
458
+ readonly reason: "ended" | "timeout";
459
+ readonly message: string;
460
+ }> {
461
+ }
462
+ declare const RuntimeCommandFailure_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
463
+ readonly _tag: "MachineTestRuntimeCommandFailure";
464
+ } & Readonly<A>;
465
+ /**
466
+ * A typed command-model failure retaining the successfully checked prefix.
467
+ *
468
+ * @category errors
469
+ * @since 0.4.0
470
+ */
471
+ export declare class RuntimeCommandFailure<Failure = unknown, Model = unknown, Expected = unknown, State = unknown, Event = unknown, Error = unknown, Output = unknown, Observed = unknown> extends RuntimeCommandFailure_base<{
472
+ readonly phase: "model" | "execution" | "observation" | "inspection" | "assertion";
473
+ readonly index: number;
474
+ readonly command: RuntimeCommand<Event>;
475
+ readonly cause: Cause.Cause<Failure>;
476
+ readonly prefix: ReadonlyArray<RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed>>;
477
+ readonly attempted: RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed> | undefined;
478
+ }> {
479
+ }
480
+ declare const CausalRuntimeCommandFailure_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
481
+ readonly _tag: "MachineTestCausalRuntimeCommandFailure";
482
+ } & Readonly<A>;
483
+ /**
484
+ * A typed causal command-model failure retaining the successfully checked
485
+ * prefix and exact attempted command.
486
+ *
487
+ * @category errors
488
+ * @since 0.4.0
489
+ */
490
+ export declare class CausalRuntimeCommandFailure<Failure = unknown, M extends AnyMachine = AnyMachine, Model = unknown, Expected = unknown, Error = unknown, Output = unknown, Observed = unknown> extends CausalRuntimeCommandFailure_base<{
491
+ readonly phase: "model" | "execution" | "observation" | "inspection" | "assertion";
492
+ readonly index: number;
493
+ readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
494
+ readonly cause: Cause.Cause<Failure>;
495
+ readonly prefix: ReadonlyArray<CausalRuntimeCommandRecord<M, Model, Expected, Error, Output, Observed>>;
496
+ readonly attempted: CausalRuntimeCommandAttempt<M, Model, Expected, Error, Output, Observed> | undefined;
497
+ }> {
498
+ }
499
+ /**
500
+ * Runs typed commands against a live `MachineRef` and checks them against a
501
+ * supplied Effect-native reference model.
502
+ *
503
+ * The runner observes only public `MachineRef` behavior. In particular, a
504
+ * successful send means enqueue acceptance, not completed processing. A model
505
+ * must request `Next`/`Until` only when it predicts a publication, or use an
506
+ * explicit checkpoint to drain previously enqueued work. Machine emissions can
507
+ * be captured by the runtime service used by the machine and returned from the
508
+ * optional `inspect` effect.
509
+ *
510
+ * Typed failures and defects from model transitions, command execution,
511
+ * inspection, and assertions are retained as full `Cause` values. A cause
512
+ * containing only interruption is propagated as interruption so cancelling a
513
+ * property run cannot be mistaken for a machine counterexample.
514
+ *
515
+ * @category constructors
516
+ * @since 0.4.0
517
+ */
518
+ export declare const runEnqueuedCommands: <Model, Expected, State, Event, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never>(ref: Machine.MachineRef<State, Event, Error, Output>, commands: Iterable<RuntimeCommand<Event>>, options: RuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed, ModelError, ModelServices, InspectionError, InspectionServices, AssertionError, AssertionServices>) => Effect.Effect<RuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed>, RuntimeCommandFailure<ModelError | InspectionError | AssertionError | RuntimeObservationError, Model, Expected, State, Event, Error, Output, Observed>, ModelServices | InspectionServices | AssertionServices>;
519
+ /**
520
+ * Compatibility alias for enqueue-oriented runtime command execution.
521
+ *
522
+ * @deprecated Use `runEnqueuedCommands`. This compatibility name does not
523
+ * expose whether sends are merely enqueued or causally processed.
524
+ *
525
+ * @category constructors
526
+ * @since 0.4.0
527
+ */
528
+ export declare const runRuntimeCommands: typeof runEnqueuedCommands;
529
+ /**
530
+ * Runs typed commands against a probe and checks them against an Effect-native
531
+ * reference model.
532
+ *
533
+ * Every accepted `Send` completes its exact managed runtime macrostep before
534
+ * inspection, assertion, and the next command. Use `probe.await.until` only
535
+ * for later asynchronous work such as timer, invoke, or child delivery.
536
+ * Processing failures are attributed to the exact submitted command and retain
537
+ * the successfully checked prefix for FastCheck shrinking and replay.
538
+ *
539
+ * Use `runEnqueuedCommands` instead when the behavior under test intentionally
540
+ * depends on burst enqueueing or outstanding mailbox work.
541
+ *
542
+ * @category constructors
543
+ * @since 0.4.0
544
+ */
545
+ export declare const runCausalCommands: <M extends AnyMachine, Error, Output, Model, Expected, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never>(probe: Probe<M, Error, Output>, commands: Iterable<RuntimeCommand<Machine.Machine.InputEvent<M>>>, options: CausalRuntimeModelOptions<M, Model, Expected, Error, Output, Observed, ModelError, ModelServices, InspectionError, InspectionServices, AssertionError, AssertionServices>) => Effect.Effect<CausalRuntimeTranscript<M, Model, Expected, Error, Output, Observed>, CausalRuntimeCommandFailure<Error | ModelError | InspectionError | AssertionError | RuntimeObservationError, M, Model, Expected, Error, Output, Observed>, ModelServices | InspectionServices | AssertionServices>;
546
+ /**
547
+ * Causally executes commands and checks reusable runtime invariants without
548
+ * requiring a dummy reference model. Use `runCausalCommands` when exact
549
+ * expected results come from an application model.
550
+ *
551
+ * @category constructors
552
+ * @since 0.4.0
553
+ */
554
+ export declare const verifyCausalCommands: <M extends AnyMachine, Error, Output>(probe: Probe<M, Error, Output>, commands: Iterable<RuntimeCommand<Machine.Machine.InputEvent<M>>>, options: CausalVerificationOptions<M, Error, Output>) => Effect.Effect<CausalVerificationTranscript<M, Error, Output>, CausalRuntimeCommandFailure<Error | RuntimeObservationError, M, undefined, undefined, Error, Output, never> | RuntimeInvariantError<M>>;
555
+ /**
556
+ * Options controlling schema-derived runtime command generation.
557
+ *
558
+ * @category models
559
+ * @since 0.4.0
560
+ */
561
+ export interface RuntimeCommandsOptions<M extends AnyMachine> {
562
+ readonly minCommands?: number;
563
+ readonly maxCommands?: number;
564
+ readonly eventArbitrary?: FastCheck.Arbitrary<Machine.Machine.InputEvent<M>>;
565
+ readonly advanceArbitrary?: FastCheck.Arbitrary<Duration.Input>;
566
+ readonly includeAdvance?: boolean;
567
+ readonly includeStop?: boolean;
568
+ readonly includeCheckpoint?: boolean;
569
+ readonly additionalCommands?: ReadonlyArray<FastCheck.Arbitrary<RuntimeCommand<Machine.Machine.InputEvent<M>>>>;
570
+ }
571
+ /**
572
+ * Diagnostics describing a schema-derived runtime command arbitrary.
573
+ *
574
+ * @category models
575
+ * @since 0.4.0
576
+ */
577
+ export interface RuntimeCommandsDiagnostics {
578
+ readonly events: "none" | "schema" | "override";
579
+ readonly schemaReports: ReadonlyArray<SchemaArbitraryReport>;
580
+ readonly includesAdvance: boolean;
581
+ readonly includesStop: boolean;
582
+ readonly includesCheckpoint: boolean;
583
+ }
584
+ /**
585
+ * A shrinkable runtime command arbitrary and its derivation diagnostics.
586
+ *
587
+ * @category models
588
+ * @since 0.4.0
589
+ */
590
+ export interface RuntimeCommands<M extends AnyMachine> {
591
+ readonly arbitrary: FastCheck.Arbitrary<ReadonlyArray<RuntimeCommand<Machine.Machine.InputEvent<M>>>>;
592
+ readonly diagnostics: RuntimeCommandsDiagnostics;
593
+ }
594
+ /**
595
+ * Derives a shrinkable command sequence from public event schemas and explicit
596
+ * clock/stop/checkpoint command choices.
597
+ *
598
+ * This deliberately returns ordinary Effect FastCheck arbitraries instead of
599
+ * adapting the runner through `asyncModelRun`: the latter requires Promise
600
+ * callbacks and would erase Effect error and service channels.
601
+ *
602
+ * @category constructors
603
+ * @since 0.4.0
604
+ */
605
+ export declare const runtimeCommands: <M extends AnyMachine>(machine: M, options?: RuntimeCommandsOptions<M>) => RuntimeCommands<M>;
606
+ /**
607
+ * Formats a runtime transcript or failure as replayable line-oriented evidence.
608
+ *
609
+ * @category formatting
610
+ * @since 0.4.0
611
+ */
612
+ export declare const formatEnqueuedTranscript: (value: RuntimeTranscript<any, any, any, any, any, any, any> | RuntimeCommandFailure<any, any, any, any, any, any, any, any>) => string;
613
+ /**
614
+ * Compatibility alias for enqueue-oriented transcript formatting.
615
+ *
616
+ * @deprecated Use `formatEnqueuedTranscript`.
617
+ *
618
+ * @category formatting
619
+ * @since 0.4.0
620
+ */
621
+ export declare const formatRuntimeTranscript: typeof formatEnqueuedTranscript;
622
+ /**
623
+ * Formats a causal runtime transcript or failure as replayable line-oriented
624
+ * evidence, including exact probe steps and explicit asynchronous observations.
625
+ *
626
+ * @category formatting
627
+ * @since 0.4.0
628
+ */
629
+ export declare const formatCausalTranscript: (value: CausalRuntimeTranscript<any, any, any, any, any, any> | CausalRuntimeCommandFailure<any, any, any, any, any, any, any>) => string;
630
+ export {};
631
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/internal/testing/machine/runtime.ts"],"names":[],"mappings":"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"}