@typeonce/effect-machine 0.6.0 → 0.7.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 (54) hide show
  1. package/README.md +4 -3
  2. package/dist/Machine.d.ts +24 -6
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js.map +1 -1
  5. package/dist/internal/machine/atom.d.ts +5 -0
  6. package/dist/internal/machine/atom.d.ts.map +1 -1
  7. package/dist/internal/machine/atom.js +6 -3
  8. package/dist/internal/machine/atom.js.map +1 -1
  9. package/dist/internal/machine/machine.d.ts.map +1 -1
  10. package/dist/internal/machine/machine.js +1 -1
  11. package/dist/internal/machine/machine.js.map +1 -1
  12. package/dist/unstable/reactivity/AtomMachine.d.ts +26 -0
  13. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -1
  14. package/dist/unstable/reactivity/AtomMachine.js +23 -0
  15. package/dist/unstable/reactivity/AtomMachine.js.map +1 -1
  16. package/docs/agent-guide.md +14 -0
  17. package/package.json +5 -5
  18. package/src/Machine.ts +6909 -0
  19. package/src/index.ts +1 -0
  20. package/src/internal/machine/activities.ts +108 -0
  21. package/src/internal/machine/atom.ts +684 -0
  22. package/src/internal/machine/cluster.ts +394 -0
  23. package/src/internal/machine/command.ts +58 -0
  24. package/src/internal/machine/commandRuntime.ts +43 -0
  25. package/src/internal/machine/configuration.ts +1331 -0
  26. package/src/internal/machine/errors.ts +87 -0
  27. package/src/internal/machine/executionPlan.ts +996 -0
  28. package/src/internal/machine/invocation.ts +119 -0
  29. package/src/internal/machine/machine.ts +1750 -0
  30. package/src/internal/machine/planner.ts +1933 -0
  31. package/src/internal/machine/process.ts +906 -0
  32. package/src/internal/machine/protocol.ts +322 -0
  33. package/src/internal/machine/readiness.ts +10 -0
  34. package/src/internal/machine/runtime.ts +2512 -0
  35. package/src/internal/machine/serialization.ts +498 -0
  36. package/src/internal/machine/stateDefinition.ts +270 -0
  37. package/src/internal/machine/symbols.ts +2 -0
  38. package/src/internal/machine/topology.ts +479 -0
  39. package/src/internal/testing/machine/arbitrary.ts +102 -0
  40. package/src/internal/testing/machine/exploration.ts +331 -0
  41. package/src/internal/testing/machine/finiteModel.ts +1498 -0
  42. package/src/internal/testing/machine/invariant.ts +372 -0
  43. package/src/internal/testing/machine/probe.ts +79 -0
  44. package/src/internal/testing/machine/referenceModel.ts +1505 -0
  45. package/src/internal/testing/machine/runtime.ts +1710 -0
  46. package/src/internal/testing/machine/runtimeInvariant.ts +486 -0
  47. package/src/internal/testing/machine/trace.ts +150 -0
  48. package/src/internal/testing/machine/verification.ts +1890 -0
  49. package/src/testing/MachineTest.ts +2067 -0
  50. package/src/testing/index.ts +7 -0
  51. package/src/unstable/cluster/ClusterMachine.ts +390 -0
  52. package/src/unstable/cluster/index.ts +1 -0
  53. package/src/unstable/reactivity/AtomMachine.ts +696 -0
  54. package/src/unstable/reactivity/index.ts +1 -0
package/README.md CHANGED
@@ -204,9 +204,10 @@ Binding a shared runtime once is the canonical form for service-backed
204
204
  applications. Service-free machines can use `AtomMachine.make(Counter)`.
205
205
 
206
206
  The bridge exposes `ref`, `snapshot`, `state`, fail-aware `result`, writable
207
- `send` and `stop` atoms, and `child(descriptor)`. Use `AtomMachine.select` and
208
- `AtomMachine.matches` for typed, equality-aware derivations. React applications
209
- using `@effect/atom-react` need a `RegistryProvider`.
207
+ `send` and `stop` atoms, and `child(descriptor)`. Use `AtomMachine.select`,
208
+ `AtomMachine.selectSnapshot`, and `AtomMachine.matches` for typed,
209
+ equality-aware derivations. React applications using `@effect/atom-react` need
210
+ a `RegistryProvider`.
210
211
 
