@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.
Files changed (213) hide show
  1. package/dist/Blok.js +32 -3
  2. package/dist/Blok.js.map +1 -1
  3. package/dist/Configuration.d.ts +59 -5
  4. package/dist/Configuration.js +366 -96
  5. package/dist/Configuration.js.map +1 -1
  6. package/dist/ForEachNode.d.ts +59 -0
  7. package/dist/ForEachNode.js +522 -0
  8. package/dist/ForEachNode.js.map +1 -0
  9. package/dist/LoopMaxIterationsError.d.ts +11 -0
  10. package/dist/LoopMaxIterationsError.js +18 -0
  11. package/dist/LoopMaxIterationsError.js.map +1 -0
  12. package/dist/LoopNode.d.ts +36 -0
  13. package/dist/LoopNode.js +182 -0
  14. package/dist/LoopNode.js.map +1 -0
  15. package/dist/PayloadTooLargeError.d.ts +19 -0
  16. package/dist/PayloadTooLargeError.js +29 -0
  17. package/dist/PayloadTooLargeError.js.map +1 -0
  18. package/dist/RunCancelledError.d.ts +17 -0
  19. package/dist/RunCancelledError.js +25 -0
  20. package/dist/RunCancelledError.js.map +1 -0
  21. package/dist/Runner.d.ts +11 -1
  22. package/dist/Runner.js +9 -2
  23. package/dist/Runner.js.map +1 -1
  24. package/dist/RunnerSteps.js +648 -44
  25. package/dist/RunnerSteps.js.map +1 -1
  26. package/dist/RuntimeAdapterNode.d.ts +2 -1
  27. package/dist/RuntimeAdapterNode.js +2 -2
  28. package/dist/RuntimeAdapterNode.js.map +1 -1
  29. package/dist/RuntimeRegistry.d.ts +23 -2
  30. package/dist/RuntimeRegistry.js +31 -2
  31. package/dist/RuntimeRegistry.js.map +1 -1
  32. package/dist/SubworkflowNode.d.ts +181 -0
  33. package/dist/SubworkflowNode.js +479 -0
  34. package/dist/SubworkflowNode.js.map +1 -0
  35. package/dist/SwitchNode.d.ts +37 -0
  36. package/dist/SwitchNode.js +153 -0
  37. package/dist/SwitchNode.js.map +1 -0
  38. package/dist/TriggerBase.d.ts +178 -0
  39. package/dist/TriggerBase.js +1032 -5
  40. package/dist/TriggerBase.js.map +1 -1
  41. package/dist/TryCatchNode.d.ts +32 -0
  42. package/dist/TryCatchNode.js +207 -0
  43. package/dist/TryCatchNode.js.map +1 -0
  44. package/dist/WaitDispatchRequest.d.ts +38 -0
  45. package/dist/WaitDispatchRequest.js +13 -0
  46. package/dist/WaitDispatchRequest.js.map +1 -0
  47. package/dist/WaitNode.d.ts +23 -0
  48. package/dist/WaitNode.js +26 -0
  49. package/dist/WaitNode.js.map +1 -0
  50. package/dist/adapters/grpc/GrpcCodec.js +2 -2
  51. package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +6 -4
  52. package/dist/adapters/grpc/GrpcRuntimeAdapter.js +6 -4
  53. package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
  54. package/dist/adapters/grpc/types.d.ts +7 -5
  55. package/dist/adapters/grpc/types.js.map +1 -1
  56. package/dist/adapters/transport.d.ts +12 -41
  57. package/dist/adapters/transport.js +21 -70
  58. package/dist/adapters/transport.js.map +1 -1
  59. package/dist/cache/NodeResultCache.js +7 -0
  60. package/dist/cache/NodeResultCache.js.map +1 -1
  61. package/dist/concurrency/ConcurrencyBackend.d.ts +61 -0
  62. package/dist/concurrency/ConcurrencyBackend.js +20 -0
  63. package/dist/concurrency/ConcurrencyBackend.js.map +1 -0
  64. package/dist/concurrency/ConcurrencyLimitError.d.ts +37 -0
  65. package/dist/concurrency/ConcurrencyLimitError.js +16 -0
  66. package/dist/concurrency/ConcurrencyLimitError.js.map +1 -0
  67. package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +64 -0
  68. package/dist/concurrency/NatsKvConcurrencyBackend.js +310 -0
  69. package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -0
  70. package/dist/concurrency/QueueExpiredError.d.ts +40 -0
  71. package/dist/concurrency/QueueExpiredError.js +15 -0
  72. package/dist/concurrency/QueueExpiredError.js.map +1 -0
  73. package/dist/concurrency/RedisConcurrencyBackend.d.ts +64 -0
  74. package/dist/concurrency/RedisConcurrencyBackend.js +374 -0
  75. package/dist/concurrency/RedisConcurrencyBackend.js.map +1 -0
  76. package/dist/concurrency/createConcurrencyBackend.d.ts +24 -0
  77. package/dist/concurrency/createConcurrencyBackend.js +38 -0
  78. package/dist/concurrency/createConcurrencyBackend.js.map +1 -0
  79. package/dist/concurrency/readConcurrencyConfig.d.ts +60 -0
  80. package/dist/concurrency/readConcurrencyConfig.js +60 -0
  81. package/dist/concurrency/readConcurrencyConfig.js.map +1 -0
  82. package/dist/defineNode.d.ts +8 -0
  83. package/dist/defineNode.js +25 -5
  84. package/dist/defineNode.js.map +1 -1
  85. package/dist/graphql/GraphQLSchemaGenerator.js +1 -1
  86. package/dist/graphql/GraphQLSchemaGenerator.js.map +1 -1
  87. package/dist/idempotency/resolveIdempotencyKey.d.ts +20 -0
  88. package/dist/idempotency/resolveIdempotencyKey.js +37 -0
  89. package/dist/idempotency/resolveIdempotencyKey.js.map +1 -0
  90. package/dist/index.d.ts +30 -6
  91. package/dist/index.js +55 -6
  92. package/dist/index.js.map +1 -1
  93. package/dist/marketplace/RuntimeCatalog.d.ts +6 -0
  94. package/dist/marketplace/RuntimeCatalog.js.map +1 -1
  95. package/dist/marketplace/RuntimeDiscovery.d.ts +2 -2
  96. package/dist/marketplace/RuntimeDiscovery.js +18 -6
  97. package/dist/marketplace/RuntimeDiscovery.js.map +1 -1
  98. package/dist/monitoring/ConcurrencyMetrics.d.ts +82 -0
  99. package/dist/monitoring/ConcurrencyMetrics.js +139 -0
  100. package/dist/monitoring/ConcurrencyMetrics.js.map +1 -0
  101. package/dist/monitoring/ForEachWaitMetrics.d.ts +22 -0
  102. package/dist/monitoring/ForEachWaitMetrics.js +36 -0
  103. package/dist/monitoring/ForEachWaitMetrics.js.map +1 -0
  104. package/dist/monitoring/JanitorMetrics.d.ts +27 -0
  105. package/dist/monitoring/JanitorMetrics.js +48 -0
  106. package/dist/monitoring/JanitorMetrics.js.map +1 -0
  107. package/dist/openapi/OpenAPIGenerator.js +7 -2
  108. package/dist/openapi/OpenAPIGenerator.js.map +1 -1
  109. package/dist/runtime/PrimitiveStack.d.ts +64 -0
  110. package/dist/runtime/PrimitiveStack.js +92 -0
  111. package/dist/runtime/PrimitiveStack.js.map +1 -0
  112. package/dist/scheduling/DebounceBackend.d.ts +108 -0
  113. package/dist/scheduling/DebounceBackend.js +23 -0
  114. package/dist/scheduling/DebounceBackend.js.map +1 -0
  115. package/dist/scheduling/DebounceCoordinator.d.ts +141 -0
  116. package/dist/scheduling/DebounceCoordinator.js +362 -0
  117. package/dist/scheduling/DebounceCoordinator.js.map +1 -0
  118. package/dist/scheduling/DeferredDispatchSignal.d.ts +50 -0
  119. package/dist/scheduling/DeferredDispatchSignal.js +14 -0
  120. package/dist/scheduling/DeferredDispatchSignal.js.map +1 -0
  121. package/dist/scheduling/DeferredRunScheduler.d.ts +96 -0
  122. package/dist/scheduling/DeferredRunScheduler.js +256 -0
  123. package/dist/scheduling/DeferredRunScheduler.js.map +1 -0
  124. package/dist/scheduling/NatsKvDebounceBackend.d.ts +53 -0
  125. package/dist/scheduling/NatsKvDebounceBackend.js +334 -0
  126. package/dist/scheduling/NatsKvDebounceBackend.js.map +1 -0
  127. package/dist/scheduling/RedisDebounceBackend.d.ts +49 -0
  128. package/dist/scheduling/RedisDebounceBackend.js +356 -0
  129. package/dist/scheduling/RedisDebounceBackend.js.map +1 -0
  130. package/dist/scheduling/createDebounceBackend.d.ts +25 -0
  131. package/dist/scheduling/createDebounceBackend.js +39 -0
  132. package/dist/scheduling/createDebounceBackend.js.map +1 -0
  133. package/dist/scheduling/readSchedulingConfig.d.ts +24 -0
  134. package/dist/scheduling/readSchedulingConfig.js +52 -0
  135. package/dist/scheduling/readSchedulingConfig.js.map +1 -0
  136. package/dist/security/AuditLogger.js +1 -1
  137. package/dist/security/AuditLogger.js.map +1 -1
  138. package/dist/security/AuthMiddleware.d.ts +19 -20
  139. package/dist/security/AuthMiddleware.js +35 -20
  140. package/dist/security/AuthMiddleware.js.map +1 -1
  141. package/dist/security/OAuthProvider.js +2 -2
  142. package/dist/security/OAuthProvider.js.map +1 -1
  143. package/dist/security/SecretManager.js +14 -13
  144. package/dist/security/SecretManager.js.map +1 -1
  145. package/dist/security/index.d.ts +3 -1
  146. package/dist/security/index.js +3 -1
  147. package/dist/security/index.js.map +1 -1
  148. package/dist/testing/TestHarness.d.ts +27 -12
  149. package/dist/testing/TestHarness.js +19 -3
  150. package/dist/testing/TestHarness.js.map +1 -1
  151. package/dist/testing/WorkflowTestRunner.js +0 -7
  152. package/dist/testing/WorkflowTestRunner.js.map +1 -1
  153. package/dist/timeouts/StepTimeoutError.d.ts +22 -0
  154. package/dist/timeouts/StepTimeoutError.js +31 -0
  155. package/dist/timeouts/StepTimeoutError.js.map +1 -0
  156. package/dist/tracing/InMemoryRunStore.d.ts +41 -1
  157. package/dist/tracing/InMemoryRunStore.js +239 -0
  158. package/dist/tracing/InMemoryRunStore.js.map +1 -1
  159. package/dist/tracing/Janitor.d.ts +70 -0
  160. package/dist/tracing/Janitor.js +150 -0
  161. package/dist/tracing/Janitor.js.map +1 -0
  162. package/dist/tracing/PostgresRunStore.d.ts +57 -1
  163. package/dist/tracing/PostgresRunStore.js +711 -6
  164. package/dist/tracing/PostgresRunStore.js.map +1 -1
  165. package/dist/tracing/RoutingDiagnostics.d.ts +55 -0
  166. package/dist/tracing/RoutingDiagnostics.js +50 -0
  167. package/dist/tracing/RoutingDiagnostics.js.map +1 -0
  168. package/dist/tracing/RunStore.d.ts +181 -1
  169. package/dist/tracing/RunTracker.d.ts +244 -9
  170. package/dist/tracing/RunTracker.js +594 -1
  171. package/dist/tracing/RunTracker.js.map +1 -1
  172. package/dist/tracing/SqliteRunStore.d.ts +79 -2
  173. package/dist/tracing/SqliteRunStore.js +775 -16
  174. package/dist/tracing/SqliteRunStore.js.map +1 -1
  175. package/dist/tracing/TraceRouter.d.ts +20 -2
  176. package/dist/tracing/TraceRouter.js +612 -6
  177. package/dist/tracing/TraceRouter.js.map +1 -1
  178. package/dist/tracing/createStore.js +14 -3
  179. package/dist/tracing/createStore.js.map +1 -1
  180. package/dist/tracing/metadataFilter.d.ts +63 -0
  181. package/dist/tracing/metadataFilter.js +224 -0
  182. package/dist/tracing/metadataFilter.js.map +1 -0
  183. package/dist/tracing/sanitize.d.ts +11 -0
  184. package/dist/tracing/sanitize.js +29 -0
  185. package/dist/tracing/sanitize.js.map +1 -1
  186. package/dist/tracing/types.d.ts +672 -2
  187. package/dist/utils/createChildContext.d.ts +32 -0
  188. package/dist/utils/createChildContext.js +113 -0
  189. package/dist/utils/createChildContext.js.map +1 -0
  190. package/dist/utils/envAllowlist.d.ts +35 -0
  191. package/dist/utils/envAllowlist.js +113 -0
  192. package/dist/utils/envAllowlist.js.map +1 -0
  193. package/dist/version/RuntimeVersionValidator.d.ts +38 -0
  194. package/dist/version/RuntimeVersionValidator.js +121 -0
  195. package/dist/version/RuntimeVersionValidator.js.map +1 -0
  196. package/dist/visualization/WorkflowVisualizer.js +4 -4
  197. package/dist/visualization/WorkflowVisualizer.js.map +1 -1
  198. package/dist/workflow/PersistenceHelper.d.ts +18 -10
  199. package/dist/workflow/PersistenceHelper.js +35 -9
  200. package/dist/workflow/PersistenceHelper.js.map +1 -1
  201. package/dist/workflow/WorkflowNormalizer.d.ts +48 -42
  202. package/dist/workflow/WorkflowNormalizer.js +650 -18
  203. package/dist/workflow/WorkflowNormalizer.js.map +1 -1
  204. package/dist/workflow/WorkflowRegistry.d.ts +186 -0
  205. package/dist/workflow/WorkflowRegistry.js +202 -0
  206. package/dist/workflow/WorkflowRegistry.js.map +1 -0
  207. package/dist/workflow/sampleBody.d.ts +54 -0
  208. package/dist/workflow/sampleBody.js +320 -0
  209. package/dist/workflow/sampleBody.js.map +1 -0
  210. package/package.json +3 -8
  211. package/dist/adapters/HttpRuntimeAdapter.d.ts +0 -79
  212. package/dist/adapters/HttpRuntimeAdapter.js +0 -233
  213. package/dist/adapters/HttpRuntimeAdapter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/grpc/types.ts"],"names":[],"mappings":"AA0EA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,qFAAqF;IACrF,mBAAmB,EAAE,MAAM;IAC3B,oGAAoG;IACpG,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,uCAAuC;IACvC,iBAAiB,EAAE,MAAM;IACzB,qCAAqC;IACrC,oBAAoB,EAAE,KAAK;IAC3B,6EAA6E;IAC7E,8BAA8B,EAAE,IAAI;IACpC,6BAA6B;IAC7B,kBAAkB,EAAE,MAAM;IAC1B,iEAAiE;IACjE,wBAAwB,EAAE,CAAC;CAClB,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA0C;IACxE,MAAM,EAAE,CAAC,EAAE,sBAAsB;IACjC,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACP,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/grpc/types.ts"],"names":[],"mappings":"AA4EA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,qFAAqF;IACrF,mBAAmB,EAAE,MAAM;IAC3B,oGAAoG;IACpG,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,uCAAuC;IACvC,iBAAiB,EAAE,MAAM;IACzB,qCAAqC;IACrC,oBAAoB,EAAE,KAAK;IAC3B,6EAA6E;IAC7E,8BAA8B,EAAE,IAAI;IACpC,6BAA6B;IAC7B,kBAAkB,EAAE,MAAM;IAC1B,iEAAiE;IACjE,wBAAwB,EAAE,CAAC;CAClB,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA0C;IACxE,MAAM,EAAE,CAAC,EAAE,sBAAsB;IACjC,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACP,CAAC"}
