@typeonce/effect-machine 0.3.0 → 0.4.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 (149) hide show
  1. package/README.md +203 -16
  2. package/dist/Machine.d.ts +784 -289
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +158 -528
  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} +19 -94
  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} +14 -118
  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} +11 -60
  27. package/dist/internal/machine/configuration.d.ts.map +1 -0
  28. package/dist/internal/{machineModel.js → machine/configuration.js} +249 -544
  29. package/dist/internal/machine/configuration.js.map +1 -0
  30. package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +1 -1
  31. package/dist/internal/machine/errors.d.ts.map +1 -0
  32. package/dist/internal/{machineErrors.js → machine/errors.js} +1 -1
  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 +667 -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} +10 -4
  51. package/dist/internal/machine/process.d.ts.map +1 -0
  52. package/dist/internal/machine/process.js +446 -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/{machineRuntime.d.ts → machine/runtime.d.ts} +104 -2
  63. package/dist/internal/machine/runtime.d.ts.map +1 -0
  64. package/dist/internal/machine/runtime.js +1381 -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/finiteModel.d.ts +322 -0
  87. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
  88. package/dist/internal/testing/machine/finiteModel.js +976 -0
  89. package/dist/internal/testing/machine/finiteModel.js.map +1 -0
  90. package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
  91. package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
  92. package/dist/internal/testing/machine/referenceModel.js +1012 -0
  93. package/dist/internal/testing/machine/referenceModel.js.map +1 -0
  94. package/dist/internal/testing/machine/runtime.d.ts +328 -0
  95. package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
  96. package/dist/internal/testing/machine/runtime.js +437 -0
  97. package/dist/internal/testing/machine/runtime.js.map +1 -0
  98. package/dist/internal/testing/machine/verification.d.ts +33 -0
  99. package/dist/internal/testing/machine/verification.d.ts.map +1 -0
  100. package/dist/internal/testing/machine/verification.js +1446 -0
  101. package/dist/internal/testing/machine/verification.js.map +1 -0
  102. package/dist/testing/MachineTest.d.ts +606 -0
  103. package/dist/testing/MachineTest.d.ts.map +1 -0
  104. package/dist/testing/MachineTest.js +102 -0
  105. package/dist/testing/MachineTest.js.map +1 -0
  106. package/dist/testing/index.d.ts +7 -0
  107. package/dist/testing/index.d.ts.map +1 -0
  108. package/dist/testing/index.js +7 -0
  109. package/dist/testing/index.js.map +1 -0
  110. package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +19 -27
  111. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
  112. package/dist/unstable/cluster/ClusterMachine.js +126 -0
  113. package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
  114. package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
  115. package/dist/unstable/cluster/index.d.ts.map +1 -0
  116. package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
  117. package/dist/unstable/cluster/index.js.map +1 -0
  118. package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +35 -20
  119. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
  120. package/dist/unstable/reactivity/AtomMachine.js +113 -0
  121. package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
  122. package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
  123. package/dist/unstable/reactivity/index.d.ts.map +1 -0
  124. package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
  125. package/dist/unstable/reactivity/index.js.map +1 -0
  126. package/docs/agent-guide.md +169 -31
  127. package/package.json +19 -10
  128. package/dist/AtomMachine.d.ts.map +0 -1
  129. package/dist/AtomMachine.js.map +0 -1
  130. package/dist/ClusterMachine.d.ts.map +0 -1
  131. package/dist/ClusterMachine.js.map +0 -1
  132. package/dist/cluster.d.ts.map +0 -1
  133. package/dist/cluster.js.map +0 -1
  134. package/dist/internal/machineErrors.d.ts.map +0 -1
  135. package/dist/internal/machineErrors.js.map +0 -1
  136. package/dist/internal/machineModel.d.ts.map +0 -1
  137. package/dist/internal/machineModel.js.map +0 -1
  138. package/dist/internal/machinePlanner.d.ts +0 -74
  139. package/dist/internal/machinePlanner.d.ts.map +0 -1
  140. package/dist/internal/machinePlanner.js +0 -797
  141. package/dist/internal/machinePlanner.js.map +0 -1
  142. package/dist/internal/machineProcess.d.ts.map +0 -1
  143. package/dist/internal/machineProcess.js +0 -181
  144. package/dist/internal/machineProcess.js.map +0 -1
  145. package/dist/internal/machineRuntime.d.ts.map +0 -1
  146. package/dist/internal/machineRuntime.js +0 -365
  147. package/dist/internal/machineRuntime.js.map +0 -1
  148. package/dist/reactivity.d.ts.map +0 -1
  149. package/dist/reactivity.js.map +0 -1