211
212
  ## Persistence
212
213
 
package/dist/Machine.d.ts CHANGED
@@ -1423,11 +1423,17 @@ export declare namespace Machine {
1423
1423
  /** Type-safe builders for constructing valid initial snapshots. */
1424
1424
  readonly initial: InitialBuilder<States>;
1425
1425
  /**
1426
- * Returns the decoded value for an active state path.
1426
+ * Returns the decoded value for an active state path. The supplied
1427
+ * snapshot may be a complete root snapshot or a snapshot previously
1428
+ * extracted from this definition. Extracted snapshots accept only their
1429
+ * own absolute path and descendant paths.
1427
1430
  *
1428
1431
  * @since 0.4.0
1429
1432
  */
1430
- readonly get: <Path extends StateIdentifier<States>>(snapshot: Snapshot<States>, path: Path) => Option.Option<StateByIdentifier<States, Path>>;
1433
+ readonly get: {
1434
+ <Path extends StateIdentifier<States>>(snapshot: Snapshot<States>, path: Path): Option.Option<StateByIdentifier<States, Path>>;
1435
+ <const From extends StateIdentifier<States>, const Path extends StateIdentifier<States>>(snapshot: SnapshotByIdentifier<States, From>, path: Path & (Path extends NoInfer<From> | `${NoInfer<From>}.${string}` ? unknown : never)): Option.Option<StateByIdentifier<States, Path>>;
1436
+ };
1431
1437
  /**
1432
1438
  * Returns the decoded value for an active state path together with all of
1433
1439
  * its active parent values.
@@ -1440,17 +1446,29 @@ export declare namespace Machine {
1440
1446
  */
1441
1447
  readonly getWithParents: <Path extends StateIdentifier<States>>(snapshot: Snapshot<States>, path: Path) => Option.Option<StateWithParents<States, Path>>;
1442
1448
  /**
1443
- * Returns the snapshot for an active state path.
1449
+ * Returns the snapshot for an active state path. The supplied snapshot may
1450
+ * be a complete root snapshot or a snapshot previously extracted from this
1451
+ * definition. Extracted snapshots accept only their own absolute path and
1452
+ * descendant paths.
1444
1453
  *
1445
1454
  * @since 0.4.0
1446
1455
  */
1447
- readonly getSnapshot: <Path extends StateIdentifier<States>>(snapshot: Snapshot<States>, path: Path) => Option.Option<SnapshotByIdentifier<States, Path>>;
1456
+ readonly getSnapshot: {
1457
+ <Path extends StateIdentifier<States>>(snapshot: Snapshot<States>, path: Path): Option.Option<SnapshotByIdentifier<States, Path>>;
1458
+ <const From extends StateIdentifier<States>, const Path extends StateIdentifier<States>>(snapshot: SnapshotByIdentifier<States, From>, path: Path & (Path extends NoInfer<From> | `${NoInfer<From>}.${string}` ? unknown : never)): Option.Option<SnapshotByIdentifier<States, Path>>;
1459
+ };
1448
1460
  /**
1449
- * Returns whether a state path is active in the snapshot.
1461
+ * Returns whether a state path is active in the snapshot. The supplied
1462
+ * snapshot may be a complete root snapshot or a snapshot previously
1463
+ * extracted from this definition. Extracted snapshots accept only their
1464
+ * own absolute path and descendant paths.
1450
1465
  *
1451
1466
  * @since 0.4.0
1452
1467
  */
1453
- readonly matches: <Path extends StateIdentifier<States>>(snapshot: Snapshot<States>, path: Path) => boolean;
1468
+ readonly matches: {
1469
+ <Path extends StateIdentifier<States>>(snapshot: Snapshot<States>, path: Path): boolean;
1470
+ <const From extends StateIdentifier<States>, const Path extends StateIdentifier<States>>(snapshot: SnapshotByIdentifier<States, From>, path: Path & (Path extends NoInfer<From> | `${NoInfer<From>}.${string}` ? unknown : never)): boolean;
1471
+ };
1454
1472
  }
1455
1473
  /**
1456
1474
  * Validates the nested shape of state schema definitions.