@@ -1,46 +1,17 @@
1
1
  import type { RuntimeKind } from "./RuntimeAdapter";
2
- import type { TlsConfig, Transport } from "./grpc/types";
2
+ import type { TlsConfig } from "./grpc/types";
3
3
  /**
4
- * Resolve the transport to use for a given runtime kind from the environment.
4
+ * Reject any leftover `RUNTIME_TRANSPORT=http` (global) or
5
+ * `RUNTIME_<KIND>_TRANSPORT=http` (per-kind) at startup. gRPC has been the
6
+ * sole runtime transport since v0.5; the HTTP adapter and its env-var
7
+ * escape hatch were removed at the same time. Silent fallback would mask
8
+ * stale operator config, so we throw with the exact env-var the operator
9
+ * still has set and a one-line migration hint.
5
10
  *
6
- * Precedence (most specific wins):
7
- * 1. `RUNTIME_<KIND>_TRANSPORT` per-kind override
8
- * e.g. `RUNTIME_PYTHON3_TRANSPORT=http` to opt one SDK out of gRPC.
9
- * 2. `RUNTIME_TRANSPORT` — global override
10
- * e.g. `RUNTIME_TRANSPORT=http` to roll back the whole runner.
11
- * 3. The hard-coded default — **`grpc`** as of Phase 6 (master plan §11).
12
- * Flipped from `http` to `grpc` after the cross-language parity matrix
13
- * (`bun run test:parity`, 33 tests across 6 SDKs × 5 workflows) and
14
- * the per-SDK §17 BlokError E2E suites stayed green for the full
15
- * Phase 5 observation window.
16
- *
17
- * Pure function — reads `process.env` once per call so tests can override.
18
- *
19
- * # Why the default flip is safe
20
- *
21
- * - HTTP transport remains available behind `RUNTIME_TRANSPORT=http` for at
22
- * least two minor versions (master plan §11 commitment).
23
- * - PHP without RoadRunner (Path B from §16) sets
24
- * `RUNTIME_PHP_TRANSPORT=http` per host. The forever-supported escape
25
- * hatch is unaffected.
26
- * - SDKs that fail to bind their gRPC listener fall through the
27
- * {@link GrpcHealthChecker} circuit-breaker and surface a typed
28
- * `BlokError(category=DEPENDENCY)` per §9 — no silent failure.
29
- *
30
- * @param kind The runtime kind (e.g. "python3").
31
- * @param env Optional env source (defaults to `process.env`). Tests can
32
- * pass a stub map.
33
- * @returns Either `"http"` or `"grpc"`. Invalid values fall back to the
34
- * Phase 6 default (`grpc`).
35
- */
36
- export declare function resolveTransportForKind(kind: RuntimeKind, env?: NodeJS.ProcessEnv): Transport;
37
- /**
38
- * Test-only — reset the per-process HTTP-transport deprecation cache so a
39
- * test that flips `RUNTIME_TRANSPORT=http` can re-assert the warning fires.
40
- *
41
- * @internal
11
+ * Throws on first offending env var found (the order is global first,
12
+ * then per-kind so operators see the broadest mistake first).
42
13
  */
