@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.
- package/README.md +410 -17
- package/dist/Machine.d.ts +1191 -510
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +371 -565
- 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} +20 -95
- 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} +12 -61
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/{machineModel.js → machine/configuration.js} +250 -545
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +8 -8
- package/dist/internal/machine/errors.d.ts.map +1 -0
- package/dist/internal/{machineErrors.js → machine/errors.js} +8 -8
- 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 +676 -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} +11 -5
- package/dist/internal/machine/process.d.ts.map +1 -0
- package/dist/internal/machine/process.js +498 -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/machine/runtime.d.ts +255 -0
- package/dist/internal/machine/runtime.d.ts.map +1 -0
- package/dist/internal/machine/runtime.js +1489 -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/exploration.d.ts +30 -0
- package/dist/internal/testing/machine/exploration.d.ts.map +1 -0
- package/dist/internal/testing/machine/exploration.js +237 -0
- package/dist/internal/testing/machine/exploration.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/invariant.d.ts +31 -0
- package/dist/internal/testing/machine/invariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/invariant.js +214 -0
- package/dist/internal/testing/machine/invariant.js.map +1 -0
- package/dist/internal/testing/machine/probe.d.ts +26 -0
- package/dist/internal/testing/machine/probe.d.ts.map +1 -0
- package/dist/internal/testing/machine/probe.js +45 -0
- package/dist/internal/testing/machine/probe.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 +631 -0
- package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtime.js +726 -0
- package/dist/internal/testing/machine/runtime.js.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts +32 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.js +334 -0
- package/dist/internal/testing/machine/runtimeInvariant.js.map +1 -0
- package/dist/internal/testing/machine/trace.d.ts +17 -0
- package/dist/internal/testing/machine/trace.d.ts.map +1 -0
- package/dist/internal/testing/machine/trace.js +94 -0
- package/dist/internal/testing/machine/trace.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts +36 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -0
- package/dist/internal/testing/machine/verification.js +1375 -0
- package/dist/internal/testing/machine/verification.js.map +1 -0
- package/dist/testing/MachineTest.d.ts +1588 -0
- package/dist/testing/MachineTest.d.ts.map +1 -0
- package/dist/testing/MachineTest.js +406 -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} +56 -45
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
- package/dist/unstable/cluster/ClusterMachine.js +144 -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} +116 -50
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
- package/dist/unstable/reactivity/AtomMachine.js +164 -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 +316 -31
- package/package.json +28 -10
- 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.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 -797
- 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 +0 -125
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../../src/internal/machine/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal machine process integration.
|
|
3
3
|
*
|
|
4
|
-
* @since 4.0
|
|
4
|
+
* @since 0.4.0
|
|
5
5
|
*/
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import type * as Schema from "effect/Schema";
|
|
8
|
-
import type { ActionError, ExecutionServices, Machine, Runtime } from "
|
|
9
|
-
import
|
|
10
|
-
import
|
|
8
|
+
import type { ActionError, ExecutionServices, Machine, Runtime } from "../../Machine.js";
|
|
9
|
+
import { InfiniteTransitionError, MachineSchemaDecodeError, StartupError } from "./errors.js";
|
|
10
|
+
import type { StoppedError } from "./errors.js";
|
|
11
|
+
import * as internalRuntime from "./runtime.js";
|
|
11
12
|
type IsAny<A> = 0 extends (1 & A) ? true : false;
|
|
12
13
|
type ExcludeCompatibleRuntime<Requirements, Events, Emits> = Requirements extends Runtime.Requirement<infer RequiredEvents, infer RequiredEmits> ? IsAny<Requirements> extends true ? Requirements : [RequiredEvents] extends [Events] ? [RequiredEmits] extends [Emits] ? never : Requirements : Requirements : Requirements;
|
|
13
14
|
export declare const toProcessLogic: <const States extends Machine.StateSchemas, const Events extends ReadonlyArray<Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.TaggedSchema> = readonly [], const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.StateIdentifier<States> = Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.StateIdentifier<States> = never, Output = never>(machine: Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits>, ...args: [...Machine.InputArgs<Input>]) => internalRuntime.ProcessLogic<Machine.Snapshot<States>, Machine.EventOf<Events>, E | ActionError<R> | InfiniteTransitionError | MachineSchemaDecodeError | StoppedError, ExcludeCompatibleRuntime<Exclude<ExecutionServices<InitialR | R>, internalRuntime.MachineRuntime>, Machine.EventOf<Events>, Machine.EmitOf<Emits>>, Output, InitialE | E | ActionError<InitialR | R> | InfiniteTransitionError | MachineSchemaDecodeError | StartupError | StoppedError>;
|
|
15
|
+
/** @internal Test-only runtime strategy selection for a fresh machine. */
|
|
16
|
+
export declare const startWithRuntimeStrategyForTesting: (machine: Machine.Any, strategy: internalRuntime.ProcessRuntimeStrategy, ...args: ReadonlyArray<unknown>) => Effect.Effect<internalRuntime.MachineRef<any, any, any, any>, any, any>;
|
|
17
|
+
/** @internal Test-only runtime strategy selection for a resumed machine. */
|
|
18
|
+
export declare const resumeWithRuntimeStrategyForTesting: (machine: Machine.Any, snapshot: Machine.Snapshot<any>, strategy: internalRuntime.ProcessRuntimeStrategy) => Effect.Effect<internalRuntime.MachineRef<any, any, any, any>, any, any>;
|
|
14
19
|
export declare const start: <const States extends Machine.StateSchemas, const Events extends ReadonlyArray<Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.TaggedSchema> = readonly [], const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.StateIdentifier<States> = Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.StateIdentifier<States> = never, Output = never>(machine: Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits>, ...args: [...Machine.InputArgs<Input>]) => Effect.Effect<internalRuntime.MachineRef<Machine.Snapshot<States>, Machine.EventOf<Events>, E | ActionError<R> | InfiniteTransitionError | MachineSchemaDecodeError | StoppedError, Output>, InitialE | E | ActionError<InitialR | R> | InfiniteTransitionError | MachineSchemaDecodeError | StartupError | StoppedError, ExcludeCompatibleRuntime<Exclude<ExecutionServices<InitialR | R>, internalRuntime.MachineRuntime>, Machine.EventOf<Events>, Machine.EmitOf<Emits>>>;
|
|
20
|
+
export declare const resume: <const States extends Machine.StateSchemas, const Events extends ReadonlyArray<Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.TaggedSchema> = readonly [], const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.StateIdentifier<States> = Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.StateIdentifier<States> = never, Output = never>(machine: Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits>, snapshot: Machine.Snapshot<States>) => Effect.Effect<internalRuntime.MachineRef<Machine.Snapshot<States>, Machine.EventOf<Events>, E | ActionError<R> | InfiniteTransitionError | MachineSchemaDecodeError | StoppedError, Output>, MachineSchemaDecodeError, ExcludeCompatibleRuntime<Exclude<ExecutionServices<R>, internalRuntime.MachineRuntime>, Machine.EventOf<Events>, Machine.EmitOf<Emits>>>;
|
|
15
21
|
export {};
|
|
16
|
-
//# sourceMappingURL=
|
|
22
|
+
//# sourceMappingURL=process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal machine process integration.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Cause from "effect/Cause";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as Option from "effect/Option";
|
|
9
|
+
import * as CommandRuntime from "./commandRuntime.js";
|
|
10
|
+
import * as Configuration from "./configuration.js";
|
|
11
|
+
import { InfiniteTransitionError, MachineSchemaDecodeError, StartupError } from "./errors.js";
|
|
12
|
+
import * as ExecutionPlan from "./executionPlan.js";
|
|
13
|
+
import * as Invocation from "./invocation.js";
|
|
14
|
+
import * as internalPlanner from "./planner.js";
|
|
15
|
+
import * as internalRuntime from "./runtime.js";
|
|
16
|
+
import * as Serialization from "./serialization.js";
|
|
17
|
+
const runSequentialDiscard = (effects) => effects.length === 0
|
|
18
|
+
? Effect.void
|
|
19
|
+
: effects.length === 1
|
|
20
|
+
? effects[0]
|
|
21
|
+
: Effect.all(effects, { discard: true });
|
|
22
|
+
const acknowledgedPlan = (planned, snapshot) => ({
|
|
23
|
+
next: snapshot(planned.next),
|
|
24
|
+
commands: planned.commands,
|
|
25
|
+
emittedEvents: planned.emittedEvents,
|
|
26
|
+
microsteps: planned.microsteps.map((microstep) => {
|
|
27
|
+
const { transitions: _, ...evidence } = microstep;
|
|
28
|
+
return { ...evidence, next: snapshot(microstep.next) };
|
|
29
|
+
}),
|
|
30
|
+
done: planned.done,
|
|
31
|
+
output: planned.output
|
|
32
|
+
});
|
|
33
|
+
const invokeCapabilityCache = new WeakMap();
|
|
34
|
+
const hasInvokeCapability = (machine) => {
|
|
35
|
+
const cached = invokeCapabilityCache.get(machine);
|
|
36
|
+
if (cached !== undefined) {
|
|
37
|
+
return cached;
|
|
38
|
+
}
|
|
39
|
+
const hasInvokes = Object.values(machine.handlers).some((config) => config.invoke !== undefined);
|
|
40
|
+
invokeCapabilityCache.set(machine, hasInvokes);
|
|
41
|
+
return hasInvokes;
|
|
42
|
+
};
|
|
43
|
+
const makeChildlessCompiledDrain = (machine, checkInitialFinal) => {
|
|
44
|
+
const executionPlan = ExecutionPlan.compileExecutionPlan(machine);
|
|
45
|
+
return (context) => {
|
|
46
|
+
let current = context.state();
|
|
47
|
+
if (checkInitialFinal && internalPlanner.isFinalState(machine, current)) {
|
|
48
|
+
return internalPlanner.getFinalOutputEffect(machine, current, internalPlanner.InitialEvent).pipe(Effect.map(Option.some));
|
|
49
|
+
}
|
|
50
|
+
let configuration = context.executionState;
|
|
51
|
+
let liveRuntime;
|
|
52
|
+
let loop;
|
|
53
|
+
loop = Effect.suspend(() => {
|
|
54
|
+
const pending = context.pollMessage();
|
|
55
|
+
if (Option.isNone(pending)) {
|
|
56
|
+
context.executionState = undefined;
|
|
57
|
+
return Effect.succeed(Option.none());
|
|
58
|
+
}
|
|
59
|
+
const message = pending.value;
|
|
60
|
+
const acknowledged = internalRuntime.isAcknowledgedMessage(message);
|
|
61
|
+
const event = acknowledged ? message.event : message;
|
|
62
|
+
const before = current;
|
|
63
|
+
let planned;
|
|
64
|
+
try {
|
|
65
|
+
planned = executionPlan.plan(configuration ?? executionPlan.fromConfiguration(Configuration.normalizeConfigurationSync(machine, current)), event, acknowledged);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
return error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError
|
|
69
|
+
? Effect.fail(error)
|
|
70
|
+
: Effect.die(error);
|
|
71
|
+
}
|
|
72
|
+
configuration = planned.next;
|
|
73
|
+
context.executionState = configuration;
|
|
74
|
+
if (planned.microsteps.length === 0) {
|
|
75
|
+
if (acknowledged) {
|
|
76
|
+
context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: current });
|
|
77
|
+
}
|
|
78
|
+
return loop;
|
|
79
|
+
}
|
|
80
|
+
const next = executionPlan.snapshot(planned.next);
|
|
81
|
+
const beforeCommit = planned.commands.length === 0
|
|
82
|
+
? undefined
|
|
83
|
+
: CommandRuntime.runCommands(planned.commands, context.scope);
|
|
84
|
+
const afterCommit = planned.emittedEvents.length === 0
|
|
85
|
+
? undefined
|
|
86
|
+
: CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, context.scope));
|
|
87
|
+
const commit = () => {
|
|
88
|
+
const notification = context.commit(next);
|
|
89
|
+
current = next;
|
|
90
|
+
return notification;
|
|
91
|
+
};
|
|
92
|
+
const continueAfterCommit = () => {
|
|
93
|
+
const continued = Effect.suspend(() => {
|
|
94
|
+
if (acknowledged) {
|
|
95
|
+
context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: next });
|
|
96
|
+
}
|
|
97
|
+
return planned.done ? Effect.succeed(Option.some(planned.output)) : loop;
|
|
98
|
+
});
|
|
99
|
+
return afterCommit === undefined ? continued : afterCommit.pipe(Effect.andThen(continued));
|
|
100
|
+
};
|
|
101
|
+
const commitAndContinue = () => {
|
|
102
|
+
const notification = commit();
|
|
103
|
+
const continued = continueAfterCommit();
|
|
104
|
+
const effect = notification === undefined ? continued : notification.pipe(Effect.andThen(continued));
|
|
105
|
+
return notification === undefined && afterCommit === undefined
|
|
106
|
+
? effect
|
|
107
|
+
: context.runAfterChanges(effect);
|
|
108
|
+
};
|
|
109
|
+
if (beforeCommit === undefined) {
|
|
110
|
+
return commitAndContinue();
|
|
111
|
+
}
|
|
112
|
+
return context.runAfterChanges(beforeCommit.pipe(Effect.andThen(Effect.suspend(commitAndContinue))));
|
|
113
|
+
});
|
|
114
|
+
return internalRuntime.provideMachineRuntime(loop, context.scope);
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
class InvokeExecutionState {
|
|
118
|
+
initialized = false;
|
|
119
|
+
initial;
|
|
120
|
+
constructor(initial) {
|
|
121
|
+
this.initial = initial;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const makeInvokingCompiledDrain = (machine, checkInitialFinal) => {
|
|
125
|
+
const executionPlan = ExecutionPlan.compileExecutionPlan(machine);
|
|
126
|
+
return (context) => {
|
|
127
|
+
let current = context.state();
|
|
128
|
+
if (checkInitialFinal && internalPlanner.isFinalState(machine, current)) {
|
|
129
|
+
return internalPlanner.getFinalOutputEffect(machine, current, internalPlanner.InitialEvent).pipe(Effect.map(Option.some));
|
|
130
|
+
}
|
|
131
|
+
const scope = context.scope;
|
|
132
|
+
const stored = context.executionState;
|
|
133
|
+
const execution = stored instanceof InvokeExecutionState
|
|
134
|
+
? stored
|
|
135
|
+
: new InvokeExecutionState();
|
|
136
|
+
context.executionState = execution;
|
|
137
|
+
let liveRuntime;
|
|
138
|
+
let configuration;
|
|
139
|
+
let loop;
|
|
140
|
+
loop = Effect.suspend(() => {
|
|
141
|
+
const pending = context.pollMessage();
|
|
142
|
+
if (Option.isNone(pending)) {
|
|
143
|
+
configuration = undefined;
|
|
144
|
+
return Effect.succeed(Option.none());
|
|
145
|
+
}
|
|
146
|
+
const message = pending.value;
|
|
147
|
+
const acknowledged = internalRuntime.isAcknowledgedMessage(message);
|
|
148
|
+
const event = acknowledged ? message.event : message;
|
|
149
|
+
const before = current;
|
|
150
|
+
let planned;
|
|
151
|
+
try {
|
|
152
|
+
planned = executionPlan.plan(configuration ??
|
|
153
|
+
executionPlan.fromConfiguration(Configuration.normalizeConfigurationSync(machine, current)), event, acknowledged);
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
return error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError
|
|
157
|
+
? Effect.fail(error)
|
|
158
|
+
: Effect.die(error);
|
|
159
|
+
}
|
|
160
|
+
configuration = planned.next;
|
|
161
|
+
if (planned.microsteps.length === 0) {
|
|
162
|
+
if (acknowledged) {
|
|
163
|
+
context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: current });
|
|
164
|
+
}
|
|
165
|
+
return loop;
|
|
166
|
+
}
|
|
167
|
+
const changed = planned.microsteps.some((step) => step.changed);
|
|
168
|
+
const exitPaths = changed ? planned.microsteps.flatMap((step) => step.exitPaths) : [];
|
|
169
|
+
const entryEvents = new Map();
|
|
170
|
+
if (changed) {
|
|
171
|
+
for (const step of planned.microsteps) {
|
|
172
|
+
if (step.changed) {
|
|
173
|
+
for (const path of step.entryPaths) {
|
|
174
|
+
entryEvents.set(path, step.event);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
const activeConfiguration = executionPlan.toConfiguration(planned.next);
|
|
180
|
+
const next = executionPlan.snapshot(planned.next);
|
|
181
|
+
const beforeCommit = [];
|
|
182
|
+
if (planned.commands.length > 0) {
|
|
183
|
+
beforeCommit.push(CommandRuntime.runCommands(planned.commands, scope));
|
|
184
|
+
}
|
|
185
|
+
if (changed) {
|
|
186
|
+
const stopping = context.ownedChildren.stopPaths(exitPaths);
|
|
187
|
+
if (stopping !== undefined)
|
|
188
|
+
beforeCommit.push(stopping);
|
|
189
|
+
}
|
|
190
|
+
const afterCommit = [];
|
|
191
|
+
if (planned.emittedEvents.length > 0) {
|
|
192
|
+
afterCommit.push(CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, scope)));
|
|
193
|
+
}
|
|
194
|
+
if (planned.done) {
|
|
195
|
+
afterCommit.push(context.ownedChildren.stopAll());
|
|
196
|
+
}
|
|
197
|
+
else if (changed) {
|
|
198
|
+
for (const [path, entryEvent] of entryEvents) {
|
|
199
|
+
const starting = Invocation.startAll(machine, scope, context.ownedChildren, activeConfiguration, [path], entryEvent);
|
|
200
|
+
if (starting !== undefined)
|
|
201
|
+
afterCommit.push(starting);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const commit = () => {
|
|
205
|
+
const notification = context.commit(next);
|
|
206
|
+
current = next;
|
|
207
|
+
return notification;
|
|
208
|
+
};
|
|
209
|
+
const continueAfterCommit = () => {
|
|
210
|
+
const continued = Effect.suspend(() => {
|
|
211
|
+
if (acknowledged) {
|
|
212
|
+
context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: next });
|
|
213
|
+
}
|
|
214
|
+
return planned.done ? Effect.succeed(Option.some(planned.output)) : loop;
|
|
215
|
+
});
|
|
216
|
+
return afterCommit.length === 0
|
|
217
|
+
? continued
|
|
218
|
+
: runSequentialDiscard(afterCommit).pipe(Effect.andThen(continued));
|
|
219
|
+
};
|
|
220
|
+
const commitAndContinue = () => {
|
|
221
|
+
const notification = commit();
|
|
222
|
+
const continued = continueAfterCommit();
|
|
223
|
+
const effect = notification === undefined ? continued : notification.pipe(Effect.andThen(continued));
|
|
224
|
+
return notification === undefined && afterCommit.length === 0
|
|
225
|
+
? effect
|
|
226
|
+
: context.runAfterChanges(effect);
|
|
227
|
+
};
|
|
228
|
+
if (beforeCommit.length === 0) {
|
|
229
|
+
return commitAndContinue();
|
|
230
|
+
}
|
|
231
|
+
return context.runAfterChanges(runSequentialDiscard(beforeCommit).pipe(Effect.andThen(Effect.suspend(commitAndContinue))));
|
|
232
|
+
});
|
|
233
|
+
const initialize = () => {
|
|
234
|
+
if (execution.initialized) {
|
|
235
|
+
return loop;
|
|
236
|
+
}
|
|
237
|
+
const seeded = execution.initial;
|
|
238
|
+
const initialConfiguration = seeded?.activeConfiguration ??
|
|
239
|
+
Configuration.normalizeConfigurationSync(machine, current);
|
|
240
|
+
configuration = seeded?.configuration ?? executionPlan.fromConfiguration(initialConfiguration);
|
|
241
|
+
const starting = Invocation.startAll(machine, scope, context.ownedChildren, initialConfiguration, seeded?.entryPaths ?? Configuration.getInitialEntryPaths(machine, initialConfiguration), internalPlanner.InitialEvent);
|
|
242
|
+
execution.initial = undefined;
|
|
243
|
+
execution.initialized = true;
|
|
244
|
+
return starting === undefined ? loop : starting.pipe(Effect.andThen(loop));
|
|
245
|
+
};
|
|
246
|
+
return internalRuntime.provideMachineRuntime(Effect.suspend(initialize), scope);
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
const makeProcessLogic = (machine, entry) => {
|
|
250
|
+
const hasInvokes = hasInvokeCapability(machine);
|
|
251
|
+
const executionPlan = ExecutionPlan.compileExecutionPlan(machine);
|
|
252
|
+
const initialArgs = entry._tag === "Initial" ? entry.args : [];
|
|
253
|
+
const compiledInitial = entry._tag === "Initial" ? executionPlan.initial : undefined;
|
|
254
|
+
const makeCompiledInitial = compiledInitial === undefined ? undefined : () => {
|
|
255
|
+
try {
|
|
256
|
+
const planned = compiledInitial(initialArgs);
|
|
257
|
+
const result = {
|
|
258
|
+
state: planned.state,
|
|
259
|
+
done: planned.done,
|
|
260
|
+
output: planned.output
|
|
261
|
+
};
|
|
262
|
+
return hasInvokes
|
|
263
|
+
? {
|
|
264
|
+
...result,
|
|
265
|
+
executionState: new InvokeExecutionState({
|
|
266
|
+
configuration: planned.configuration,
|
|
267
|
+
activeConfiguration: planned.activeConfiguration,
|
|
268
|
+
entryPaths: planned.initialEntryPaths
|
|
269
|
+
})
|
|
270
|
+
}
|
|
271
|
+
: result;
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
throw error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError
|
|
275
|
+
? error
|
|
276
|
+
: new StartupError({ cause: Cause.die(error) });
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
const makeInitial = (scope) => compiledInitial === undefined
|
|
280
|
+
? internalRuntime.provideMachineRuntime(internalPlanner.planInitial(machine, ...initialArgs).pipe(Effect.flatMap((planned) => {
|
|
281
|
+
const commands = planned.commands.length === 0
|
|
282
|
+
? undefined
|
|
283
|
+
: CommandRuntime.runCommands(planned.commands, scope);
|
|
284
|
+
const emitted = planned.emittedEvents.length === 0
|
|
285
|
+
? undefined
|
|
286
|
+
: CommandRuntime.runEmittedEvents(planned.emittedEvents, CommandRuntime.makeLiveRuntime(machine, scope));
|
|
287
|
+
const result = Effect.succeed({
|
|
288
|
+
state: planned.state,
|
|
289
|
+
done: planned.done,
|
|
290
|
+
output: planned.output
|
|
291
|
+
});
|
|
292
|
+
return commands === undefined
|
|
293
|
+
? emitted === undefined ? result : emitted.pipe(Effect.andThen(result))
|
|
294
|
+
: emitted === undefined
|
|
295
|
+
? commands.pipe(Effect.andThen(result))
|
|
296
|
+
: commands.pipe(Effect.andThen(emitted), Effect.andThen(result));
|
|
297
|
+
})), scope)
|
|
298
|
+
: Effect.try({ try: makeCompiledInitial, catch: (error) => error });
|
|
299
|
+
return ({
|
|
300
|
+
execution: {
|
|
301
|
+
_tag: "Compiled",
|
|
302
|
+
childless: !hasInvokes,
|
|
303
|
+
initial: entry._tag === "Initial" ? makeInitial : undefined,
|
|
304
|
+
initialSync: makeCompiledInitial,
|
|
305
|
+
drain: {
|
|
306
|
+
_tag: "Owned",
|
|
307
|
+
run: hasInvokes
|
|
308
|
+
? makeInvokingCompiledDrain(machine, entry._tag === "Resume")
|
|
309
|
+
: makeChildlessCompiledDrain(machine, entry._tag === "Resume")
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
initial: (scope) => entry._tag === "Resume"
|
|
313
|
+
? internalRuntime.provideMachineRuntime(Serialization.normalizeSnapshotEffect(machine, entry.snapshot), scope)
|
|
314
|
+
: makeInitial(scope).pipe(Effect.map((initialized) => initialized.state)),
|
|
315
|
+
run: (context) => internalRuntime.provideMachineRuntime(Effect.gen(function* () {
|
|
316
|
+
const { completeMessage, pollMessage, receiveMessage, state, setState } = context;
|
|
317
|
+
if (completeMessage === undefined || pollMessage === undefined || receiveMessage === undefined) {
|
|
318
|
+
return yield* Effect.die(new Error("Machine statechart started without acknowledged mailbox access"));
|
|
319
|
+
}
|
|
320
|
+
let terminal;
|
|
321
|
+
let current = yield* state;
|
|
322
|
+
if (internalPlanner.isFinalState(machine, current)) {
|
|
323
|
+
return yield* internalPlanner.getFinalOutputEffect(machine, current, internalPlanner.InitialEvent);
|
|
324
|
+
}
|
|
325
|
+
if (!hasInvokes) {
|
|
326
|
+
// A queued batch is produced entirely by this worker, so its
|
|
327
|
+
// configuration is already validated. Drop both caches before
|
|
328
|
+
// blocking again so idle machines retain only the public snapshot.
|
|
329
|
+
// Keeping the loop in this generator avoids a suspended generator
|
|
330
|
+
// per iteration; every iteration still crosses Effect boundaries,
|
|
331
|
+
// so the Effect scheduler remains responsible for cooperative yield.
|
|
332
|
+
let configuration;
|
|
333
|
+
let pendingMessage = Option.none();
|
|
334
|
+
let liveRuntime;
|
|
335
|
+
while (terminal === undefined) {
|
|
336
|
+
const message = Option.isSome(pendingMessage) ? pendingMessage.value : yield* receiveMessage;
|
|
337
|
+
pendingMessage = Option.none();
|
|
338
|
+
const acknowledged = internalRuntime.isAcknowledgedMessage(message);
|
|
339
|
+
const event = acknowledged ? message.event : message;
|
|
340
|
+
const before = current;
|
|
341
|
+
let planned;
|
|
342
|
+
try {
|
|
343
|
+
planned = internalPlanner.planConfiguration(machine, configuration ?? Configuration.normalizeConfigurationSync(machine, current), event);
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
if (error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError) {
|
|
347
|
+
return yield* error;
|
|
348
|
+
}
|
|
349
|
+
throw error;
|
|
350
|
+
}
|
|
351
|
+
configuration = planned.next;
|
|
352
|
+
if (planned.microsteps.length > 0) {
|
|
353
|
+
const next = Configuration.snapshotFromConfiguration(machine, planned.next);
|
|
354
|
+
yield* CommandRuntime.runCommands(planned.commands, context);
|
|
355
|
+
yield* setState(next);
|
|
356
|
+
current = next;
|
|
357
|
+
if (planned.emittedEvents.length > 0) {
|
|
358
|
+
yield* CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, context));
|
|
359
|
+
}
|
|
360
|
+
if (planned.done) {
|
|
361
|
+
terminal = { output: planned.output };
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (acknowledged) {
|
|
365
|
+
completeMessage({
|
|
366
|
+
before,
|
|
367
|
+
plan: acknowledgedPlan(planned, (state) => Configuration.snapshotFromConfiguration(machine, state)),
|
|
368
|
+
after: current
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
if (terminal === undefined) {
|
|
372
|
+
pendingMessage = yield* pollMessage;
|
|
373
|
+
if (Option.isNone(pendingMessage)) {
|
|
374
|
+
configuration = undefined;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
if (terminal === undefined) {
|
|
379
|
+
return yield* Effect.die(new Error("Machine process stopped receiving events before reaching a terminal configuration"));
|
|
380
|
+
}
|
|
381
|
+
return terminal.output;
|
|
382
|
+
}
|
|
383
|
+
// The execution descriptor requests this owner-local capability only
|
|
384
|
+
// when an invoking statechart is deliberately run by the generic
|
|
385
|
+
// reference strategy.
|
|
386
|
+
const ownedChildren = context.ownedChildren;
|
|
387
|
+
if (ownedChildren === undefined) {
|
|
388
|
+
return yield* Effect.die(new Error("Invoking statechart started without an owned child runtime"));
|
|
389
|
+
}
|
|
390
|
+
const startInvokes = (configuration, paths, event) => (Invocation.startAll(machine, context, ownedChildren, configuration, paths, event) ?? Effect.void);
|
|
391
|
+
const stopInvokes = (paths) => ownedChildren.stopPaths(paths) ?? Effect.void;
|
|
392
|
+
return yield* Effect.gen(function* () {
|
|
393
|
+
let configuration = yield* Configuration
|
|
394
|
+
.normalizeConfigurationEffect(machine, current);
|
|
395
|
+
yield* startInvokes(configuration, Configuration.getInitialEntryPaths(machine, configuration), internalPlanner.InitialEvent);
|
|
396
|
+
// As above, keep the normalized configuration only while this
|
|
397
|
+
// worker can continue draining an already queued batch.
|
|
398
|
+
configuration = undefined;
|
|
399
|
+
let pendingMessage = Option.none();
|
|
400
|
+
let liveRuntime;
|
|
401
|
+
// Match the compact non-invoke loop while retaining state-scoped
|
|
402
|
+
// child lifecycle work at the same ordered Effect boundaries.
|
|
403
|
+
while (terminal === undefined) {
|
|
404
|
+
const message = Option.isSome(pendingMessage) ? pendingMessage.value : yield* receiveMessage;
|
|
405
|
+
pendingMessage = Option.none();
|
|
406
|
+
const acknowledged = internalRuntime.isAcknowledgedMessage(message);
|
|
407
|
+
const event = acknowledged ? message.event : message;
|
|
408
|
+
const before = current;
|
|
409
|
+
let planned;
|
|
410
|
+
try {
|
|
411
|
+
planned = internalPlanner.planConfiguration(machine, configuration ?? Configuration.normalizeConfigurationSync(machine, current), event);
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
if (error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError) {
|
|
415
|
+
return yield* error;
|
|
416
|
+
}
|
|
417
|
+
throw error;
|
|
418
|
+
}
|
|
419
|
+
configuration = planned.next;
|
|
420
|
+
if (planned.microsteps.length > 0) {
|
|
421
|
+
const changed = planned.microsteps.some((step) => step.changed);
|
|
422
|
+
const exitPaths = planned.microsteps.flatMap((step) => step.exitPaths);
|
|
423
|
+
const entryEvents = new Map();
|
|
424
|
+
for (const step of planned.microsteps) {
|
|
425
|
+
if (step.changed) {
|
|
426
|
+
for (const path of step.entryPaths) {
|
|
427
|
+
entryEvents.set(path, step.event);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
const next = Configuration.snapshotFromConfiguration(machine, planned.next);
|
|
432
|
+
yield* CommandRuntime.runCommands(planned.commands, context);
|
|
433
|
+
if (changed) {
|
|
434
|
+
yield* stopInvokes(exitPaths);
|
|
435
|
+
}
|
|
436
|
+
yield* setState(next);
|
|
437
|
+
current = next;
|
|
438
|
+
if (planned.emittedEvents.length > 0) {
|
|
439
|
+
yield* CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, context));
|
|
440
|
+
}
|
|
441
|
+
if (planned.done) {
|
|
442
|
+
terminal = { output: planned.output };
|
|
443
|
+
yield* ownedChildren.stopAll();
|
|
444
|
+
}
|
|
445
|
+
else if (changed) {
|
|
446
|
+
for (const [path, entryEvent] of entryEvents) {
|
|
447
|
+
yield* startInvokes(planned.next, [path], entryEvent);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
if (acknowledged) {
|
|
452
|
+
completeMessage({
|
|
453
|
+
before,
|
|
454
|
+
plan: acknowledgedPlan(planned, (state) => Configuration.snapshotFromConfiguration(machine, state)),
|
|
455
|
+
after: current
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
if (terminal === undefined) {
|
|
459
|
+
pendingMessage = yield* pollMessage;
|
|
460
|
+
if (Option.isNone(pendingMessage)) {
|
|
461
|
+
configuration = undefined;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
if (terminal === undefined) {
|
|
466
|
+
return yield* Effect.die(new Error("Machine process stopped receiving events before reaching a terminal configuration"));
|
|
467
|
+
}
|
|
468
|
+
return terminal.output;
|
|
469
|
+
}).pipe(Effect.onExit(() => ownedChildren.stopAll()));
|
|
470
|
+
}), context)
|
|
471
|
+
});
|
|
472
|
+
};
|
|
473
|
+
const initialProcessLogicCache = new WeakMap();
|
|
474
|
+
export const toProcessLogic = (machine, ...args) => {
|
|
475
|
+
if (args.length > 0) {
|
|
476
|
+
return makeProcessLogic(machine, { _tag: "Initial", args });
|
|
477
|
+
}
|
|
478
|
+
// The execution descriptor stores process-local invoke sessions by each
|
|
479
|
+
// runtime address and evaluates initialization/services on every start. A
|
|
480
|
+
// zero-argument descriptor is therefore safe to share for the lifetime of
|
|
481
|
+
// its immutable machine definition. Input-bearing and resumed starts retain
|
|
482
|
+
// their instance-specific entry values below.
|
|
483
|
+
const cached = initialProcessLogicCache.get(machine);
|
|
484
|
+
if (cached !== undefined) {
|
|
485
|
+
return cached;
|
|
486
|
+
}
|
|
487
|
+
const logic = makeProcessLogic(machine, { _tag: "Initial", args });
|
|
488
|
+
initialProcessLogicCache.set(machine, logic);
|
|
489
|
+
return logic;
|
|
490
|
+
};
|
|
491
|
+
const toResumedProcessLogic = (machine, snapshot) => makeProcessLogic(machine, { _tag: "Resume", snapshot });
|
|
492
|
+
/** @internal Test-only runtime strategy selection for a fresh machine. */
|
|
493
|
+
export const startWithRuntimeStrategyForTesting = (machine, strategy, ...args) => internalRuntime.startProcessWithStrategyForTesting(toProcessLogic(machine, ...args), strategy, machine.id === undefined ? undefined : { id: machine.id });
|
|
494
|
+
/** @internal Test-only runtime strategy selection for a resumed machine. */
|
|
495
|
+
export const resumeWithRuntimeStrategyForTesting = (machine, snapshot, strategy) => internalRuntime.startProcessWithStrategyForTesting(toResumedProcessLogic(machine, snapshot), strategy, machine.id === undefined ? undefined : { id: machine.id });
|
|
496
|
+
export const start = (machine, ...args) => internalRuntime.startProcess(toProcessLogic(machine, ...args), machine.id === undefined ? undefined : { id: machine.id });
|
|
497
|
+
export const resume = (machine, snapshot) => internalRuntime.startProcess(toResumedProcessLogic(machine, snapshot), machine.id === undefined ? undefined : { id: machine.id });
|
|
498
|
+
//# sourceMappingURL=process.js.map
|