@blokjs/runner 0.6.21 → 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 (167) hide show
  1. package/dist/Blok.d.ts +2 -0
  2. package/dist/Blok.js +42 -110
  3. package/dist/Blok.js.map +1 -1
  4. package/dist/DefaultLogger.d.ts +13 -0
  5. package/dist/DefaultLogger.js +25 -0
  6. package/dist/DefaultLogger.js.map +1 -1
  7. package/dist/RunnerSteps.d.ts +23 -0
  8. package/dist/RunnerSteps.js +128 -87
  9. package/dist/RunnerSteps.js.map +1 -1
  10. package/dist/SubworkflowNode.js +19 -0
  11. package/dist/SubworkflowNode.js.map +1 -1
  12. package/dist/TriggerBase.d.ts +12 -0
  13. package/dist/TriggerBase.js +216 -181
  14. package/dist/TriggerBase.js.map +1 -1
  15. package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +9 -0
  16. package/dist/adapters/grpc/GrpcRuntimeAdapter.js +76 -6
  17. package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
  18. package/dist/index.d.ts +4 -39
  19. package/dist/index.js +7 -32
  20. package/dist/index.js.map +1 -1
  21. package/dist/monitoring/JanitorMetrics.d.ts +3 -0
  22. package/dist/monitoring/JanitorMetrics.js +11 -0
  23. package/dist/monitoring/JanitorMetrics.js.map +1 -1
  24. package/dist/monitoring/ProcessErrorMetrics.d.ts +32 -0
  25. package/dist/monitoring/ProcessErrorMetrics.js +43 -0
  26. package/dist/monitoring/ProcessErrorMetrics.js.map +1 -0
  27. package/dist/monitoring/PrometheusMetricsBridge.d.ts +7 -0
  28. package/dist/monitoring/PrometheusMetricsBridge.js +8 -2
  29. package/dist/monitoring/PrometheusMetricsBridge.js.map +1 -1
  30. package/dist/monitoring/SubworkflowMetrics.d.ts +25 -0
  31. package/dist/monitoring/SubworkflowMetrics.js +38 -0
  32. package/dist/monitoring/SubworkflowMetrics.js.map +1 -0
  33. package/dist/observability/ErrorSink.d.ts +23 -0
  34. package/dist/observability/ErrorSink.js +32 -0
  35. package/dist/observability/ErrorSink.js.map +1 -0
  36. package/dist/observability/SentryIntegration.d.ts +9 -0
  37. package/dist/observability/SentryIntegration.js +31 -0
  38. package/dist/observability/SentryIntegration.js.map +1 -0
  39. package/dist/scheduling/DebounceCoordinator.d.ts +7 -53
  40. package/dist/scheduling/DebounceCoordinator.js +8 -207
  41. package/dist/scheduling/DebounceCoordinator.js.map +1 -1
  42. package/dist/tracing/InMemoryRunStore.d.ts +5 -1
  43. package/dist/tracing/InMemoryRunStore.js +14 -0
  44. package/dist/tracing/InMemoryRunStore.js.map +1 -1
  45. package/dist/tracing/Janitor.js +3 -0
  46. package/dist/tracing/Janitor.js.map +1 -1
  47. package/dist/tracing/PostgresRunStore.d.ts +4 -1
  48. package/dist/tracing/PostgresRunStore.js +73 -3
  49. package/dist/tracing/PostgresRunStore.js.map +1 -1
  50. package/dist/tracing/RunStore.d.ts +17 -1
  51. package/dist/tracing/RunTracker.d.ts +13 -34
  52. package/dist/tracing/RunTracker.js +62 -32
  53. package/dist/tracing/RunTracker.js.map +1 -1
  54. package/dist/tracing/SqliteRunStore.d.ts +4 -1
  55. package/dist/tracing/SqliteRunStore.js +60 -0
  56. package/dist/tracing/SqliteRunStore.js.map +1 -1
  57. package/dist/tracing/TraceRouter.d.ts +13 -0
  58. package/dist/tracing/TraceRouter.js +43 -11
  59. package/dist/tracing/TraceRouter.js.map +1 -1
  60. package/dist/tracing/TracingLogger.js +22 -0
  61. package/dist/tracing/TracingLogger.js.map +1 -1
  62. package/dist/tracing/createStore.js +51 -22
  63. package/dist/tracing/createStore.js.map +1 -1
  64. package/dist/tracing/types.d.ts +22 -0
  65. package/dist/types/GlobalOptions.d.ts +5 -7
  66. package/dist/workflow/WorkflowNormalizer.js +63 -0
  67. package/dist/workflow/WorkflowNormalizer.js.map +1 -1
  68. package/package.json +7 -4
  69. package/dist/cache/NodeResultCache.d.ts +0 -286
  70. package/dist/cache/NodeResultCache.js +0 -506
  71. package/dist/cache/NodeResultCache.js.map +0 -1
  72. package/dist/cache/index.d.ts +0 -1
  73. package/dist/cache/index.js +0 -2
  74. package/dist/cache/index.js.map +0 -1
  75. package/dist/concurrency/ConcurrencyBackend.d.ts +0 -61
  76. package/dist/concurrency/ConcurrencyBackend.js +0 -20
  77. package/dist/concurrency/ConcurrencyBackend.js.map +0 -1
  78. package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +0 -64
  79. package/dist/concurrency/NatsKvConcurrencyBackend.js +0 -310
  80. package/dist/concurrency/NatsKvConcurrencyBackend.js.map +0 -1
  81. package/dist/concurrency/RedisConcurrencyBackend.d.ts +0 -64
  82. package/dist/concurrency/RedisConcurrencyBackend.js +0 -374
  83. package/dist/concurrency/RedisConcurrencyBackend.js.map +0 -1
  84. package/dist/concurrency/createConcurrencyBackend.d.ts +0 -24
  85. package/dist/concurrency/createConcurrencyBackend.js +0 -38
  86. package/dist/concurrency/createConcurrencyBackend.js.map +0 -1
  87. package/dist/graphql/GraphQLSchemaGenerator.d.ts +0 -129
  88. package/dist/graphql/GraphQLSchemaGenerator.js +0 -425
  89. package/dist/graphql/GraphQLSchemaGenerator.js.map +0 -1
  90. package/dist/integrations/APMIntegration.d.ts +0 -141
  91. package/dist/integrations/APMIntegration.js +0 -212
  92. package/dist/integrations/APMIntegration.js.map +0 -1
  93. package/dist/integrations/AzureMonitorIntegration.d.ts +0 -118
  94. package/dist/integrations/AzureMonitorIntegration.js +0 -254
  95. package/dist/integrations/AzureMonitorIntegration.js.map +0 -1
  96. package/dist/integrations/CloudWatchIntegration.d.ts +0 -135
  97. package/dist/integrations/CloudWatchIntegration.js +0 -293
  98. package/dist/integrations/CloudWatchIntegration.js.map +0 -1
  99. package/dist/integrations/SentryIntegration.d.ts +0 -153
  100. package/dist/integrations/SentryIntegration.js +0 -200
  101. package/dist/integrations/SentryIntegration.js.map +0 -1
  102. package/dist/integrations/index.d.ts +0 -19
  103. package/dist/integrations/index.js +0 -16
  104. package/dist/integrations/index.js.map +0 -1
  105. package/dist/marketplace/RuntimeAutoScaler.d.ts +0 -148
  106. package/dist/marketplace/RuntimeAutoScaler.js +0 -366
  107. package/dist/marketplace/RuntimeAutoScaler.js.map +0 -1
  108. package/dist/marketplace/RuntimeCatalog.d.ts +0 -180
  109. package/dist/marketplace/RuntimeCatalog.js +0 -339
  110. package/dist/marketplace/RuntimeCatalog.js.map +0 -1
  111. package/dist/marketplace/RuntimeDiscovery.d.ts +0 -86
  112. package/dist/marketplace/RuntimeDiscovery.js +0 -231
  113. package/dist/marketplace/RuntimeDiscovery.js.map +0 -1
  114. package/dist/marketplace/RuntimeHealthMonitor.d.ts +0 -100
  115. package/dist/marketplace/RuntimeHealthMonitor.js +0 -241
  116. package/dist/marketplace/RuntimeHealthMonitor.js.map +0 -1
  117. package/dist/marketplace/RuntimeMetricsDashboard.d.ts +0 -113
  118. package/dist/marketplace/RuntimeMetricsDashboard.js +0 -293
  119. package/dist/marketplace/RuntimeMetricsDashboard.js.map +0 -1
  120. package/dist/openapi/OpenAPIGenerator.d.ts +0 -192
  121. package/dist/openapi/OpenAPIGenerator.js +0 -378
  122. package/dist/openapi/OpenAPIGenerator.js.map +0 -1
  123. package/dist/openapi/index.d.ts +0 -20
  124. package/dist/openapi/index.js +0 -20
  125. package/dist/openapi/index.js.map +0 -1
  126. package/dist/scheduling/DebounceBackend.d.ts +0 -108
  127. package/dist/scheduling/DebounceBackend.js +0 -23
  128. package/dist/scheduling/DebounceBackend.js.map +0 -1
  129. package/dist/scheduling/NatsKvDebounceBackend.d.ts +0 -53
  130. package/dist/scheduling/NatsKvDebounceBackend.js +0 -334
  131. package/dist/scheduling/NatsKvDebounceBackend.js.map +0 -1
  132. package/dist/scheduling/RedisDebounceBackend.d.ts +0 -49
  133. package/dist/scheduling/RedisDebounceBackend.js +0 -356
  134. package/dist/scheduling/RedisDebounceBackend.js.map +0 -1
  135. package/dist/scheduling/createDebounceBackend.d.ts +0 -25
  136. package/dist/scheduling/createDebounceBackend.js +0 -39
  137. package/dist/scheduling/createDebounceBackend.js.map +0 -1
  138. package/dist/security/ABAC.d.ts +0 -224
  139. package/dist/security/ABAC.js +0 -380
  140. package/dist/security/ABAC.js.map +0 -1
  141. package/dist/security/AuditLogger.d.ts +0 -242
  142. package/dist/security/AuditLogger.js +0 -317
  143. package/dist/security/AuditLogger.js.map +0 -1
  144. package/dist/security/AuthMiddleware.d.ts +0 -162
  145. package/dist/security/AuthMiddleware.js +0 -289
  146. package/dist/security/AuthMiddleware.js.map +0 -1
  147. package/dist/security/EncryptionAtRest.d.ts +0 -206
  148. package/dist/security/EncryptionAtRest.js +0 -236
  149. package/dist/security/EncryptionAtRest.js.map +0 -1
  150. package/dist/security/OAuthProvider.d.ts +0 -334
  151. package/dist/security/OAuthProvider.js +0 -719
  152. package/dist/security/OAuthProvider.js.map +0 -1
  153. package/dist/security/PIIDetector.d.ts +0 -233
  154. package/dist/security/PIIDetector.js +0 -354
  155. package/dist/security/PIIDetector.js.map +0 -1
  156. package/dist/security/RBAC.d.ts +0 -143
  157. package/dist/security/RBAC.js +0 -285
  158. package/dist/security/RBAC.js.map +0 -1
  159. package/dist/security/SecretManager.d.ts +0 -652
  160. package/dist/security/SecretManager.js +0 -1147
  161. package/dist/security/SecretManager.js.map +0 -1
  162. package/dist/security/TLSConfig.d.ts +0 -305
  163. package/dist/security/TLSConfig.js +0 -550
  164. package/dist/security/TLSConfig.js.map +0 -1
  165. package/dist/security/index.d.ts +0 -81
  166. package/dist/security/index.js +0 -82
  167. package/dist/security/index.js.map +0 -1