43
- export declare function _resetHttpDeprecationCache(): void;
14
+ export declare function assertGrpcOnlyTransport(env?: NodeJS.ProcessEnv): void;
44
15
  /**
45
16
  * Whether log streaming is enabled for runtime nodes. When true, the runner
46
17
  * routes runtime nodes through `GrpcRuntimeAdapter.executeStream` instead of
@@ -49,8 +20,8 @@ export declare function _resetHttpDeprecationCache(): void;
49
20
  *
50
21
  * Streaming is a pure additive capability: when the env var is unset, the
51
22
  * legacy unary path runs unchanged. When enabled but the adapter doesn't
52
- * support streaming (e.g. HttpRuntimeAdapter), `RuntimeAdapterNode` falls
53
- * back to unary so misconfiguration never blocks execution.
23
+ * support streaming, `RuntimeAdapterNode` falls back to unary so
24
+ * misconfiguration never blocks execution.
54
25
  *
55
26
  * Recognized as truthy: `1`, `true`, `yes`, `on` (case-insensitive). Anything
56
27
  * else (including unset, empty, `0`, `false`) returns false.
@@ -1,76 +1,27 @@
1
+ const SUPPORTED_KINDS = ["go", "rust", "java", "csharp", "php", "ruby", "python3"];
1
2
  /**
2
- * Resolve the transport to use for a given runtime kind from the environment.
3
+ * Reject any leftover `RUNTIME_TRANSPORT=http` (global) or
4
+ * `RUNTIME_<KIND>_TRANSPORT=http` (per-kind) at startup. gRPC has been the
5
+ * sole runtime transport since v0.5; the HTTP adapter and its env-var
6
+ * escape hatch were removed at the same time. Silent fallback would mask
7
+ * stale operator config, so we throw with the exact env-var the operator
8
+ * still has set and a one-line migration hint.
3
9
  *
4
- * Precedence (most specific wins):
5
- * 1. `RUNTIME_<KIND>_TRANSPORT` per-kind override
6
- * e.g. `RUNTIME_PYTHON3_TRANSPORT=http` to opt one SDK out of gRPC.
7
- * 2. `RUNTIME_TRANSPORT` — global override
8
- * e.g. `RUNTIME_TRANSPORT=http` to roll back the whole runner.
9
- * 3. The hard-coded default — **`grpc`** as of Phase 6 (master plan §11).
10
- * Flipped from `http` to `grpc` after the cross-language parity matrix
11
- * (`bun run test:parity`, 33 tests across 6 SDKs × 5 workflows) and
12
- * the per-SDK §17 BlokError E2E suites stayed green for the full
13
- * Phase 5 observation window.
14
- *
15
- * Pure function — reads `process.env` once per call so tests can override.
16
- *
17
- * # Why the default flip is safe
18
- *
19
- * - HTTP transport remains available behind `RUNTIME_TRANSPORT=http` for at
20
- * least two minor versions (master plan §11 commitment).
21
- * - PHP without RoadRunner (Path B from §16) sets
22
- * `RUNTIME_PHP_TRANSPORT=http` per host. The forever-supported escape
23
- * hatch is unaffected.
24
- * - SDKs that fail to bind their gRPC listener fall through the
25
- * {@link GrpcHealthChecker} circuit-breaker and surface a typed
26
- * `BlokError(category=DEPENDENCY)` per §9 — no silent failure.
27
- *
28
- * @param kind The runtime kind (e.g. "python3").
29
- * @param env Optional env source (defaults to `process.env`). Tests can
30
- * pass a stub map.
31
- * @returns Either `"http"` or `"grpc"`. Invalid values fall back to the
32
- * Phase 6 default (`grpc`).
10
+ * Throws on first offending env var found (the order is global first,
11
+ * then per-kind so operators see the broadest mistake first).
33
12
  */
