@typeonce/effect-machine 0.2.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.
- package/README.md +345 -42
- package/dist/Machine.d.ts +1273 -347
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +161 -426
- package/dist/Machine.js.map +1 -1
- package/dist/internal/machine/activities.d.ts +57 -0
- package/dist/internal/machine/activities.d.ts.map +1 -0
- package/dist/internal/machine/activities.js +49 -0
- package/dist/internal/machine/activities.js.map +1 -0
- package/dist/internal/machine/atom.d.ts +69 -0
- package/dist/internal/machine/atom.d.ts.map +1 -0
- package/dist/{AtomMachine.js → internal/machine/atom.js} +19 -94
- package/dist/internal/machine/atom.js.map +1 -0
- package/dist/internal/machine/cluster.d.ts +63 -0
- package/dist/internal/machine/cluster.d.ts.map +1 -0
- package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
- package/dist/internal/machine/cluster.js.map +1 -0
- package/dist/internal/machine/command.d.ts +16 -0
- package/dist/internal/machine/command.d.ts.map +1 -0
- package/dist/internal/machine/command.js +45 -0
- package/dist/internal/machine/command.js.map +1 -0
- package/dist/internal/machine/commandRuntime.d.ts +13 -0
- package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
- package/dist/internal/machine/commandRuntime.js +16 -0
- package/dist/internal/machine/commandRuntime.js.map +1 -0
- package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +32 -38
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/machine/configuration.js +965 -0
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +3 -3
- package/dist/internal/machine/errors.d.ts.map +1 -0
- package/dist/internal/{machineErrors.js → machine/errors.js} +1 -1
- package/dist/internal/machine/errors.js.map +1 -0
- package/dist/internal/machine/executionPlan.d.ts +49 -0
- package/dist/internal/machine/executionPlan.d.ts.map +1 -0
- package/dist/internal/machine/executionPlan.js +667 -0
- package/dist/internal/machine/executionPlan.js.map +1 -0
- package/dist/internal/machine/invocation.d.ts +23 -0
- package/dist/internal/machine/invocation.d.ts.map +1 -0
- package/dist/internal/machine/invocation.js +77 -0
- package/dist/internal/machine/invocation.js.map +1 -0
- package/dist/internal/machine/machine.d.ts +183 -0
- package/dist/internal/machine/machine.d.ts.map +1 -0
- package/dist/internal/machine/machine.js +552 -0
- package/dist/internal/machine/machine.js.map +1 -0
- package/dist/internal/machine/planner.d.ts +182 -0
- package/dist/internal/machine/planner.d.ts.map +1 -0
- package/dist/internal/machine/planner.js +1082 -0
- package/dist/internal/machine/planner.js.map +1 -0
- package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +10 -4
- package/dist/internal/machine/process.d.ts.map +1 -0
- package/dist/internal/machine/process.js +446 -0
- package/dist/internal/machine/process.js.map +1 -0
- package/dist/internal/machine/protocol.d.ts +34 -0
- package/dist/internal/machine/protocol.d.ts.map +1 -0
- package/dist/internal/machine/protocol.js +182 -0
- package/dist/internal/machine/protocol.js.map +1 -0
- package/dist/internal/machine/readiness.d.ts +4 -0
- package/dist/internal/machine/readiness.d.ts.map +1 -0
- package/dist/internal/machine/readiness.js +2 -0
- package/dist/internal/machine/readiness.js.map +1 -0
- package/dist/internal/{machineRuntime.d.ts → machine/runtime.d.ts} +104 -2
- package/dist/internal/machine/runtime.d.ts.map +1 -0
- package/dist/internal/machine/runtime.js +1381 -0
- package/dist/internal/machine/runtime.js.map +1 -0
- package/dist/internal/machine/serialization.d.ts +14 -0
- package/dist/internal/machine/serialization.d.ts.map +1 -0
- package/dist/internal/machine/serialization.js +338 -0
- package/dist/internal/machine/serialization.js.map +1 -0
- package/dist/internal/machine/stateDefinition.d.ts +15 -0
- package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
- package/dist/internal/machine/stateDefinition.js +210 -0
- package/dist/internal/machine/stateDefinition.js.map +1 -0
- package/dist/internal/machine/symbols.d.ts +3 -0
- package/dist/internal/machine/symbols.d.ts.map +1 -0
- package/dist/internal/machine/symbols.js +3 -0
- package/dist/internal/machine/symbols.js.map +1 -0
- package/dist/internal/machine/topology.d.ts +98 -0
- package/dist/internal/machine/topology.d.ts.map +1 -0
- package/dist/internal/machine/topology.js +347 -0
- package/dist/internal/machine/topology.js.map +1 -0
- package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
- package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
- package/dist/internal/testing/machine/arbitrary.js +68 -0
- package/dist/internal/testing/machine/arbitrary.js.map +1 -0
- package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
- package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/finiteModel.js +976 -0
- package/dist/internal/testing/machine/finiteModel.js.map +1 -0
- package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
- package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/referenceModel.js +1012 -0
- package/dist/internal/testing/machine/referenceModel.js.map +1 -0
- package/dist/internal/testing/machine/runtime.d.ts +328 -0
- package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtime.js +437 -0
- package/dist/internal/testing/machine/runtime.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts +33 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -0
- package/dist/internal/testing/machine/verification.js +1446 -0
- package/dist/internal/testing/machine/verification.js.map +1 -0
- package/dist/testing/MachineTest.d.ts +606 -0
- package/dist/testing/MachineTest.d.ts.map +1 -0
- package/dist/testing/MachineTest.js +102 -0
- package/dist/testing/MachineTest.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +22 -30
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
- package/dist/unstable/cluster/ClusterMachine.js +126 -0
- package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
- package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
- package/dist/unstable/cluster/index.d.ts.map +1 -0
- package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
- package/dist/unstable/cluster/index.js.map +1 -0
- package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +40 -23
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
- package/dist/unstable/reactivity/AtomMachine.js +113 -0
- package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
- package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
- package/dist/unstable/reactivity/index.d.ts.map +1 -0
- package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -0
- package/docs/agent-guide.md +271 -38
- package/package.json +23 -13
- package/dist/AtomMachine.d.ts.map +0 -1
- package/dist/AtomMachine.js.map +0 -1
- package/dist/ClusterMachine.d.ts.map +0 -1
- package/dist/ClusterMachine.js.map +0 -1
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js.map +0 -1
- package/dist/internal/machineErrors.d.ts.map +0 -1
- package/dist/internal/machineErrors.js.map +0 -1
- package/dist/internal/machineModel.d.ts.map +0 -1
- package/dist/internal/machineModel.js +0 -766
- package/dist/internal/machineModel.js.map +0 -1
- package/dist/internal/machinePlanner.d.ts +0 -74
- package/dist/internal/machinePlanner.d.ts.map +0 -1
- package/dist/internal/machinePlanner.js +0 -621
- package/dist/internal/machinePlanner.js.map +0 -1
- package/dist/internal/machineProcess.d.ts.map +0 -1
- package/dist/internal/machineProcess.js +0 -181
- package/dist/internal/machineProcess.js.map +0 -1
- package/dist/internal/machineRuntime.d.ts.map +0 -1
- package/dist/internal/machineRuntime.js +0 -365
- package/dist/internal/machineRuntime.js.map +0 -1
- package/dist/reactivity.d.ts.map +0 -1
- package/dist/reactivity.js.map +0 -1
|
@@ -0,0 +1,606 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property-based scenario generation and planner trace utilities.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
5
|
+
*/
|
|
6
|
+
import type * as Effect from "effect/Effect";
|
|
7
|
+
import type * as Graph from "effect/Graph";
|
|
8
|
+
import type * as Schema from "effect/Schema";
|
|
9
|
+
import type { FastCheck } from "effect/testing";
|
|
10
|
+
import type { EnsureExecutable } from "../internal/machine/readiness.js";
|
|
11
|
+
import type { SchemaArbitraryReport } from "../internal/testing/machine/arbitrary.js";
|
|
12
|
+
import type { FiniteModel } from "../internal/testing/machine/finiteModel.js";
|
|
13
|
+
import type * as ReferenceModel from "../internal/testing/machine/referenceModel.js";
|
|
14
|
+
import type { VerificationError } from "../internal/testing/machine/verification.js";
|
|
15
|
+
import type * as Machine from "../Machine.js";
|
|
16
|
+
export { advanceCommand, checkpointCommand, formatRuntimeTranscript, runRuntimeCommands, type RuntimeAssertionContext, type RuntimeCommand, type RuntimeCommandActual, RuntimeCommandFailure, type RuntimeCommandRecord, type RuntimeCommandResult, type RuntimeCommands, runtimeCommands, type RuntimeCommandsDiagnostics, type RuntimeCommandsOptions, type RuntimeInspectionContext, type RuntimeModelOptions, type RuntimeModelStep, RuntimeObservationError, RuntimeSynchronization, type RuntimeTranscript, sendCommand, stopCommand } from "../internal/testing/machine/verification.js";
|
|
17
|
+
export type { SchemaArbitraryOpaqueFilterWarning, SchemaArbitraryReport, SchemaArbitraryWarning } from "../internal/testing/machine/verification.js";
|
|
18
|
+
export { compileModel, type FiniteAtomicState, type FiniteAutomaticTransition, type FiniteCompoundState, type FiniteEventTransition, type FiniteFinalState, type FiniteHistoryMutation, type FiniteHistoryScenario, type FiniteHistoryState, type FiniteHistoryTransfer, type FiniteModel, type FiniteModelDiagnostics, type FiniteModelOptions, type FiniteModels, finiteModels, type FiniteParallelState, type FiniteState, type FiniteTransition, type FiniteTransitionTrigger } from "../internal/testing/machine/verification.js";
|
|
19
|
+
export { ModelVerificationError, type ModelVerificationField, type ModelVerificationLocation, type ModelVerificationMismatch, type ReferenceCompletion, type ReferenceHistoryRecord, type ReferenceInitialStep, type ReferenceMicrostep, type ReferenceState, type ReferenceStateValue, type ReferenceStep, type ReferenceTrace, type ReferenceTransition } from "../internal/testing/machine/verification.js";
|
|
20
|
+
/**
|
|
21
|
+
* Purely interprets a finite hierarchical model without compiling a
|
|
22
|
+
* machine.
|
|
23
|
+
*
|
|
24
|
+
* @category verification
|
|
25
|
+
* @since 4.0.0
|
|
26
|
+
*/
|
|
27
|
+
export declare const interpretModel: (model: FiniteModel, events: ReadonlyArray<string>) => ReferenceModel.ReferenceTrace;
|
|
28
|
+
type AnyMachine = Machine.Machine.Any;
|
|
29
|
+
type InputValue<M extends AnyMachine> = Machine.Machine.Input<M>["Type"];
|
|
30
|
+
type StatePath<M extends AnyMachine> = Machine.Machine.StateIdentifier<Machine.Machine.States<M>>;
|
|
31
|
+
type StateNodePath<M extends AnyMachine> = Machine.Machine.StateNodeIdentifier<Machine.Machine.States<M>>;
|
|
32
|
+
type IsAny<A> = 0 extends (1 & A) ? true : false;
|
|
33
|
+
type ReadyMachine<M extends AnyMachine> = M & EnsureExecutable<Machine.Machine.States<M>, Machine.Machine.UnhandledStates<M>, Machine.Machine.OutputStates<M>>;
|
|
34
|
+
/**
|
|
35
|
+
* A generated public-input scenario for a machine.
|
|
36
|
+
*
|
|
37
|
+
* Machines without an input schema omit `input`; machines with one retain its
|
|
38
|
+
* exact decoded type. Events use only the public input protocol.
|
|
39
|
+
*
|
|
40
|
+
* @category models
|
|
41
|
+
* @since 4.0.0
|
|
42
|
+
*/
|
|
43
|
+
export type Scenario<M extends AnyMachine> = Machine.Machine.Input<M> extends typeof Schema.Void ? {
|
|
44
|
+
readonly events: ReadonlyArray<Machine.Machine.InputEvent<M>>;
|
|
45
|
+
} : {
|
|
46
|
+
readonly input: InputValue<M>;
|
|
47
|
+
readonly events: ReadonlyArray<Machine.Machine.InputEvent<M>>;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Options for schema-derived scenario generation.
|
|
51
|
+
*
|
|
52
|
+
* `inputArbitrary` and `eventsArbitrary` replace their complete generated
|
|
53
|
+
* value. An events override therefore owns its own length distribution.
|
|
54
|
+
*
|
|
55
|
+
* @category models
|
|
56
|
+
* @since 4.0.0
|
|
57
|
+
*/
|
|
58
|
+
export type ScenarioOptions<M extends AnyMachine> = {
|
|
59
|
+
readonly minEvents?: number;
|
|
60
|
+
readonly maxEvents?: number;
|
|
61
|
+
readonly eventsArbitrary?: FastCheck.Arbitrary<ReadonlyArray<Machine.Machine.InputEvent<M>>>;
|
|
62
|
+
} & (Machine.Machine.Input<M> extends typeof Schema.Void ? {
|
|
63
|
+
readonly inputArbitrary?: never;
|
|
64
|
+
} : {
|
|
65
|
+
readonly inputArbitrary?: FastCheck.Arbitrary<InputValue<M>>;
|
|
66
|
+
});
|
|
67
|
+
/**
|
|
68
|
+
* Diagnostics for one schema-derived arbitrary.
|
|
69
|
+
*
|
|
70
|
+
* @category models
|
|
71
|
+
* @since 4.0.0
|
|
72
|
+
*/
|
|
73
|
+
export interface SchemaArbitraryDiagnostic {
|
|
74
|
+
readonly boundary: "input" | "event";
|
|
75
|
+
readonly index: number | undefined;
|
|
76
|
+
readonly report: SchemaArbitraryReport;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Diagnostics describing how a scenario arbitrary was assembled.
|
|
80
|
+
*
|
|
81
|
+
* @category models
|
|
82
|
+
* @since 4.0.0
|
|
83
|
+
*/
|
|
84
|
+
export interface ScenarioDiagnostics {
|
|
85
|
+
readonly input: "none" | "schema" | "override";
|
|
86
|
+
readonly events: "empty" | "schema" | "override";
|
|
87
|
+
readonly schemas: ReadonlyArray<SchemaArbitraryDiagnostic>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* A scenario arbitrary together with schema-derivation diagnostics.
|
|
91
|
+
*
|
|
92
|
+
* @category models
|
|
93
|
+
* @since 4.0.0
|
|
94
|
+
*/
|
|
95
|
+
export interface Scenarios<M extends AnyMachine> {
|
|
96
|
+
readonly arbitrary: FastCheck.Arbitrary<Scenario<M>>;
|
|
97
|
+
readonly diagnostics: ScenarioDiagnostics;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Derives valid machine inputs and public events from their schemas.
|
|
101
|
+
*
|
|
102
|
+
* Unsupported schema derivations fail immediately through `Schema.toArbitrary`.
|
|
103
|
+
* Non-fatal derivation warnings are returned instead of being hidden.
|
|
104
|
+
*
|
|
105
|
+
* @category constructors
|
|
106
|
+
* @since 4.0.0
|
|
107
|
+
*/
|
|
108
|
+
export declare const scenarios: <M extends AnyMachine>(machine: M, options?: ScenarioOptions<M>) => Scenarios<M>;
|
|
109
|
+
/**
|
|
110
|
+
* Completion information retained by an initial or event plan.
|
|
111
|
+
*
|
|
112
|
+
* @category models
|
|
113
|
+
* @since 4.0.0
|
|
114
|
+
*/
|
|
115
|
+
export type PlanCompletion<M extends AnyMachine> = {
|
|
116
|
+
readonly done: true;
|
|
117
|
+
readonly output: Machine.Machine.Output<M>;
|
|
118
|
+
} | {
|
|
119
|
+
readonly done: false;
|
|
120
|
+
readonly output: undefined;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* One public planned microstep, including retained post-conflict transitions.
|
|
124
|
+
*
|
|
125
|
+
* @category models
|
|
126
|
+
* @since 4.0.0
|
|
127
|
+
*/
|
|
128
|
+
export interface Microstep<M extends AnyMachine, Requirements = Machine.Machine.Services<M>> {
|
|
129
|
+
readonly next: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
130
|
+
readonly event: Machine.Machine.Event<M> | Machine.InitialEvent;
|
|
131
|
+
readonly transitions: ReadonlyArray<Machine.Machine.RetainedTransition<StatePath<M>, Machine.Machine.TagOf<Machine.Machine.Events<M>[number]>, StateNodePath<M>>>;
|
|
132
|
+
readonly commands: ReadonlyArray<Machine.Command>;
|
|
133
|
+
readonly raisedEvents: ReadonlyArray<Machine.Machine.Event<M>>;
|
|
134
|
+
readonly emittedEvents: ReadonlyArray<Machine.Machine.Emit<M>>;
|
|
135
|
+
readonly exitPaths: ReadonlyArray<string>;
|
|
136
|
+
readonly entryPaths: ReadonlyArray<string>;
|
|
137
|
+
readonly changed: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The complete data returned while planning machine startup.
|
|
141
|
+
*
|
|
142
|
+
* @category models
|
|
143
|
+
* @since 4.0.0
|
|
144
|
+
*/
|
|
145
|
+
export type InitialPlan<M extends AnyMachine> = {
|
|
146
|
+
readonly startingState: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
147
|
+
readonly initialEntryPaths: ReadonlyArray<StatePath<M>>;
|
|
148
|
+
readonly state: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
149
|
+
readonly commands: ReadonlyArray<Machine.Command>;
|
|
150
|
+
readonly emittedEvents: ReadonlyArray<Machine.Machine.Emit<M>>;
|
|
151
|
+
readonly microsteps: ReadonlyArray<Microstep<M, Machine.Machine.InitialServices<M> | Machine.Machine.Services<M>>>;
|
|
152
|
+
} & PlanCompletion<M>;
|
|
153
|
+
/**
|
|
154
|
+
* The complete data returned while planning one public event.
|
|
155
|
+
*
|
|
156
|
+
* @category models
|
|
157
|
+
* @since 4.0.0
|
|
158
|
+
*/
|
|
159
|
+
export type EventPlan<M extends AnyMachine> = {
|
|
160
|
+
readonly next: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
161
|
+
readonly commands: ReadonlyArray<Machine.Command>;
|
|
162
|
+
readonly emittedEvents: ReadonlyArray<Machine.Machine.Emit<M>>;
|
|
163
|
+
readonly microsteps: ReadonlyArray<Microstep<M>>;
|
|
164
|
+
} & PlanCompletion<M>;
|
|
165
|
+
/**
|
|
166
|
+
* Startup portion of an executable planner trace.
|
|
167
|
+
*
|
|
168
|
+
* @category models
|
|
169
|
+
* @since 4.0.0
|
|
170
|
+
*/
|
|
171
|
+
export interface InitialTrace<M extends AnyMachine> {
|
|
172
|
+
readonly plan: InitialPlan<M>;
|
|
173
|
+
readonly startingState: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
174
|
+
readonly startingConfiguration: ReadonlyArray<StatePath<M>>;
|
|
175
|
+
readonly initialEntryPaths: ReadonlyArray<StatePath<M>>;
|
|
176
|
+
readonly configuration: ReadonlyArray<StatePath<M>>;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* One event portion of an executable planner trace.
|
|
180
|
+
*
|
|
181
|
+
* @category models
|
|
182
|
+
* @since 4.0.0
|
|
183
|
+
*/
|
|
184
|
+
export interface TraceStep<M extends AnyMachine> {
|
|
185
|
+
readonly index: number;
|
|
186
|
+
readonly before: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
187
|
+
readonly beforeConfiguration: ReadonlyArray<StatePath<M>>;
|
|
188
|
+
readonly event: Machine.Machine.InputEvent<M>;
|
|
189
|
+
readonly plan: EventPlan<M>;
|
|
190
|
+
readonly after: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
191
|
+
readonly afterConfiguration: ReadonlyArray<StatePath<M>>;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* A scenario and every plan produced by executing it without running actions.
|
|
195
|
+
*
|
|
196
|
+
* @category models
|
|
197
|
+
* @since 4.0.0
|
|
198
|
+
*/
|
|
199
|
+
export interface Trace<M extends AnyMachine> {
|
|
200
|
+
readonly scenario: Scenario<M>;
|
|
201
|
+
readonly initial: InitialTrace<M>;
|
|
202
|
+
readonly steps: ReadonlyArray<TraceStep<M>>;
|
|
203
|
+
readonly final: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
204
|
+
readonly finalConfiguration: ReadonlyArray<StatePath<M>>;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Checks a real planner trace against the independent finite statechart model
|
|
208
|
+
* interpreter.
|
|
209
|
+
*
|
|
210
|
+
* The oracle does not import the machine compiler, planner, snapshot helpers,
|
|
211
|
+
* or target builders. It compares semantic projections of the public trace
|
|
212
|
+
* and accumulates every disagreement in one structured error.
|
|
213
|
+
*
|
|
214
|
+
* @category verification
|
|
215
|
+
* @since 4.0.0
|
|
216
|
+
*/
|
|
217
|
+
export declare const verifyModel: <M extends AnyMachine>(model: FiniteModel, actualTrace: Trace<M>) => Effect.Effect<void, ReferenceModel.ModelVerificationError>;
|
|
218
|
+
/**
|
|
219
|
+
* A typed planning failure together with every successfully completed trace
|
|
220
|
+
* segment preceding it.
|
|
221
|
+
*
|
|
222
|
+
* @category models
|
|
223
|
+
* @since 4.0.0
|
|
224
|
+
*/
|
|
225
|
+
export type RunFailure<Cause, M extends AnyMachine = AnyMachine> = {
|
|
226
|
+
readonly _tag: "MachineTestRunFailure";
|
|
227
|
+
readonly scenario: Scenario<M>;
|
|
228
|
+
readonly phase: "initial";
|
|
229
|
+
readonly eventIndex: undefined;
|
|
230
|
+
readonly event: undefined;
|
|
231
|
+
readonly initial: undefined;
|
|
232
|
+
readonly steps: readonly [];
|
|
233
|
+
readonly cause: Cause;
|
|
234
|
+
} | {
|
|
235
|
+
readonly _tag: "MachineTestRunFailure";
|
|
236
|
+
readonly scenario: Scenario<M>;
|
|
237
|
+
readonly phase: "event";
|
|
238
|
+
readonly eventIndex: number;
|
|
239
|
+
readonly event: Machine.Machine.InputEvent<M>;
|
|
240
|
+
readonly initial: InitialTrace<M>;
|
|
241
|
+
readonly steps: ReadonlyArray<TraceStep<M>>;
|
|
242
|
+
readonly cause: Cause;
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Errors that can be produced while planning a complete scenario.
|
|
246
|
+
*
|
|
247
|
+
* @category errors
|
|
248
|
+
* @since 4.0.0
|
|
249
|
+
*/
|
|
250
|
+
export type RunError<M extends AnyMachine> = Machine.Machine.InitialError<M> | Machine.Machine.Error<M> | Machine.InfiniteTransitionError | Machine.MachineSchemaDecodeError | Machine.StartupError;
|
|
251
|
+
/**
|
|
252
|
+
* Services required while planning a complete scenario.
|
|
253
|
+
*
|
|
254
|
+
* Scenario execution delegates exclusively to the service-free `planInitial`
|
|
255
|
+
* and `plan` APIs. Invoke services and managed runtime capabilities belong to
|
|
256
|
+
* later execution, not synchronous planning.
|
|
257
|
+
*
|
|
258
|
+
* @category models
|
|
259
|
+
* @since 4.0.0
|
|
260
|
+
*/
|
|
261
|
+
export type RunServices<M extends AnyMachine> = IsAny<Machine.PlanningServices<Machine.Machine.InitialServices<M> | Machine.Machine.Services<M>>> extends true ? Machine.PlanningServices<Machine.Machine.InitialServices<M> | Machine.Machine.Services<M>> : never;
|
|
262
|
+
/**
|
|
263
|
+
* Executes a generated scenario exclusively through `planInitial` and `plan`.
|
|
264
|
+
*
|
|
265
|
+
* Staged actions are retained in each plan but are never executed. Every event
|
|
266
|
+
* is planned, including events that occur after a terminal configuration.
|
|
267
|
+
* Typed planning errors retain the scenario and successfully completed prefix
|
|
268
|
+
* in a `RunFailure`.
|
|
269
|
+
*
|
|
270
|
+
* @category constructors
|
|
271
|
+
* @since 4.0.0
|
|
272
|
+
*/
|
|
273
|
+
export declare const run: <M extends AnyMachine>(machine: ReadyMachine<M>, scenario: Scenario<M>) => Effect.Effect<Trace<M>, RunFailure<RunError<M>, M>, RunServices<M>>;
|
|
274
|
+
/**
|
|
275
|
+
* A deterministic hit/miss summary for a finite set declared by a machine.
|
|
276
|
+
*
|
|
277
|
+
* @category models
|
|
278
|
+
* @since 4.0.0
|
|
279
|
+
*/
|
|
280
|
+
export interface CoverageSummary<Item> {
|
|
281
|
+
readonly total: number;
|
|
282
|
+
readonly hit: number;
|
|
283
|
+
readonly missing: number;
|
|
284
|
+
readonly hits: ReadonlyArray<Item>;
|
|
285
|
+
readonly misses: ReadonlyArray<Item>;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* One active (non-history) state node in a state coverage summary.
|
|
289
|
+
*
|
|
290
|
+
* @category models
|
|
291
|
+
* @since 4.0.0
|
|
292
|
+
*/
|
|
293
|
+
export interface StateCoverageItem<Path extends string = string> {
|
|
294
|
+
readonly path: Path;
|
|
295
|
+
readonly type: Exclude<Machine.Machine.StateNode["type"], "history">;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* State activation and lifecycle coverage.
|
|
299
|
+
*
|
|
300
|
+
* @category models
|
|
301
|
+
* @since 4.0.0
|
|
302
|
+
*/
|
|
303
|
+
export interface StateCoverage<Path extends string = string> {
|
|
304
|
+
readonly activation: CoverageSummary<StateCoverageItem<Path>>;
|
|
305
|
+
readonly entry: CoverageSummary<StateCoverageItem<Path>>;
|
|
306
|
+
readonly exit: CoverageSummary<StateCoverageItem<Path>>;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* One stable transition-definition identity in definition order.
|
|
310
|
+
*
|
|
311
|
+
* @category models
|
|
312
|
+
* @since 4.0.0
|
|
313
|
+
*/
|
|
314
|
+
export interface TransitionCoverageItem<SourcePath extends string = string, EventTag extends PropertyKey = PropertyKey, TargetPath extends string = SourcePath> {
|
|
315
|
+
readonly id: string;
|
|
316
|
+
readonly index: number;
|
|
317
|
+
readonly source: SourcePath;
|
|
318
|
+
readonly trigger: Machine.Machine.TransitionTrigger<EventTag>;
|
|
319
|
+
readonly reenter: boolean;
|
|
320
|
+
readonly targets: Machine.Machine.TransitionTargets<TargetPath>;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* One public event tag declared by the machine.
|
|
324
|
+
*
|
|
325
|
+
* @category models
|
|
326
|
+
* @since 4.0.0
|
|
327
|
+
*/
|
|
328
|
+
export interface EventCoverageItem<Tag extends PropertyKey = PropertyKey> {
|
|
329
|
+
readonly tag: Tag;
|
|
330
|
+
readonly count: number;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Public event coverage, including events that no transition retained.
|
|
334
|
+
*
|
|
335
|
+
* @category models
|
|
336
|
+
* @since 4.0.0
|
|
337
|
+
*/
|
|
338
|
+
export type EventCoverage<Tag extends PropertyKey = PropertyKey> = {
|
|
339
|
+
readonly available: true;
|
|
340
|
+
readonly total: number;
|
|
341
|
+
readonly hit: number;
|
|
342
|
+
readonly missing: number;
|
|
343
|
+
readonly hits: ReadonlyArray<EventCoverageItem<Tag>>;
|
|
344
|
+
readonly misses: ReadonlyArray<EventCoverageItem<Tag>>;
|
|
345
|
+
readonly observed: ReadonlyArray<EventCoverageItem<Tag>>;
|
|
346
|
+
readonly diagnostics: readonly [];
|
|
347
|
+
} | {
|
|
348
|
+
readonly available: false;
|
|
349
|
+
readonly total: undefined;
|
|
350
|
+
readonly hit: undefined;
|
|
351
|
+
readonly missing: undefined;
|
|
352
|
+
readonly hits: undefined;
|
|
353
|
+
readonly misses: undefined;
|
|
354
|
+
readonly observed: ReadonlyArray<EventCoverageItem<Tag>>;
|
|
355
|
+
readonly diagnostics: ReadonlyArray<{
|
|
356
|
+
readonly schemaIndex: number;
|
|
357
|
+
readonly message: string;
|
|
358
|
+
}>;
|
|
359
|
+
};
|
|
360
|
+
/**
|
|
361
|
+
* Trace-derived scenario counts. There is no finite declared scenario space.
|
|
362
|
+
*
|
|
363
|
+
* @category models
|
|
364
|
+
* @since 4.0.0
|
|
365
|
+
*/
|
|
366
|
+
export interface ScenarioCoverage {
|
|
367
|
+
readonly traces: number;
|
|
368
|
+
readonly events: number;
|
|
369
|
+
readonly empty: number;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Trace-derived logical configuration counts. There is no claimed exhaustive total.
|
|
373
|
+
*
|
|
374
|
+
* @category models
|
|
375
|
+
* @since 4.0.0
|
|
376
|
+
*/
|
|
377
|
+
export interface LogicalConfigurationCoverage {
|
|
378
|
+
readonly observations: number;
|
|
379
|
+
readonly hit: number;
|
|
380
|
+
readonly identities: ReadonlyArray<string>;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Directly observed startup and microstep evidence.
|
|
384
|
+
*
|
|
385
|
+
* @category models
|
|
386
|
+
* @since 4.0.0
|
|
387
|
+
*/
|
|
388
|
+
export interface MicrostepCoverageEvidence {
|
|
389
|
+
readonly total: number;
|
|
390
|
+
readonly changed: number;
|
|
391
|
+
readonly targetless: number;
|
|
392
|
+
readonly raised: number;
|
|
393
|
+
readonly emitted: number;
|
|
394
|
+
readonly eventTriggered: number;
|
|
395
|
+
readonly alwaysTriggered: number;
|
|
396
|
+
readonly doneTriggered: number;
|
|
397
|
+
readonly choiceTriggered: number;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Directly observed completion evidence.
|
|
401
|
+
*
|
|
402
|
+
* @category models
|
|
403
|
+
* @since 4.0.0
|
|
404
|
+
*/
|
|
405
|
+
export interface CompletionCoverageEvidence<Path extends string = string> {
|
|
406
|
+
readonly donePlans: number;
|
|
407
|
+
readonly recordObservations: number;
|
|
408
|
+
readonly paths: ReadonlyArray<Path>;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Directly observed history records and history-target transitions.
|
|
412
|
+
*
|
|
413
|
+
* @category models
|
|
414
|
+
* @since 4.0.0
|
|
415
|
+
*/
|
|
416
|
+
export interface HistoryCoverageEvidence<Path extends string = string> {
|
|
417
|
+
readonly recordObservations: number;
|
|
418
|
+
readonly recorded: ReadonlyArray<{
|
|
419
|
+
readonly path: Path;
|
|
420
|
+
readonly modes: ReadonlyArray<"shallow" | "deep">;
|
|
421
|
+
}>;
|
|
422
|
+
readonly targets: number;
|
|
423
|
+
readonly resolvedTargets: number;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Coverage computed only from observable machine definitions and planner traces.
|
|
427
|
+
*
|
|
428
|
+
* @category models
|
|
429
|
+
* @since 4.0.0
|
|
430
|
+
*/
|
|
431
|
+
export interface Coverage<M extends AnyMachine> {
|
|
432
|
+
readonly states: StateCoverage<StatePath<M>>;
|
|
433
|
+
readonly transitions: CoverageSummary<TransitionCoverageItem<StateNodePath<M>, Machine.Machine.TagOf<Machine.Machine.Events<M>[number]>, StateNodePath<M>>>;
|
|
434
|
+
readonly events: EventCoverage<Machine.Machine.TagOf<Machine.Machine.InputEvents<M>[number]>>;
|
|
435
|
+
readonly scenarios: ScenarioCoverage;
|
|
436
|
+
readonly logicalConfigurations: LogicalConfigurationCoverage;
|
|
437
|
+
readonly startup: {
|
|
438
|
+
readonly traces: number;
|
|
439
|
+
readonly withMicrosteps: number;
|
|
440
|
+
};
|
|
441
|
+
readonly microsteps: MicrostepCoverageEvidence;
|
|
442
|
+
readonly completion: CompletionCoverageEvidence<StatePath<M>>;
|
|
443
|
+
readonly history: HistoryCoverageEvidence<StateNodePath<M>>;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Computes deterministic, definition-aware coverage from completed planner
|
|
447
|
+
* traces. Finite declared sets report hits and misses; scenarios and logical
|
|
448
|
+
* configurations report observations only because their complete spaces are
|
|
449
|
+
* generally infinite.
|
|
450
|
+
*
|
|
451
|
+
* @category verification
|
|
452
|
+
* @since 4.0.0
|
|
453
|
+
*/
|
|
454
|
+
export declare const coverage: <M extends AnyMachine>(machine: M, traceOrTraces: Trace<M> | ReadonlyArray<Trace<M>>) => Coverage<M>;
|
|
455
|
+
/**
|
|
456
|
+
* The observation roles summarized for one logical graph node.
|
|
457
|
+
*
|
|
458
|
+
* @category models
|
|
459
|
+
* @since 4.0.0
|
|
460
|
+
*/
|
|
461
|
+
export interface ObservedGraphNodeObservations {
|
|
462
|
+
readonly total: number;
|
|
463
|
+
readonly startup: number;
|
|
464
|
+
readonly event: number;
|
|
465
|
+
readonly microstep: number;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* One full encoded logical snapshot stored in the observed Effect graph.
|
|
469
|
+
*
|
|
470
|
+
* @category models
|
|
471
|
+
* @since 4.0.0
|
|
472
|
+
*/
|
|
473
|
+
export interface ObservedGraphNode<M extends AnyMachine> {
|
|
474
|
+
readonly id: string;
|
|
475
|
+
readonly snapshot: Machine.Machine.Snapshot<Machine.Machine.States<M>>;
|
|
476
|
+
readonly encoded: Machine.Machine.EncodedSnapshot;
|
|
477
|
+
readonly configuration: ReadonlyArray<StatePath<M>>;
|
|
478
|
+
readonly observations: ObservedGraphNodeObservations;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Retained evidence for one microstep inside an observed graph edge.
|
|
482
|
+
*
|
|
483
|
+
* @category models
|
|
484
|
+
* @since 4.0.0
|
|
485
|
+
*/
|
|
486
|
+
export interface ObservedGraphMicrostep<M extends AnyMachine> {
|
|
487
|
+
readonly next: string;
|
|
488
|
+
readonly event: Machine.Machine.Event<M> | Machine.InitialEvent;
|
|
489
|
+
readonly transitions: Microstep<M, any>["transitions"];
|
|
490
|
+
readonly raisedEvents: ReadonlyArray<Machine.Machine.Event<M>>;
|
|
491
|
+
readonly emittedEvents: ReadonlyArray<Machine.Machine.Emit<M>>;
|
|
492
|
+
readonly exitPaths: ReadonlyArray<StatePath<M>>;
|
|
493
|
+
readonly entryPaths: ReadonlyArray<StatePath<M>>;
|
|
494
|
+
readonly changed: boolean;
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* A startup or public-event macrostep retained by the observed graph.
|
|
498
|
+
*
|
|
499
|
+
* @category models
|
|
500
|
+
* @since 4.0.0
|
|
501
|
+
*/
|
|
502
|
+
export type ObservedGraphEdge<M extends AnyMachine> = {
|
|
503
|
+
readonly _tag: "Startup";
|
|
504
|
+
readonly traceIndex: number;
|
|
505
|
+
readonly microsteps: ReadonlyArray<ObservedGraphMicrostep<M>>;
|
|
506
|
+
readonly completion: PlanCompletion<M>;
|
|
507
|
+
} | {
|
|
508
|
+
readonly _tag: "Event";
|
|
509
|
+
readonly traceIndex: number;
|
|
510
|
+
readonly eventIndex: number;
|
|
511
|
+
readonly event: Machine.Machine.InputEvent<M>;
|
|
512
|
+
readonly microsteps: ReadonlyArray<ObservedGraphMicrostep<M>>;
|
|
513
|
+
readonly completion: PlanCompletion<M>;
|
|
514
|
+
};
|
|
515
|
+
/**
|
|
516
|
+
* An Effect directed graph plus stable indexes useful to graph algorithms.
|
|
517
|
+
*
|
|
518
|
+
* @category models
|
|
519
|
+
* @since 4.0.0
|
|
520
|
+
*/
|
|
521
|
+
export interface ObservedGraph<M extends AnyMachine> {
|
|
522
|
+
readonly graph: Graph.DirectedGraph<ObservedGraphNode<M>, ObservedGraphEdge<M>>;
|
|
523
|
+
readonly nodesById: ReadonlyMap<string, Graph.NodeIndex>;
|
|
524
|
+
/** Settled post-startup nodes from which public event paths begin. */
|
|
525
|
+
readonly starts: ReadonlyArray<Graph.NodeIndex>;
|
|
526
|
+
/** Pre-settled startup sources connected to `starts` by `Startup` edges. */
|
|
527
|
+
readonly startupSources: ReadonlyArray<Graph.NodeIndex>;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Converts concrete planner traces into an observed logical-state graph.
|
|
531
|
+
* Nodes are deduplicated by the public snapshot encoding and every edge is a
|
|
532
|
+
* concrete startup or public-event macrostep. This intentionally does not
|
|
533
|
+
* claim to be a static or exhaustive graph of the machine.
|
|
534
|
+
*
|
|
535
|
+
* @category verification
|
|
536
|
+
* @since 4.0.0
|
|
537
|
+
*/
|
|
538
|
+
export declare const observedGraph: <M extends AnyMachine>(machine: M, traceOrTraces: Trace<M> | ReadonlyArray<Trace<M>>) => Effect.Effect<ObservedGraph<M>, Machine.MachineSchemaEncodeError, Machine.Machine.SnapshotEncodingServices<Machine.Machine.States<M>>>;
|
|
539
|
+
/**
|
|
540
|
+
* Independently checked families of planner laws.
|
|
541
|
+
*
|
|
542
|
+
* @category models
|
|
543
|
+
* @since 4.0.0
|
|
544
|
+
*/
|
|
545
|
+
export type VerificationLawGroup = "configuration" | "microsteps" | "completion" | "history" | "targetBounds";
|
|
546
|
+
/**
|
|
547
|
+
* Stable identifiers for individual planner laws.
|
|
548
|
+
*
|
|
549
|
+
* @category models
|
|
550
|
+
* @since 4.0.0
|
|
551
|
+
*/
|
|
552
|
+
export type VerificationLaw = "configuration.shape" | "configuration.path" | "configuration.schema" | "configuration.hierarchy" | "configuration.compound" | "configuration.parallel" | "configuration.duplicate" | "configuration.trace" | "microsteps.unique" | "microsteps.order" | "microsteps.activeBefore" | "microsteps.activeAfter" | "microsteps.changed" | "microsteps.continuity" | "microsteps.reentry" | "completion.record" | "completion.output" | "completion.done" | "history.record" | "history.mode" | "history.path" | "history.value" | "history.shallow" | "history.deep" | "targetBounds.definition" | "targetBounds.target";
|
|
553
|
+
/**
|
|
554
|
+
* One independently observed violation in a planner trace.
|
|
555
|
+
*
|
|
556
|
+
* @category models
|
|
557
|
+
* @since 4.0.0
|
|
558
|
+
*/
|
|
559
|
+
export interface VerificationViolation {
|
|
560
|
+
readonly law: VerificationLaw;
|
|
561
|
+
/** `undefined` identifies startup; otherwise this is the scenario event index. */
|
|
562
|
+
readonly eventIndex: number | undefined;
|
|
563
|
+
readonly microstepIndex?: number;
|
|
564
|
+
readonly path?: string;
|
|
565
|
+
readonly message: string;
|
|
566
|
+
}
|
|
567
|
+
/**
|
|
568
|
+
* All violations found while checking one trace.
|
|
569
|
+
*
|
|
570
|
+
* @category errors
|
|
571
|
+
* @since 4.0.0
|
|
572
|
+
*/
|
|
573
|
+
export { VerificationError } from "../internal/testing/machine/verification.js";
|
|
574
|
+
/**
|
|
575
|
+
* Selects law families for the single canonical verifier. All run by default.
|
|
576
|
+
*
|
|
577
|
+
* @category models
|
|
578
|
+
* @since 4.0.0
|
|
579
|
+
*/
|
|
580
|
+
export interface VerifyOptions {
|
|
581
|
+
readonly laws?: ReadonlyArray<VerificationLawGroup>;
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Verifies an executed trace using only public machine inspection and raw
|
|
585
|
+
* snapshot data. The verifier deliberately does not reuse planner
|
|
586
|
+
* normalization, encoding, finality, or other internal helpers.
|
|
587
|
+
*
|
|
588
|
+
* Every selected law is evaluated and returned in one structured error so a
|
|
589
|
+
* shrunk property-test counterexample retains all relevant evidence.
|
|
590
|
+
*
|
|
591
|
+
* @category verification
|
|
592
|
+
* @since 4.0.0
|
|
593
|
+
*/
|
|
594
|
+
export declare const verify: <M extends AnyMachine>(machine: M, trace: Trace<M>, options?: VerifyOptions) => Effect.Effect<void, VerificationError>;
|
|
595
|
+
/**
|
|
596
|
+
* Formats a trace as deterministic, line-oriented counterexample evidence.
|
|
597
|
+
*
|
|
598
|
+
* Object keys and map/set entries are canonicalized. Deferred effects are
|
|
599
|
+
* represented by counts so formatting never evaluates or inspects actions.
|
|
600
|
+
* Failures include their original cause and every available successful prefix.
|
|
601
|
+
*
|
|
602
|
+
* @category formatting
|
|
603
|
+
* @since 4.0.0
|
|
604
|
+
*/
|
|
605
|
+
export declare const formatTrace: <M extends AnyMachine, Cause>(trace: Trace<M> | RunFailure<Cause, M>) => string;
|
|
606
|
+
//# sourceMappingURL=MachineTest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MachineTest.d.ts","sourceRoot":"","sources":["../../src/testing/MachineTest.ts"],"names":[],"mappings":"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"}
|