package/dist/index.js CHANGED
@@ -27,28 +27,16 @@ import { HealthCheck } from "./monitoring/HealthCheck";
27
27
  import { bootstrapPrometheus, resetPrometheusBootstrap } from "./monitoring/PrometheusBootstrap";
28
28
  import { PrometheusMetricsBridge } from "./monitoring/PrometheusMetricsBridge";
29
29
  import { RateLimiter } from "./monitoring/RateLimiter";
30
+ import { bootstrapTracing, resetTracingBootstrap, } from "./monitoring/TracingBootstrap";
30
31
  import { TriggerMetricsCollector } from "./monitoring/TriggerMetricsCollector";
31
- import { RuntimeAutoScaler } from "./marketplace/RuntimeAutoScaler";
32
32
  // Marketplace infrastructure
33
- import { RuntimeCatalog } from "./marketplace/RuntimeCatalog";
34
- import { RuntimeDiscovery } from "./marketplace/RuntimeDiscovery";
35
- import { RuntimeHealthMonitor } from "./marketplace/RuntimeHealthMonitor";
36
- import { RuntimeMetricsDashboard } from "./marketplace/RuntimeMetricsDashboard";
37
33
  // Hot Module Replacement (HMR)
38
34
  import { FileWatcher } from "./hmr/FileWatcher";
