@blokjs/runner 0.2.2 → 0.6.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/Blok.js +32 -3
- package/dist/Blok.js.map +1 -1
- package/dist/Configuration.d.ts +59 -5
- package/dist/Configuration.js +366 -96
- package/dist/Configuration.js.map +1 -1
- package/dist/ForEachNode.d.ts +59 -0
- package/dist/ForEachNode.js +522 -0
- package/dist/ForEachNode.js.map +1 -0
- package/dist/LoopMaxIterationsError.d.ts +11 -0
- package/dist/LoopMaxIterationsError.js +18 -0
- package/dist/LoopMaxIterationsError.js.map +1 -0
- package/dist/LoopNode.d.ts +36 -0
- package/dist/LoopNode.js +182 -0
- package/dist/LoopNode.js.map +1 -0
- package/dist/PayloadTooLargeError.d.ts +19 -0
- package/dist/PayloadTooLargeError.js +29 -0
- package/dist/PayloadTooLargeError.js.map +1 -0
- package/dist/RunCancelledError.d.ts +17 -0
- package/dist/RunCancelledError.js +25 -0
- package/dist/RunCancelledError.js.map +1 -0
- package/dist/Runner.d.ts +11 -1
- package/dist/Runner.js +9 -2
- package/dist/Runner.js.map +1 -1
- package/dist/RunnerSteps.js +648 -44
- package/dist/RunnerSteps.js.map +1 -1
- package/dist/RuntimeAdapterNode.d.ts +2 -1
- package/dist/RuntimeAdapterNode.js +2 -2
- package/dist/RuntimeAdapterNode.js.map +1 -1
- package/dist/RuntimeRegistry.d.ts +23 -2
- package/dist/RuntimeRegistry.js +31 -2
- package/dist/RuntimeRegistry.js.map +1 -1
- package/dist/SubworkflowNode.d.ts +181 -0
- package/dist/SubworkflowNode.js +479 -0
- package/dist/SubworkflowNode.js.map +1 -0
- package/dist/SwitchNode.d.ts +37 -0
- package/dist/SwitchNode.js +153 -0
- package/dist/SwitchNode.js.map +1 -0
- package/dist/TriggerBase.d.ts +178 -0
- package/dist/TriggerBase.js +1032 -5
- package/dist/TriggerBase.js.map +1 -1
- package/dist/TryCatchNode.d.ts +32 -0
- package/dist/TryCatchNode.js +207 -0
- package/dist/TryCatchNode.js.map +1 -0
- package/dist/WaitDispatchRequest.d.ts +38 -0
- package/dist/WaitDispatchRequest.js +13 -0
- package/dist/WaitDispatchRequest.js.map +1 -0
- package/dist/WaitNode.d.ts +23 -0
- package/dist/WaitNode.js +26 -0
- package/dist/WaitNode.js.map +1 -0
- package/dist/adapters/grpc/GrpcCodec.js +2 -2
- package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +6 -4
- package/dist/adapters/grpc/GrpcRuntimeAdapter.js +6 -4
- package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
- package/dist/adapters/grpc/types.d.ts +7 -5
- package/dist/adapters/grpc/types.js.map +1 -1
- package/dist/adapters/transport.d.ts +12 -41
- package/dist/adapters/transport.js +21 -70
- package/dist/adapters/transport.js.map +1 -1
- package/dist/cache/NodeResultCache.js +7 -0
- package/dist/cache/NodeResultCache.js.map +1 -1
- package/dist/concurrency/ConcurrencyBackend.d.ts +61 -0
- package/dist/concurrency/ConcurrencyBackend.js +20 -0
- package/dist/concurrency/ConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/ConcurrencyLimitError.d.ts +37 -0
- package/dist/concurrency/ConcurrencyLimitError.js +16 -0
- package/dist/concurrency/ConcurrencyLimitError.js.map +1 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +64 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.js +310 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/QueueExpiredError.d.ts +40 -0
- package/dist/concurrency/QueueExpiredError.js +15 -0
- package/dist/concurrency/QueueExpiredError.js.map +1 -0
- package/dist/concurrency/RedisConcurrencyBackend.d.ts +64 -0
- package/dist/concurrency/RedisConcurrencyBackend.js +374 -0
- package/dist/concurrency/RedisConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/createConcurrencyBackend.d.ts +24 -0
- package/dist/concurrency/createConcurrencyBackend.js +38 -0
- package/dist/concurrency/createConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/readConcurrencyConfig.d.ts +60 -0
- package/dist/concurrency/readConcurrencyConfig.js +60 -0
- package/dist/concurrency/readConcurrencyConfig.js.map +1 -0
- package/dist/defineNode.d.ts +8 -0
- package/dist/defineNode.js +25 -5
- package/dist/defineNode.js.map +1 -1
- package/dist/graphql/GraphQLSchemaGenerator.js +1 -1
- package/dist/graphql/GraphQLSchemaGenerator.js.map +1 -1
- package/dist/idempotency/resolveIdempotencyKey.d.ts +20 -0
- package/dist/idempotency/resolveIdempotencyKey.js +37 -0
- package/dist/idempotency/resolveIdempotencyKey.js.map +1 -0
- package/dist/index.d.ts +30 -6
- package/dist/index.js +55 -6
- package/dist/index.js.map +1 -1
- package/dist/marketplace/RuntimeCatalog.d.ts +6 -0
- package/dist/marketplace/RuntimeCatalog.js.map +1 -1
- package/dist/marketplace/RuntimeDiscovery.d.ts +2 -2
- package/dist/marketplace/RuntimeDiscovery.js +18 -6
- package/dist/marketplace/RuntimeDiscovery.js.map +1 -1
- package/dist/monitoring/ConcurrencyMetrics.d.ts +82 -0
- package/dist/monitoring/ConcurrencyMetrics.js +139 -0
- package/dist/monitoring/ConcurrencyMetrics.js.map +1 -0
- package/dist/monitoring/ForEachWaitMetrics.d.ts +22 -0
- package/dist/monitoring/ForEachWaitMetrics.js +36 -0
- package/dist/monitoring/ForEachWaitMetrics.js.map +1 -0
- package/dist/monitoring/JanitorMetrics.d.ts +27 -0
- package/dist/monitoring/JanitorMetrics.js +48 -0
- package/dist/monitoring/JanitorMetrics.js.map +1 -0
- package/dist/openapi/OpenAPIGenerator.js +7 -2
- package/dist/openapi/OpenAPIGenerator.js.map +1 -1
- package/dist/runtime/PrimitiveStack.d.ts +64 -0
- package/dist/runtime/PrimitiveStack.js +92 -0
- package/dist/runtime/PrimitiveStack.js.map +1 -0
- package/dist/scheduling/DebounceBackend.d.ts +108 -0
- package/dist/scheduling/DebounceBackend.js +23 -0
- package/dist/scheduling/DebounceBackend.js.map +1 -0
- package/dist/scheduling/DebounceCoordinator.d.ts +141 -0
- package/dist/scheduling/DebounceCoordinator.js +362 -0
- package/dist/scheduling/DebounceCoordinator.js.map +1 -0
- package/dist/scheduling/DeferredDispatchSignal.d.ts +50 -0
- package/dist/scheduling/DeferredDispatchSignal.js +14 -0
- package/dist/scheduling/DeferredDispatchSignal.js.map +1 -0
- package/dist/scheduling/DeferredRunScheduler.d.ts +96 -0
- package/dist/scheduling/DeferredRunScheduler.js +256 -0
- package/dist/scheduling/DeferredRunScheduler.js.map +1 -0
- package/dist/scheduling/NatsKvDebounceBackend.d.ts +53 -0
- package/dist/scheduling/NatsKvDebounceBackend.js +334 -0
- package/dist/scheduling/NatsKvDebounceBackend.js.map +1 -0
- package/dist/scheduling/RedisDebounceBackend.d.ts +49 -0
- package/dist/scheduling/RedisDebounceBackend.js +356 -0
- package/dist/scheduling/RedisDebounceBackend.js.map +1 -0
- package/dist/scheduling/createDebounceBackend.d.ts +25 -0
- package/dist/scheduling/createDebounceBackend.js +39 -0
- package/dist/scheduling/createDebounceBackend.js.map +1 -0
- package/dist/scheduling/readSchedulingConfig.d.ts +24 -0
- package/dist/scheduling/readSchedulingConfig.js +52 -0
- package/dist/scheduling/readSchedulingConfig.js.map +1 -0
- package/dist/security/AuditLogger.js +1 -1
- package/dist/security/AuditLogger.js.map +1 -1
- package/dist/security/AuthMiddleware.d.ts +19 -20
- package/dist/security/AuthMiddleware.js +35 -20
- package/dist/security/AuthMiddleware.js.map +1 -1
- package/dist/security/OAuthProvider.js +2 -2
- package/dist/security/OAuthProvider.js.map +1 -1
- package/dist/security/SecretManager.js +14 -13
- package/dist/security/SecretManager.js.map +1 -1
- package/dist/security/index.d.ts +3 -1
- package/dist/security/index.js +3 -1
- package/dist/security/index.js.map +1 -1
- package/dist/testing/TestHarness.d.ts +27 -12
- package/dist/testing/TestHarness.js +19 -3
- package/dist/testing/TestHarness.js.map +1 -1
- package/dist/testing/WorkflowTestRunner.js +0 -7
- package/dist/testing/WorkflowTestRunner.js.map +1 -1
- package/dist/timeouts/StepTimeoutError.d.ts +22 -0
- package/dist/timeouts/StepTimeoutError.js +31 -0
- package/dist/timeouts/StepTimeoutError.js.map +1 -0
- package/dist/tracing/InMemoryRunStore.d.ts +41 -1
- package/dist/tracing/InMemoryRunStore.js +239 -0
- package/dist/tracing/InMemoryRunStore.js.map +1 -1
- package/dist/tracing/Janitor.d.ts +70 -0
- package/dist/tracing/Janitor.js +150 -0
- package/dist/tracing/Janitor.js.map +1 -0
- package/dist/tracing/PostgresRunStore.d.ts +57 -1
- package/dist/tracing/PostgresRunStore.js +711 -6
- package/dist/tracing/PostgresRunStore.js.map +1 -1
- package/dist/tracing/RoutingDiagnostics.d.ts +55 -0
- package/dist/tracing/RoutingDiagnostics.js +50 -0
- package/dist/tracing/RoutingDiagnostics.js.map +1 -0
- package/dist/tracing/RunStore.d.ts +181 -1
- package/dist/tracing/RunTracker.d.ts +244 -9
- package/dist/tracing/RunTracker.js +594 -1
- package/dist/tracing/RunTracker.js.map +1 -1
- package/dist/tracing/SqliteRunStore.d.ts +79 -2
- package/dist/tracing/SqliteRunStore.js +775 -16
- package/dist/tracing/SqliteRunStore.js.map +1 -1
- package/dist/tracing/TraceRouter.d.ts +20 -2
- package/dist/tracing/TraceRouter.js +612 -6
- package/dist/tracing/TraceRouter.js.map +1 -1
- package/dist/tracing/createStore.js +14 -3
- package/dist/tracing/createStore.js.map +1 -1
- package/dist/tracing/metadataFilter.d.ts +63 -0
- package/dist/tracing/metadataFilter.js +224 -0
- package/dist/tracing/metadataFilter.js.map +1 -0
- package/dist/tracing/sanitize.d.ts +11 -0
- package/dist/tracing/sanitize.js +29 -0
- package/dist/tracing/sanitize.js.map +1 -1
- package/dist/tracing/types.d.ts +672 -2
- package/dist/utils/createChildContext.d.ts +32 -0
- package/dist/utils/createChildContext.js +113 -0
- package/dist/utils/createChildContext.js.map +1 -0
- package/dist/utils/envAllowlist.d.ts +35 -0
- package/dist/utils/envAllowlist.js +113 -0
- package/dist/utils/envAllowlist.js.map +1 -0
- package/dist/version/RuntimeVersionValidator.d.ts +38 -0
- package/dist/version/RuntimeVersionValidator.js +121 -0
- package/dist/version/RuntimeVersionValidator.js.map +1 -0
- package/dist/visualization/WorkflowVisualizer.js +4 -4
- package/dist/visualization/WorkflowVisualizer.js.map +1 -1
- package/dist/workflow/PersistenceHelper.d.ts +18 -10
- package/dist/workflow/PersistenceHelper.js +35 -9
- package/dist/workflow/PersistenceHelper.js.map +1 -1
- package/dist/workflow/WorkflowNormalizer.d.ts +48 -42
- package/dist/workflow/WorkflowNormalizer.js +650 -18
- package/dist/workflow/WorkflowNormalizer.js.map +1 -1
- package/dist/workflow/WorkflowRegistry.d.ts +186 -0
- package/dist/workflow/WorkflowRegistry.js +202 -0
- package/dist/workflow/WorkflowRegistry.js.map +1 -0
- package/dist/workflow/sampleBody.d.ts +54 -0
- package/dist/workflow/sampleBody.js +320 -0
- package/dist/workflow/sampleBody.js.map +1 -0
- package/package.json +3 -8
- package/dist/adapters/HttpRuntimeAdapter.d.ts +0 -79
- package/dist/adapters/HttpRuntimeAdapter.js +0 -233
- package/dist/adapters/HttpRuntimeAdapter.js.map +0 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 2 follow-up · OpenTelemetry counters for concurrency + scheduling
|
|
3
|
+
* resource lifecycle events.
|
|
4
|
+
*
|
|
5
|
+
* Wired into:
|
|
6
|
+
* - `TriggerBase.run`'s concurrency gate — `recordAcquired` /
|
|
7
|
+
* `recordDenied` / `recordReleased` per slot operation.
|
|
8
|
+
* - `HttpTrigger.recoverDispatches` — `recordDispatchRecovered` /
|
|
9
|
+
* `recordDispatchExpired` for boot-recovery observability.
|
|
10
|
+
* - The scheduler / debounce coordinator — `recordDispatchFired`
|
|
11
|
+
* when a deferred timer fires successfully.
|
|
12
|
+
*
|
|
13
|
+
* Singleton; lazy-instantiated. No-ops cleanly when OTel isn't
|
|
14
|
+
* configured (the meter API silently swallows recordings without
|
|
15
|
+
* an exporter).
|
|
16
|
+
*/
|
|
17
|
+
interface ConcurrencyAttributes {
|
|
18
|
+
workflow_name: string;
|
|
19
|
+
concurrency_key?: string;
|
|
20
|
+
}
|
|
21
|
+
interface SchedulingAttributes {
|
|
22
|
+
workflow_name: string;
|
|
23
|
+
trigger_type: string;
|
|
24
|
+
dispatch_status?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* D6 (v0.6) — read the per-key opt-in env var. `concurrency_key` is
|
|
28
|
+
* potentially high-cardinality (per-user, per-tenant, …); emitting it as
|
|
29
|
+
* a metric label by default risks a cardinality explosion in any
|
|
30
|
+
* non-trivial deployment. Default OFF: strip the key before emission so
|
|
31
|
+
* counters stay bucketed by `workflow_name` alone. Opt in to per-key
|
|
32
|
+
* granularity with `BLOK_METRICS_PER_KEY=1` (or `=true`).
|
|
33
|
+
*
|
|
34
|
+
* Exported for test reuse (the strip helper below).
|
|
35
|
+
*/
|
|
36
|
+
export declare function isPerKeyMetricsEnabled(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Pure helper — strips `concurrency_key` from a copy of `attrs` when
|
|
39
|
+
* per-key emission is disabled. Returns the original reference when
|
|
40
|
+
* enabled (no allocation on the hot path).
|
|
41
|
+
*/
|
|
42
|
+
export declare function filterPerKeyAttrs<T extends {
|
|
43
|
+
concurrency_key?: string;
|
|
44
|
+
}>(attrs: T, enabled: boolean): T;
|
|
45
|
+
export declare class ConcurrencyMetrics {
|
|
46
|
+
private static instance;
|
|
47
|
+
/**
|
|
48
|
+
* Captured at construction time — the constructor is private + the
|
|
49
|
+
* singleton is only reset in tests, so this stays stable for the
|
|
50
|
+
* lifetime of a process. Tests that toggle the env var call
|
|
51
|
+
* `resetInstance()` before re-`getInstance()` to pick up the flip.
|
|
52
|
+
*/
|
|
53
|
+
private readonly perKeyEnabled;
|
|
54
|
+
private readonly acquiredCounter;
|
|
55
|
+
private readonly deniedCounter;
|
|
56
|
+
private readonly releasedCounter;
|
|
57
|
+
private readonly dispatchRecoveredCounter;
|
|
58
|
+
private readonly dispatchExpiredCounter;
|
|
59
|
+
private readonly dispatchFiredCounter;
|
|
60
|
+
private readonly backendInstallCounter;
|
|
61
|
+
private readonly occRetriesHistogram;
|
|
62
|
+
private constructor();
|
|
63
|
+
static getInstance(): ConcurrencyMetrics;
|
|
64
|
+
/** Test-only — drop the singleton so re-import gets fresh meters. */
|
|
65
|
+
static resetInstance(): void;
|
|
66
|
+
recordAcquired(attrs: ConcurrencyAttributes): void;
|
|
67
|
+
recordDenied(attrs: ConcurrencyAttributes & {
|
|
68
|
+
mode: "throw" | "queue";
|
|
69
|
+
}): void;
|
|
70
|
+
recordReleased(attrs: ConcurrencyAttributes): void;
|
|
71
|
+
recordDispatchRecovered(attrs: SchedulingAttributes): void;
|
|
72
|
+
recordDispatchExpired(attrs: SchedulingAttributes): void;
|
|
73
|
+
recordDispatchFired(attrs: SchedulingAttributes): void;
|
|
74
|
+
recordBackendInstall(attrs: {
|
|
75
|
+
backend: string;
|
|
76
|
+
status: "success" | "failure";
|
|
77
|
+
}): void;
|
|
78
|
+
recordOccRetries(attrs: ConcurrencyAttributes & {
|
|
79
|
+
outcome: "success" | "denied" | "fail-closed";
|
|
80
|
+
}, attempts: number): void;
|
|
81
|
+
}
|
|
82
|
+
export {};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 2 follow-up · OpenTelemetry counters for concurrency + scheduling
|
|
3
|
+
* resource lifecycle events.
|
|
4
|
+
*
|
|
5
|
+
* Wired into:
|
|
6
|
+
* - `TriggerBase.run`'s concurrency gate — `recordAcquired` /
|
|
7
|
+
* `recordDenied` / `recordReleased` per slot operation.
|
|
8
|
+
* - `HttpTrigger.recoverDispatches` — `recordDispatchRecovered` /
|
|
9
|
+
* `recordDispatchExpired` for boot-recovery observability.
|
|
10
|
+
* - The scheduler / debounce coordinator — `recordDispatchFired`
|
|
11
|
+
* when a deferred timer fires successfully.
|
|
12
|
+
*
|
|
13
|
+
* Singleton; lazy-instantiated. No-ops cleanly when OTel isn't
|
|
14
|
+
* configured (the meter API silently swallows recordings without
|
|
15
|
+
* an exporter).
|
|
16
|
+
*/
|
|
17
|
+
import { metrics } from "@opentelemetry/api";
|
|
18
|
+
/**
|
|
19
|
+
* D6 (v0.6) — read the per-key opt-in env var. `concurrency_key` is
|
|
20
|
+
* potentially high-cardinality (per-user, per-tenant, …); emitting it as
|
|
21
|
+
* a metric label by default risks a cardinality explosion in any
|
|
22
|
+
* non-trivial deployment. Default OFF: strip the key before emission so
|
|
23
|
+
* counters stay bucketed by `workflow_name` alone. Opt in to per-key
|
|
24
|
+
* granularity with `BLOK_METRICS_PER_KEY=1` (or `=true`).
|
|
25
|
+
*
|
|
26
|
+
* Exported for test reuse (the strip helper below).
|
|
27
|
+
*/
|
|
28
|
+
export function isPerKeyMetricsEnabled() {
|
|
29
|
+
const raw = process.env.BLOK_METRICS_PER_KEY;
|
|
30
|
+
return raw === "1" || raw === "true";
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Pure helper — strips `concurrency_key` from a copy of `attrs` when
|
|
34
|
+
* per-key emission is disabled. Returns the original reference when
|
|
35
|
+
* enabled (no allocation on the hot path).
|
|
36
|
+
*/
|
|
37
|
+
export function filterPerKeyAttrs(attrs, enabled) {
|
|
38
|
+
if (enabled || attrs.concurrency_key === undefined)
|
|
39
|
+
return attrs;
|
|
40
|
+
const { concurrency_key: _omitted, ...rest } = attrs;
|
|
41
|
+
return rest;
|
|
42
|
+
}
|
|
43
|
+
export class ConcurrencyMetrics {
|
|
44
|
+
static instance = null;
|
|
45
|
+
/**
|
|
46
|
+
* Captured at construction time — the constructor is private + the
|
|
47
|
+
* singleton is only reset in tests, so this stays stable for the
|
|
48
|
+
* lifetime of a process. Tests that toggle the env var call
|
|
49
|
+
* `resetInstance()` before re-`getInstance()` to pick up the flip.
|
|
50
|
+
*/
|
|
51
|
+
perKeyEnabled = isPerKeyMetricsEnabled();
|
|
52
|
+
acquiredCounter = metrics.getMeter("blok").createCounter("blok_concurrency_acquired_total", {
|
|
53
|
+
description: "Total concurrency slots acquired (per workflow + key).",
|
|
54
|
+
unit: "1",
|
|
55
|
+
});
|
|
56
|
+
deniedCounter = metrics.getMeter("blok").createCounter("blok_concurrency_denied_total", {
|
|
57
|
+
description: "Total concurrency slot denials (limit hit; throttled or queued).",
|
|
58
|
+
unit: "1",
|
|
59
|
+
});
|
|
60
|
+
releasedCounter = metrics.getMeter("blok").createCounter("blok_concurrency_released_total", {
|
|
61
|
+
description: "Total concurrency slots released (run reached terminal state).",
|
|
62
|
+
unit: "1",
|
|
63
|
+
});
|
|
64
|
+
dispatchRecoveredCounter = metrics
|
|
65
|
+
.getMeter("blok")
|
|
66
|
+
.createCounter("blok_scheduling_dispatch_recovered_total", {
|
|
67
|
+
description: "Scheduled dispatches re-registered on boot recovery (HttpTrigger).",
|
|
68
|
+
unit: "1",
|
|
69
|
+
});
|
|
70
|
+
dispatchExpiredCounter = metrics
|
|
71
|
+
.getMeter("blok")
|
|
72
|
+
.createCounter("blok_scheduling_dispatch_expired_total", {
|
|
73
|
+
description: "Scheduled dispatches marked expired on boot recovery (TTL elapsed).",
|
|
74
|
+
unit: "1",
|
|
75
|
+
});
|
|
76
|
+
dispatchFiredCounter = metrics
|
|
77
|
+
.getMeter("blok")
|
|
78
|
+
.createCounter("blok_scheduling_dispatch_fired_total", {
|
|
79
|
+
description: "Scheduled dispatches fired by the in-process scheduler.",
|
|
80
|
+
unit: "1",
|
|
81
|
+
});
|
|
82
|
+
// PR 3 D1 — backend install observability. Operators who misconfigure
|
|
83
|
+
// the cross-process backend (NATS KV unreachable / auth failure) get a
|
|
84
|
+
// silent fallback to the in-process backend. This counter surfaces
|
|
85
|
+
// install attempts so misconfiguration is visible in metrics.
|
|
86
|
+
backendInstallCounter = metrics
|
|
87
|
+
.getMeter("blok")
|
|
88
|
+
.createCounter("blok_concurrency_backend_install_total", {
|
|
89
|
+
description: "Concurrency backend install attempts (success / failure).",
|
|
90
|
+
unit: "1",
|
|
91
|
+
});
|
|
92
|
+
// PR 3 D2 — OCC retry depth histogram. The 95% fail-close rate at
|
|
93
|
+
// 200-way contention seen in LOAD-TESTS.md is invisible without a
|
|
94
|
+
// histogram. Recorded per acquireSlot exit point with bucket
|
|
95
|
+
// boundaries [0, 1, 2, 3, 5, 10] — OCC retry budget caps at 10.
|
|
96
|
+
occRetriesHistogram = metrics.getMeter("blok").createHistogram("blok_concurrency_occ_retries", {
|
|
97
|
+
description: "OCC retry attempts on cross-process concurrency backends.",
|
|
98
|
+
unit: "{retries}",
|
|
99
|
+
advice: { explicitBucketBoundaries: [0, 1, 2, 3, 5, 10] },
|
|
100
|
+
});
|
|
101
|
+
constructor() { }
|
|
102
|
+
static getInstance() {
|
|
103
|
+
if (!ConcurrencyMetrics.instance) {
|
|
104
|
+
ConcurrencyMetrics.instance = new ConcurrencyMetrics();
|
|
105
|
+
}
|
|
106
|
+
return ConcurrencyMetrics.instance;
|
|
107
|
+
}
|
|
108
|
+
/** Test-only — drop the singleton so re-import gets fresh meters. */
|
|
109
|
+
static resetInstance() {
|
|
110
|
+
ConcurrencyMetrics.instance = null;
|
|
111
|
+
}
|
|
112
|
+
recordAcquired(attrs) {
|
|
113
|
+
this.acquiredCounter.add(1, filterPerKeyAttrs(attrs, this.perKeyEnabled));
|
|
114
|
+
}
|
|
115
|
+
recordDenied(attrs) {
|
|
116
|
+
this.deniedCounter.add(1, filterPerKeyAttrs(attrs, this.perKeyEnabled));
|
|
117
|
+
}
|
|
118
|
+
recordReleased(attrs) {
|
|
119
|
+
this.releasedCounter.add(1, filterPerKeyAttrs(attrs, this.perKeyEnabled));
|
|
120
|
+
}
|
|
121
|
+
recordDispatchRecovered(attrs) {
|
|
122
|
+
this.dispatchRecoveredCounter.add(1, attrs);
|
|
123
|
+
}
|
|
124
|
+
recordDispatchExpired(attrs) {
|
|
125
|
+
this.dispatchExpiredCounter.add(1, attrs);
|
|
126
|
+
}
|
|
127
|
+
recordDispatchFired(attrs) {
|
|
128
|
+
this.dispatchFiredCounter.add(1, attrs);
|
|
129
|
+
}
|
|
130
|
+
// PR 3 D1 — backend install attempt outcome.
|
|
131
|
+
recordBackendInstall(attrs) {
|
|
132
|
+
this.backendInstallCounter.add(1, attrs);
|
|
133
|
+
}
|
|
134
|
+
// PR 3 D2 — OCC retry depth + outcome (success | denied | fail-closed).
|
|
135
|
+
recordOccRetries(attrs, attempts) {
|
|
136
|
+
this.occRetriesHistogram.record(attempts, filterPerKeyAttrs(attrs, this.perKeyEnabled));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=ConcurrencyMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConcurrencyMetrics.js","sourceRoot":"","sources":["../../src/monitoring/ConcurrencyMetrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v0.6 Phase 3 — OTel counter for parallel forEach + wait observability.
|
|
3
|
+
* Incremented at cursor-write time with the count of iterations
|
|
4
|
+
* cancelled because a peer fired a wait. Lets ops dashboards spot
|
|
5
|
+
* workflows that frequently waste work on cancel + re-launch — usually
|
|
6
|
+
* a signal that the author should switch to sequential forEach OR add
|
|
7
|
+
* `idempotencyKey` to inner steps so the re-launches are cache hits.
|
|
8
|
+
*
|
|
9
|
+
* Singleton, lazy-instantiated. No-ops cleanly when OTel isn't
|
|
10
|
+
* configured (the meter API silently swallows recordings without an
|
|
11
|
+
* exporter).
|
|
12
|
+
*/
|
|
13
|
+
export declare class ForEachWaitMetrics {
|
|
14
|
+
private static instance;
|
|
15
|
+
private readonly cancelledCounter;
|
|
16
|
+
static getInstance(): ForEachWaitMetrics;
|
|
17
|
+
static resetInstance(): void;
|
|
18
|
+
recordCancellation(opts: {
|
|
19
|
+
workflowName: string;
|
|
20
|
+
cancelledCount: number;
|
|
21
|
+
}): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v0.6 Phase 3 — OTel counter for parallel forEach + wait observability.
|
|
3
|
+
* Incremented at cursor-write time with the count of iterations
|
|
4
|
+
* cancelled because a peer fired a wait. Lets ops dashboards spot
|
|
5
|
+
* workflows that frequently waste work on cancel + re-launch — usually
|
|
6
|
+
* a signal that the author should switch to sequential forEach OR add
|
|
7
|
+
* `idempotencyKey` to inner steps so the re-launches are cache hits.
|
|
8
|
+
*
|
|
9
|
+
* Singleton, lazy-instantiated. No-ops cleanly when OTel isn't
|
|
10
|
+
* configured (the meter API silently swallows recordings without an
|
|
11
|
+
* exporter).
|
|
12
|
+
*/
|
|
13
|
+
import { metrics } from "@opentelemetry/api";
|
|
14
|
+
export class ForEachWaitMetrics {
|
|
15
|
+
static instance = null;
|
|
16
|
+
cancelledCounter = metrics.getMeter("blok").createCounter("blok_foreach_wait_cancelled_total", {
|
|
17
|
+
description: "Iterations cancelled because a peer fired a wait inside a parallel forEach. High values signal authors should add idempotencyKey to inner steps.",
|
|
18
|
+
unit: "1",
|
|
19
|
+
});
|
|
20
|
+
static getInstance() {
|
|
21
|
+
if (!ForEachWaitMetrics.instance) {
|
|
22
|
+
ForEachWaitMetrics.instance = new ForEachWaitMetrics();
|
|
23
|
+
}
|
|
24
|
+
return ForEachWaitMetrics.instance;
|
|
25
|
+
}
|
|
26
|
+
static resetInstance() {
|
|
27
|
+
ForEachWaitMetrics.instance = null;
|
|
28
|
+
}
|
|
29
|
+
recordCancellation(opts) {
|
|
30
|
+
if (opts.cancelledCount <= 0)
|
|
31
|
+
return;
|
|
32
|
+
const attrs = { workflow_name: opts.workflowName };
|
|
33
|
+
this.cancelledCounter.add(opts.cancelledCount, attrs);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=ForEachWaitMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForEachWaitMetrics.js","sourceRoot":"","sources":["../../src/monitoring/ForEachWaitMetrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAmB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,OAAO,kBAAkB;IACtB,MAAM,CAAC,QAAQ,GAA8B,IAAI,CAAC;IAEzC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,mCAAmC,EAAE;QAC/G,WAAW,EACV,kJAAkJ;QACnJ,IAAI,EAAE,GAAG;KACT,CAAC,CAAC;IAEH,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAClC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,aAAa;QACnB,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,kBAAkB,CAAC,IAAsD;QACxE,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC;YAAE,OAAO;QACrC,MAAM,KAAK,GAAe,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PR 3 D3 — OpenTelemetry metrics for the Janitor sweep.
|
|
3
|
+
*
|
|
4
|
+
* Operators tuning `BLOK_JANITOR_INTERVAL_MS` need real numbers per
|
|
5
|
+
* sweep: how long does each table's purge take, how many rows did it
|
|
6
|
+
* remove? This singleton exposes a histogram for sweep duration and a
|
|
7
|
+
* counter for purged rows, both labeled by the table being swept.
|
|
8
|
+
*
|
|
9
|
+
* Wired into `Janitor.runOnce` per-table after each purge call.
|
|
10
|
+
*
|
|
11
|
+
* No-op cleanly when OTel isn't configured (the meter API silently
|
|
12
|
+
* swallows recordings without an exporter).
|
|
13
|
+
*/
|
|
14
|
+
interface JanitorAttributes {
|
|
15
|
+
table: "idempotency_cache" | "concurrency_locks" | "scheduled_dispatches";
|
|
16
|
+
}
|
|
17
|
+
export declare class JanitorMetrics {
|
|
18
|
+
private static instance;
|
|
19
|
+
private readonly sweepDurationHistogram;
|
|
20
|
+
private readonly purgedCounter;
|
|
21
|
+
private constructor();
|
|
22
|
+
static getInstance(): JanitorMetrics;
|
|
23
|
+
/** Test-only — drop the singleton so re-import gets fresh meters. */
|
|
24
|
+
static resetInstance(): void;
|
|
25
|
+
recordSweep(attrs: JanitorAttributes, durationMs: number, rowsPurged: number): void;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PR 3 D3 — OpenTelemetry metrics for the Janitor sweep.
|
|
3
|
+
*
|
|
4
|
+
* Operators tuning `BLOK_JANITOR_INTERVAL_MS` need real numbers per
|
|
5
|
+
* sweep: how long does each table's purge take, how many rows did it
|
|
6
|
+
* remove? This singleton exposes a histogram for sweep duration and a
|
|
7
|
+
* counter for purged rows, both labeled by the table being swept.
|
|
8
|
+
*
|
|
9
|
+
* Wired into `Janitor.runOnce` per-table after each purge call.
|
|
10
|
+
*
|
|
11
|
+
* No-op cleanly when OTel isn't configured (the meter API silently
|
|
12
|
+
* swallows recordings without an exporter).
|
|
13
|
+
*/
|
|
14
|
+
import { metrics } from "@opentelemetry/api";
|
|
15
|
+
export class JanitorMetrics {
|
|
16
|
+
static instance = null;
|
|
17
|
+
sweepDurationHistogram = metrics.getMeter("blok").createHistogram("blok_janitor_sweep_duration_ms", {
|
|
18
|
+
description: "Janitor sweep duration per table.",
|
|
19
|
+
unit: "ms",
|
|
20
|
+
advice: { explicitBucketBoundaries: [1, 5, 10, 50, 100, 500, 1000, 5000, 30000] },
|
|
21
|
+
});
|
|
22
|
+
purgedCounter = metrics.getMeter("blok").createCounter("blok_janitor_purged_total", {
|
|
23
|
+
description: "Total rows purged by the Janitor per table.",
|
|
24
|
+
unit: "1",
|
|
25
|
+
});
|
|
26
|
+
constructor() { }
|
|
27
|
+
static getInstance() {
|
|
28
|
+
if (!JanitorMetrics.instance) {
|
|
29
|
+
JanitorMetrics.instance = new JanitorMetrics();
|
|
30
|
+
}
|
|
31
|
+
return JanitorMetrics.instance;
|
|
32
|
+
}
|
|
33
|
+
/** Test-only — drop the singleton so re-import gets fresh meters. */
|
|
34
|
+
static resetInstance() {
|
|
35
|
+
JanitorMetrics.instance = null;
|
|
36
|
+
}
|
|
37
|
+
recordSweep(attrs, durationMs, rowsPurged) {
|
|
38
|
+
this.sweepDurationHistogram.record(durationMs, attrs);
|
|
39
|
+
// Review fix-up · GAP-2. Always record the counter, even when zero.
|
|
40
|
+
// Without zero-row recordings, operators can't distinguish
|
|
41
|
+
// "Janitor running, table clean" from "Janitor not running" by
|
|
42
|
+
// looking at the counter alone. The duration histogram captures
|
|
43
|
+
// liveness too, but pairing them under the same emit cadence
|
|
44
|
+
// keeps dashboards consistent.
|
|
45
|
+
this.purgedCounter.add(rowsPurged, attrs);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=JanitorMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JanitorMetrics.js","sourceRoot":"","sources":["../../src/monitoring/JanitorMetrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAM7C,MAAM,OAAO,cAAc;IAClB,MAAM,CAAC,QAAQ,GAA0B,IAAI,CAAC;IAErC,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,gCAAgC,EAAE;QACpH,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,EAAE,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;KACjF,CAAC,CAAC;IAEc,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,2BAA2B,EAAE;QACpG,WAAW,EAAE,6CAA6C;QAC1D,IAAI,EAAE,GAAG;KACT,CAAC,CAAC;IAEH,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,qEAAqE;IACrE,MAAM,CAAC,aAAa;QACnB,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,KAAwB,EAAE,UAAkB,EAAE,UAAkB;QAC3E,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAU,EAAE,KAA0C,CAAC,CAAC;QAC3F,oEAAoE;QACpE,2DAA2D;QAC3D,+DAA+D;QAC/D,gEAAgE;QAChE,6DAA6D;QAC7D,+BAA+B;QAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,KAA0C,CAAC,CAAC;IAChF,CAAC"}
|
|
@@ -180,7 +180,12 @@ export class OpenAPIGenerator {
|
|
|
180
180
|
return this.jsonToYaml(spec);
|
|
181
181
|
}
|
|
182
182
|
buildOperation(workflow) {
|
|
183
|
+
// Caller (`generate()`) only invokes `buildOperation` for workflows
|
|
184
|
+
// that have an http trigger; defensive check keeps the type exact.
|
|
183
185
|
const httpTrigger = workflow.trigger.http;
|
|
186
|
+
if (!httpTrigger) {
|
|
187
|
+
throw new Error(`[OpenAPIGenerator] workflow "${workflow.name}" has no http trigger — cannot build operation`);
|
|
188
|
+
}
|
|
184
189
|
const method = (httpTrigger.method || "GET").toUpperCase();
|
|
185
190
|
const tag = this.inferTag(workflow);
|
|
186
191
|
const operation = {
|
|
@@ -219,7 +224,7 @@ export class OpenAPIGenerator {
|
|
|
219
224
|
// Extract path parameters
|
|
220
225
|
const pathParams = this.extractPathParams(httpTrigger.path);
|
|
221
226
|
for (const param of pathParams) {
|
|
222
|
-
operation.parameters
|
|
227
|
+
operation.parameters?.push({
|
|
223
228
|
name: param,
|
|
224
229
|
in: "path",
|
|
225
230
|
required: true,
|
|
@@ -238,7 +243,7 @@ export class OpenAPIGenerator {
|
|
|
238
243
|
};
|
|
239
244
|
}
|
|
240
245
|
// Add requestId query parameter
|
|
241
|
-
operation.parameters
|
|
246
|
+
operation.parameters?.push({
|
|
242
247
|
name: "requestId",
|
|
243
248
|
in: "query",
|
|
244
249
|
required: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAPIGenerator.js","sourceRoot":"","sources":["../../src/openapi/OpenAPIGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA6FH,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAyB;IAC/B,SAAS,GAAyB,EAAE,CAAC;IACrC,OAAO,GAAyB,IAAI,GAAG,EAAE,CAAC;IAElD,YAAY,MAA8B;QACzC,IAAI,CAAC,MAAM,GAAG;YACb,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;YAC9E,GAAG,MAAM;SACT,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAA4B;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAA+B;QAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY,EAAE,MAAe;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ;QACP,MAAM,IAAI,GAAgB;YACzB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE;gBACL,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC5B;YACD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,KAAK,EAAE,EAAE;YACT,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;4BACvD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;4BACrE,iBAAiB,EAAE;gCAClB,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE;oCACN,IAAI,EAAE,QAAQ;oCACd,UAAU,EAAE;wCACX,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;wCAClD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wCAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qCACxB;iCACD;gCACD,WAAW,EAAE,0CAA0C;6BACvD;yBACD;qBACD;oBACD,eAAe,EAAE;wBAChB,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACX,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE;4BACjE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACjC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACjC;qBACD;oBACD,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;iBACnC;aACD;YACD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;SAC5B,CAAC;QAEF,qCAAqC;QACrC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC9D,0BAA0B;YAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvE,CAAC,IAAI,CAAC,EAAE,EAAE;aACV,CAAC,CAAC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;gBAAE,SAAS;YAErC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG;YAC7B,GAAG,EAAE;gBACJ,OAAO,EAAE,cAAc;gBACvB,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,SAAS,EAAE;oBACV,KAAK,EAAE;wBACN,WAAW,EAAE,oBAAoB;wBACjC,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;qBACzD;iBACD;aACD;SACD,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG;YACxB,GAAG,EAAE;gBACJ,OAAO,EAAE,oBAAoB;gBAC7B,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,SAAS,EAAE;oBACV,KAAK,EAAE;wBACN,WAAW,EAAE,mCAAmC;wBAChD,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;qBACzD;iBACD;aACD;SACD,CAAC;QAEF,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG;gBACX,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;aACzE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,GAAG,IAAI;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,MAAM;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,cAAc,CAAC,QAA4B;QAClD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAK,CAAC;QAC3C,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAqB;YACnC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAClF,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,eAAe,QAAQ,CAAC,IAAI,eAAe,QAAQ,CAAC,OAAO,GAAG;YACnG,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YACtD,IAAI,EAAE,CAAC,GAAG,CAAC;YACX,UAAU,EAAE,EAAE;YACd,SAAS,EAAE;gBACV,KAAK,EAAE;oBACN,WAAW,EAAE,+BAA+B;oBAC5C,OAAO,EAAE;wBACR,CAAC,WAAW,CAAC,MAAM,IAAI,kBAAkB,CAAC,EAAE;4BAC3C,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;yBAC1C;qBACD;iBACD;gBACD,KAAK,EAAE;oBACN,WAAW,EAAE,kBAAkB;oBAC/B,OAAO,EAAE;wBACR,kBAAkB,EAAE;4BACnB,MAAM,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE;yBACtD;qBACD;iBACD;gBACD,KAAK,EAAE;oBACN,WAAW,EAAE,uBAAuB;oBACpC,OAAO,EAAE;wBACR,kBAAkB,EAAE;4BACnB,MAAM,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE;yBACtD;qBACD;iBACD;aACD;SACD,CAAC;QAEF,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAChC,SAAS,CAAC,UAAW,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,MAAM;gBACV,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B,CAAC,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,SAAS,CAAC,WAAW,GAAG;gBACvB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACR,kBAAkB,EAAE;wBACnB,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;qBACzC;iBACD;aACD,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,SAAS,CAAC,UAAW,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,WAAW,EAAE,+BAA+B;SAC5C,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,kBAAkB,CAAC,QAA4B;QACtD,4DAA4D;QAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,eAAe,EAAE,CAAC;YACrB,OAAO,eAAe,CAAC;QACxB,CAAC;QAED,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,aAAa,QAAQ,CAAC,IAAI,WAAW;YAClD,oBAAoB,EAAE,IAAI;SAC1B,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,QAA4B;QACvD,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,eAAe,QAAQ,CAAC,IAAI,WAAW;YACpD,oBAAoB,EAAE,IAAI;SAC1B,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,QAA4B;QACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAsB,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,IAAI;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAyC,CAAC;QAC1F,IAAI,CAAC,UAAU,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAErC,uCAAuC;QACvC,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjF,iEAAiE;gBACjE,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACzC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;oBACvD,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,WAAW,CAAC,QAAgB;QACnC,kDAAkD;QAClD,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,MAAc;QACjD,MAAM,SAAS,GAAG,IAAI;aACpB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;aAC7B,IAAI,EAAE;aACN,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;aAC7G,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC;IAEO,QAAQ,CAAC,QAA4B;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,8EAA8E;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAY,EAAE,MAAM,GAAG,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACrD,IAAI,OAAO,GAAG,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvF,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;YACxC,CAAC;YACD,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClC,OAAO,GAAG;iBACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC/C,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC1C,CAAC;gBACD,OAAO,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;YAC9B,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YAClG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACtC,OAAO,OAAO;iBACZ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1E,OAAO,GAAG,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;gBACzC,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,OAAO,GAAG,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,GAAG,MAAM,GAAG,GAAG,KAAK,SAAS,EAAE,CAAC;YACxC,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"OpenAPIGenerator.js","sourceRoot":"","sources":["../../src/openapi/OpenAPIGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrimitiveStack — v0.6 Phase 4 — runtime call stack of active
|
|
3
|
+
* primitives (forEach, loop, switch) currently executing a sub-
|
|
4
|
+
* pipeline.
|
|
5
|
+
*
|
|
6
|
+
* The Phase 1-3 single-slot machinery (`_blokActivePrimitiveNodeRunId`,
|
|
7
|
+
* `_blokForEachCurrentIteration`, `_blokForEachPartialResults`)
|
|
8
|
+
* could only track ONE primitive at a time. That's fine for
|
|
9
|
+
* `forEach > wait` and `loop > wait`, but the moment a wait fires
|
|
10
|
+
* inside `forEach > forEach > wait` (or `switch > forEach > wait`,
|
|
11
|
+
* etc.) the inner primitive overwrites the outer's sentinels —
|
|
12
|
+
* only the inner cursor lands in `node_runs.iteration_context`, and
|
|
13
|
+
* the outer primitive resumes from iteration 0 instead of iteration
|
|
14
|
+
* N. Phase 4 replaces the single-slot model with this stack so each
|
|
15
|
+
* primitive writes its own NodeRun's cursor frame on wait-throw.
|
|
16
|
+
*
|
|
17
|
+
* Mechanics:
|
|
18
|
+
*
|
|
19
|
+
* - **Each primitive pushes a frame on entry, pops in finally.**
|
|
20
|
+
* `cursor` is an `IterationContext` whose discriminator (`mode`)
|
|
21
|
+
* tells the persistence + resume code paths what shape to expect
|
|
22
|
+
* ("sequential" / "parallel" / "switch").
|
|
23
|
+
* - **The primitive owns the cursor's iteration/case state.** It
|
|
24
|
+
* updates `frame.cursor.iteration` (forEach/loop) or
|
|
25
|
+
* `frame.cursor.caseIndex` (switch) and
|
|
26
|
+
* `frame.cursor.completedResults` as the sub-pipeline progresses.
|
|
27
|
+
* - **RunnerSteps owns the inner-step cursor.** At each step
|
|
28
|
+
* boundary inside a deep runSteps, the runner sets the TOP
|
|
29
|
+
* frame's `cursor.innerStepIndex = i` so a wait fired at that step
|
|
30
|
+
* gets the right cursor written.
|
|
31
|
+
* - **The wait-throw site walks the whole stack** and persists each
|
|
32
|
+
* frame to its respective NodeRun. On resume, every primitive
|
|
33
|
+
* looks itself up by NodeRun id in the rehydrated cursor map
|
|
34
|
+
* (see `_blokIterationCursors` populated by `TriggerBase.run`).
|
|
35
|
+
*
|
|
36
|
+
* The stack lives on `ctx._blokPrimitiveStack` so the per-iteration
|
|
37
|
+
* child-ctx shallow spread inside ForEachNode / LoopNode / SwitchNode
|
|
38
|
+
* preserves the reference; pushes from a nested primitive are visible
|
|
39
|
+
* to the outer runSteps because they share the array.
|
|
40
|
+
*/
|
|
41
|
+
import type { Context } from "@blokjs/shared";
|
|
42
|
+
import type { IterationContext } from "../tracing/types";
|
|
43
|
+
export interface PrimitiveStackFrame {
|
|
44
|
+
/** NodeRun id of the primitive that owns this frame. */
|
|
45
|
+
nodeRunId: string;
|
|
46
|
+
/** Iteration / case cursor — mutated in place as the sub-pipeline progresses. */
|
|
47
|
+
cursor: IterationContext;
|
|
48
|
+
}
|
|
49
|
+
export declare function getPrimitiveStack(ctx: Context): PrimitiveStackFrame[];
|
|
50
|
+
export declare function pushPrimitiveFrame(ctx: Context, frame: PrimitiveStackFrame): void;
|
|
51
|
+
export declare function popPrimitiveFrame(ctx: Context): PrimitiveStackFrame | undefined;
|
|
52
|
+
export declare function peekPrimitiveFrame(ctx: Context): PrimitiveStackFrame | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Read the cursor stamped onto `ctx._blokIterationCursors` for the
|
|
55
|
+
* given primitive step name. The map is keyed by step NAME (not
|
|
56
|
+
* NodeRun id) because NodeRun ids change on every dispatchDeferred
|
|
57
|
+
* re-entry while step names are stable. Returns `undefined` when no
|
|
58
|
+
* cursor was rehydrated (fresh run, no waits, sibling primitive).
|
|
59
|
+
* After successful resume, primitives should call
|
|
60
|
+
* {@link consumeRehydratedCursor} to clear the entry so sibling
|
|
61
|
+
* primitives later in the workflow don't accidentally re-resume.
|
|
62
|
+
*/
|
|
63
|
+
export declare function readRehydratedCursor(ctx: Context, stepName: string): IterationContext | undefined;
|
|
64
|
+
export declare function consumeRehydratedCursor(ctx: Context, stepName: string): void;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrimitiveStack — v0.6 Phase 4 — runtime call stack of active
|
|
3
|
+
* primitives (forEach, loop, switch) currently executing a sub-
|
|
4
|
+
* pipeline.
|
|
5
|
+
*
|
|
6
|
+
* The Phase 1-3 single-slot machinery (`_blokActivePrimitiveNodeRunId`,
|
|
7
|
+
* `_blokForEachCurrentIteration`, `_blokForEachPartialResults`)
|
|
8
|
+
* could only track ONE primitive at a time. That's fine for
|
|
9
|
+
* `forEach > wait` and `loop > wait`, but the moment a wait fires
|
|
10
|
+
* inside `forEach > forEach > wait` (or `switch > forEach > wait`,
|
|
11
|
+
* etc.) the inner primitive overwrites the outer's sentinels —
|
|
12
|
+
* only the inner cursor lands in `node_runs.iteration_context`, and
|
|
13
|
+
* the outer primitive resumes from iteration 0 instead of iteration
|
|
14
|
+
* N. Phase 4 replaces the single-slot model with this stack so each
|
|
15
|
+
* primitive writes its own NodeRun's cursor frame on wait-throw.
|
|
16
|
+
*
|
|
17
|
+
* Mechanics:
|
|
18
|
+
*
|
|
19
|
+
* - **Each primitive pushes a frame on entry, pops in finally.**
|
|
20
|
+
* `cursor` is an `IterationContext` whose discriminator (`mode`)
|
|
21
|
+
* tells the persistence + resume code paths what shape to expect
|
|
22
|
+
* ("sequential" / "parallel" / "switch").
|
|
23
|
+
* - **The primitive owns the cursor's iteration/case state.** It
|
|
24
|
+
* updates `frame.cursor.iteration` (forEach/loop) or
|
|
25
|
+
* `frame.cursor.caseIndex` (switch) and
|
|
26
|
+
* `frame.cursor.completedResults` as the sub-pipeline progresses.
|
|
27
|
+
* - **RunnerSteps owns the inner-step cursor.** At each step
|
|
28
|
+
* boundary inside a deep runSteps, the runner sets the TOP
|
|
29
|
+
* frame's `cursor.innerStepIndex = i` so a wait fired at that step
|
|
30
|
+
* gets the right cursor written.
|
|
31
|
+
* - **The wait-throw site walks the whole stack** and persists each
|
|
32
|
+
* frame to its respective NodeRun. On resume, every primitive
|
|
33
|
+
* looks itself up by NodeRun id in the rehydrated cursor map
|
|
34
|
+
* (see `_blokIterationCursors` populated by `TriggerBase.run`).
|
|
35
|
+
*
|
|
36
|
+
* The stack lives on `ctx._blokPrimitiveStack` so the per-iteration
|
|
37
|
+
* child-ctx shallow spread inside ForEachNode / LoopNode / SwitchNode
|
|
38
|
+
* preserves the reference; pushes from a nested primitive are visible
|
|
39
|
+
* to the outer runSteps because they share the array.
|
|
40
|
+
*/
|
|
41
|
+
const STACK_KEY = "_blokPrimitiveStack";
|
|
42
|
+
export function getPrimitiveStack(ctx) {
|
|
43
|
+
const stack = ctx[STACK_KEY];
|
|
44
|
+
if (Array.isArray(stack))
|
|
45
|
+
return stack;
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
export function pushPrimitiveFrame(ctx, frame) {
|
|
49
|
+
const ctxAny = ctx;
|
|
50
|
+
let stack = ctxAny[STACK_KEY];
|
|
51
|
+
if (!Array.isArray(stack)) {
|
|
52
|
+
stack = [];
|
|
53
|
+
ctxAny[STACK_KEY] = stack;
|
|
54
|
+
}
|
|
55
|
+
stack.push(frame);
|
|
56
|
+
}
|
|
57
|
+
export function popPrimitiveFrame(ctx) {
|
|
58
|
+
const ctxAny = ctx;
|
|
59
|
+
const stack = ctxAny[STACK_KEY];
|
|
60
|
+
if (!Array.isArray(stack) || stack.length === 0)
|
|
61
|
+
return undefined;
|
|
62
|
+
return stack.pop();
|
|
63
|
+
}
|
|
64
|
+
export function peekPrimitiveFrame(ctx) {
|
|
65
|
+
const stack = getPrimitiveStack(ctx);
|
|
66
|
+
if (stack.length === 0)
|
|
67
|
+
return undefined;
|
|
68
|
+
return stack[stack.length - 1];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Read the cursor stamped onto `ctx._blokIterationCursors` for the
|
|
72
|
+
* given primitive step name. The map is keyed by step NAME (not
|
|
73
|
+
* NodeRun id) because NodeRun ids change on every dispatchDeferred
|
|
74
|
+
* re-entry while step names are stable. Returns `undefined` when no
|
|
75
|
+
* cursor was rehydrated (fresh run, no waits, sibling primitive).
|
|
76
|
+
* After successful resume, primitives should call
|
|
77
|
+
* {@link consumeRehydratedCursor} to clear the entry so sibling
|
|
78
|
+
* primitives later in the workflow don't accidentally re-resume.
|
|
79
|
+
*/
|
|
80
|
+
export function readRehydratedCursor(ctx, stepName) {
|
|
81
|
+
const map = ctx._blokIterationCursors;
|
|
82
|
+
if (!(map instanceof Map))
|
|
83
|
+
return undefined;
|
|
84
|
+
return map.get(stepName);
|
|
85
|
+
}
|
|
86
|
+
export function consumeRehydratedCursor(ctx, stepName) {
|
|
87
|
+
const map = ctx._blokIterationCursors;
|
|
88
|
+
if (map instanceof Map) {
|
|
89
|
+
map.delete(stepName);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=PrimitiveStack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimitiveStack.js","sourceRoot":"","sources":["../../src/runtime/PrimitiveStack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,MAAM,SAAS,GAAG,qBAAqB,CAAC;AASxC,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC7C,MAAM,KAAK,GAAI,GAA+B,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAA8B,CAAC;IAChE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY,EAAE,KAA0B;IAC1E,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAsC,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,KAAK,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC7C,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAsC,CAAC;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClE,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC9C,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY,EAAE,QAAgB;IAClE,MAAM,GAAG,GAAI,GAA+B,CAAC,qBAAqB,CAAC;IACnE,IAAI,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAQ,GAAqC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAY,EAAE,QAAgB;IACrE,MAAM,GAAG,GAAI,GAA+B,CAAC,qBAAqB,CAAC;IACnE,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;QACvB,GAAqC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;AACF,CAAC"}
|