34
- export function resolveTransportForKind(kind, env = process.env) {
35
- const perKindKey = `RUNTIME_${kind.toUpperCase()}_TRANSPORT`;
36
- const perKind = env[perKindKey];
37
- if (perKind === "grpc" || perKind === "http") {
38
- if (perKind === "http")
39
- warnDeprecatedHttpTransport(perKindKey);
40
- return perKind;
41
- }
13
+ export function assertGrpcOnlyTransport(env = process.env) {
42
14
  const global = env.RUNTIME_TRANSPORT;
43
- if (global === "grpc" || global === "http") {
44
- if (global === "http")
45
- warnDeprecatedHttpTransport("RUNTIME_TRANSPORT");
46
- return global;
15
+ if (global !== undefined && global !== "" && global !== "grpc") {
16
+ throw new Error(`[blok] RUNTIME_TRANSPORT=${global} is no longer supported (HttpRuntimeAdapter was removed in v0.5). Drop the env var; gRPC is the only runtime transport. SDK processes should boot with BLOK_TRANSPORT=grpc.`);
17
+ }
18
+ for (const kind of SUPPORTED_KINDS) {
19
+ const key = `RUNTIME_${kind.toUpperCase()}_TRANSPORT`;
20
+ const value = env[key];
21
+ if (value !== undefined && value !== "" && value !== "grpc") {
22
+ throw new Error(`[blok] ${key}=${value} is no longer supported (HttpRuntimeAdapter was removed in v0.5). Drop the env var; gRPC is the only runtime transport.`);
23
+ }
47
24
  }
48
- // Phase 6 default: gRPC. The flip from HTTP landed once the parity
49
- // matrix had been green for the observation window.
50
- return "grpc";
51
- }
52
- /**
53
- * Set of env-var names that have already triggered the deprecation warning
54
- * in this process. Prevents log spam when many runtime kinds resolve through
55
- * the same global override on each request.
56
- *
57
- * Exported as a reset hook for tests — production code never touches it.
58
- */
59
- const _httpDeprecationWarned = new Set();
60
- function warnDeprecatedHttpTransport(envKey) {
61
- if (_httpDeprecationWarned.has(envKey))
62
- return;
63
- _httpDeprecationWarned.add(envKey);
64
- console.warn(`[blok] ${envKey}=http is deprecated and will be removed in v0.4.0. Migrate to gRPC by dropping the env var (gRPC is the default since Phase 6) and ensuring your SDK process boots with BLOK_TRANSPORT=grpc.`);
65
- }
66
- /**
67
- * Test-only — reset the per-process HTTP-transport deprecation cache so a
68
- * test that flips `RUNTIME_TRANSPORT=http` can re-assert the warning fires.
69
- *
70
- * @internal
71
- */
72
- export function _resetHttpDeprecationCache() {
73
- _httpDeprecationWarned.clear();
74
25
  }
75
26
  /**
76
27
  * Whether log streaming is enabled for runtime nodes. When true, the runner
@@ -80,8 +31,8 @@ export function _resetHttpDeprecationCache() {
80
31
  *
81
32
  * Streaming is a pure additive capability: when the env var is unset, the
82
33
  * legacy unary path runs unchanged. When enabled but the adapter doesn't
83
- * support streaming (e.g. HttpRuntimeAdapter), `RuntimeAdapterNode` falls
84
- * back to unary so misconfiguration never blocks execution.
34
+ * support streaming, `RuntimeAdapterNode` falls back to unary so
35
+ * misconfiguration never blocks execution.
85
36
  *
86
37
  * Recognized as truthy: `1`, `true`, `yes`, `on` (case-insensitive). Anything
87
38
  * else (including unset, empty, `0`, `false`) returns false.
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/adapters/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/adapters/transport.ts"],"names":[],"mappings":"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"}
@@ -490,6 +490,13 @@ export class NodeResultCache {
490
490
  case "node-input":
491
491
  return `node:${nodeName}:${sha256(nodeName + JSON.stringify(input))}`;
492
492
  case "custom":
493
+ // Constructor (line ~484) throws when strategy === "custom" but
494
+ // customKeyFn is missing, so by the time we get here the fn is
495
+ // guaranteed defined. Defensive runtime check keeps TS happy
496
+ // without `!`.
497
+ if (!this.customKeyFn) {
498
+ throw new Error('NodeResultCache: "custom" key strategy requires a customKeyFn to be provided.');
499
+ }
493
500
  return this.customKeyFn(nodeName, input);
494
501
  default:
495
502
  return `node:${nodeName}:${sha256(nodeName + JSON.stringify(input))}`;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeResultCache.js","sourceRoot":"","sources":["../../src/cache/NodeResultCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeResultCache.js","sourceRoot":"","sources":["../../src/cache/NodeResultCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Tier 2 #6 follow-up · cross-process concurrency backend.
3
+ *
4
+ * Optional capability layer that lets `RunTracker.acquireConcurrencySlot`
5
+ * delegate to a backend with cross-process semantics (NATS KV, future
6
+ * Redis) instead of the local sync `RunStore` impl.
7
+ *
8
+ * Default behavior is unchanged — when no backend is set, the tracker
9
+ * uses the existing `store.acquireConcurrencySlot` (single-process via
10
+ * SQLite locks or in-memory Map). The backend is opt-in via
11
+ * `BLOK_CONCURRENCY_BACKEND=nats-kv` and installed by trigger packages
12
+ * during `listen()`.
13
+ *
14
+ * Async-only — NATS KV operations require network round-trips. The
15
+ * sync `RunStore` interface remains untouched (no breaking change to
16
+ * existing extension points); the tracker bridges async + sync via
17
+ * `Promise.resolve()` when no backend is set.
18
+ */
19
+ import type { ConcurrencySlotResult } from "../tracing/types";
20
+ export interface ConcurrencyBackend {
21
+ /**
22
+ * Identifying string for logs/metrics. e.g. `"nats-kv"`, `"redis"`.
23
+ */
24
+ readonly name: string;
25
+ /**
26
+ * Lifecycle — open the underlying connection. Idempotent. Called
27
+ * once when the trigger installs the backend during `listen()`.
28
+ */
29
+ connect(): Promise<void>;
30
+ /**
31
+ * Lifecycle — close the underlying connection. Idempotent. Called
32
+ * on graceful process shutdown (when wired).
33
+ */
34
+ disconnect(): Promise<void>;
35
+ /**
36
+ * Atomically attempt to acquire a slot for the
37
+ * `(workflowName, concurrencyKey)` bucket against the given limit.
38
+ *
39
+ * Contract — must match {@link RunStore.acquireConcurrencySlot}:
40
+ * - Lazy-purge expired leases on the bucket before counting.
41
+ * - Idempotent re-acquire: same `runId` refreshes the lease,
42
+ * does NOT grow the count.
43
+ * - On count >= limit: return `{acquired: false, currentInFlight}`
44
+ * without inserting.
45
+ * - On grant: return `{acquired: true, currentInFlight}` where
46
+ * `currentInFlight` includes the just-acquired slot.
47
+ */
48
+ acquireSlot(workflowName: string, concurrencyKey: string, concurrencyLimit: number, runId: string, leaseExpiresAt: number): Promise<ConcurrencySlotResult>;
49
+ /**
50
+ * Release a slot. Idempotent. Safe to call on `runId`s that don't
51
+ * hold a slot (e.g. crash + restart releases via lease expiry).
52
+ */
53
+ releaseSlot(workflowName: string, concurrencyKey: string, runId: string): Promise<void>;
54
+ /**
55
+ * Janitor sweep — purge every lease whose `expiresAt <= now` across
56
+ * all buckets. Returns the count of purged leases. Cheap per-bucket
57
+ * lazy-purge happens on every acquire; this method is for global
58
+ * cleanup (e.g., periodic background task).
59
+ */
60
+ purgeExpired(now: number): Promise<number>;
61
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Tier 2 #6 follow-up · cross-process concurrency backend.
3
+ *
4
+ * Optional capability layer that lets `RunTracker.acquireConcurrencySlot`
5
+ * delegate to a backend with cross-process semantics (NATS KV, future
6
+ * Redis) instead of the local sync `RunStore` impl.
7
+ *
8
+ * Default behavior is unchanged — when no backend is set, the tracker
9
+ * uses the existing `store.acquireConcurrencySlot` (single-process via
10
+ * SQLite locks or in-memory Map). The backend is opt-in via
11
+ * `BLOK_CONCURRENCY_BACKEND=nats-kv` and installed by trigger packages
12
+ * during `listen()`.
13
+ *
14
+ * Async-only — NATS KV operations require network round-trips. The
15
+ * sync `RunStore` interface remains untouched (no breaking change to
16
+ * existing extension points); the tracker bridges async + sync via
17
+ * `Promise.resolve()` when no backend is set.
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=ConcurrencyBackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrencyBackend.js","sourceRoot":"","sources":["../../src/concurrency/ConcurrencyBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Tier 2 #6 — thrown by `TriggerBase.run()` when a workflow's concurrency
3
+ * gate denies a run because the in-flight count for the resolved
4
+ * `concurrencyKey` has reached `concurrencyLimit`.
5
+ *
6
+ * Triggers catch this and translate it into the appropriate transport-level
7
+ * response:
8
+ * - HTTP trigger → `429 Too Many Requests` with `Retry-After` header.
9
+ * - Worker trigger → NACK with redelivery (existing job-queue retry handles
10
+ * spacing).
11
+ *
12
+ * Carries enough context for both observability (logs / Studio events) and
13
+ * client-facing error payloads.
14
+ */
15
+ export interface ConcurrencyLimitInfo {
16
+ /** Workflow name whose gate fired. */
17
+ workflowName: string;
18
+ /** Resolved key value (after evaluating the `concurrencyKey` expression). */
19
+ concurrencyKey: string;
20
+ /** Per-key limit from the trigger config. */
21
+ concurrencyLimit: number;
22
+ /** Number of in-flight runs observed at the moment of denial. */
23
+ currentInFlight: number;
24
+ /**
25
+ * Suggested back-off in milliseconds before retrying. A heuristic — the
26
+ * gate doesn't observe a queue, so we recommend a minimum (the default
27
+ * matches the smallest meaningful HTTP `Retry-After` precision = 1s).
28
+ */
29
+ retryAfterMs: number;
30
+ /** Run id allocated by the tracer for this denied attempt. */
31
+ runId: string;
32
+ }
33
+ export declare class ConcurrencyLimitError extends Error {
34
+ readonly info: ConcurrencyLimitInfo;
35
+ constructor(info: ConcurrencyLimitInfo);
36
+ }
37
+ export declare function isConcurrencyLimitError(err: unknown): err is ConcurrencyLimitError;
@@ -0,0 +1,16 @@
1
+ export class ConcurrencyLimitError extends Error {
2
+ info;
3
+ constructor(info) {
4
+ super(`Concurrency limit reached for workflow '${info.workflowName}' (key='${info.concurrencyKey}', ` +
5
+ `limit=${info.concurrencyLimit}, currentInFlight=${info.currentInFlight}). ` +
6
+ `Retry after ~${info.retryAfterMs}ms.`);
7
+ this.name = "ConcurrencyLimitError";
8
+ this.info = info;
9
+ // Restore prototype chain when extending Error in transpiled code.
10
+ Object.setPrototypeOf(this, ConcurrencyLimitError.prototype);
11
+ }
12
+ }
13
+ export function isConcurrencyLimitError(err) {
14
+ return err instanceof ConcurrencyLimitError;
15
+ }
16
+ //# sourceMappingURL=ConcurrencyLimitError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrencyLimitError.js","sourceRoot":"","sources":["../../src/concurrency/ConcurrencyLimitError.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC/B,IAAI,CAAuB;IAE3C,YAAY,IAA0B;QACrC,KAAK,CACJ,2CAA2C,IAAI,CAAC,YAAY,WAAW,IAAI,CAAC,cAAc,KAAK;YAC9F,SAAS,IAAI,CAAC,gBAAgB,qBAAqB,IAAI,CAAC,eAAe,KAAK;YAC5E,gBAAgB,IAAI,CAAC,YAAY,KAAK,CACvC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,mEAAmE;QACnE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACD;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAY;IACnD,OAAO,GAAG,YAAY,qBAAqB,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Tier 2 #6 follow-up · NATS KV-backed concurrency backend.
3
+ *
4
+ * Coordinates per-(workflow, concurrencyKey) lease state across processes
5
+ * via a single NATS JetStream KV value per bucket using revision-based
6
+ * compare-and-swap (OCC).
7
+ *
8
+ * Storage model: one KV key per `(workflowName, concurrencyKey)` pair.
9
+ * Value is a JSON `{leases: [{runId, expiresAt}]}` document. Bounded
10
+ * cardinality assumption — typical concurrency keys hold 1-50 active
11
+ * leases (per-tenant rate limits). For higher cardinality, a per-lease
12
+ * key model would scale better; revisit when needed.
13
+ *
14
+ * Atomicity: NATS KV's only guarantee is `kv.create(key, value)` (fails
15
+ * on conflict) and `kv.update(key, value, expectedRevision)` (fails on
16
+ * concurrent modification). The acquire loop reads → filters → checks
17
+ * limit → CAS update. On CAS failure, retry up to 10 times then
18
+ * fail-closed (deny the slot).
19
+ *
20
+ * Lease leak: each lease carries an `expiresAt`. Expired leases are
21
+ * lazy-purged inside the same `acquireSlot` call that observes them;
22
+ * an explicit `purgeExpired` sweep is also exposed for janitor use.
23
+ */
24
+ import type { ConcurrencySlotResult } from "../tracing/types";
25
+ import type { ConcurrencyBackend } from "./ConcurrencyBackend";
26
+ export interface NatsKvConcurrencyConfig {
27
+ servers: string[];
28
+ token?: string;
29
+ user?: string;
30
+ pass?: string;
31
+ bucketName: string;
32
+ }
33
+ /**
34
+ * Read configuration from environment variables. Used by
35
+ * {@link createConcurrencyBackend} when the user opts into NATS KV.
36
+ */
37
+ export declare function readNatsKvConfigFromEnv(): NatsKvConcurrencyConfig;
38
+ export declare class NatsKvConcurrencyBackend implements ConcurrencyBackend {
39
+ readonly name = "nats-kv";
40
+ private nc;
41
+ private kv;
42
+ private readonly config;
43
+ private connected;
44
+ constructor(config?: Partial<NatsKvConcurrencyConfig>);
45
+ connect(): Promise<void>;
46
+ disconnect(): Promise<void>;
47
+ private bucketKey;
48
+ private encodeSegment;
49
+ private requireKv;
50
+ acquireSlot(workflowName: string, concurrencyKey: string, concurrencyLimit: number, runId: string, leaseExpiresAt: number): Promise<ConcurrencySlotResult>;
51
+ releaseSlot(workflowName: string, concurrencyKey: string, runId: string): Promise<void>;
52
+ purgeExpired(now: number): Promise<number>;
53
+ /**
54
+ * PR 2 A6 — distinguishes legitimate "key not found" from "broker
55
+ * unreachable / non-NotFound error". Returns:
56
+ * - `NatsKvEntry` on a successful fetch.
57
+ * - `null` when the key doesn't exist (NotFound code or null entry).
58
+ * - `"fetch-failed"` for any other error (transient broker outage,
59
+ * auth failure, network blip, etc.) so the OCC loop can fail-fast
60
+ * instead of spinning 10× before fail-closing.
61
+ */
62
+ private safeGet;
63
+ private parseBucket;
64
+ }