39
35
  import { HmrDevConsole } from "./hmr/HmrDevConsole";
40
36
  import { HotReloadManager } from "./hmr/HotReloadManager";
41
- import { ABACEngine, createDefaultABAC } from "./security/ABAC";
42
- import { AuditLogger, ConsoleAuditSink, FileAuditSink, InMemoryAuditSink } from "./security/AuditLogger";
43
37
  // Security
44
- import { APIKeyAuthProvider, AuthMiddleware, JWTAuthProvider } from "./security/AuthMiddleware";
45
- import { OAuthOIDCProvider, TokenCache } from "./security/OAuthProvider";
46
- import { RBAC, createDefaultRBAC } from "./security/RBAC";
47
- import { AWSSecretsProvider, EnvironmentSecretProvider, GCPSecretProvider, InMemorySecretProvider, SecretManager, VaultSecretProvider, } from "./security/SecretManager";
48
38
  // OpenAPI
49
- import { OpenAPIGenerator } from "./openapi/OpenAPIGenerator";
50
39
  // GraphQL
51
- import { GraphQLSchemaGenerator } from "./graphql/GraphQLSchemaGenerator";
52
40
  import { NodeDependencyGraph } from "./visualization/NodeDependencyGraph";
53
41
  // Visualization
54
42
  import { WorkflowVisualizer } from "./visualization/WorkflowVisualizer";
@@ -67,9 +55,6 @@ import { WorkflowRegistry } from "./workflow/WorkflowRegistry";
67
55
  import { ConcurrencyLimitError, isConcurrencyLimitError, } from "./concurrency/ConcurrencyLimitError";
68
56
  // Queue-mode TTL expiry (PR 1-5 polish · 410 Gone vs 429)
69
57
  import { QueueExpiredError, isQueueExpiredError } from "./concurrency/QueueExpiredError";
70
- import { NatsKvConcurrencyBackend, readNatsKvConfigFromEnv, } from "./concurrency/NatsKvConcurrencyBackend";
71
- import { RedisConcurrencyBackend, readRedisConfigFromEnv, } from "./concurrency/RedisConcurrencyBackend";
72
- import { createConcurrencyBackend } from "./concurrency/createConcurrencyBackend";
73
58
  import { CONCURRENCY_DEFAULTS, readConcurrencyConfig, } from "./concurrency/readConcurrencyConfig";
74
59
  // Per-step timeout (Tier 2 quick-wins)
75
60
  import { StepTimeoutError, isStepTimeoutError } from "./timeouts/StepTimeoutError";
@@ -87,17 +72,12 @@ import { JanitorMetrics } from "./monitoring/JanitorMetrics";
87
72
  import { DebounceCoordinator } from "./scheduling/DebounceCoordinator";
88
73
  import { DeferredDispatchSignal, isDeferredDispatchSignal, } from "./scheduling/DeferredDispatchSignal";
89
74
  import { DeferredRunScheduler, getSchedulerClaimLeaseMs, } from "./scheduling/DeferredRunScheduler";
90
- import { NatsKvDebounceBackend, readNatsKvDebounceConfigFromEnv, } from "./scheduling/NatsKvDebounceBackend";
91
- import { RedisDebounceBackend, readRedisDebounceConfigFromEnv, } from "./scheduling/RedisDebounceBackend";
92
- import { createDebounceBackend } from "./scheduling/createDebounceBackend";
93
75
  import { SCHEDULING_DEFAULTS, readSchedulingConfig, } from "./scheduling/readSchedulingConfig";
94
76
  // Cost Estimation
95
77
  import { CostEstimator } from "./cost/CostEstimator";
96
78
  import { DEFAULT_DURATIONS, DEFAULT_MEMORY, PRICING, getRuntimeCategory } from "./cost/pricing";
97
79
  // Integrations
98
- import { SentryIntegration } from "./integrations/SentryIntegration";
99
80
  // Cache