@@ -0,0 +1,322 @@
1
+ /**
2
+ * Finite hierarchical, parallel, history, choice, and automatic-transition
3
+ * statechart models used by the public testing module.
4
+ *
5
+ * This module intentionally compiles through the public Machine API. It must
6
+ * not share planner helpers with the implementation that later reference
7
+ * models are expected to check.
8
+ *
9
+ * @internal
10
+ */
11
+ import { FastCheck } from "effect/testing";
12
+ import * as Machine from "../../../Machine.js";
13
+ /**
14
+ * An atomic state in a finite generated model.
15
+ *
16
+ * @category models
17
+ * @since 4.0.0
18
+ */
19
+ export interface FiniteAtomicState {
20
+ readonly _tag: "Atomic";
21
+ readonly key: string;
22
+ /** Deterministic payload accepted by this state's generated schema. */
23
+ readonly value: number;
24
+ }
25
+ /**
26
+ * A final state in a finite generated model.
27
+ *
28
+ * @category models
29
+ * @since 4.0.0
30
+ */
31
+ export interface FiniteFinalState {
32
+ readonly _tag: "Final";
33
+ readonly key: string;
34
+ /** Deterministic payload accepted by this state's generated schema. */
35
+ readonly value: number;
36
+ /** Deterministic value returned by this state's output handler. */
37
+ readonly output: string;
38
+ }
39
+ /**
40
+ * A compound state in a finite generated model.
41
+ *
42
+ * @category models
43
+ * @since 4.0.0
44
+ */
45
+ export interface FiniteCompoundState {
46
+ readonly _tag: "Compound";
47
+ readonly key: string;
48
+ /** Deterministic payload accepted by this state's generated schema. */
49
+ readonly value: number;
50
+ /** Key of the direct child entered by default. */
51
+ readonly initial: string;
52
+ readonly states: ReadonlyArray<FiniteState>;
53
+ }
54
+ /**
55
+ * A parallel state in a finite generated model.
56
+ *
57
+ * Every direct child is an orthogonal region and is active whenever the
58
+ * parallel state is active. The output is deterministic so completion can be
59
+ * compared without sharing executable callbacks with the reference model.
60
+ *
61
+ * @category models
62
+ * @since 4.0.0
63
+ */
64
+ export interface FiniteParallelState {
65
+ readonly _tag: "Parallel";
66
+ readonly key: string;
67
+ /** Deterministic payload accepted by this state's generated schema. */
68
+ readonly value: number;
69
+ /** Deterministic value returned after every region completes. */
70
+ readonly output: string;
71
+ /** Between two and three orthogonal region nodes. */
72
+ readonly states: ReadonlyArray<FiniteState>;
73
+ }
74
+ /**
75
+ * A shallow or deep history pseudo-state in a finite generated model.
76
+ *
77
+ * History states never carry values, become active, or act as transition
78
+ * sources. `fallback` is a concrete descendant of the direct compound or
79
+ * parallel owner and is used only before that history register is captured.
80
+ *
81
+ * @category models
82
+ * @since 4.0.0
83
+ */
84
+ export interface FiniteHistoryState {
85
+ readonly _tag: "History";
86
+ readonly key: string;
87
+ readonly history: "shallow" | "deep";
88
+ readonly fallback: string;
89
+ }
90
+ /** A deterministic transient choice pseudo-state in a finite model. */
91
+ export interface FiniteChoiceState {
92
+ readonly _tag: "Choice";
93
+ readonly key: string;
94
+ readonly targets: ReadonlyArray<string>;
95
+ readonly selected: string;
96
+ }
97
+ /**
98
+ * A finite model state.
99
+ *
100
+ * @category models
101
+ * @since 4.0.0
102
+ */
103
+ export type FiniteState = FiniteAtomicState | FiniteFinalState | FiniteCompoundState | FiniteParallelState | FiniteHistoryState | FiniteChoiceState;
104
+ /**
105
+ * The single trigger representation used by generated and hand-authored finite
106
+ * transitions. Event, always, and completion registrations therefore share the
107
+ * same validation, compilation, and reference interpretation path.
108
+ *
109
+ * @category models
110
+ * @since 4.0.0
111
+ */
112
+ export type FiniteTransitionTrigger = {
113
+ readonly type: "event";
114
+ readonly event: string;
115
+ } | {
116
+ readonly type: "always";
117
+ } | {
118
+ readonly type: "done";
119
+ };
120
+ /**
121
+ * One deterministic transition in a finite generated model.
122
+ *
123
+ * @category models
124
+ * @since 4.0.0
125
+ */
126
+ interface FiniteTransitionBase {
127
+ readonly source: string;
128
+ /** Omission represents a targetless transition. */
129
+ readonly target?: string;
130
+ /** Optional schema-valid value supplied for the declared target state. */
131
+ readonly targetValue?: number;
132
+ }
133
+ /**
134
+ * A public event transition may explicitly request source reentry.
135
+ *
136
+ * @category models
137
+ * @since 4.0.0
138
+ */
139
+ export type FiniteEventTransition = FiniteTransitionBase & {
140
+ readonly trigger: Extract<FiniteTransitionTrigger, {
141
+ readonly type: "event";
142
+ }>;
143
+ readonly reenter: boolean;
144
+ };
145
+ /**
146
+ * An always or completion transition. Automatic transitions deliberately omit
147
+ * the event-only reentry option.
148
+ *
149
+ * @category models
150
+ * @since 4.0.0
151
+ */
152
+ export type FiniteAutomaticTransition = FiniteTransitionBase & {
153
+ readonly trigger: Exclude<FiniteTransitionTrigger, {
154
+ readonly type: "event";
155
+ }>;
156
+ };
157
+ /**
158
+ * One deterministic event or automatic transition in a finite model.
159
+ *
160
+ * @category models
161
+ * @since 4.0.0
162
+ */
163
+ export type FiniteTransition = FiniteEventTransition | FiniteAutomaticTransition;
164
+ /**
165
+ * The exact generated transition that changes a value before history capture.
166
+ *
167
+ * The source and target are the same active atomic state. `value` is distinct
168
+ * from that state's generated default value.
169
+ *
170
+ * @category models
171
+ * @since 4.0.0
172
+ */
173
+ export interface FiniteHistoryMutation {
174
+ readonly source: string;
175
+ readonly event: string;
176
+ readonly target: string;
177
+ readonly value: number;
178
+ }
179
+ /**
180
+ * One exact transition in a generated history witness.
181
+ *
182
+ * @category models
183
+ * @since 4.0.0
184
+ */
185
+ export interface FiniteHistoryTransfer {
186
+ readonly source: string;
187
+ readonly event: string;
188
+ readonly target: string;
189
+ }
190
+ /**
191
+ * A replayable value-mutation, capture, and restoration witness generated for
192
+ * one history pseudo-state.
193
+ *
194
+ * `events` is exactly `[mutation.event, leave.event, resume.event]`. Replaying
195
+ * it changes a schema-valid atomic value, exits the history owner through its
196
+ * root, and restores the remembered non-default value through `history`.
197
+ *
198
+ * @category models
199
+ * @since 4.0.0
200
+ */
201
+ export interface FiniteHistoryScenario {
202
+ readonly history: string;
203
+ readonly owner: string;
204
+ readonly historyType: "shallow" | "deep";
205
+ readonly mutation: FiniteHistoryMutation;
206
+ readonly leave: FiniteHistoryTransfer;
207
+ readonly resume: FiniteHistoryTransfer;
208
+ readonly events: readonly [mutation: string, leave: string, resume: string];
209
+ }
210
+ /**
211
+ * A small immutable statechart model suitable for generation and shrinking.
212
+ *
213
+ * State paths use dot-separated state keys. Transitions are unique by
214
+ * source/event pair. A transition may target any state under its source root,
215
+ * or a different root as a complete configuration.
216
+ *
217
+ * @category models
218
+ * @since 4.0.0
219
+ */
220
+ export interface FiniteModel {
221
+ readonly roots: ReadonlyArray<FiniteState>;
222
+ /** Key of the root entered during startup. */
223
+ readonly initial: string;
224
+ readonly events: ReadonlyArray<string>;
225
+ readonly transitions: ReadonlyArray<FiniteTransition>;
226
+ /** Exact value-sensitive history witnesses attached by `finiteModels`. */
227
+ readonly historyScenarios?: ReadonlyArray<FiniteHistoryScenario>;
228
+ }
229
+ /**
230
+ * Limits controlling finite model generation.
231
+ *
232
+ * @category models
233
+ * @since 4.0.0
234
+ */
235
+ export interface FiniteModelOptions {
236
+ /** Maximum number of root states. Always between one and three. */
237
+ readonly maxRoots?: 1 | 2 | 3;
238
+ /** Maximum state-tree depth, counting a root as depth one. */
239
+ readonly maxDepth?: number;
240
+ /** Maximum number of direct children in a compound state. */
241
+ readonly maxChildren?: number;
242
+ /** Maximum number of regions in a parallel state. Always two or three. */
243
+ readonly maxParallelRegions?: 2 | 3;
244
+ /** Maximum number of distinct public event tags. */
245
+ readonly maxEvents?: number;
246
+ /** Maximum number of source/event transition registrations. */
247
+ readonly maxTransitions?: number;
248
+ /** Maximum number of history pseudo-states added to one generated model. */
249
+ readonly maxHistoryStates?: number;
250
+ /** Maximum number of deterministic choice witnesses added to a generated model. */
251
+ readonly maxChoiceStates?: number;
252
+ }
253
+ /**
254
+ * Resolved limits and structural guarantees for a finite model arbitrary.
255
+ *
256
+ * @category models
257
+ * @since 4.0.0
258
+ */
259
+ export interface FiniteModelDiagnostics {
260
+ readonly limits: {
261
+ readonly maxRoots: 1 | 2 | 3;
262
+ readonly maxDepth: number;
263
+ readonly maxChildren: number;
264
+ readonly maxParallelRegions: 2 | 3;
265
+ readonly maxEvents: number;
266
+ readonly maxTransitions: number;
267
+ readonly maxHistoryStates: number;
268
+ readonly maxChoiceStates: number;
269
+ };
270
+ readonly guarantees: {
271
+ readonly compoundOnly: false;
272
+ readonly parallelStates: true;
273
+ readonly historyStates: true;
274
+ readonly historyLeaveResumeSequences: true;
275
+ readonly historyValueScenarios: true;
276
+ readonly choiceStates: true;
277
+ readonly choiceInitialWitnesses: true;
278
+ readonly structurallyValid: true;
279
+ readonly shrinkPreservesValidity: true;
280
+ readonly eventlessTransitions: true;
281
+ readonly acyclicAutomaticTransitions: true;
282
+ };
283
+ }
284
+ /**
285
+ * A finite model arbitrary and the exact limits used to construct it.
286
+ *
287
+ * @category models
288
+ * @since 4.0.0
289
+ */
290
+ export interface FiniteModels {
291
+ readonly arbitrary: FastCheck.Arbitrary<FiniteModel>;
292
+ readonly diagnostics: FiniteModelDiagnostics;
293
+ }
294
+ /**
295
+ * Generates bounded, structurally valid hierarchical statechart
296
+ * models.
297
+ *
298
+ * Generation is composed from shrinkable topology, initial-state, event, and
299
+ * transition decisions. Paths and transition candidates are rebuilt after a
300
+ * topology shrink, so a shrink can never retain a dangling source or target.
301
+ * Generated automatic transitions are acyclic by construction: `always`
302
+ * transitions leave atomic sources and completion transitions leave compound
303
+ * or parallel sources. Separate focused witnesses cover cyclic stabilization.
304
+ *
305
+ * @category constructors
306
+ * @since 4.0.0
307
+ */
308
+ export declare const finiteModels: (options?: FiniteModelOptions) => FiniteModels;
309
+ /**
310
+ * Compiles a finite model into a real machine using only public definition,
311
+ * construction, and handler APIs.
312
+ *
313
+ * Hand-authored models are validated before compilation. This compiler is a
314
+ * testing adapter, not the independent reference interpreter used by later
315
+ * conformance stages.
316
+ *
317
+ * @category constructors
318
+ * @since 4.0.0
319
+ */
320
+ export declare const compileModel: (model: FiniteModel) => Machine.Machine.Any;
321
+ export {};
322
+ //# sourceMappingURL=finiteModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finiteModel.d.ts","sourceRoot":"","sources":["../../../../src/internal/testing/machine/finiteModel.ts"],"names":[],"mappings":"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"}