@directive-run/core 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/dist/adapter-utils.cjs.map +1 -1
- package/dist/adapter-utils.d.cts +1 -1
- package/dist/adapter-utils.d.ts +1 -1
- package/dist/adapter-utils.js.map +1 -1
- package/dist/index.cjs +19 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -6
- package/dist/index.d.ts +13 -6
- package/dist/index.js +19 -19
- package/dist/index.js.map +1 -1
- package/dist/migration.cjs.map +1 -1
- package/dist/migration.js.map +1 -1
- package/dist/plugins/index.cjs +2 -2
- package/dist/plugins/index.cjs.map +1 -1
- package/dist/plugins/index.d.cts +103 -23
- package/dist/plugins/index.d.ts +103 -23
- package/dist/plugins/index.js +2 -2
- package/dist/plugins/index.js.map +1 -1
- package/dist/{plugins-KKRG7lDP.d.cts → plugins-cDWoL7A7.d.cts} +146 -47
- package/dist/{plugins-KKRG7lDP.d.ts → plugins-cDWoL7A7.d.ts} +146 -47
- package/dist/testing.cjs +3 -3
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +3 -3
- package/dist/testing.js.map +1 -1
- package/dist/worker.cjs +3 -3
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.js +3 -3
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
|
@@ -250,7 +250,7 @@ interface ConstraintDef<S extends Schema, R extends Requirement = Requirement> {
|
|
|
250
250
|
* Constraint IDs whose resolvers must complete before this constraint is evaluated.
|
|
251
251
|
* If a dependency's `when()` returns false (no requirements), this constraint proceeds.
|
|
252
252
|
* If a dependency's resolver fails, this constraint remains blocked.
|
|
253
|
-
* Cross-module: use "moduleName
|
|
253
|
+
* Cross-module: use "moduleName::constraintName" format (after references are not auto-prefixed).
|
|
254
254
|
*/
|
|
255
255
|
after?: string[];
|
|
256
256
|
/**
|
|
@@ -275,6 +275,10 @@ interface ConstraintState {
|
|
|
275
275
|
lastResolvedAt: number | null;
|
|
276
276
|
/** Constraint IDs this constraint is waiting on (from `after` property) */
|
|
277
277
|
after: string[];
|
|
278
|
+
/** Number of times when() evaluated to true */
|
|
279
|
+
hitCount: number;
|
|
280
|
+
/** Timestamp of last when() → true evaluation */
|
|
281
|
+
lastActiveAt: number | null;
|
|
278
282
|
}
|
|
279
283
|
|
|
280
284
|
/**
|
|
@@ -337,7 +341,7 @@ type EffectCleanup = () => void;
|
|
|
337
341
|
* ```
|
|
338
342
|
*/
|
|
339
343
|
interface EffectDef<S extends Schema> {
|
|
340
|
-
run(facts: Facts<S>, prev:
|
|
344
|
+
run(facts: Facts<S>, prev: InferSchema<S> | null): void | EffectCleanup | Promise<void | EffectCleanup>;
|
|
341
345
|
/** Optional explicit dependencies for optimization */
|
|
342
346
|
deps?: Array<keyof InferSchema<S>>;
|
|
343
347
|
}
|
|
@@ -391,7 +395,7 @@ type EventsDef<S extends Schema> = Record<string, FlexibleEventHandler<S>>;
|
|
|
391
395
|
*/
|
|
392
396
|
|
|
393
397
|
/** Retry policy configuration */
|
|
394
|
-
interface RetryPolicy
|
|
398
|
+
interface RetryPolicy {
|
|
395
399
|
/** Maximum number of attempts */
|
|
396
400
|
attempts: number;
|
|
397
401
|
/** Backoff strategy */
|
|
@@ -416,16 +420,10 @@ interface BatchConfig {
|
|
|
416
420
|
enabled: boolean;
|
|
417
421
|
/** Time window to collect requirements (ms) */
|
|
418
422
|
windowMs: number;
|
|
419
|
-
/** Maximum batch size (default: unlimited) */
|
|
423
|
+
/** Maximum batch size. When reached, the batch flushes immediately instead of waiting for the timer. (default: unlimited) */
|
|
420
424
|
maxSize?: number;
|
|
421
425
|
/** Per-batch timeout in ms (overrides resolver timeout for batches) */
|
|
422
426
|
timeoutMs?: number;
|
|
423
|
-
/**
|
|
424
|
-
* Failure strategy for partial batch failures:
|
|
425
|
-
* - "all-or-nothing" (default): If resolveBatch throws, all requirements fail
|
|
426
|
-
* - "per-item": Use resolveBatchWithResults to get per-item results
|
|
427
|
-
*/
|
|
428
|
-
failureStrategy?: "all-or-nothing" | "per-item";
|
|
429
427
|
}
|
|
430
428
|
/**
|
|
431
429
|
* Result for a single item in a batch resolution.
|
|
@@ -447,6 +445,7 @@ type BatchResolveResults<T = unknown> = Array<BatchItemResult<T>>;
|
|
|
447
445
|
interface ResolverContext<S extends Schema = Schema> {
|
|
448
446
|
readonly facts: Facts<S>;
|
|
449
447
|
readonly signal: AbortSignal;
|
|
448
|
+
/** Returns a read-only snapshot of the current facts state, useful for before/after comparisons inside resolvers. */
|
|
450
449
|
readonly snapshot: () => FactsSnapshot<S>;
|
|
451
450
|
}
|
|
452
451
|
/** Single resolver definition (untyped - use TypedResolversDef for type safety) */
|
|
@@ -460,10 +459,10 @@ interface ResolverDef<S extends Schema, R extends Requirement = Requirement> {
|
|
|
460
459
|
/** Custom key function for deduplication */
|
|
461
460
|
key?: RequirementKeyFn<R>;
|
|
462
461
|
/** Retry policy */
|
|
463
|
-
retry?: RetryPolicy
|
|
462
|
+
retry?: RetryPolicy;
|
|
464
463
|
/** Timeout for resolver execution (ms) */
|
|
465
464
|
timeout?: number;
|
|
466
|
-
/** Batch configuration (
|
|
465
|
+
/** Batch configuration. Works with resolve() (individual fallback), resolveBatch(), or resolveBatchWithResults(). */
|
|
467
466
|
batch?: BatchConfig;
|
|
468
467
|
/** Resolve function for single requirement */
|
|
469
468
|
resolve?: (req: R, ctx: ResolverContext<S>) => Promise<void>;
|
|
@@ -579,32 +578,15 @@ interface RetryLaterConfig {
|
|
|
579
578
|
/** Maximum delay in milliseconds (default: 30000) */
|
|
580
579
|
maxDelayMs?: number;
|
|
581
580
|
}
|
|
582
|
-
/**
|
|
583
|
-
* Circuit breaker configuration for automatic failure protection.
|
|
584
|
-
* After `failureThreshold` consecutive failures, the circuit opens
|
|
585
|
-
* and all requests fail fast for `resetTimeoutMs`.
|
|
586
|
-
*/
|
|
587
|
-
interface CircuitBreakerConfig {
|
|
588
|
-
/** Number of consecutive failures before opening the circuit (default: 5) */
|
|
589
|
-
failureThreshold?: number;
|
|
590
|
-
/** Time in milliseconds before attempting to close the circuit (default: 60000) */
|
|
591
|
-
resetTimeoutMs?: number;
|
|
592
|
-
/** Number of successful requests needed to close a half-open circuit (default: 1) */
|
|
593
|
-
successThreshold?: number;
|
|
594
|
-
}
|
|
595
|
-
/** Circuit breaker state */
|
|
596
|
-
type CircuitBreakerState = "closed" | "open" | "half-open";
|
|
597
581
|
/** Error boundary configuration */
|
|
598
582
|
interface ErrorBoundaryConfig {
|
|
599
|
-
onConstraintError?: RecoveryStrategy | ((error: Error, constraint: string) => void);
|
|
600
|
-
onResolverError?: RecoveryStrategy | ((error: Error, resolver: string) => void);
|
|
601
|
-
onEffectError?: RecoveryStrategy | ((error: Error, effect: string) => void);
|
|
602
|
-
onDerivationError?: RecoveryStrategy | ((error: Error, derivation: string) => void);
|
|
583
|
+
onConstraintError?: RecoveryStrategy | ((error: Error, constraint: string) => RecoveryStrategy | void);
|
|
584
|
+
onResolverError?: RecoveryStrategy | ((error: Error, resolver: string) => RecoveryStrategy | void);
|
|
585
|
+
onEffectError?: RecoveryStrategy | ((error: Error, effect: string) => RecoveryStrategy | void);
|
|
586
|
+
onDerivationError?: RecoveryStrategy | ((error: Error, derivation: string) => RecoveryStrategy | void);
|
|
603
587
|
onError?: (error: DirectiveError) => void;
|
|
604
588
|
/** Configuration for retry-later strategy */
|
|
605
589
|
retryLater?: RetryLaterConfig;
|
|
606
|
-
/** Circuit breaker configuration (applies to resolvers only) */
|
|
607
|
-
circuitBreaker?: CircuitBreakerConfig;
|
|
608
590
|
}
|
|
609
591
|
|
|
610
592
|
/**
|
|
@@ -751,6 +733,14 @@ interface NamespacedSystem<Modules extends ModulesMap> {
|
|
|
751
733
|
readonly derive: NamespacedDerivations<Modules>;
|
|
752
734
|
/** Events accessor (union of all module events) */
|
|
753
735
|
readonly events: NamespacedEventsAccessor<Modules>;
|
|
736
|
+
/** Runtime control for constraints (disable/enable/isDisabled) */
|
|
737
|
+
readonly constraints: ConstraintsControl;
|
|
738
|
+
/** Runtime control for effects (disable/enable/isEnabled) */
|
|
739
|
+
readonly effects: EffectsControl;
|
|
740
|
+
/** Per-run changelog entries (null if debug.runHistory is not enabled) */
|
|
741
|
+
readonly runHistory: RunChangelogEntry[] | null;
|
|
742
|
+
/** Initialize facts and derivations without starting reconciliation. Safe for SSR. */
|
|
743
|
+
initialize(): void;
|
|
754
744
|
/** Start the system (initialize modules, begin reconciliation) */
|
|
755
745
|
start(): void;
|
|
756
746
|
/** Stop the system (cancel resolvers, stop reconciliation) */
|
|
@@ -970,6 +960,14 @@ interface SingleModuleSystem<S extends ModuleSchema> {
|
|
|
970
960
|
readonly derive: InferDerivations<S>;
|
|
971
961
|
/** Direct events accessor: system.events.increment() */
|
|
972
962
|
readonly events: SingleModuleEvents<S>;
|
|
963
|
+
/** Runtime control for constraints (disable/enable/isDisabled) */
|
|
964
|
+
readonly constraints: ConstraintsControl;
|
|
965
|
+
/** Runtime control for effects (disable/enable/isEnabled) */
|
|
966
|
+
readonly effects: EffectsControl;
|
|
967
|
+
/** Per-run changelog entries (null if debug.runHistory is not enabled) */
|
|
968
|
+
readonly runHistory: RunChangelogEntry[] | null;
|
|
969
|
+
/** Initialize facts and derivations without starting reconciliation. Safe for SSR. */
|
|
970
|
+
initialize(): void;
|
|
973
971
|
/** Start the system (initialize modules, begin reconciliation) */
|
|
974
972
|
start(): void;
|
|
975
973
|
/** Stop the system (cancel resolvers, stop reconciliation) */
|
|
@@ -1109,6 +1107,7 @@ interface AnySystem {
|
|
|
1109
1107
|
readonly isSettled: boolean;
|
|
1110
1108
|
readonly isInitialized: boolean;
|
|
1111
1109
|
readonly isReady: boolean;
|
|
1110
|
+
initialize(): void;
|
|
1112
1111
|
start(): void;
|
|
1113
1112
|
stop(): void;
|
|
1114
1113
|
destroy(): void;
|
|
@@ -1210,7 +1209,7 @@ interface TypedConstraintDef<M extends ModuleSchema> {
|
|
|
1210
1209
|
* Constraint IDs whose resolvers must complete before this constraint is evaluated.
|
|
1211
1210
|
* If a dependency's `when()` returns false (no requirements), this constraint proceeds.
|
|
1212
1211
|
* If a dependency's resolver fails, this constraint remains blocked.
|
|
1213
|
-
* Cross-module: use "moduleName
|
|
1212
|
+
* Cross-module: use "moduleName::constraintName" format (after references are not auto-prefixed).
|
|
1214
1213
|
*/
|
|
1215
1214
|
after?: string[];
|
|
1216
1215
|
/**
|
|
@@ -1248,7 +1247,7 @@ interface CrossModuleConstraintDef<M extends ModuleSchema, Deps extends CrossMod
|
|
|
1248
1247
|
* Constraint IDs whose resolvers must complete before this constraint is evaluated.
|
|
1249
1248
|
* If a dependency's `when()` returns false (no requirements), this constraint proceeds.
|
|
1250
1249
|
* If a dependency's resolver fails, this constraint remains blocked.
|
|
1251
|
-
* Cross-module: use "moduleName
|
|
1250
|
+
* Cross-module: use "moduleName::constraintName" format (after references are not auto-prefixed).
|
|
1252
1251
|
*/
|
|
1253
1252
|
after?: string[];
|
|
1254
1253
|
/**
|
|
@@ -1294,21 +1293,14 @@ type CrossModuleDerivationFn<M extends ModuleSchema, Deps extends CrossModuleDep
|
|
|
1294
1293
|
type CrossModuleDerivationsDef<M extends ModuleSchema, Deps extends CrossModuleDeps> = {
|
|
1295
1294
|
[K in keyof GetDerivationsSchema<M>]: CrossModuleDerivationFn<M, Deps, K>;
|
|
1296
1295
|
};
|
|
1297
|
-
/**
|
|
1298
|
-
* Retry policy configuration.
|
|
1299
|
-
*/
|
|
1300
|
-
interface RetryPolicy {
|
|
1301
|
-
attempts: number;
|
|
1302
|
-
backoff: "none" | "linear" | "exponential";
|
|
1303
|
-
initialDelay?: number;
|
|
1304
|
-
maxDelay?: number;
|
|
1305
|
-
}
|
|
1306
1296
|
/**
|
|
1307
1297
|
* Resolver context with typed facts.
|
|
1308
1298
|
*/
|
|
1309
1299
|
interface TypedResolverContext<M extends ModuleSchema> {
|
|
1310
1300
|
readonly facts: Facts<M["facts"]>;
|
|
1311
1301
|
readonly signal: AbortSignal;
|
|
1302
|
+
/** Returns a read-only snapshot of the current facts state, useful for before/after comparisons inside resolvers. */
|
|
1303
|
+
readonly snapshot: () => FactsSnapshot<M["facts"]>;
|
|
1312
1304
|
}
|
|
1313
1305
|
/**
|
|
1314
1306
|
* Helper to extract a specific requirement type from the schema.
|
|
@@ -1328,8 +1320,14 @@ interface TypedResolverDef<M extends ModuleSchema, T extends keyof GetRequiremen
|
|
|
1328
1320
|
retry?: RetryPolicy;
|
|
1329
1321
|
/** Timeout for resolver execution (ms) */
|
|
1330
1322
|
timeout?: number;
|
|
1331
|
-
/**
|
|
1332
|
-
|
|
1323
|
+
/** Batch configuration */
|
|
1324
|
+
batch?: BatchConfig;
|
|
1325
|
+
/** Resolve function for single requirement */
|
|
1326
|
+
resolve?: (req: ExtractRequirement<M, T>, ctx: TypedResolverContext<M>) => Promise<void>;
|
|
1327
|
+
/** Resolve batched requirements as a group (all-or-nothing). Receives the full array collected during the batch window. If this throws, all items in the batch are considered failed. */
|
|
1328
|
+
resolveBatch?: (reqs: ExtractRequirement<M, T>[], ctx: TypedResolverContext<M>) => Promise<void>;
|
|
1329
|
+
/** Resolve batched requirements with per-item success/failure results. Return a `BatchResolveResults` array in the same order as the input. Failed items can be individually retried. */
|
|
1330
|
+
resolveBatchWithResults?: (reqs: ExtractRequirement<M, T>[], ctx: TypedResolverContext<M>) => Promise<BatchResolveResults>;
|
|
1333
1331
|
}
|
|
1334
1332
|
/**
|
|
1335
1333
|
* Union of all typed resolver definitions for all requirement types.
|
|
@@ -1409,6 +1407,10 @@ interface DebugConfig {
|
|
|
1409
1407
|
maxSnapshots?: number;
|
|
1410
1408
|
/** Only snapshot events from these modules. Omit to snapshot all modules. Multi-module only. */
|
|
1411
1409
|
snapshotModules?: string[];
|
|
1410
|
+
/** Enable per-run changelog (default false) */
|
|
1411
|
+
runHistory?: boolean;
|
|
1412
|
+
/** Ring buffer cap for run history (default 100) */
|
|
1413
|
+
maxRuns?: number;
|
|
1412
1414
|
}
|
|
1413
1415
|
/** Time-travel API */
|
|
1414
1416
|
interface TimeTravelAPI {
|
|
@@ -1454,6 +1456,79 @@ interface TimeTravelState {
|
|
|
1454
1456
|
pause: () => void;
|
|
1455
1457
|
resume: () => void;
|
|
1456
1458
|
}
|
|
1459
|
+
/** A structured record of one reconciliation run — from facts through resolvers and effects. */
|
|
1460
|
+
interface RunChangelogEntry {
|
|
1461
|
+
/** Monotonic run ID */
|
|
1462
|
+
id: number;
|
|
1463
|
+
/** When the reconcile started */
|
|
1464
|
+
timestamp: number;
|
|
1465
|
+
/** Total duration from reconcile start to all resolvers settled (ms) */
|
|
1466
|
+
duration: number;
|
|
1467
|
+
/** 'pending' while resolvers are inflight, 'settled' when all done */
|
|
1468
|
+
status: "pending" | "settled";
|
|
1469
|
+
/** Facts that changed, triggering this run */
|
|
1470
|
+
factChanges: Array<{
|
|
1471
|
+
key: string;
|
|
1472
|
+
oldValue: unknown;
|
|
1473
|
+
newValue: unknown;
|
|
1474
|
+
}>;
|
|
1475
|
+
/** Derivations recomputed during this run, with tracked dependencies and values */
|
|
1476
|
+
derivationsRecomputed: Array<{
|
|
1477
|
+
id: string;
|
|
1478
|
+
deps: string[];
|
|
1479
|
+
oldValue: unknown;
|
|
1480
|
+
newValue: unknown;
|
|
1481
|
+
}>;
|
|
1482
|
+
/** Constraints that evaluated to active, with tracked dependencies */
|
|
1483
|
+
constraintsHit: Array<{
|
|
1484
|
+
id: string;
|
|
1485
|
+
priority: number;
|
|
1486
|
+
deps: string[];
|
|
1487
|
+
}>;
|
|
1488
|
+
/** Requirements added from constraint diff */
|
|
1489
|
+
requirementsAdded: Array<{
|
|
1490
|
+
id: string;
|
|
1491
|
+
type: string;
|
|
1492
|
+
fromConstraint: string;
|
|
1493
|
+
}>;
|
|
1494
|
+
/** Requirements removed (no longer active), with originating constraint */
|
|
1495
|
+
requirementsRemoved: Array<{
|
|
1496
|
+
id: string;
|
|
1497
|
+
type: string;
|
|
1498
|
+
fromConstraint: string;
|
|
1499
|
+
}>;
|
|
1500
|
+
/** Resolvers started for new requirements */
|
|
1501
|
+
resolversStarted: Array<{
|
|
1502
|
+
resolver: string;
|
|
1503
|
+
requirementId: string;
|
|
1504
|
+
}>;
|
|
1505
|
+
/** Resolvers that completed (async — populated after reconcile) */
|
|
1506
|
+
resolversCompleted: Array<{
|
|
1507
|
+
resolver: string;
|
|
1508
|
+
requirementId: string;
|
|
1509
|
+
duration: number;
|
|
1510
|
+
}>;
|
|
1511
|
+
/** Resolvers that errored (async — populated after reconcile) */
|
|
1512
|
+
resolversErrored: Array<{
|
|
1513
|
+
resolver: string;
|
|
1514
|
+
requirementId: string;
|
|
1515
|
+
error: string;
|
|
1516
|
+
}>;
|
|
1517
|
+
/** Effects that ran, with their triggering fact keys */
|
|
1518
|
+
effectsRun: Array<{
|
|
1519
|
+
id: string;
|
|
1520
|
+
triggeredBy: string[];
|
|
1521
|
+
}>;
|
|
1522
|
+
/** Effect errors */
|
|
1523
|
+
effectErrors: Array<{
|
|
1524
|
+
id: string;
|
|
1525
|
+
error: string;
|
|
1526
|
+
}>;
|
|
1527
|
+
/** Human-readable causal chain summary (populated when run settles) */
|
|
1528
|
+
causalChain?: string;
|
|
1529
|
+
/** Anomaly flags (populated when run stats deviate significantly) */
|
|
1530
|
+
anomalies?: string[];
|
|
1531
|
+
}
|
|
1457
1532
|
/** System inspection result */
|
|
1458
1533
|
interface SystemInspection {
|
|
1459
1534
|
unmet: RequirementWithId[];
|
|
@@ -1465,9 +1540,21 @@ interface SystemInspection {
|
|
|
1465
1540
|
constraints: Array<{
|
|
1466
1541
|
id: string;
|
|
1467
1542
|
active: boolean;
|
|
1543
|
+
disabled: boolean;
|
|
1468
1544
|
priority: number;
|
|
1545
|
+
hitCount: number;
|
|
1546
|
+
lastActiveAt: number | null;
|
|
1469
1547
|
}>;
|
|
1470
1548
|
resolvers: Record<string, ResolverStatus>;
|
|
1549
|
+
/** All defined resolver names and their requirement types */
|
|
1550
|
+
resolverDefs: Array<{
|
|
1551
|
+
id: string;
|
|
1552
|
+
requirement: string;
|
|
1553
|
+
}>;
|
|
1554
|
+
/** Whether debug.runHistory is enabled on this system */
|
|
1555
|
+
runHistoryEnabled: boolean;
|
|
1556
|
+
/** Per-run changelog entries (only present if debug.runHistory is enabled) */
|
|
1557
|
+
runHistory?: RunChangelogEntry[];
|
|
1471
1558
|
}
|
|
1472
1559
|
/** Explanation of why a requirement exists */
|
|
1473
1560
|
interface RequirementExplanation {
|
|
@@ -1546,6 +1633,8 @@ interface ConstraintsControl {
|
|
|
1546
1633
|
disable(id: string): void;
|
|
1547
1634
|
/** Enable a previously disabled constraint — it will be re-evaluated on the next cycle */
|
|
1548
1635
|
enable(id: string): void;
|
|
1636
|
+
/** Check if a constraint is currently disabled */
|
|
1637
|
+
isDisabled(id: string): boolean;
|
|
1549
1638
|
}
|
|
1550
1639
|
/** Runtime control for effects */
|
|
1551
1640
|
interface EffectsControl {
|
|
@@ -1563,6 +1652,10 @@ interface System<M extends ModuleSchema = ModuleSchema> {
|
|
|
1563
1652
|
readonly events: EventsAccessorFromSchema<M>;
|
|
1564
1653
|
readonly constraints: ConstraintsControl;
|
|
1565
1654
|
readonly effects: EffectsControl;
|
|
1655
|
+
/** Per-run changelog entries (null if debug.runHistory is not enabled) */
|
|
1656
|
+
readonly runHistory: RunChangelogEntry[] | null;
|
|
1657
|
+
/** Initialize facts and derivations without starting reconciliation. Safe for SSR. */
|
|
1658
|
+
initialize(): void;
|
|
1566
1659
|
start(): void;
|
|
1567
1660
|
stop(): void;
|
|
1568
1661
|
destroy(): void;
|
|
@@ -1881,6 +1974,12 @@ interface Plugin<M extends ModuleSchema = ModuleSchema> {
|
|
|
1881
1974
|
* @param strategy - The recovery strategy used
|
|
1882
1975
|
*/
|
|
1883
1976
|
onErrorRecovery?: (error: DirectiveError, strategy: RecoveryStrategy) => void;
|
|
1977
|
+
/**
|
|
1978
|
+
* Called when a run finalizes (all resolvers settled or no resolvers started).
|
|
1979
|
+
* Only fires when debug.runHistory is enabled.
|
|
1980
|
+
* @param run - The complete run changelog entry
|
|
1981
|
+
*/
|
|
1982
|
+
onRunComplete?: (run: RunChangelogEntry) => void;
|
|
1884
1983
|
}
|
|
1885
1984
|
|
|
1886
|
-
export { type
|
|
1985
|
+
export { type AnySystem as $, type ConstraintState as A, type BatchConfig as B, type CrossModuleDeps as C, type DerivationsSchema as D, type EffectsDef as E, type Facts as F, type ResolversDef as G, type ResolverStatus as H, type InferRequirements as I, type System as J, type FactChange as K, type FactsSnapshot as L, type ModuleSchema as M, type NamespacedSystem as N, type ReconcileResult as O, type Plugin as P, type Snapshot as Q, type Requirement as R, type Schema as S, type TypedDerivationsDef as T, DirectiveError as U, type RecoveryStrategy as V, type RunChangelogEntry as W, type ErrorSource as X, type RetryLaterConfig as Y, type TimeTravelAPI as Z, type SystemConfig as _, type RequirementOutput$1 as a, type BatchItemResult as a0, type BatchResolveResults as a1, type CrossModuleConstraintDef as a2, type CrossModuleDerivationFn as a3, type CrossModuleEffectDef as a4, type CrossModuleFactsWithSelf as a5, type DerivationKeys as a6, type DerivationReturnType as a7, type DeriveAccessor as a8, type DispatchEventsFromSchema as a9, type RequirementsSchema as aA, type SnapshotMeta as aB, type SystemEvent as aC, type SystemInspection as aD, type SystemMode as aE, type SystemSnapshot as aF, type TimeTravelState as aG, type TypedResolverContext as aH, type TypedResolverDef as aI, type UnionEvents as aJ, isNamespacedSystem as aK, isSingleModuleSystem as aL, type DistributableSnapshot as aa, type DistributableSnapshotOptions as ab, type EffectCleanup as ac, type EventPayloadSchema as ad, type EventsAccessor as ae, type EventsAccessorFromSchema as af, type EventsDef as ag, type EventsSchema as ah, type FactKeys as ai, type FactReturnType as aj, type FlexibleEventHandler as ak, type InferDerivations as al, type InferEventPayloadFromSchema as am, type InferEvents as an, type InferRequirementPayloadFromSchema as ao, type InferRequirementTypes as ap, type InferSchema as aq, type InferSchemaType as ar, type InferSelectorState as as, type MutableNamespacedFacts as at, type NamespacedDerivations as au, type NamespacedEventsAccessor as av, type NamespacedFacts as aw, type ObservableKeys as ax, type RequirementExplanation as ay, type RequirementPayloadSchema$1 as az, type RetryPolicy as b, type ResolverContext as c, type SchemaType as d, type FactsStore as e, type TypedEventsDef as f, type TypedConstraintsDef as g, type TypedResolversDef as h, type ModuleHooks as i, type CrossModuleDerivationsDef as j, type CrossModuleEffectsDef as k, type CrossModuleConstraintsDef as l, type ModuleDef as m, type CreateSystemOptionsSingle as n, type SingleModuleSystem as o, type ModulesMap as p, type CreateSystemOptionsNamed as q, type TypedConstraintDef as r, type RequirementOutput as s, type DebugConfig as t, type ErrorBoundaryConfig as u, type InferFacts as v, type ExtractSchema as w, type RequirementWithId as x, type RequirementKeyFn as y, type ConstraintsDef as z };
|