100
- import { InMemoryCache, NodeResultCache } from "./cache/NodeResultCache";
101
81
  // Testing Framework
102
82
  import { NodeTestHarness } from "./testing/TestHarness";
103
83
  import { TestLogger } from "./testing/TestLogger";
@@ -115,21 +95,15 @@ GrpcRuntimeAdapter, GrpcClientPool, buildCredentials, buildChannelOptions, NodeR
115
95
  // Function-first API
116
96
  defineNode, FunctionNode,
117
97
  // Monitoring
118
- HealthCheck, RateLimiter, CircuitBreaker, CircuitOpenError, TriggerMetricsCollector, PrometheusMetricsBridge, bootstrapPrometheus, resetPrometheusBootstrap,
98
+ HealthCheck, RateLimiter, CircuitBreaker, CircuitOpenError, TriggerMetricsCollector, PrometheusMetricsBridge, bootstrapPrometheus, resetPrometheusBootstrap, bootstrapTracing, resetTracingBootstrap,
119
99
  // Marketplace
120
- RuntimeCatalog, RuntimeDiscovery, RuntimeHealthMonitor, RuntimeMetricsDashboard, RuntimeAutoScaler,
121
100
  // HMR
122
101
  FileWatcher, HotReloadManager, HmrDevConsole,
123
102
  // Security
124
- AuthMiddleware, JWTAuthProvider, APIKeyAuthProvider, RBAC, createDefaultRBAC, ABACEngine, createDefaultABAC, AuditLogger, ConsoleAuditSink, FileAuditSink, InMemoryAuditSink,
125
103
  // OAuth 2.0 / OIDC
126
- OAuthOIDCProvider, TokenCache,
127
104
  // Secret Management
128
- SecretManager, EnvironmentSecretProvider, InMemorySecretProvider, VaultSecretProvider, AWSSecretsProvider, GCPSecretProvider,
129
105
  // OpenAPI
130
- OpenAPIGenerator,
131
106
  // GraphQL
132
- GraphQLSchemaGenerator,
133
107
  // Visualization
134
108
  WorkflowVisualizer, NodeDependencyGraph,
135
109
  // Performance Profiling
@@ -139,7 +113,7 @@ RunTracker, Janitor, RoutingDiagnostics, registerTraceRoutes, WorkflowRegistry,
139
113
  // Concurrency gate (Tier 2 #6)
140
114
  ConcurrencyLimitError, isConcurrencyLimitError,
141
115
  // Queue-mode TTL expiry (PR 1-5 polish)
142
- QueueExpiredError, isQueueExpiredError, readConcurrencyConfig, CONCURRENCY_DEFAULTS, createConcurrencyBackend, NatsKvConcurrencyBackend, readNatsKvConfigFromEnv, RedisConcurrencyBackend, readRedisConfigFromEnv,
116
+ QueueExpiredError, isQueueExpiredError, readConcurrencyConfig, CONCURRENCY_DEFAULTS,
143
117
  // Per-step timeout (Tier 2 quick-wins)
144
118
  StepTimeoutError, isStepTimeoutError,
145
119
  // Cooperative cancellation (Tier 2 follow-up)
@@ -153,13 +127,11 @@ ConcurrencyMetrics,
153
127
  // Janitor sweep OTel metrics (PR 3 D3)
154
128
  JanitorMetrics,
155
129
  // Scheduling — delay / TTL / debounce (Tier 2 #5 + #7)
156
- DeferredDispatchSignal, isDeferredDispatchSignal, DeferredRunScheduler, getSchedulerClaimLeaseMs, DebounceCoordinator, readSchedulingConfig, SCHEDULING_DEFAULTS, createDebounceBackend, NatsKvDebounceBackend, readNatsKvDebounceConfigFromEnv, RedisDebounceBackend, readRedisDebounceConfigFromEnv, TracingLogger, traceSanitize, traceRedactSensitive,
130
+ DeferredDispatchSignal, isDeferredDispatchSignal, DeferredRunScheduler, getSchedulerClaimLeaseMs, DebounceCoordinator, readSchedulingConfig, SCHEDULING_DEFAULTS, TracingLogger, traceSanitize, traceRedactSensitive,
157
131
  // Cost Estimation
158
132
  CostEstimator, PRICING, DEFAULT_DURATIONS, DEFAULT_MEMORY, getRuntimeCategory,
159
133
  // Integrations
160
- SentryIntegration,
161
134
  // Cache
162
- InMemoryCache, NodeResultCache,
163
135
  // Testing
164
136
  NodeTestHarness, WorkflowTestRunner, TestLogger, NodeMap, BlokService, BlokResponse, RunnerSteps, };
165
137
  // Tracing store factory + concrete stores — exposed so the CLI's
@@ -167,4 +139,7 @@ NodeTestHarness, WorkflowTestRunner, TestLogger, NodeMap, BlokService, BlokRespo
167
139
  // tracker without proxying to a live trigger. See
168
140
  // `packages/cli/src/commands/trace/startStudio.ts` for the call site.
169
141
  export { createStore, InMemoryRunStore, SqliteRunStore } from "./tracing";
142
+ // Error sink (MO-ALERTS) — generic process-wide error forwarding + the Sentry adapter.
143
+ export { captureError, getErrorSink, setErrorSink } from "./observability/ErrorSink";
144
+ export { createSentryErrorSink } from "./observability/SentryIntegration";
170
145
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,10 +18,13 @@ export declare class JanitorMetrics {
18
18
  private static instance;
19
19
  private readonly sweepDurationHistogram;
20
20
  private readonly purgedCounter;
21
+ private readonly sweepErrorsCounter;
21
22
  private constructor();
22
23
  static getInstance(): JanitorMetrics;
23
24
  /** Test-only — drop the singleton so re-import gets fresh meters. */
24
25
  static resetInstance(): void;
25
26
  recordSweep(attrs: JanitorAttributes, durationMs: number, rowsPurged: number): void;
27
+ /** OBS-06 T10 — increment on a per-table sweep failure. */
28
+ recordSweepError(attrs: JanitorAttributes): void;
26
29
  }
