@glubean/runner 0.7.0 → 0.8.1

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 (71) hide show
  1. package/dist/engine-bridge.d.ts +4 -0
  2. package/dist/engine-bridge.d.ts.map +1 -1
  3. package/dist/engine-bridge.js +10 -1
  4. package/dist/engine-bridge.js.map +1 -1
  5. package/dist/executor.d.ts +2 -2
  6. package/dist/executor.d.ts.map +1 -1
  7. package/dist/executor.js +9 -226
  8. package/dist/executor.js.map +1 -1
  9. package/dist/harness.js +3 -79
  10. package/dist/harness.js.map +1 -1
  11. package/dist/index.d.ts +16 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +17 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/load/continuation-pool.d.ts +82 -0
  16. package/dist/load/continuation-pool.d.ts.map +1 -0
  17. package/dist/load/continuation-pool.js +154 -0
  18. package/dist/load/continuation-pool.js.map +1 -0
  19. package/dist/load/execute-iteration.d.ts +126 -0
  20. package/dist/load/execute-iteration.d.ts.map +1 -0
  21. package/dist/load/execute-iteration.js +367 -0
  22. package/dist/load/execute-iteration.js.map +1 -0
  23. package/dist/load/histogram.d.ts +63 -0
  24. package/dist/load/histogram.d.ts.map +1 -0
  25. package/dist/load/histogram.js +149 -0
  26. package/dist/load/histogram.js.map +1 -0
  27. package/dist/load/orchestrator.d.ts +55 -0
  28. package/dist/load/orchestrator.d.ts.map +1 -0
  29. package/dist/load/orchestrator.js +571 -0
  30. package/dist/load/orchestrator.js.map +1 -0
  31. package/dist/load/reducer.d.ts +109 -0
  32. package/dist/load/reducer.d.ts.map +1 -0
  33. package/dist/load/reducer.js +718 -0
  34. package/dist/load/reducer.js.map +1 -0
  35. package/dist/load/route-key.d.ts +38 -0
  36. package/dist/load/route-key.d.ts.map +1 -0
  37. package/dist/load/route-key.js +107 -0
  38. package/dist/load/route-key.js.map +1 -0
  39. package/dist/load/samples.d.ts +83 -0
  40. package/dist/load/samples.d.ts.map +1 -0
  41. package/dist/load/samples.js +269 -0
  42. package/dist/load/samples.js.map +1 -0
  43. package/dist/load/sink.d.ts +127 -0
  44. package/dist/load/sink.d.ts.map +1 -0
  45. package/dist/load/sink.js +351 -0
  46. package/dist/load/sink.js.map +1 -0
  47. package/dist/load/subprocess.d.ts +83 -0
  48. package/dist/load/subprocess.d.ts.map +1 -0
  49. package/dist/load/subprocess.js +229 -0
  50. package/dist/load/subprocess.js.map +1 -0
  51. package/dist/load/threshold.d.ts +44 -0
  52. package/dist/load/threshold.d.ts.map +1 -0
  53. package/dist/load/threshold.js +197 -0
  54. package/dist/load/threshold.js.map +1 -0
  55. package/dist/load/timeline.d.ts +36 -0
  56. package/dist/load/timeline.d.ts.map +1 -0
  57. package/dist/load/timeline.js +158 -0
  58. package/dist/load/timeline.js.map +1 -0
  59. package/dist/load-harness.d.ts +2 -0
  60. package/dist/load-harness.d.ts.map +1 -0
  61. package/dist/load-harness.js +105 -0
  62. package/dist/load-harness.js.map +1 -0
  63. package/dist/runner-resolve.d.ts +53 -0
  64. package/dist/runner-resolve.d.ts.map +1 -0
  65. package/dist/runner-resolve.js +264 -0
  66. package/dist/runner-resolve.js.map +1 -0
  67. package/dist/workflow/event-timeline.d.ts +3 -0
  68. package/dist/workflow/event-timeline.d.ts.map +1 -0
  69. package/dist/workflow/event-timeline.js +72 -0
  70. package/dist/workflow/event-timeline.js.map +1 -0
  71. package/package.json +4 -4
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Streaming LoadReducer implementation.
3
+ *
4
+ * Folds the `LoadEvent` fact stream into bounded aggregates (no full-sample
5
+ * arrays): transactions (iterations), steps, endpoints, and the scenario-step ×
6
+ * endpoint matrix, each with a bounded `LoadHistogram` for latency. `snapshot()`
7
+ * and `finalize()` both read this same state, so live progress and the final
8
+ * artifact never diverge.
9
+ *
10
+ * Scope (M3): closed end-to-end model. `phase` is carried but defaults to
11
+ * "primary"; producer-release / continuation aggregates, failure-trace samples,
12
+ * and threshold evaluation are wired in later milestones (M4/M5/M6).
13
+ *
14
+ * Convention: `LoadEvent.ts` is epoch milliseconds (the orchestrator stamps
15
+ * `Date.now()`), so `startedAt` (ISO) and `durationMs` come from event ts.
16
+ */
17
+ import type { LoadArtifact, LoadEvent, LoadProgressSnapshot, LoadReducer } from "@glubean/sdk/load";
18
+ export declare class LoadReducerImpl implements LoadReducer {
19
+ private runnerId;
20
+ private config?;
21
+ private requestedConcurrency;
22
+ private endReason?;
23
+ private crash?;
24
+ private firstTs?;
25
+ private lastTs;
26
+ private iterStarted;
27
+ private iterCompleted;
28
+ private iterSucceeded;
29
+ private iterFailed;
30
+ private readonly iterLatency;
31
+ private primaryBoundaries;
32
+ private failedBeforePrimary;
33
+ private endedWithoutBoundary;
34
+ private readonly primaryLatency;
35
+ private readonly iterHadPrimary;
36
+ private releasedProducerSlots;
37
+ private rejectedReleaseSignals;
38
+ private duplicateReleaseSignals;
39
+ private maxContinuationBacklog;
40
+ private readonly continuationBackpressure;
41
+ private readonly liveContinuations;
42
+ private readonly pendingRelease;
43
+ private readonly iterStepPhase;
44
+ private readonly scenarios;
45
+ private readonly steps;
46
+ private readonly endpoints;
47
+ private readonly matrix;
48
+ private readonly recentFailures;
49
+ private readonly timeline;
50
+ private readonly samples;
51
+ /** @param reportCaps `report` sample caps (0 disables a sample type entirely). */
52
+ constructor(reportCaps?: {
53
+ maxFailureTraces?: number;
54
+ maxSlowTransactionSummaries?: number;
55
+ });
56
+ apply(event: LoadEvent): void;
57
+ /** Ms from the run start (the first event's ts) — the timeline's window axis. */
58
+ private offsetOf;
59
+ snapshot(now?: number): LoadProgressSnapshot;
60
+ finalize(): LoadArtifact;
61
+ private phaseOf;
62
+ /** Record the phase a step started in for this iteration (from step:start). */
63
+ private rememberStepPhase;
64
+ /** The phase a step started in this iteration (falls back to `live` for a SKIPPED
65
+ * leaf, which emits no step:start, or an untracked iteration). */
66
+ private stepStartPhase;
67
+ private scenarioKey;
68
+ private scenarioAgg;
69
+ private stepKey;
70
+ private getStep;
71
+ private endpointAgg;
72
+ private matrixAgg;
73
+ private pushFailure;
74
+ /** Iterations still in their primary phase: started, not yet at a boundary, and
75
+ * not ended before reaching one. Without any boundary this is the ordinary
76
+ * end-to-end in-flight count (started − completed). */
77
+ private primaryInFlightCount;
78
+ /** Iterations that COMPLETED their primary phase: those that hit the boundary,
79
+ * plus no-boundary successes (whose primary phase is the whole iteration). Keeps
80
+ * `started = completed + failedBeforeRelease + inFlightAtEnd` consistent. */
81
+ private primaryCompletedCount;
82
+ /** Primary-phase aggregate (producer side) — present only with a boundary. */
83
+ private primaryPhaseSummary;
84
+ /** End-to-end aggregate (full logical iteration) — the structured form of the
85
+ * top-level compat fields, surfaced alongside `primary` when the split exists. */
86
+ private endToEndPhaseSummary;
87
+ /** Whether producer release was attempted at all (release granted, rejected, a
88
+ * duplicate, or still parked on the backlog at finalize) — gates the continuation
89
+ * summary's presence so an interrupted run with a parked release still reports it. */
90
+ private releaseUsed;
91
+ /** Continuation (bounded-open) subsystem summary (M6). A finalized run has drained
92
+ * its continuations, so live counts (backlog / active / blockedOnBacklog) are 0;
93
+ * the cumulative release / back-pressure / coverage figures are what matter. */
94
+ private continuationSummary;
95
+ private attribution;
96
+ private stepSummary;
97
+ private stepSummaries;
98
+ private scenarioSummaries;
99
+ private endpointSummaries;
100
+ private matrixSummaries;
101
+ private topSlowEndpoints;
102
+ }
103
+ /** Create a fresh streaming load reducer. `reportCaps` bounds the failure-trace /
104
+ * slow-transaction samples (from the plan's `report` config; 0 disables a type). */
105
+ export declare function createLoadReducer(reportCaps?: {
106
+ maxFailureTraces?: number;
107
+ maxSlowTransactionSummaries?: number;
108
+ }): LoadReducer;
109
+ //# sourceMappingURL=reducer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../src/load/reducer.ts"],"names":[],"mappings":"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"}