27
30
  export {};
@@ -23,6 +23,13 @@ export class JanitorMetrics {
23
23
  description: "Total rows purged by the Janitor per table.",
24
24
  unit: "1",
25
25
  });
26
+ // OBS-06 T10 — per-table sweep failures. A purge that throws is caught +
27
+ // logged but otherwise invisible to metrics; this counter lets operators
28
+ // alert on a store that's failing to sweep (disk full, locked, etc.).
29
+ sweepErrorsCounter = metrics.getMeter("blok").createCounter("blok_janitor_sweep_errors_total", {
30
+ description: "Total Janitor per-table sweep failures.",
31
+ unit: "1",
32
+ });
26
33
  constructor() { }
27
34
  static getInstance() {
28
35
  if (!JanitorMetrics.instance) {
@@ -44,5 +51,9 @@ export class JanitorMetrics {
44
51
  // keeps dashboards consistent.
45
52
  this.purgedCounter.add(rowsPurged, attrs);
46
53
  }
54
+ /** OBS-06 T10 — increment on a per-table sweep failure. */
55
+ recordSweepError(attrs) {
56
+ this.sweepErrorsCounter.add(1, attrs);
57
+ }
47
58
  }
48
59
  //# sourceMappingURL=JanitorMetrics.js.map
@@ -1 +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"}
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,yEAAyE;IACzE,yEAAyE;IACzE,sEAAsE;IACrD,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,iCAAiC,EAAE;QAC/G,WAAW,EAAE,yCAAyC;QACtD,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;IAED,2DAA2D;IAC3D,gBAAgB,CAAC,KAAwB;QACxC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,KAA0C,CAAC,CAAC;IAC5E,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * OBS-06 T8 — OpenTelemetry counter for process-level fatal error events.
3
+ *
4
+ * `TriggerBase.installCrashHandlers` registers process-global
5
+ * `uncaughtException` + `unhandledRejection` handlers that flip in-flight
6
+ * runs to `"crashed"`. This counter surfaces HOW OFTEN those handlers fire
7
+ * so operators can alert on crash/rejection rate independently of the
8
+ * per-run `crashed` status.
9
+ *
10
+ * Labels:
11
+ * - `trigger_type` — the firing context (`"process"` for the global handlers).
12
+ * - `reason_class` — the error's constructor name (e.g. `"TypeError"`),
13
+ * bucketing rejections by class without leaking the (high-cardinality)
14
+ * message.
15
+ *
16
+ * Singleton; lazy-instantiated. No-ops cleanly when OTel isn't configured
17
+ * (the meter API silently swallows recordings without an exporter).
18
+ */
19
+ interface ProcessErrorAttributes {
20
+ trigger_type: string;
21
+ reason_class: string;
22
+ }
23
+ export declare class ProcessErrorMetrics {
24
+ private static instance;
25
+ private readonly unhandledRejectionCounter;
26
+ private constructor();
27
+ static getInstance(): ProcessErrorMetrics;
28
+ /** Test-only — drop the singleton so re-import gets fresh meters. */
29
+ static resetInstance(): void;
30
+ recordUnhandledRejection(attrs: ProcessErrorAttributes): void;
31
+ }
32
+ export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * OBS-06 T8 — OpenTelemetry counter for process-level fatal error events.
3
+ *
4
+ * `TriggerBase.installCrashHandlers` registers process-global
5
+ * `uncaughtException` + `unhandledRejection` handlers that flip in-flight
6
+ * runs to `"crashed"`. This counter surfaces HOW OFTEN those handlers fire
7
+ * so operators can alert on crash/rejection rate independently of the
8
+ * per-run `crashed` status.
9
+ *
10
+ * Labels:
11
+ * - `trigger_type` — the firing context (`"process"` for the global handlers).
12
+ * - `reason_class` — the error's constructor name (e.g. `"TypeError"`),
13
+ * bucketing rejections by class without leaking the (high-cardinality)
14
+ * message.
15
+ *
16
+ * Singleton; lazy-instantiated. No-ops cleanly when OTel isn't configured
17
+ * (the meter API silently swallows recordings without an exporter).
18
+ */
19
+ import { metrics } from "@opentelemetry/api";
20
+ export class ProcessErrorMetrics {
21
+ static instance = null;
22
+ unhandledRejectionCounter = metrics
23
+ .getMeter("blok")
24
+ .createCounter("blok_unhandled_rejection_total", {
25
+ description: "Total uncaughtException / unhandledRejection events caught by the crash handlers.",
26
+ unit: "1",
27
+ });
28
+ constructor() { }
29
+ static getInstance() {
30
+ if (!ProcessErrorMetrics.instance) {
31
+ ProcessErrorMetrics.instance = new ProcessErrorMetrics();
32
+ }
33
+ return ProcessErrorMetrics.instance;
34
+ }
35
+ /** Test-only — drop the singleton so re-import gets fresh meters. */
36
+ static resetInstance() {
37
+ ProcessErrorMetrics.instance = null;
38
+ }
39
+ recordUnhandledRejection(attrs) {
40
+ this.unhandledRejectionCounter.add(1, attrs);
41
+ }
42
+ }
43
+ //# sourceMappingURL=ProcessErrorMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessErrorMetrics.js","sourceRoot":"","sources":["../../src/monitoring/ProcessErrorMetrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO7C,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAC,QAAQ,GAA+B,IAAI,CAAC;IAE1C,yBAAyB,GAAG,OAAO;SAClD,QAAQ,CAAC,MAAM,CAAC;SAChB,aAAa,CAAC,gCAAgC,EAAE;QAChD,WAAW,EAAE,mFAAmF;QAChG,IAAI,EAAE,GAAG;KACT,CAAC,CAAC;IAEJ,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YACnC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,qEAAqE;IACrE,MAAM,CAAC,aAAa;QACnB,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,wBAAwB,CAAC,KAA6B;QACrD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,EAAE,KAA0C,CAAC,CAAC;IACnF,CAAC"}
@@ -15,6 +15,13 @@ export interface ExecutionLabels {
15
15
  workflow_name: string;
16
16
  workflow_version: string;
17
17
  env: string;
18
+ /**
19
+ * OBS-05 T2 — resolved terminal run status for error emission
20
+ * (`failed` | `crashed` | `timedOut` | `throttled` | `cancelled`).
21
+ * Optional for back-compat: when absent, `recordError` omits the
22
+ * `status` label and prior behavior is preserved.
23
+ */
24
+ status?: string;
18
25
  }
19
26
  export declare class PrometheusMetricsBridge {
20
27
  private meter;
@@ -184,12 +184,18 @@ export class PrometheusMetricsBridge {
184
184
  * Record an error with a specific category.
185
185
  */
186
186
  recordError(category, labels = {}) {
187
- this.errorsCounter.add(1, {
187
+ const attrs = {
188
188
  trigger_type: this.config.triggerType,
189
189
  trigger_name: this.config.triggerName,
190
190
  error_category: category,
191
191
  env: labels.env || process.env.NODE_ENV || "development",
192
- });
192
+ };
193
+ // OBS-05 T2 — distinguish failed / crashed / timedOut / throttled /
194
+ // cancelled when the caller resolved a terminal status. Omitted for
195
+ // back-compat when absent.
196
+ if (labels.status)
197
+ attrs.status = labels.status;
198
+ this.errorsCounter.add(1, attrs);
193
199
  }
194
200
  /**
195
201
  * Attach a CircuitBreaker for state monitoring.
@@ -1 +1 @@
1
- {"version":3,"file":"PrometheusMetricsBridge.js","sourceRoot":"","sources":["../../src/monitoring/PrometheusMetricsBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrometheusMetricsBridge.js","sourceRoot":"","sources":["../../src/monitoring/PrometheusMetricsBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * OBS-05 T5 — OTel counter for fire-and-forget (`wait: false`) sub-workflow
3
+ * dispatch failures. Today those failures are caught + `console.error`-ed +
4
+ * routed to `tracker.failRun` but emit no metric, so an ops dashboard can't
5
+ * alert on a spike of silently-failing async children. This counter surfaces
6
+ * them.
7
+ *
8
+ * Wired into `SubworkflowNode`'s two fire-and-forget failure paths:
9
+ * - the in-process `dispatchAsync` catch (`dispatch: "in-process"`)
10
+ * - the `http-self` `wait: false` `.catch` (`dispatch: "http-self"`)
11
+ *
12
+ * Singleton, lazy-instantiated. No-ops cleanly when OTel isn't configured
13
+ * (the meter API silently swallows recordings without an exporter).
14
+ */
15
+ export declare class SubworkflowMetrics {
16
+ private static instance;
17
+ private readonly asyncFailureCounter;
18
+ static getInstance(): SubworkflowMetrics;
19
+ /** Test-only — drop the singleton so re-import gets fresh meters. */
20
+ static resetInstance(): void;
21
+ recordAsyncFailure(attrs: {
22
+ workflow_name: string;
23
+ dispatch: "in-process" | "http-self";
24
+ }): void;
25
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * OBS-05 T5 — OTel counter for fire-and-forget (`wait: false`) sub-workflow
3
+ * dispatch failures. Today those failures are caught + `console.error`-ed +
4
+ * routed to `tracker.failRun` but emit no metric, so an ops dashboard can't
5
+ * alert on a spike of silently-failing async children. This counter surfaces
6
+ * them.
7
+ *
8
+ * Wired into `SubworkflowNode`'s two fire-and-forget failure paths:
9
+ * - the in-process `dispatchAsync` catch (`dispatch: "in-process"`)
10
+ * - the `http-self` `wait: false` `.catch` (`dispatch: "http-self"`)
11
+ *
12
+ * Singleton, lazy-instantiated. No-ops cleanly when OTel isn't configured
13
+ * (the meter API silently swallows recordings without an exporter).
14
+ */
15
+ import { metrics } from "@opentelemetry/api";
16
+ export class SubworkflowMetrics {
17
+ static instance = null;
18
+ asyncFailureCounter = metrics
19
+ .getMeter("blok")
20
+ .createCounter("blok_subworkflow_async_failure_total", {
21
+ description: "Fire-and-forget (wait:false) sub-workflow dispatch failures, by parent workflow + dispatch strategy.",
22
+ unit: "1",
23
+ });
24
+ static getInstance() {
25
+ if (!SubworkflowMetrics.instance) {
26
+ SubworkflowMetrics.instance = new SubworkflowMetrics();
27
+ }
28
+ return SubworkflowMetrics.instance;
29
+ }
30
+ /** Test-only — drop the singleton so re-import gets fresh meters. */
31
+ static resetInstance() {
32
+ SubworkflowMetrics.instance = null;
33
+ }
34
+ recordAsyncFailure(attrs) {
35
+ this.asyncFailureCounter.add(1, attrs);
36
+ }
37
+ }
38
+ //# sourceMappingURL=SubworkflowMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubworkflowMetrics.js","sourceRoot":"","sources":["../../src/monitoring/SubworkflowMetrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAmB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,OAAO,kBAAkB;IACtB,MAAM,CAAC,QAAQ,GAA8B,IAAI,CAAC;IAEzC,mBAAmB,GAAG,OAAO;SAC5C,QAAQ,CAAC,MAAM,CAAC;SAChB,aAAa,CAAC,sCAAsC,EAAE;QACtD,WAAW,EACV,sGAAsG;QACvG,IAAI,EAAE,GAAG;KACT,CAAC,CAAC;IAEJ,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,qEAAqE;IACrE,MAAM,CAAC,aAAa;QACnB,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,kBAAkB,CAAC,KAAsE;QACxF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAmB,CAAC,CAAC;IACtD,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Generic error sink — a process-wide hook for forwarding unhandled errors to an
3
+ * external service (Sentry, Rollbar, a webhook, …). Deliberately NOT Sentry-
4
+ * specific: Sentry is one adapter ({@link SentryIntegration}). Inert until an
5
+ * adapter is installed via {@link setErrorSink} (the trigger does this at boot
6
+ * only when `SENTRY_DSN` is set), so the default behaviour is unchanged.
7
+ */
8
+ export interface ErrorSink {
9
+ /** Report an error to the sink. MUST NOT throw. */
10
+ captureException(error: unknown, context?: Record<string, unknown>): void;
11
+ /** Best-effort flush of buffered events; resolves true when drained. */
12
+ flush(timeoutMs?: number): Promise<boolean>;
13
+ }
14
+ /** Install (or clear, with `null`) the process-wide error sink. */
15
+ export declare function setErrorSink(sink: ErrorSink | null): void;
16
+ /** The currently-installed sink, or null when none is configured. */
17
+ export declare function getErrorSink(): ErrorSink | null;
18
+ /**
19
+ * Report an error to the configured sink, if any. NEVER throws — error
20
+ * reporting must not be able to crash the application it's observing. A no-op
21
+ * when no sink is installed.
22
+ */
23
+ export declare function captureError(error: unknown, context?: Record<string, unknown>): void;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Generic error sink — a process-wide hook for forwarding unhandled errors to an
3
+ * external service (Sentry, Rollbar, a webhook, …). Deliberately NOT Sentry-
4
+ * specific: Sentry is one adapter ({@link SentryIntegration}). Inert until an
5
+ * adapter is installed via {@link setErrorSink} (the trigger does this at boot
6
+ * only when `SENTRY_DSN` is set), so the default behaviour is unchanged.
7
+ */
8
+ let _sink = null;
9
+ /** Install (or clear, with `null`) the process-wide error sink. */
10
+ export function setErrorSink(sink) {
11
+ _sink = sink;
12
+ }
13
+ /** The currently-installed sink, or null when none is configured. */
14
+ export function getErrorSink() {
15
+ return _sink;
16
+ }
17
+ /**
18
+ * Report an error to the configured sink, if any. NEVER throws — error
19
+ * reporting must not be able to crash the application it's observing. A no-op
20
+ * when no sink is installed.
21
+ */
22
+ export function captureError(error, context) {
23
+ if (!_sink)
24
+ return;
25
+ try {
26
+ _sink.captureException(error, context);
27
+ }
28
+ catch {
29
+ // Reporting failures are swallowed by design.
30
+ }
31
+ }
32
+ //# sourceMappingURL=ErrorSink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorSink.js","sourceRoot":"","sources":["../../src/observability/ErrorSink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,IAAI,KAAK,GAAqB,IAAI,CAAC;AAEnC,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAC,IAAsB;IAClD,KAAK,GAAG,IAAI,CAAC;AACd,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY;IAC3B,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAiC;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,CAAC;QACJ,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACR,8CAA8C;IAC/C,CAAC;AACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ErrorSink } from "./ErrorSink";
2
+ /**
3
+ * An {@link ErrorSink} backed by Sentry. `@sentry/node` is an OPTIONAL peer dep,
4
+ * loaded via a sync `require` so a runner without it still boots — when it's
5
+ * absent this returns an INERT sink (warns once). The caller gates construction
6
+ * on `SENTRY_DSN`, so an unset DSN means this is never built and behaviour is
7
+ * unchanged.
8
+ */
9
+ export declare function createSentryErrorSink(dsn: string): ErrorSink;
@@ -0,0 +1,31 @@
1
+ import { createRequire } from "node:module";
2
+ /**
3
+ * An {@link ErrorSink} backed by Sentry. `@sentry/node` is an OPTIONAL peer dep,
4
+ * loaded via a sync `require` so a runner without it still boots — when it's
5
+ * absent this returns an INERT sink (warns once). The caller gates construction
6
+ * on `SENTRY_DSN`, so an unset DSN means this is never built and behaviour is
7
+ * unchanged.
8
+ */
9
+ export function createSentryErrorSink(dsn) {
10
+ let sentry = null;
11
+ try {
12
+ const req = createRequire(import.meta.url);
13
+ sentry = req("@sentry/node");
14
+ sentry.init({ dsn, tracesSampleRate: 0, environment: process.env.NODE_ENV });
15
+ }
16
+ catch {
17
+ sentry = null;
18
+ console.warn("[blok][error-sink] SENTRY_DSN is set but @sentry/node isn't installed — the Sentry sink is inert. Run `npm i @sentry/node` to enable it.");
19
+ }
20
+ return {
21
+ captureException(error, context) {
22
+ if (!sentry)
23
+ return;
24
+ sentry.captureException(error, context ? { extra: context } : undefined);
25
+ },
26
+ async flush(timeoutMs = 2000) {
27
+ return sentry ? sentry.flush(timeoutMs) : true;
28
+ },
29
+ };
30
+ }
31
+ //# sourceMappingURL=SentryIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SentryIntegration.js","sourceRoot":"","sources":["../../src/observability/SentryIntegration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU5C;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,CAAC,cAAc,CAAe,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,GAAG,IAAI,CAAC;QACd,OAAO,CAAC,IAAI,CACX,0IAA0I,CAC1I,CAAC;IACH,CAAC;IAED,OAAO;QACN,gBAAgB,CAAC,KAAK,EAAE,OAAO;YAC9B,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI;YAC3B,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,32 +1,20 @@
1
1
  /**
2
- * Tier 2 #7 — debounce coordinator. Tier C #1 — cross-process awareness.
2
+ * Tier 2 #7 — debounce coordinator.
3
3
  *
4
4
  * Coalesces rapid same-key triggers into a single delayed run. Modes:
5
5
  *
6
6
  * - `"trailing"` (default): each ping resets a timer; the run fires
7
- * after `delayMs` of silence. Latest payload wins (within a single
8
- * owning process). `maxDelayMs` bounds tail latency — even with
9
- * continuous pings, the run fires after `maxDelayMs` from the FIRST
10
- * ping.
7
+ * after `delayMs` of silence. Latest payload wins via the captured
8
+ * closure. `maxDelayMs` bounds tail latency — even with continuous
9
+ * pings, the run fires after `maxDelayMs` from the FIRST ping.
11
10
  * - `"leading"`: the first ping fires immediately. Subsequent pings
12
11
  * within `delayMs` are dropped. Window resets after `delayMs` of
13
12
  * silence.
14
13
  *
15
- * Process-wide singleton. **Default**: in-memory only — fast,
16
- * synchronous internally. **Cross-process mode (Tier C #1)**: install a
17
- * `DebounceBackend` via `setBackend()` and the coordinator routes
18
- * register/cancel through the backend with the same outcome surface,
19
- * keeping a local timer + closure for the OWNING process. The
20
- * `register()` API is async — callers must `await` it.
21
- *
22
- * Latest-payload semantics in cross-process mode: **owner-local**.
23
- * Pings from a non-owning process bump pingCount + push scheduledAt in
24
- * the shared doc but do NOT contribute their payload — only the
25
- * owning process's captured `onFire` closure fires. Cross-process
26
- * latest-payload-wins is deferred (would require persisting each
27
- * ping's payload to the shared doc; tracked in BACKLOG).
14
+ * Process-wide singleton. In-memory only — fast, synchronous internally.
15
+ * The `register()` API is async so callers don't need to discriminate,
16
+ * but the coordinator always uses the local in-memory fast path.
28
17
  */
29
- import type { DebounceBackend } from "./DebounceBackend";
30
18
  export type DebounceDispatchFn = () => Promise<void>;
31
19
  export type DebounceMode = "leading" | "trailing";
32
20
  export interface DebounceRegisterOpts {
@@ -84,25 +72,9 @@ export interface DebounceRegisterResult {
84
72
  export declare class DebounceCoordinator {
85
73
  private static instance;
86
74
  private states;
87
- private backend;
88
- /** Process identity for cross-process owner-lease attribution. Stable for the lifetime of the singleton. */
89
- private readonly processId;
90
- private ownerLeaseMs;
91
75
  static getInstance(): DebounceCoordinator;
92
76
  /** Test-only — reset the singleton + clear all state. */
93
77
  static resetInstance(): void;
94
- /**
95
- * Install a cross-process backend. Set via `HttpTrigger.listen()` /
96
- * `WorkerTrigger.listen()` when `BLOK_DEBOUNCE_BACKEND` is configured.
97
- * Pass `null` to revert to the in-memory fast path.
98
- */
99
- setBackend(backend: DebounceBackend | null): void;
100
- getBackend(): DebounceBackend | null;
101
- /**
102
- * Override the owner-lease duration. Used by `HttpTrigger.listen()` /
103
- * `WorkerTrigger.listen()` to apply `BLOK_DEBOUNCE_OWNER_LEASE_MS`.
104
- */
105
- setOwnerLeaseMs(ms: number): void;
106
78
  private bucket;
107
79
  register(opts: DebounceRegisterOpts): Promise<DebounceRegisterResult>;
108
80
  /**
@@ -112,24 +84,6 @@ export declare class DebounceCoordinator {
112
84
  */
113
85
  private registerLocal;
114
86
  private fireTrailingLocal;
115
- /**
116
- * Cross-process path — delegates ownership to the backend and uses
117
- * a local timer + closure for the OWNING process.
118
- *
119
- * Three outcomes from the backend:
120
- * - `owner-new`: this process is the new owner. Start a local timer
121
- * + closure; on fire, atomically finalize via the backend.
122
- * - `owner-extend`: this process is already the owner. Cancel +
123
- * restart the local timer at the new scheduledAt; refresh closure.
124
- * - `coalesce`: another process owns the window. Just return.
125
- *
126
- * Leading mode: `owner-new` translates to `fire-immediate` (caller
127
- * fires synchronously); `owner-extend`/`coalesce` translate to
128
- * `coalesce`.
129
- */
130
- private registerCrossProcess;
131
- private installOwnerTimer;
132
- private fireTrailingCrossProcess;
133
87
  /** Cancel an active window without firing. Returns true if cancelled. */
134
88
  cancel(workflowName: string, debounceKey: string): Promise<boolean>;
135
89
  /** Number of active LOCAL debounce windows. Tests + observability. Excludes cross-process windows owned by other processes. */