blokctl 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. package/dist/commands/create/project.js +15 -4
  2. package/dist/commands/create/utils/Examples.d.ts +1 -1
  3. package/dist/commands/create/utils/Examples.js +1 -1
  4. package/dist/commands/runtime/shared.js +4 -0
  5. package/dist/scaffold-repo/examples/ts-workflows/mcp-greeter.ts +59 -0
  6. package/dist/scaffold-repo/examples/ts-workflows/runtime-csharp-hello.ts +36 -0
  7. package/dist/scaffold-repo/examples/ts-workflows/runtime-go-hello.ts +36 -0
  8. package/dist/scaffold-repo/examples/ts-workflows/runtime-java-hello.ts +36 -0
  9. package/dist/scaffold-repo/examples/ts-workflows/runtime-php-hello.ts +36 -0
  10. package/dist/scaffold-repo/examples/ts-workflows/runtime-python3-hello.ts +36 -0
  11. package/dist/scaffold-repo/examples/ts-workflows/runtime-ruby-hello.ts +36 -0
  12. package/dist/scaffold-repo/examples/ts-workflows/runtime-rust-hello.ts +36 -0
  13. package/dist/scaffold-repo/infra/development/3055.dat +602 -0
  14. package/dist/scaffold-repo/infra/development/3057.dat +203 -0
  15. package/dist/scaffold-repo/infra/development/3059.dat +19 -0
  16. package/dist/scaffold-repo/infra/development/3061.dat +1003 -0
  17. package/dist/scaffold-repo/infra/development/3062.dat +5465 -0
  18. package/dist/scaffold-repo/infra/development/3063.dat +1003 -0
  19. package/dist/scaffold-repo/infra/development/3065.dat +606 -0
  20. package/dist/scaffold-repo/infra/development/3067.dat +603 -0
  21. package/dist/scaffold-repo/infra/development/3069.dat +112 -0
  22. package/dist/scaffold-repo/infra/development/3071.dat +4584 -0
  23. package/dist/scaffold-repo/infra/development/3073.dat +9 -0
  24. package/dist/scaffold-repo/infra/development/3075.dat +14599 -0
  25. package/dist/scaffold-repo/infra/development/3077.dat +16047 -0
  26. package/dist/scaffold-repo/infra/development/3079.dat +5 -0
  27. package/dist/scaffold-repo/infra/development/3081.dat +5 -0
  28. package/dist/scaffold-repo/infra/development/docker-compose.yml +106 -0
  29. package/dist/scaffold-repo/infra/development/schema.sql +1616 -0
  30. package/dist/scaffold-repo/infra/development/toc.dat +0 -0
  31. package/dist/scaffold-repo/infra/metrics/alertmanager.yml +43 -0
  32. package/dist/scaffold-repo/infra/metrics/alloy-config.alloy +75 -0
  33. package/dist/scaffold-repo/infra/metrics/dashboard.json +1152 -0
  34. package/dist/scaffold-repo/infra/metrics/dashboards/blok-overview.json +314 -0
  35. package/dist/scaffold-repo/infra/metrics/dashboards/blok-system.json +175 -0
  36. package/dist/scaffold-repo/infra/metrics/dashboards/blok-tracing.json +235 -0
  37. package/dist/scaffold-repo/infra/metrics/dashboards/blok-triggers.json +258 -0
  38. package/dist/scaffold-repo/infra/metrics/datasources.yml +43 -0
  39. package/dist/scaffold-repo/infra/metrics/default.yaml +8 -0
  40. package/dist/scaffold-repo/infra/metrics/docker-compose.yml +193 -0
  41. package/dist/scaffold-repo/infra/metrics/loki-config.yaml +50 -0
  42. package/dist/scaffold-repo/infra/metrics/nginx.conf +25 -0
  43. package/dist/scaffold-repo/infra/metrics/prometheus.yml +51 -0
  44. package/dist/scaffold-repo/infra/metrics/rules/blok-alerts.yml +114 -0
  45. package/dist/scaffold-repo/infra/metrics/telegraf.conf +41 -0
  46. package/dist/scaffold-repo/infra/metrics/tempo.yaml +81 -0
  47. package/dist/scaffold-repo/infra/milvus/docker-compose.yml +73 -0
  48. package/dist/scaffold-repo/sdk/javascript/README.md +151 -0
  49. package/dist/scaffold-repo/sdk/javascript/bootstrap.min.css +11660 -0
  50. package/dist/scaffold-repo/sdk/javascript/image-ai.html +316 -0
  51. package/dist/scaffold-repo/sdk/javascript/nanosdk.js +180 -0
  52. package/dist/scaffold-repo/sdk/javascript/nanosdk.min.js +100 -0
  53. package/dist/scaffold-repo/sdk/javascript/pdf.html +63 -0
  54. package/dist/scaffold-repo/sdk/javascript/test.html +68 -0
  55. package/dist/scaffold-repo/sdks/CLAUDE.md +67 -0
  56. package/dist/scaffold-repo/sdks/csharp/.dockerignore +7 -0
  57. package/dist/scaffold-repo/sdks/csharp/Blok.Core.sln +24 -0
  58. package/dist/scaffold-repo/sdks/csharp/Dockerfile +42 -0
  59. package/dist/scaffold-repo/sdks/csharp/README.md +138 -0
  60. package/dist/scaffold-repo/sdks/csharp/proto/blok/runtime/v1/runtime.proto +302 -0
  61. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Blok.Core.csproj +39 -0
  62. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Config/ServerConfig.cs +90 -0
  63. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Errors/BlokError.cs +538 -0
  64. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Errors/BlokErrorCategory.cs +112 -0
  65. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Errors/BlokErrorSeverity.cs +40 -0
  66. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Errors/BuildContextSnapshot.cs +168 -0
  67. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Errors/ErrorCategory.cs +13 -0
  68. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Errors/NodeException.cs +44 -0
  69. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Logging/LogEntry.cs +34 -0
  70. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Logging/LogLevel.cs +12 -0
  71. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Logging/Logger.cs +92 -0
  72. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Middleware/IMiddleware.cs +14 -0
  73. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Middleware/LoggingMiddleware.cs +46 -0
  74. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Middleware/MiddlewareChain.cs +35 -0
  75. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Middleware/RecoveryMiddleware.cs +63 -0
  76. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Node/INodeHandler.cs +17 -0
  77. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Node/NodeRegistry.cs +128 -0
  78. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Node/TypedNode.cs +140 -0
  79. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Nodes/ApiCallNode.cs +129 -0
  80. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Nodes/BlokErrorDemoNode.cs +125 -0
  81. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Nodes/ChainTestNode.cs +79 -0
  82. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Nodes/HelloWorldNode.cs +45 -0
  83. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Nodes/TransformDataNode.cs +119 -0
  84. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Nodes/TypedGreetNode.cs +23 -0
  85. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Program.cs +26 -0
  86. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Server/BlokNodeRuntimeService.cs +536 -0
  87. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Server/RuntimeServer.cs +183 -0
  88. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Testing/MockContextBuilder.cs +117 -0
  89. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Testing/TestNodeRunner.cs +50 -0
  90. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/Context.cs +56 -0
  91. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/ExecutionMetrics.cs +21 -0
  92. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/ExecutionRequest.cs +15 -0
  93. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/ExecutionResult.cs +104 -0
  94. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/HealthStatus.cs +18 -0
  95. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/NodeConfig.cs +59 -0
  96. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/Request.cs +57 -0
  97. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Types/Response.cs +24 -0
  98. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/UserNodeRegistry.cs +17 -0
  99. package/dist/scaffold-repo/sdks/csharp/src/Blok.Core/Validation/SchemaValidator.cs +198 -0
  100. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/Blok.Core.Tests.csproj +25 -0
  101. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/Errors/BlokErrorTests.cs +458 -0
  102. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/Logging/LoggerTests.cs +129 -0
  103. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/Node/NodeRegistryTests.cs +145 -0
  104. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/Testing/MockContextTests.cs +153 -0
  105. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/TypedNodeTests.cs +69 -0
  106. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/Types/ExecutionResultTests.cs +110 -0
  107. package/dist/scaffold-repo/sdks/csharp/tests/Blok.Core.Tests/Validation/SchemaValidatorTests.cs +233 -0
  108. package/dist/scaffold-repo/sdks/go/Dockerfile +33 -0
  109. package/dist/scaffold-repo/sdks/go/README.md +255 -0
  110. package/dist/scaffold-repo/sdks/go/blok_error.go +803 -0
  111. package/dist/scaffold-repo/sdks/go/blok_error_test.go +433 -0
  112. package/dist/scaffold-repo/sdks/go/cmd/server/main.go +45 -0
  113. package/dist/scaffold-repo/sdks/go/cmd/server/register_user_nodes.go +12 -0
  114. package/dist/scaffold-repo/sdks/go/config.go +157 -0
  115. package/dist/scaffold-repo/sdks/go/config_test.go +129 -0
  116. package/dist/scaffold-repo/sdks/go/define_node.go +87 -0
  117. package/dist/scaffold-repo/sdks/go/define_node_test.go +75 -0
  118. package/dist/scaffold-repo/sdks/go/errors.go +104 -0
  119. package/dist/scaffold-repo/sdks/go/errors_test.go +95 -0
  120. package/dist/scaffold-repo/sdks/go/examples/nodes/apicall.go +117 -0
  121. package/dist/scaffold-repo/sdks/go/examples/nodes/blokerrordemo.go +80 -0
  122. package/dist/scaffold-repo/sdks/go/examples/nodes/chaintest.go +63 -0
  123. package/dist/scaffold-repo/sdks/go/examples/nodes/helloworld.go +41 -0
  124. package/dist/scaffold-repo/sdks/go/examples/nodes/transformdata.go +176 -0
  125. package/dist/scaffold-repo/sdks/go/examples/nodes/typedgreet.go +34 -0
  126. package/dist/scaffold-repo/sdks/go/genpb/blok/runtime/v1/runtime.pb.go +2070 -0
  127. package/dist/scaffold-repo/sdks/go/genpb/blok/runtime/v1/runtime_grpc.pb.go +273 -0
  128. package/dist/scaffold-repo/sdks/go/go.mod +25 -0
  129. package/dist/scaffold-repo/sdks/go/go.sum +66 -0
  130. package/dist/scaffold-repo/sdks/go/grpc_server.go +670 -0
  131. package/dist/scaffold-repo/sdks/go/grpc_server_test.go +474 -0
  132. package/dist/scaffold-repo/sdks/go/logging.go +144 -0
  133. package/dist/scaffold-repo/sdks/go/logging_test.go +139 -0
  134. package/dist/scaffold-repo/sdks/go/middleware.go +152 -0
  135. package/dist/scaffold-repo/sdks/go/middleware_test.go +222 -0
  136. package/dist/scaffold-repo/sdks/go/node.go +50 -0
  137. package/dist/scaffold-repo/sdks/go/proto/blok/runtime/v1/runtime.proto +302 -0
  138. package/dist/scaffold-repo/sdks/go/registry.go +156 -0
  139. package/dist/scaffold-repo/sdks/go/registry_test.go +195 -0
  140. package/dist/scaffold-repo/sdks/go/server.go +207 -0
  141. package/dist/scaffold-repo/sdks/go/server_test.go +186 -0
  142. package/dist/scaffold-repo/sdks/go/shutdown.go +32 -0
  143. package/dist/scaffold-repo/sdks/go/testutil.go +169 -0
  144. package/dist/scaffold-repo/sdks/go/testutil_test.go +124 -0
  145. package/dist/scaffold-repo/sdks/go/types.go +295 -0
  146. package/dist/scaffold-repo/sdks/go/types_test.go +251 -0
  147. package/dist/scaffold-repo/sdks/go/validation.go +210 -0
  148. package/dist/scaffold-repo/sdks/go/validation_test.go +262 -0
  149. package/dist/scaffold-repo/sdks/go/worker.go +577 -0
  150. package/dist/scaffold-repo/sdks/java/Dockerfile +33 -0
  151. package/dist/scaffold-repo/sdks/java/README.md +221 -0
  152. package/dist/scaffold-repo/sdks/java/pom.xml +163 -0
  153. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/Main.java +90 -0
  154. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/UserNodeRegistry.java +19 -0
  155. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/config/ServerConfig.java +244 -0
  156. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/errors/BlokError.java +576 -0
  157. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/errors/BlokErrorCategory.java +68 -0
  158. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/errors/BlokErrorSeverity.java +31 -0
  159. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/errors/BuildContextSnapshot.java +132 -0
  160. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/errors/ErrorCategory.java +22 -0
  161. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/errors/NodeException.java +176 -0
  162. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/logging/LogEntry.java +78 -0
  163. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/logging/LogLevel.java +48 -0
  164. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/logging/Logger.java +160 -0
  165. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/middleware/LoggingMiddleware.java +65 -0
  166. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/middleware/Middleware.java +29 -0
  167. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/middleware/MiddlewareChain.java +59 -0
  168. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/middleware/RecoveryMiddleware.java +53 -0
  169. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/node/NodeHandler.java +40 -0
  170. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/node/NodeReflector.java +18 -0
  171. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/node/NodeRegistry.java +205 -0
  172. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/node/TypedNode.java +143 -0
  173. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/nodes/ApiCallNode.java +145 -0
  174. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/nodes/BlokErrorDemoNode.java +109 -0
  175. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/nodes/ChainTestNode.java +65 -0
  176. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/nodes/HelloWorldNode.java +62 -0
  177. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/nodes/TransformDataNode.java +121 -0
  178. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/nodes/TypedGreetNode.java +41 -0
  179. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/server/BlokGrpcServer.java +103 -0
  180. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/server/BlokNodeRuntimeService.java +501 -0
  181. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/server/RuntimeServer.java +176 -0
  182. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/testing/MockContext.java +120 -0
  183. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/testing/TestRunner.java +59 -0
  184. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/Context.java +167 -0
  185. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/ExecutionMetrics.java +80 -0
  186. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/ExecutionRequest.java +61 -0
  187. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/ExecutionResult.java +188 -0
  188. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/HealthStatus.java +77 -0
  189. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/NodeConfig.java +139 -0
  190. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/Request.java +154 -0
  191. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/types/Response.java +77 -0
  192. package/dist/scaffold-repo/sdks/java/src/main/java/com/blok/blok/validation/SchemaValidator.java +178 -0
  193. package/dist/scaffold-repo/sdks/java/src/main/proto/blok/runtime/v1/runtime.proto +302 -0
  194. package/dist/scaffold-repo/sdks/java/src/test/java/com/blok/blok/errors/BlokErrorTest.java +416 -0
  195. package/dist/scaffold-repo/sdks/java/src/test/java/com/blok/blok/logging/LoggerTest.java +176 -0
  196. package/dist/scaffold-repo/sdks/java/src/test/java/com/blok/blok/node/NodeRegistryTest.java +227 -0
  197. package/dist/scaffold-repo/sdks/java/src/test/java/com/blok/blok/node/TypedNodeTest.java +76 -0
  198. package/dist/scaffold-repo/sdks/java/src/test/java/com/blok/blok/server/RuntimeServerTest.java +197 -0
  199. package/dist/scaffold-repo/sdks/java/src/test/java/com/blok/blok/types/ExecutionResultTest.java +194 -0
  200. package/dist/scaffold-repo/sdks/java/src/test/java/com/blok/blok/validation/SchemaValidatorTest.java +246 -0
  201. package/dist/scaffold-repo/sdks/php/.rr.yaml +29 -0
  202. package/dist/scaffold-repo/sdks/php/Dockerfile +61 -0
  203. package/dist/scaffold-repo/sdks/php/README.md +387 -0
  204. package/dist/scaffold-repo/sdks/php/composer.json +41 -0
  205. package/dist/scaffold-repo/sdks/php/examples/ApiCallNode.php +103 -0
  206. package/dist/scaffold-repo/sdks/php/examples/BlokErrorDemoNode.php +90 -0
  207. package/dist/scaffold-repo/sdks/php/examples/ChainTestNode.php +56 -0
  208. package/dist/scaffold-repo/sdks/php/examples/HelloWorldNode.php +39 -0
  209. package/dist/scaffold-repo/sdks/php/examples/TransformDataNode.php +94 -0
  210. package/dist/scaffold-repo/sdks/php/examples/TypedGreetNode.php +57 -0
  211. package/dist/scaffold-repo/sdks/php/phpunit.xml +23 -0
  212. package/dist/scaffold-repo/sdks/php/proto/blok/runtime/v1/runtime.proto +302 -0
  213. package/dist/scaffold-repo/sdks/php/src/Config/ServerConfig.php +83 -0
  214. package/dist/scaffold-repo/sdks/php/src/Errors/BlokError.php +467 -0
  215. package/dist/scaffold-repo/sdks/php/src/Errors/BlokErrorBuilder.php +121 -0
  216. package/dist/scaffold-repo/sdks/php/src/Errors/BlokErrorCategory.php +83 -0
  217. package/dist/scaffold-repo/sdks/php/src/Errors/BlokErrorSeverity.php +30 -0
  218. package/dist/scaffold-repo/sdks/php/src/Errors/BuildContextSnapshot.php +141 -0
  219. package/dist/scaffold-repo/sdks/php/src/Errors/ErrorCategory.php +17 -0
  220. package/dist/scaffold-repo/sdks/php/src/Errors/NodeException.php +107 -0
  221. package/dist/scaffold-repo/sdks/php/src/Errors/Origin.php +35 -0
  222. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ErrorCategory.php +118 -0
  223. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ErrorSeverity.php +72 -0
  224. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ExecuteEvent.php +181 -0
  225. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ExecuteOptions.php +159 -0
  226. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ExecuteRequest.php +328 -0
  227. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ExecuteResponse.php +288 -0
  228. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/HealthRequest.php +59 -0
  229. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/HealthResponse/Status.php +54 -0
  230. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/HealthResponse.php +113 -0
  231. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ListNodesRequest.php +32 -0
  232. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/ListNodesResponse.php +154 -0
  233. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/LogLine.php +156 -0
  234. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/Metrics.php +165 -0
  235. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/NodeDescriptor.php +174 -0
  236. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/NodeError.php +627 -0
  237. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/NodeRef.php +134 -0
  238. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/NodeRuntimeClient.php +101 -0
  239. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/NodeStarted.php +68 -0
  240. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/PartialResult.php +59 -0
  241. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/Progress.php +85 -0
  242. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/RuntimeState.php +142 -0
  243. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/StepInfo.php +168 -0
  244. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/TriggerInfo.php +289 -0
  245. package/dist/scaffold-repo/sdks/php/src/Genpb/Blok/Runtime/V1/WorkflowInfo.php +176 -0
  246. package/dist/scaffold-repo/sdks/php/src/Genpb/GPBMetadata/Blok/Runtime/V1/Runtime.php +26 -0
  247. package/dist/scaffold-repo/sdks/php/src/Logging/LogEntry.php +47 -0
  248. package/dist/scaffold-repo/sdks/php/src/Logging/LogLevel.php +50 -0
  249. package/dist/scaffold-repo/sdks/php/src/Logging/Logger.php +133 -0
  250. package/dist/scaffold-repo/sdks/php/src/Node/NodeHandler.php +35 -0
  251. package/dist/scaffold-repo/sdks/php/src/Node/NodeReflector.php +21 -0
  252. package/dist/scaffold-repo/sdks/php/src/Node/NodeRegistry.php +172 -0
  253. package/dist/scaffold-repo/sdks/php/src/Node/TypedNode.php +159 -0
  254. package/dist/scaffold-repo/sdks/php/src/Server/BlokNodeRuntimeService.php +504 -0
  255. package/dist/scaffold-repo/sdks/php/src/Server/DecodeException.php +13 -0
  256. package/dist/scaffold-repo/sdks/php/src/Server/Middleware.php +18 -0
  257. package/dist/scaffold-repo/sdks/php/src/Server/MiddlewarePipeline.php +33 -0
  258. package/dist/scaffold-repo/sdks/php/src/Server/NodeRuntimeInterface.php +40 -0
  259. package/dist/scaffold-repo/sdks/php/src/Server/Server.php +157 -0
  260. package/dist/scaffold-repo/sdks/php/src/Testing/MockContext.php +161 -0
  261. package/dist/scaffold-repo/sdks/php/src/Testing/TestRunner.php +78 -0
  262. package/dist/scaffold-repo/sdks/php/src/Types/Context.php +80 -0
  263. package/dist/scaffold-repo/sdks/php/src/Types/ExecutionMetrics.php +48 -0
  264. package/dist/scaffold-repo/sdks/php/src/Types/ExecutionRequest.php +38 -0
  265. package/dist/scaffold-repo/sdks/php/src/Types/ExecutionResult.php +143 -0
  266. package/dist/scaffold-repo/sdks/php/src/Types/HealthStatus.php +42 -0
  267. package/dist/scaffold-repo/sdks/php/src/Types/NodeConfig.php +72 -0
  268. package/dist/scaffold-repo/sdks/php/src/Types/Request.php +82 -0
  269. package/dist/scaffold-repo/sdks/php/src/Types/Response.php +44 -0
  270. package/dist/scaffold-repo/sdks/php/src/Validation/SchemaValidator.php +197 -0
  271. package/dist/scaffold-repo/sdks/php/tests/Errors/BlokErrorTest.php +402 -0
  272. package/dist/scaffold-repo/sdks/php/tests/Logging/LoggerTest.php +165 -0
  273. package/dist/scaffold-repo/sdks/php/tests/Node/NodeRegistryTest.php +139 -0
  274. package/dist/scaffold-repo/sdks/php/tests/Node/TypedNodeTest.php +84 -0
  275. package/dist/scaffold-repo/sdks/php/tests/Server/BlokNodeRuntimeServiceTest.php +288 -0
  276. package/dist/scaffold-repo/sdks/php/tests/Testing/MockContextTest.php +184 -0
  277. package/dist/scaffold-repo/sdks/php/tests/Types/ExecutionResultTest.php +136 -0
  278. package/dist/scaffold-repo/sdks/php/tests/Validation/SchemaValidatorTest.php +191 -0
  279. package/dist/scaffold-repo/sdks/python3/Dockerfile +62 -0
  280. package/dist/scaffold-repo/sdks/python3/blok/__init__.py +61 -0
  281. package/dist/scaffold-repo/sdks/python3/blok/config/__init__.py +3 -0
  282. package/dist/scaffold-repo/sdks/python3/blok/config/server_config.py +116 -0
  283. package/dist/scaffold-repo/sdks/python3/blok/errors/__init__.py +50 -0
  284. package/dist/scaffold-repo/sdks/python3/blok/errors/blok_error.py +555 -0
  285. package/dist/scaffold-repo/sdks/python3/blok/errors/node_error.py +64 -0
  286. package/dist/scaffold-repo/sdks/python3/blok/logging/__init__.py +3 -0
  287. package/dist/scaffold-repo/sdks/python3/blok/logging/logger.py +82 -0
  288. package/dist/scaffold-repo/sdks/python3/blok/middleware/__init__.py +4 -0
  289. package/dist/scaffold-repo/sdks/python3/blok/middleware/logging_middleware.py +35 -0
  290. package/dist/scaffold-repo/sdks/python3/blok/middleware/recovery_middleware.py +36 -0
  291. package/dist/scaffold-repo/sdks/python3/blok/node/__init__.py +4 -0
  292. package/dist/scaffold-repo/sdks/python3/blok/node/define_node.py +239 -0
  293. package/dist/scaffold-repo/sdks/python3/blok/node/node_handler.py +35 -0
  294. package/dist/scaffold-repo/sdks/python3/blok/node/node_registry.py +136 -0
  295. package/dist/scaffold-repo/sdks/python3/blok/runtime/__init__.py +0 -0
  296. package/dist/scaffold-repo/sdks/python3/blok/runtime/v1/__init__.py +0 -0
  297. package/dist/scaffold-repo/sdks/python3/blok/runtime/v1/runtime_pb2.py +112 -0
  298. package/dist/scaffold-repo/sdks/python3/blok/runtime/v1/runtime_pb2_grpc.py +259 -0
  299. package/dist/scaffold-repo/sdks/python3/blok/server/__init__.py +3 -0
  300. package/dist/scaffold-repo/sdks/python3/blok/server/grpc_server.py +757 -0
  301. package/dist/scaffold-repo/sdks/python3/blok/server/runtime_server.py +165 -0
  302. package/dist/scaffold-repo/sdks/python3/blok/types/__init__.py +13 -0
  303. package/dist/scaffold-repo/sdks/python3/blok/types/context.py +162 -0
  304. package/dist/scaffold-repo/sdks/python3/blok/types/execution_request.py +74 -0
  305. package/dist/scaffold-repo/sdks/python3/blok/types/execution_result.py +103 -0
  306. package/dist/scaffold-repo/sdks/python3/blok/worker/__init__.py +10 -0
  307. package/dist/scaffold-repo/sdks/python3/blok/worker/job_message.py +34 -0
  308. package/dist/scaffold-repo/sdks/python3/blok/worker/worker.py +451 -0
  309. package/dist/scaffold-repo/sdks/python3/blok/worker/worker_config.py +129 -0
  310. package/dist/scaffold-repo/sdks/python3/examples/__init__.py +32 -0
  311. package/dist/scaffold-repo/sdks/python3/examples/api_call_node.py +85 -0
  312. package/dist/scaffold-repo/sdks/python3/examples/blok_error_demo_node.py +79 -0
  313. package/dist/scaffold-repo/sdks/python3/examples/chain_test_node.py +51 -0
  314. package/dist/scaffold-repo/sdks/python3/examples/hello_world_node.py +44 -0
  315. package/dist/scaffold-repo/sdks/python3/examples/transform_data_node.py +71 -0
  316. package/dist/scaffold-repo/sdks/python3/examples/typed_greet_node.py +25 -0
  317. package/dist/scaffold-repo/sdks/python3/proto/blok/runtime/v1/runtime.proto +302 -0
  318. package/dist/scaffold-repo/sdks/python3/pyproject.toml +47 -0
  319. package/dist/scaffold-repo/sdks/python3/requirements.txt +17 -0
  320. package/dist/scaffold-repo/sdks/python3/tests/__init__.py +0 -0
  321. package/dist/scaffold-repo/sdks/python3/tests/test_blok_error.py +341 -0
  322. package/dist/scaffold-repo/sdks/python3/tests/test_define_node.py +135 -0
  323. package/dist/scaffold-repo/sdks/python3/tests/test_discovery.py +99 -0
  324. package/dist/scaffold-repo/sdks/python3/tests/test_grpc_codec.py +260 -0
  325. package/dist/scaffold-repo/sdks/python3/tests/test_grpc_server.py +398 -0
  326. package/dist/scaffold-repo/sdks/ruby/Dockerfile +37 -0
  327. package/dist/scaffold-repo/sdks/ruby/Gemfile +5 -0
  328. package/dist/scaffold-repo/sdks/ruby/README.md +210 -0
  329. package/dist/scaffold-repo/sdks/ruby/Rakefile +11 -0
  330. package/dist/scaffold-repo/sdks/ruby/blok.gemspec +43 -0
  331. package/dist/scaffold-repo/sdks/ruby/config.ru +15 -0
  332. package/dist/scaffold-repo/sdks/ruby/examples/api_call_node.rb +99 -0
  333. package/dist/scaffold-repo/sdks/ruby/examples/blok_error_demo_node.rb +79 -0
  334. package/dist/scaffold-repo/sdks/ruby/examples/chain_test_node.rb +51 -0
  335. package/dist/scaffold-repo/sdks/ruby/examples/hello_world_node.rb +40 -0
  336. package/dist/scaffold-repo/sdks/ruby/examples/transform_data_node.rb +82 -0
  337. package/dist/scaffold-repo/sdks/ruby/examples/typed_greet_node.rb +25 -0
  338. package/dist/scaffold-repo/sdks/ruby/lib/blok/config/server_config.rb +76 -0
  339. package/dist/scaffold-repo/sdks/ruby/lib/blok/errors/blok_error.rb +476 -0
  340. package/dist/scaffold-repo/sdks/ruby/lib/blok/errors/build_context_snapshot.rb +99 -0
  341. package/dist/scaffold-repo/sdks/ruby/lib/blok/errors/error_category.rb +16 -0
  342. package/dist/scaffold-repo/sdks/ruby/lib/blok/errors/node_error.rb +84 -0
  343. package/dist/scaffold-repo/sdks/ruby/lib/blok/logging/log_entry.rb +46 -0
  344. package/dist/scaffold-repo/sdks/ruby/lib/blok/logging/log_level.rb +49 -0
  345. package/dist/scaffold-repo/sdks/ruby/lib/blok/logging/logger.rb +71 -0
  346. package/dist/scaffold-repo/sdks/ruby/lib/blok/middleware/logging_middleware.rb +45 -0
  347. package/dist/scaffold-repo/sdks/ruby/lib/blok/middleware/middleware.rb +36 -0
  348. package/dist/scaffold-repo/sdks/ruby/lib/blok/middleware/recovery_middleware.rb +31 -0
  349. package/dist/scaffold-repo/sdks/ruby/lib/blok/node/discovery.rb +59 -0
  350. package/dist/scaffold-repo/sdks/ruby/lib/blok/node/node_handler.rb +43 -0
  351. package/dist/scaffold-repo/sdks/ruby/lib/blok/node/node_registry.rb +107 -0
  352. package/dist/scaffold-repo/sdks/ruby/lib/blok/node/typed_node.rb +180 -0
  353. package/dist/scaffold-repo/sdks/ruby/lib/blok/runtime/v1/runtime_pb.rb +43 -0
  354. package/dist/scaffold-repo/sdks/ruby/lib/blok/runtime/v1/runtime_services_pb.rb +55 -0
  355. package/dist/scaffold-repo/sdks/ruby/lib/blok/server/grpc_server.rb +435 -0
  356. package/dist/scaffold-repo/sdks/ruby/lib/blok/server/runtime_app.rb +86 -0
  357. package/dist/scaffold-repo/sdks/ruby/lib/blok/testing/mock_context.rb +109 -0
  358. package/dist/scaffold-repo/sdks/ruby/lib/blok/testing/test_runner.rb +40 -0
  359. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/context.rb +82 -0
  360. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/execution_metrics.rb +43 -0
  361. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/execution_request.rb +39 -0
  362. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/execution_result.rb +117 -0
  363. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/health_status.rb +42 -0
  364. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/node_config.rb +73 -0
  365. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/request.rb +71 -0
  366. package/dist/scaffold-repo/sdks/ruby/lib/blok/types/response.rb +46 -0
  367. package/dist/scaffold-repo/sdks/ruby/lib/blok/validation/schema_validator.rb +142 -0
  368. package/dist/scaffold-repo/sdks/ruby/lib/blok/version.rb +5 -0
  369. package/dist/scaffold-repo/sdks/ruby/lib/blok.rb +53 -0
  370. package/dist/scaffold-repo/sdks/ruby/proto/blok/runtime/v1/runtime.proto +302 -0
  371. package/dist/scaffold-repo/sdks/ruby/test/errors/blok_error_test.rb +339 -0
  372. package/dist/scaffold-repo/sdks/ruby/test/logging/logger_test.rb +155 -0
  373. package/dist/scaffold-repo/sdks/ruby/test/node/node_registry_test.rb +132 -0
  374. package/dist/scaffold-repo/sdks/ruby/test/node/typed_node_test.rb +67 -0
  375. package/dist/scaffold-repo/sdks/ruby/test/test_helper.rb +6 -0
  376. package/dist/scaffold-repo/sdks/ruby/test/testing/mock_context_test.rb +150 -0
  377. package/dist/scaffold-repo/sdks/ruby/test/types/execution_result_test.rb +129 -0
  378. package/dist/scaffold-repo/sdks/ruby/test/validation/schema_validator_test.rb +270 -0
  379. package/dist/scaffold-repo/sdks/rust/Cargo.lock +3044 -0
  380. package/dist/scaffold-repo/sdks/rust/Cargo.toml +82 -0
  381. package/dist/scaffold-repo/sdks/rust/Dockerfile +40 -0
  382. package/dist/scaffold-repo/sdks/rust/README.md +73 -0
  383. package/dist/scaffold-repo/sdks/rust/build.rs +32 -0
  384. package/dist/scaffold-repo/sdks/rust/proto/blok/runtime/v1/runtime.proto +302 -0
  385. package/dist/scaffold-repo/sdks/rust/src/blok_error.rs +1168 -0
  386. package/dist/scaffold-repo/sdks/rust/src/config.rs +158 -0
  387. package/dist/scaffold-repo/sdks/rust/src/errors.rs +142 -0
  388. package/dist/scaffold-repo/sdks/rust/src/grpc_server.rs +635 -0
  389. package/dist/scaffold-repo/sdks/rust/src/lib.rs +65 -0
  390. package/dist/scaffold-repo/sdks/rust/src/logging.rs +195 -0
  391. package/dist/scaffold-repo/sdks/rust/src/main.rs +79 -0
  392. package/dist/scaffold-repo/sdks/rust/src/middleware.rs +181 -0
  393. package/dist/scaffold-repo/sdks/rust/src/node.rs +172 -0
  394. package/dist/scaffold-repo/sdks/rust/src/nodes/api_call.rs +93 -0
  395. package/dist/scaffold-repo/sdks/rust/src/nodes/blok_error_demo.rs +151 -0
  396. package/dist/scaffold-repo/sdks/rust/src/nodes/chain_test.rs +57 -0
  397. package/dist/scaffold-repo/sdks/rust/src/nodes/hello_world.rs +83 -0
  398. package/dist/scaffold-repo/sdks/rust/src/nodes/mod.rs +18 -0
  399. package/dist/scaffold-repo/sdks/rust/src/nodes/transform_data.rs +142 -0
  400. package/dist/scaffold-repo/sdks/rust/src/nodes/typed_greet.rs +56 -0
  401. package/dist/scaffold-repo/sdks/rust/src/registry.rs +204 -0
  402. package/dist/scaffold-repo/sdks/rust/src/server.rs +63 -0
  403. package/dist/scaffold-repo/sdks/rust/src/testing.rs +175 -0
  404. package/dist/scaffold-repo/sdks/rust/src/types.rs +338 -0
  405. package/dist/scaffold-repo/sdks/rust/src/user_nodes/mod.rs +10 -0
  406. package/dist/scaffold-repo/sdks/rust/src/validation.rs +232 -0
  407. package/dist/scaffold-repo/sdks/rust/src/worker.rs +509 -0
  408. package/dist/scaffold-repo/sdks/rust/tests/grpc_integration.rs +306 -0
  409. package/dist/scaffold-repo/sdks/rust/tests/typed_node.rs +104 -0
  410. package/dist/scaffold-repo/triggers/cron/CHANGELOG.md +22 -0
  411. package/dist/scaffold-repo/triggers/cron/package.json +36 -0
  412. package/dist/scaffold-repo/triggers/cron/src/CronTrigger.ts +552 -0
  413. package/dist/scaffold-repo/triggers/cron/src/index.ts +77 -0
  414. package/dist/scaffold-repo/triggers/cron/tsconfig.json +32 -0
  415. package/dist/scaffold-repo/triggers/grpc/.env.example +8 -0
  416. package/dist/scaffold-repo/triggers/grpc/CHANGELOG.md +143 -0
  417. package/dist/scaffold-repo/triggers/grpc/README.md +25 -0
  418. package/dist/scaffold-repo/triggers/grpc/buf.gen.yaml +11 -0
  419. package/dist/scaffold-repo/triggers/grpc/buf.yaml +9 -0
  420. package/dist/scaffold-repo/triggers/grpc/localhost+2-key.pem +28 -0
  421. package/dist/scaffold-repo/triggers/grpc/localhost+2.pem +27 -0
  422. package/dist/scaffold-repo/triggers/grpc/package.json +61 -0
  423. package/dist/scaffold-repo/triggers/grpc/proto/workflow.proto +33 -0
  424. package/dist/scaffold-repo/triggers/grpc/src/GRpcTrigger.ts +297 -0
  425. package/dist/scaffold-repo/triggers/grpc/src/GrpcClient.ts +87 -0
  426. package/dist/scaffold-repo/triggers/grpc/src/GrpcServer.ts +68 -0
  427. package/dist/scaffold-repo/triggers/grpc/src/MessageDecode.ts +142 -0
  428. package/dist/scaffold-repo/triggers/grpc/src/NanoSDK.ts +146 -0
  429. package/dist/scaffold-repo/triggers/grpc/src/Nodes.ts +10 -0
  430. package/dist/scaffold-repo/triggers/grpc/src/Workflows.ts +5 -0
  431. package/dist/scaffold-repo/triggers/grpc/src/gen/workflow_pb.ts +142 -0
  432. package/dist/scaffold-repo/triggers/grpc/src/index.ts +22 -0
  433. package/dist/scaffold-repo/triggers/grpc/src/server.ts +8 -0
  434. package/dist/scaffold-repo/triggers/grpc/src/types/Message.ts +0 -0
  435. package/dist/scaffold-repo/triggers/grpc/src/types/RuntimeWorkflow.ts +7 -0
  436. package/dist/scaffold-repo/triggers/grpc/src/types/Workflows.ts +7 -0
  437. package/dist/scaffold-repo/triggers/grpc/tsconfig.json +34 -0
  438. package/dist/scaffold-repo/triggers/grpc/vitest.config.ts +29 -0
  439. package/dist/scaffold-repo/triggers/grpc/workflows/countries.json +27 -0
  440. package/dist/scaffold-repo/triggers/http/.blok/trace.db +0 -0
  441. package/dist/scaffold-repo/triggers/http/.blok/trace.db-shm +0 -0
  442. package/dist/scaffold-repo/triggers/http/.blok/trace.db-wal +0 -0
  443. package/dist/scaffold-repo/triggers/http/.dockerignore +23 -0
  444. package/dist/scaffold-repo/triggers/http/.env.example +8 -0
  445. package/dist/scaffold-repo/triggers/http/CHANGELOG.md +326 -0
  446. package/dist/scaffold-repo/triggers/http/Dockerfile +49 -0
  447. package/dist/scaffold-repo/triggers/http/Dockerfile.dev +34 -0
  448. package/dist/scaffold-repo/triggers/http/infra/docker-compose.yml +38 -0
  449. package/dist/scaffold-repo/triggers/http/notes/CLI_Commands/Authentication.md +74 -0
  450. package/dist/scaffold-repo/triggers/http/notes/CLI_Commands/Building.md +52 -0
  451. package/dist/scaffold-repo/triggers/http/notes/CLI_Commands/Create_Node.md +123 -0
  452. package/dist/scaffold-repo/triggers/http/notes/CLI_Commands/Create_Workflow.md +177 -0
  453. package/dist/scaffold-repo/triggers/http/notes/CLI_Commands/Deployment.md +69 -0
  454. package/dist/scaffold-repo/triggers/http/notes/Core_Concepts/Context.md +156 -0
  455. package/dist/scaffold-repo/triggers/http/notes/examples.md +104 -0
  456. package/dist/scaffold-repo/triggers/http/notes/index.md +51 -0
  457. package/dist/scaffold-repo/triggers/http/package.json +62 -0
  458. package/dist/scaffold-repo/triggers/http/public/favicon.ico +0 -0
  459. package/dist/scaffold-repo/triggers/http/public/metric/index.html +2101 -0
  460. package/dist/scaffold-repo/triggers/http/request.http +7 -0
  461. package/dist/scaffold-repo/triggers/http/src/AppRoutes.ts +64 -0
  462. package/dist/scaffold-repo/triggers/http/src/Nodes.ts +38 -0
  463. package/dist/scaffold-repo/triggers/http/src/Workflows.ts +18 -0
  464. package/dist/scaffold-repo/triggers/http/src/index.ts +86 -0
  465. package/dist/scaffold-repo/triggers/http/src/nodes/chain-init/index.ts +48 -0
  466. package/dist/scaffold-repo/triggers/http/src/nodes/chain-verify/index.ts +123 -0
  467. package/dist/scaffold-repo/triggers/http/src/nodes/eval/index.ts +69 -0
  468. package/dist/scaffold-repo/triggers/http/src/nodes/examples/README.md +14 -0
  469. package/dist/scaffold-repo/triggers/http/src/nodes/examples/chat-ui/index.html +228 -0
  470. package/dist/scaffold-repo/triggers/http/src/nodes/examples/chat-ui/index.ts +65 -0
  471. package/dist/scaffold-repo/triggers/http/src/nodes/examples/index.ts +14 -0
  472. package/dist/scaffold-repo/triggers/http/src/nodes/runtime-bridge/index.ts +84 -0
  473. package/dist/scaffold-repo/triggers/http/src/runner/HonoTraceRouterAdapter.ts +199 -0
  474. package/dist/scaffold-repo/triggers/http/src/runner/HttpTrigger.ts +2039 -0
  475. package/dist/scaffold-repo/triggers/http/src/runner/MessageDecode.ts +57 -0
  476. package/dist/scaffold-repo/triggers/http/src/runner/Util.ts +52 -0
  477. package/dist/scaffold-repo/triggers/http/src/runner/WorkflowRouter.ts +411 -0
  478. package/dist/scaffold-repo/triggers/http/src/runner/metrics/opentelemetry_metrics.ts +84 -0
  479. package/dist/scaffold-repo/triggers/http/src/runner/metrics/opentelemetry_traces.ts +30 -0
  480. package/dist/scaffold-repo/triggers/http/src/runner/nodeCatalog.ts +128 -0
  481. package/dist/scaffold-repo/triggers/http/src/runner/responseEmitter.ts +138 -0
  482. package/dist/scaffold-repo/triggers/http/src/runner/scanWorkflows.ts +201 -0
  483. package/dist/scaffold-repo/triggers/http/src/runner/types/ErrorResponse.ts +3 -0
  484. package/dist/scaffold-repo/triggers/http/src/runner/types/NodeTypes.ts +13 -0
  485. package/dist/scaffold-repo/triggers/http/src/runner/types/Nodes.ts +5 -0
  486. package/dist/scaffold-repo/triggers/http/src/runner/types/RuntimeWorkflow.ts +7 -0
  487. package/dist/scaffold-repo/triggers/http/src/runner/types/WorkflowRequest.ts +8 -0
  488. package/dist/scaffold-repo/triggers/http/src/runner/types/WorkflowResponse.ts +7 -0
  489. package/dist/scaffold-repo/triggers/http/src/runner/types/Workflows.ts +14 -0
  490. package/dist/scaffold-repo/triggers/http/src/workflows/countries-cats-helper.ts +30 -0
  491. package/dist/scaffold-repo/triggers/http/src/workflows/countries-handle-dsl.ts +25 -0
  492. package/dist/scaffold-repo/triggers/http/src/workflows/countries-helper.ts +18 -0
  493. package/dist/scaffold-repo/triggers/http/src/workflows/empty.ts +16 -0
  494. package/dist/scaffold-repo/triggers/http/src/workflows/eval/eval-retrieve.ts +23 -0
  495. package/dist/scaffold-repo/triggers/http/src/workflows/eval/eval-run.ts +39 -0
  496. package/dist/scaffold-repo/triggers/http/src/workflows/eval/foreign-auth.ts +24 -0
  497. package/dist/scaffold-repo/triggers/http/tsconfig.json +39 -0
  498. package/dist/scaffold-repo/triggers/http/vitest.config.ts +39 -0
  499. package/dist/scaffold-repo/triggers/http/workflows/json/agent-message.json +87 -0
  500. package/dist/scaffold-repo/triggers/http/workflows/json/agent-page.json +25 -0
  501. package/dist/scaffold-repo/triggers/http/workflows/json/agent-stream.json +30 -0
  502. package/dist/scaffold-repo/triggers/http/workflows/json/agent-tool-calculator.json +22 -0
  503. package/dist/scaffold-repo/triggers/http/workflows/json/agent-tool-weather.json +22 -0
  504. package/dist/scaffold-repo/triggers/http/workflows/json/chat-memory-message.json +54 -0
  505. package/dist/scaffold-repo/triggers/http/workflows/json/chat-memory-page.json +25 -0
  506. package/dist/scaffold-repo/triggers/http/workflows/json/chat-memory-stream.json +30 -0
  507. package/dist/scaffold-repo/triggers/http/workflows/json/chat-message.json +25 -0
  508. package/dist/scaffold-repo/triggers/http/workflows/json/chat-page.json +20 -0
  509. package/dist/scaffold-repo/triggers/http/workflows/json/chat-stream.json +30 -0
  510. package/dist/scaffold-repo/triggers/http/workflows/json/countries-py.json +27 -0
  511. package/dist/scaffold-repo/triggers/http/workflows/json/countries-vs-facts.json +50 -0
  512. package/dist/scaffold-repo/triggers/http/workflows/json/countries.json +27 -0
  513. package/dist/scaffold-repo/triggers/http/workflows/json/cross-runtime-chain.json +89 -0
  514. package/dist/scaffold-repo/triggers/http/workflows/json/dashboard-gen.json +34 -0
  515. package/dist/scaffold-repo/triggers/http/workflows/json/db-manager.json +34 -0
  516. package/dist/scaffold-repo/triggers/http/workflows/json/empty.json +13 -0
  517. package/dist/scaffold-repo/triggers/http/workflows/json/fanout-enqueue.json +48 -0
  518. package/dist/scaffold-repo/triggers/http/workflows/json/fanout-worker.json +41 -0
  519. package/dist/scaffold-repo/triggers/http/workflows/json/feedback.json +34 -0
  520. package/dist/scaffold-repo/triggers/http/workflows/json/films.json +27 -0
  521. package/dist/scaffold-repo/triggers/http/workflows/json/image-capture.json +34 -0
  522. package/dist/scaffold-repo/triggers/http/workflows/json/launches-by-year.json +27 -0
  523. package/dist/scaffold-repo/triggers/http/workflows/json/loadtest.json +24 -0
  524. package/dist/scaffold-repo/triggers/http/workflows/json/middleware/admin-only.json +31 -0
  525. package/dist/scaffold-repo/triggers/http/workflows/json/middleware/auth-check.json +59 -0
  526. package/dist/scaffold-repo/triggers/http/workflows/json/middleware/github-webhook-verify.json +34 -0
  527. package/dist/scaffold-repo/triggers/http/workflows/json/middleware/jwt-auth.json +46 -0
  528. package/dist/scaffold-repo/triggers/http/workflows/json/middleware/rate-limit.json +70 -0
  529. package/dist/scaffold-repo/triggers/http/workflows/json/middleware/redis-rate-limit.json +71 -0
  530. package/dist/scaffold-repo/triggers/http/workflows/json/mongodb.json +24 -0
  531. package/dist/scaffold-repo/triggers/http/workflows/json/rentals-pdf.json +65 -0
  532. package/dist/scaffold-repo/triggers/http/workflows/json/v05-admin-delete-user.json +42 -0
  533. package/dist/scaffold-repo/triggers/http/workflows/json/v05-async-job-poller.json +45 -0
  534. package/dist/scaffold-repo/triggers/http/workflows/json/v05-csv-import.json +122 -0
  535. package/dist/scaffold-repo/triggers/http/workflows/json/v05-data-export.json +105 -0
  536. package/dist/scaffold-repo/triggers/http/workflows/json/v05-event-router.json +97 -0
  537. package/dist/scaffold-repo/triggers/http/workflows/json/v05-github-handler-issues.json +22 -0
  538. package/dist/scaffold-repo/triggers/http/workflows/json/v05-github-handler-pr.json +22 -0
  539. package/dist/scaffold-repo/triggers/http/workflows/json/v05-github-handler-push.json +22 -0
  540. package/dist/scaffold-repo/triggers/http/workflows/json/v05-github-webhook-router.json +88 -0
  541. package/dist/scaffold-repo/triggers/http/workflows/json/v05-hello-global-mw.json +22 -0
  542. package/dist/scaffold-repo/triggers/http/workflows/json/v05-hello-with-mw.json +23 -0
  543. package/dist/scaffold-repo/triggers/http/workflows/json/v05-jwt-protected.json +23 -0
  544. package/dist/scaffold-repo/triggers/http/workflows/json/v05-multi-tenant-router.json +90 -0
  545. package/dist/scaffold-repo/triggers/http/workflows/json/v05-nested-control-flow.json +207 -0
  546. package/dist/scaffold-repo/triggers/http/workflows/json/v05-order-fulfillment.json +211 -0
  547. package/dist/scaffold-repo/triggers/http/workflows/json/v05-parallel-foreach-with-wait.json +47 -0
  548. package/dist/scaffold-repo/triggers/http/workflows/json/v05-polling-with-backoff.json +55 -0
  549. package/dist/scaffold-repo/triggers/http/workflows/json/v05-protected.json +23 -0
  550. package/dist/scaffold-repo/triggers/http/workflows/json/v05-redis-protected.json +23 -0
  551. package/dist/scaffold-repo/triggers/http/workflows/json/v05-saga.json +122 -0
  552. package/dist/scaffold-repo/triggers/http/workflows/json/v05-tenant-acme.json +22 -0
  553. package/dist/scaffold-repo/triggers/http/workflows/json/v05-tenant-beta.json +22 -0
  554. package/dist/scaffold-repo/triggers/http/workflows/json/v05-tenant-gamma.json +22 -0
  555. package/dist/scaffold-repo/triggers/http/workflows/json/v05-travel-booking.json +200 -0
  556. package/dist/scaffold-repo/triggers/http/workflows/json/v05-user-signup-saga.json +186 -0
  557. package/dist/scaffold-repo/triggers/http/workflows/json/v05-webhook-fanout.json +49 -0
  558. package/dist/scaffold-repo/triggers/http/workflows/json/v06-reliability-showcase.json +80 -0
  559. package/dist/scaffold-repo/triggers/http/workflows/json/v07-sse-publish.json +24 -0
  560. package/dist/scaffold-repo/triggers/http/workflows/json/v07-sse-stream.json +26 -0
  561. package/dist/scaffold-repo/triggers/http/workflows/json/v07-ws-echo.json +38 -0
  562. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-github-issues.json +22 -0
  563. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-github-pr.json +22 -0
  564. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-github-push.json +32 -0
  565. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-github.json +87 -0
  566. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-linear-comment.json +22 -0
  567. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-linear-issue.json +22 -0
  568. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-linear.json +74 -0
  569. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-stripe-customer-created.json +22 -0
  570. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-stripe-invoice-paid.json +32 -0
  571. package/dist/scaffold-repo/triggers/http/workflows/json/webhook-stripe.json +24 -0
  572. package/dist/scaffold-repo/triggers/http/workflows/json/workflow-docs.json +34 -0
  573. package/dist/scaffold-repo/triggers/http/workflows/toml/countries.toml +21 -0
  574. package/dist/scaffold-repo/triggers/http/workflows/xml/countries.xml +23 -0
  575. package/dist/scaffold-repo/triggers/http/workflows/yaml/countries.yaml +19 -0
  576. package/dist/scaffold-repo/triggers/mcp/README.md +131 -0
  577. package/dist/scaffold-repo/triggers/mcp/package.json +39 -0
  578. package/dist/scaffold-repo/triggers/mcp/src/McpTrigger.ts +581 -0
  579. package/dist/scaffold-repo/triggers/mcp/src/index.ts +41 -0
  580. package/dist/scaffold-repo/triggers/mcp/tsconfig.json +32 -0
  581. package/dist/scaffold-repo/triggers/pubsub/CHANGELOG.md +22 -0
  582. package/dist/scaffold-repo/triggers/pubsub/package.json +66 -0
  583. package/dist/scaffold-repo/triggers/pubsub/src/PubSubTrigger.ts +424 -0
  584. package/dist/scaffold-repo/triggers/pubsub/src/adapters/AWSSNSAdapter.ts +352 -0
  585. package/dist/scaffold-repo/triggers/pubsub/src/adapters/AzureServiceBusAdapter.ts +303 -0
  586. package/dist/scaffold-repo/triggers/pubsub/src/adapters/GCPPubSubAdapter.ts +327 -0
  587. package/dist/scaffold-repo/triggers/pubsub/src/adapters/KafkaPubSubAdapter.ts +247 -0
  588. package/dist/scaffold-repo/triggers/pubsub/src/adapters/KafkaPubSubAdapter.ts.bak +251 -0
  589. package/dist/scaffold-repo/triggers/pubsub/src/adapters/NATSPubSubAdapter.ts +333 -0
  590. package/dist/scaffold-repo/triggers/pubsub/src/adapters/RedisStreamsPubSubAdapter.ts +256 -0
  591. package/dist/scaffold-repo/triggers/pubsub/src/adapters/factory.ts +88 -0
  592. package/dist/scaffold-repo/triggers/pubsub/src/index.ts +67 -0
  593. package/dist/scaffold-repo/triggers/pubsub/template/.env.example +8 -0
  594. package/dist/scaffold-repo/triggers/pubsub/template/package.json +45 -0
  595. package/dist/scaffold-repo/triggers/pubsub/template/src/Nodes.ts +20 -0
  596. package/dist/scaffold-repo/triggers/pubsub/template/src/Workflows.ts +8 -0
  597. package/dist/scaffold-repo/triggers/pubsub/template/src/index.ts +41 -0
  598. package/dist/scaffold-repo/triggers/pubsub/template/src/runner/PubSubServer.ts +39 -0
  599. package/dist/scaffold-repo/triggers/pubsub/template/src/runner/types/Workflows.ts +7 -0
  600. package/dist/scaffold-repo/triggers/pubsub/template/src/workflows/messages/on-message.ts +42 -0
  601. package/dist/scaffold-repo/triggers/pubsub/template/src/workflows/publish-order.ts +22 -0
  602. package/dist/scaffold-repo/triggers/pubsub/template/tsconfig.json +31 -0
  603. package/dist/scaffold-repo/triggers/pubsub/template/vitest.config.ts +39 -0
  604. package/dist/scaffold-repo/triggers/pubsub/tsconfig.json +32 -0
  605. package/dist/scaffold-repo/triggers/sse/.env.example +8 -0
  606. package/dist/scaffold-repo/triggers/sse/CHANGELOG.md +12 -0
  607. package/dist/scaffold-repo/triggers/sse/Dockerfile +47 -0
  608. package/dist/scaffold-repo/triggers/sse/Dockerfile.dev +33 -0
  609. package/dist/scaffold-repo/triggers/sse/package.json +37 -0
  610. package/dist/scaffold-repo/triggers/sse/src/SSETrigger.ts +489 -0
  611. package/dist/scaffold-repo/triggers/sse/src/bus.ts +208 -0
  612. package/dist/scaffold-repo/triggers/sse/src/index.ts +38 -0
  613. package/dist/scaffold-repo/triggers/sse/src/workflows/events/README.md +129 -0
  614. package/dist/scaffold-repo/triggers/sse/src/workflows/events/publish-demo.ts +40 -0
  615. package/dist/scaffold-repo/triggers/sse/src/workflows/events/stream-demo.ts +43 -0
  616. package/dist/scaffold-repo/triggers/sse/tsconfig.json +22 -0
  617. package/dist/scaffold-repo/triggers/sse/vitest.config.ts +39 -0
  618. package/dist/scaffold-repo/triggers/webhook/CHANGELOG.md +22 -0
  619. package/dist/scaffold-repo/triggers/webhook/package.json +36 -0
  620. package/dist/scaffold-repo/triggers/webhook/src/WebhookTrigger.ts +465 -0
  621. package/dist/scaffold-repo/triggers/webhook/src/index.ts +51 -0
  622. package/dist/scaffold-repo/triggers/webhook/src/verifiers.ts +394 -0
  623. package/dist/scaffold-repo/triggers/webhook/tsconfig.json +32 -0
  624. package/dist/scaffold-repo/triggers/websocket/.env.example +8 -0
  625. package/dist/scaffold-repo/triggers/websocket/CHANGELOG.md +22 -0
  626. package/dist/scaffold-repo/triggers/websocket/package.json +50 -0
  627. package/dist/scaffold-repo/triggers/websocket/src/Backplane.ts +167 -0
  628. package/dist/scaffold-repo/triggers/websocket/src/WebSocketTrigger.ts +910 -0
  629. package/dist/scaffold-repo/triggers/websocket/src/index.ts +50 -0
  630. package/dist/scaffold-repo/triggers/websocket/src/workflows/events/README.md +93 -0
  631. package/dist/scaffold-repo/triggers/websocket/src/workflows/events/echo-demo.ts +56 -0
  632. package/dist/scaffold-repo/triggers/websocket/tsconfig.json +22 -0
  633. package/dist/scaffold-repo/triggers/websocket/vitest.config.ts +39 -0
  634. package/dist/scaffold-repo/triggers/worker/CHANGELOG.md +22 -0
  635. package/dist/scaffold-repo/triggers/worker/package.json +68 -0
  636. package/dist/scaffold-repo/triggers/worker/src/WorkerTrigger.ts +943 -0
  637. package/dist/scaffold-repo/triggers/worker/src/adapters/BullMQAdapter.ts +296 -0
  638. package/dist/scaffold-repo/triggers/worker/src/adapters/InMemoryAdapter.ts +280 -0
  639. package/dist/scaffold-repo/triggers/worker/src/adapters/KafkaAdapter.ts +347 -0
  640. package/dist/scaffold-repo/triggers/worker/src/adapters/NATSAdapter.ts +505 -0
  641. package/dist/scaffold-repo/triggers/worker/src/adapters/PgBossAdapter.ts +319 -0
  642. package/dist/scaffold-repo/triggers/worker/src/adapters/RabbitMQAdapter.ts +318 -0
  643. package/dist/scaffold-repo/triggers/worker/src/adapters/RedisStreamsAdapter.ts +513 -0
  644. package/dist/scaffold-repo/triggers/worker/src/adapters/SQSAdapter.ts +314 -0
  645. package/dist/scaffold-repo/triggers/worker/src/adapters/factory.ts +111 -0
  646. package/dist/scaffold-repo/triggers/worker/src/index.ts +95 -0
  647. package/dist/scaffold-repo/triggers/worker/template/.env.example +18 -0
  648. package/dist/scaffold-repo/triggers/worker/template/package.json +46 -0
  649. package/dist/scaffold-repo/triggers/worker/template/src/Nodes.ts +20 -0
  650. package/dist/scaffold-repo/triggers/worker/template/src/Workflows.ts +8 -0
  651. package/dist/scaffold-repo/triggers/worker/template/src/index.ts +41 -0
  652. package/dist/scaffold-repo/triggers/worker/template/src/runner/WorkerServer.ts +34 -0
  653. package/dist/scaffold-repo/triggers/worker/template/src/runner/types/Workflows.ts +7 -0
  654. package/dist/scaffold-repo/triggers/worker/template/src/workflows/jobs/process-job.ts +40 -0
  655. package/dist/scaffold-repo/triggers/worker/template/tsconfig.json +31 -0
  656. package/dist/scaffold-repo/triggers/worker/template/vitest.config.ts +39 -0
  657. package/dist/scaffold-repo/triggers/worker/tsconfig.json +32 -0
  658. package/dist/scaffold-repo/workflows/json/agent-message.json +87 -0
  659. package/dist/scaffold-repo/workflows/json/agent-page.json +25 -0
  660. package/dist/scaffold-repo/workflows/json/agent-stream.json +30 -0
  661. package/dist/scaffold-repo/workflows/json/agent-tool-calculator.json +22 -0
  662. package/dist/scaffold-repo/workflows/json/agent-tool-weather.json +22 -0
  663. package/dist/scaffold-repo/workflows/json/chat-memory-message.json +54 -0
  664. package/dist/scaffold-repo/workflows/json/chat-memory-page.json +25 -0
  665. package/dist/scaffold-repo/workflows/json/chat-memory-stream.json +30 -0
  666. package/dist/scaffold-repo/workflows/json/chat-message.json +25 -0
  667. package/dist/scaffold-repo/workflows/json/chat-page.json +20 -0
  668. package/dist/scaffold-repo/workflows/json/chat-stream.json +30 -0
  669. package/dist/scaffold-repo/workflows/json/countries-vs-facts.json +50 -0
  670. package/dist/scaffold-repo/workflows/json/countries.json +27 -0
  671. package/dist/scaffold-repo/workflows/json/cron-heartbeat.json +15 -0
  672. package/dist/scaffold-repo/workflows/json/fanout-enqueue.json +48 -0
  673. package/dist/scaffold-repo/workflows/json/fanout-worker.json +41 -0
  674. package/dist/scaffold-repo/workflows/json/pubsub-on-order.json +24 -0
  675. package/dist/scaffold-repo/workflows/json/webhook-github-issues.json +22 -0
  676. package/dist/scaffold-repo/workflows/json/webhook-github-pr.json +22 -0
  677. package/dist/scaffold-repo/workflows/json/webhook-github-push.json +32 -0
  678. package/dist/scaffold-repo/workflows/json/webhook-github.json +87 -0
  679. package/dist/scaffold-repo/workflows/json/webhook-linear-comment.json +22 -0
  680. package/dist/scaffold-repo/workflows/json/webhook-linear-issue.json +22 -0
  681. package/dist/scaffold-repo/workflows/json/webhook-linear.json +74 -0
  682. package/dist/scaffold-repo/workflows/json/webhook-stripe-customer-created.json +22 -0
  683. package/dist/scaffold-repo/workflows/json/webhook-stripe-invoice-paid.json +32 -0
  684. package/dist/scaffold-repo/workflows/json/webhook-stripe.json +24 -0
  685. package/package.json +4 -4
@@ -0,0 +1,123 @@
1
+ # 🛠 Creating a Node in `Blok`
2
+
3
+ A **node** is the core component of a workflow in `Blok`. It represents a reusable function that can be executed as part of a workflow.
4
+
5
+ This guide walks you through creating a **custom node** using **TypeScript**.
6
+
7
+ ---
8
+
9
+ ## 📌 Step 1: Create a Node Using the CLI
10
+
11
+ To create a new node, run the following command from the **root directory** of your blok project:
12
+
13
+ ```bash
14
+ npx blokctl@latest create node
15
+ ```
16
+
17
+ ### 📥 CLI Inputs
18
+
19
+ You will be prompted to provide the following information:
20
+
21
+ 1. **Node Name**
22
+ Enter a unique name for the node (e.g., `fetch`).
23
+
24
+ 2. **Select Runtime**
25
+ Choose between:
26
+ - **TypeScript (recommended)** ✅ *(Default)*
27
+ - **Python3** *(Alpha version, MacOS & Linux only)*
28
+ *(For this guide, select **TypeScript**.)*
29
+
30
+ 3. **Select Blok Type**
31
+ Choose between:
32
+ - **Module** *(For npm-published nodes – ❌ not needed for this guide)*
33
+ - **Class** ✅ *(Default, for local nodes)*
34
+
35
+ 4. **Select Template**
36
+ Choose between:
37
+ - **Class (recommended)** ✅ *(Default)*
38
+ - UI - EJS - REACTJS - TailwindCSS *(not required for this guide)*
39
+
40
+ ---
41
+
42
+ ## 📌 Step 2: Navigate to the New Node Directory
43
+
44
+ Once the node is created, navigate to its directory:
45
+
46
+ ```bash
47
+ cd src/nodes/fetch
48
+ ```
49
+
50
+ ---
51
+
52
+ ## 📌 Step 3: Update the Node Class Name
53
+
54
+ Open the `index.ts` file inside the node directory and **update the class name** to match your node name (`Fetch` in this example):
55
+
56
+ ```typescript
57
+ // Original class name
58
+ export default class Node extends BlokService {
59
+ ...
60
+ }
61
+
62
+ // Updated class name
63
+ export default class Fetch extends BlokService {
64
+ ...
65
+ }
66
+ ```
67
+
68
+ ---
69
+
70
+ ## 📌 Step 4: Register the Node in the `Nodes.ts` File
71
+
72
+ To make your node available in workflows, **register it inside `src/Nodes.ts`**:
73
+
74
+ ```typescript
75
+ import ApiCall from "@blokjs/api-call";
76
+ import IfElse from "@blokjs/if-else";
77
+ import type { NodeBase } from "@blokjs/shared";
78
+ import Fetch from "./nodes/fetch";
79
+
80
+ const nodes: {
81
+ [key: string]: NodeBase;
82
+ } = {
83
+ "@blokjs/api-call": new ApiCall(),
84
+ "@blokjs/if-else": new IfElse(),
85
+ "fetch": new Fetch()
86
+ };
87
+
88
+ export default nodes;
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 📌 Step 5: Validate the Node
94
+
95
+ To confirm that the new node is registered correctly:
96
+
97
+ 1. **Start the project**
98
+ Run the following command in the project root directory:
99
+
100
+ ```bash
101
+ npm run dev
102
+ ```
103
+
104
+ ---
105
+
106
+ ## 🎯 Summary
107
+
108
+ - ✅ **Created a custom node** using the CLI.
109
+ - ✅ **Configured the node class name** correctly.
110
+ - ✅ **Registered the node** inside `Nodes.ts`.
111
+ - ✅ **Validated the project setup**.
112
+
113
+ Your node is now ready to be used in workflows! 🎉
114
+
115
+ ---
116
+
117
+ ## 🔍 Next Steps
118
+
119
+ - [Context](../Core_Concepts/Context.md)
120
+ - [Creating Workflows](../CLI_Commands/Create_Workflow.md)
121
+ - [Creating Custom Nodes](../CLI_Commands/Create_Node.md)
122
+ - [Examples](../examples.md)
123
+ - [Index](../index.md)
@@ -0,0 +1,177 @@
1
+ # 🚀 Creating a Workflow in blok
2
+
3
+ A **workflow** in `Blok` is a structured JSON file that defines:
4
+
5
+ - **A trigger** that starts the workflow execution.
6
+ - **A sequence of steps** that execute bloks (nodes).
7
+ - **Node configurations** that define how each step operates.
8
+
9
+ ---
10
+
11
+ ## 📌 Step 1: Create a Workflow Using the CLI
12
+
13
+ To create a new workflow, run the following command:
14
+
15
+ ```sh
16
+ npx blokctl@latest create workflow
17
+ ```
18
+
19
+ ### 🛠 CLI Inputs
20
+
21
+ - **Workflow Name**: Provide a unique name for your workflow.
22
+ - The workflow JSON file will be created inside the `workflows/json/` directory.
23
+
24
+ ---
25
+
26
+ ## 📌 Step 2: Understand the Workflow Structure
27
+
28
+ A workflow consists of **three** main sections:
29
+
30
+ 1. **Trigger**: Defines how the workflow is executed.
31
+ 2. **Steps**: Specifies the sequence of nodes executed in order.
32
+ 3. **Nodes**: Configures each node used in the steps.
33
+
34
+ ---
35
+
36
+ ## 📌 Step 3: Example Workflow (Fetching Data)
37
+
38
+ Below is an example of a workflow named **"fetch-cat-facts"** that makes an HTTP request to fetch cat facts. Save this file as `workflows/json/cats.json`:
39
+
40
+ ```json
41
+ {
42
+ "name": "fetch-cat-facts",
43
+ "description": "This workflow fetches random cat facts from a public API.",
44
+ "version": "1.0.0",
45
+ "trigger": {
46
+ "http": {
47
+ "method": "GET",
48
+ "path": "/",
49
+ "accept": "application/json"
50
+ }
51
+ },
52
+ "steps": [
53
+ {
54
+ "name": "fetch_api_data",
55
+ "node": "@blokjs/api-call",
56
+ "type": "module"
57
+ }
58
+ ],
59
+ "nodes": {
60
+ "fetch_api_data": {
61
+ "inputs": {
62
+ "url": "https://catfact.ninja/fact",
63
+ "method": "GET",
64
+ "headers": {}
65
+ }
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 📌 Step 4: Workflow Structure Breakdown
74
+
75
+ ### 🔹 1. **Trigger Section**
76
+
77
+ The `trigger` defines how the workflow is executed:
78
+
79
+ ```json
80
+ "trigger": {
81
+ "http": {
82
+ "method": "GET",
83
+ "path": "/",
84
+ "accept": "application/json"
85
+ }
86
+ }
87
+ ```
88
+
89
+ - **`method`**: Specifies the HTTP method (e.g., `GET`, `POST`, etc.). Use `"*"` to accept **any** method.
90
+ - **`path`**: Defines the URL path. Supports **path parameters**:
91
+ - `"/:id"` → Required parameter (e.g., `/cats/123`).
92
+ - `"/:id?"` → Optional parameter (e.g., `/cats` or `/cats/123`).
93
+ - **`accept`**: Defines the expected response format (`application/json` by default).
94
+
95
+ ---
96
+
97
+ ### 🔹 2. **Steps Section**
98
+
99
+ The `steps` define the sequence of nodes executed in the workflow:
100
+
101
+ ```json
102
+ "steps": [
103
+ {
104
+ "name": "fetch_api_data",
105
+ "node": "@blokjs/api-call",
106
+ "type": "module"
107
+ }
108
+ ]
109
+ ```
110
+
111
+ - **`name`**: Unique name for the step.
112
+ - **`node`**: The node to execute (e.g., `@blokjs/api-call`).
113
+ - **`type`**: Specifies the type of node. The available options are:
114
+ - **`module`**: Used for nodes installed as dependencies (e.g., from npm) or nodes created using the `Class` type.
115
+ - **`local`**: Used for nodes created locally, typically intended for publishing to npm.
116
+
117
+ ---
118
+
119
+ ### 🔹 3. **Nodes Section**
120
+
121
+ The `nodes` section configures each node used in the workflow:
122
+
123
+ ```json
124
+ "nodes": {
125
+ "fetch_api_data": {
126
+ "inputs": {
127
+ "url": "https://catfact.ninja/fact",
128
+ "method": "GET",
129
+ "headers": {}
130
+ }
131
+ }
132
+ }
133
+ ```
134
+
135
+ - **`inputs`**: Configuration values for the node.
136
+ - **`url`**: API endpoint.
137
+ - **`method`**: HTTP method (`GET`, `POST`, etc.).
138
+ - **`headers`**: Optional request headers.
139
+
140
+ ---
141
+
142
+ ## 📌 Step 5: Run & Test the Workflow
143
+
144
+ 1. **Start the blok project**:
145
+
146
+ ```sh
147
+ npm run dev
148
+ ```
149
+
150
+ 2. **Test the workflow using `curl` or Postman**:
151
+
152
+ ```sh
153
+ curl http://localhost:4000/cats
154
+ ```
155
+
156
+ ✔ If everything is set up correctly, the response will contain a **random cat fact** fetched from the API. The `/cats` path corresponds to the workflow JSON file **`workflows/json/cats.json`**.
157
+
158
+ ---
159
+
160
+ ## 🎯 Summary
161
+
162
+ - ✅ Workflows consist of **Triggers**, **Steps**, and **Nodes**.
163
+ - ✅ HTTP triggers support **method filtering (`GET`, `POST`, etc.)** and **dynamic paths (`/:id`)**.
164
+ - ✅ Nodes execute bloks and are configured in the **nodes section**.
165
+ - ✅ Workflows can be tested via `curl` or Postman.
166
+
167
+ ---
168
+
169
+ ## 🔍 Next Steps
170
+
171
+ Now that you understand workflows, explore:
172
+
173
+ - [Context](../Core_Concepts/Context.md)
174
+ - [Creating Custom Nodes](../CLI_Commands/Create_Node.md)
175
+ - [Creating Workflows](../CLI_Commands/Create_Workflow.md)
176
+ - [Examples](../examples.md)
177
+ - [Index](../index.md)
@@ -0,0 +1,69 @@
1
+ # BlokService CLI Commands
2
+
3
+ ## Table of Contents
4
+
5
+ ---
6
+
7
+ ## Deploy Blok
8
+
9
+ ### Syntax
10
+ ```bash
11
+ npx blokctl deploy [options]
12
+ ```
13
+
14
+
15
+ Deploys a blok to the BlokServices platform, optionally building it first.
16
+ *
17
+ Options:
18
+ - `--name`, `-n` (string): Service name (required). Default: none.
19
+ - `--build` (boolean): Build before deploying. Default: false.
20
+ - `--directory`, `-d` (string): Source directory path. Default: Current working directory.
21
+ - `--help`, `-h` (boolean): Show help. Default: false.
22
+ *
23
+ Commands:
24
+ - `.`: Deploy from the current directory.
25
+
26
+ ### Examples
27
+
28
+ #### Deploy with build:
29
+ ```bash
30
+ npx blokctl deploy -n my-service --build
31
+ ```
32
+
33
+ #### Deploy existing build:
34
+ ```bash
35
+ npx blokctl deploy -n my-service -d ./build-output
36
+ ```
37
+
38
+ #### Deploy from current directory:
39
+ ```bash
40
+ npx blokctl deploy -n my-service .
41
+ ```
42
+
43
+ <br />
44
+ <br />
45
+ <br />
46
+
47
+ ---
48
+ # Build and Deploy Example
49
+
50
+ #### Build and deploy workflow:
51
+ ```bash
52
+ # Build first
53
+ npx blokctl build -d ./src
54
+
55
+ # Then deploy
56
+ npx blokctl deploy -n my-service -d ./src
57
+ ```
58
+
59
+ #### Single-command build & deploy:
60
+ ```bash
61
+ npx blokctl deploy -n my-service --build
62
+ ```
63
+
64
+ #### CI/CD Pipeline Example:
65
+ ```bash
66
+ # In your deployment script
67
+ npx blokctl build -d $CODE_DIR
68
+ npx blokctl deploy -n $SERVICE_NAME -d $CODE_DIR
69
+ ```
@@ -0,0 +1,156 @@
1
+ # Understanding Context (`ctx`)
2
+
3
+ In `Blok`, **Context (`ctx`)** is the primary data structure that flows between nodes in a workflow. It enables nodes to **exchange data** and maintain state throughout execution.
4
+
5
+ ---
6
+
7
+ ## 📌 Context Structure
8
+
9
+ Each node in a workflow receives `ctx` as an input, which contains the following structure:
10
+
11
+ ```typescript
12
+ const ctx: Context = {
13
+ vars: {}, // Stores dynamically generated variables
14
+ request: { body: {}, method: "GET", headers: {}, query: {}, params: {} }, // Incoming request details
15
+ response: { data: {} } // Stores processed results
16
+ };
17
+ ```
18
+
19
+ ### 🔹 Breakdown of `ctx`
20
+
21
+ - **`ctx.request`**: Contains all HTTP request details:
22
+ - `body`: The request payload (e.g., for POST, PUT requests)
23
+ - `method`: HTTP method (e.g., GET, POST, etc.)
24
+ - `headers`: Request headers
25
+ - `query`: Query parameters (e.g., `?key=value`)
26
+ - `params`: Path parameters (e.g., `/:id`)
27
+
28
+ - **`ctx.response`**: Holds workflow outputs:
29
+ - `data`: The latest processed data from nodes
30
+
31
+ - **`ctx.vars`**: Temporary workflow variables:
32
+ - These are **not persisted** across requests.
33
+ - Nodes can store variables dynamically for later use.
34
+
35
+ ---
36
+
37
+ ## 📖 Context in Workflows
38
+
39
+ Context is essential for **passing data between nodes** and making dynamic decisions.
40
+
41
+ ### 🛠 Example: Using `ctx.request.params`
42
+
43
+ In this workflow, we extract `id` from the request URL and fetch details from MongoDB:
44
+
45
+ ```json
46
+ {
47
+ "name": "Get Movie Details",
48
+ "description": "Fetches a movie by ID",
49
+ "version": "1.0.0",
50
+ "trigger": {
51
+ "http": {
52
+ "method": "GET",
53
+ "path": "/movies/:id",
54
+ "accept": "application/json"
55
+ }
56
+ },
57
+ "steps": [
58
+ {
59
+ "name": "get-movie",
60
+ "node": "mongo-query",
61
+ "type": "local"
62
+ }
63
+ ],
64
+ "nodes": {
65
+ "get-movie": {
66
+ "inputs": {
67
+ "collection": "movies",
68
+ "id": "${ctx.request.params.id}"
69
+ }
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ #### 🔹 How it Works:
76
+ - `path: "/movies/:id"` defines a **dynamic route**.
77
+ - The MongoDB node retrieves the movie using:
78
+ ```json
79
+ "id": "${ctx.request.params.id}"
80
+ ```
81
+ This extracts `id` from the URL (e.g., `/movies/123` → `ctx.request.params.id = 123`).
82
+
83
+ ---
84
+
85
+ ### 🛠 Example: Using `ctx.vars`
86
+
87
+ This workflow **stores an API response in a variable** and **uses it in a later step**:
88
+
89
+ ```json
90
+ {
91
+ "name": "Fetch and Process Data",
92
+ "description": "Stores fetched data and processes it",
93
+ "version": "1.0.0",
94
+ "trigger": {
95
+ "http": {
96
+ "method": "GET",
97
+ "path": "/fetch-data",
98
+ "accept": "application/json"
99
+ }
100
+ },
101
+ "steps": [
102
+ {
103
+ "name": "fetch-data",
104
+ "node": "@blokjs/api-call",
105
+ "type": "module",
106
+ "set_var": true
107
+ },
108
+ {
109
+ "name": "process-data",
110
+ "node": "@blokjs/mapper",
111
+ "type": "module"
112
+ }
113
+ ],
114
+ "nodes": {
115
+ "fetch-data": {
116
+ "inputs": {
117
+ "url": "https://api.publicapis.org/entries",
118
+ "method": "GET",
119
+ "headers": {},
120
+ "var": "apiResponse"
121
+ }
122
+ },
123
+ "process-data": {
124
+ "inputs": {
125
+ "mapper": {
126
+ "totalApis": "js/ctx.vars['fetch-data'].count",
127
+ "categories": "js/ctx.vars['fetch-data'].categories"
128
+ }
129
+ }
130
+ }
131
+ }
132
+ }
133
+ ```
134
+
135
+ #### 🔹 How it Works:
136
+ - The **API call node (`fetch-data`)** fetches API data and stores it in `ctx.vars['fetch-data']`.
137
+ - The **mapper node (`process-data`)** extracts and processes values from `ctx.vars['fetch-data']`.
138
+
139
+ ---
140
+
141
+ ## 🎯 Key Takeaways
142
+
143
+ - ✅ **`ctx` allows passing request data to nodes.**
144
+ - ✅ **Nodes modify and store values in `ctx.vars`.**
145
+ - ✅ **Nodes can dynamically read/write to `ctx.response.data`.**
146
+ - ✅ **`ctx.request.params`, `ctx.request.body`, and `ctx.response` drive workflow execution.**
147
+
148
+ ---
149
+
150
+ ## 🔍 Next Steps
151
+
152
+ Now that you understand `ctx`, explore:
153
+ - [Creating Custom Nodes](../CLI_Commands/Create_Node.md)
154
+ - [Creating Workflows](../CLI_Commands/Create_Workflow.md)
155
+ - [Examples](../examples.md)
156
+ - [Index](../index.md)
@@ -0,0 +1,104 @@
1
+ # Blok Examples
2
+
3
+ This examples provide a collection of workflows and bloks built with **Blok**, showcasing real-world use cases for building scalable, reusable, and modular backend services.
4
+
5
+ ## 🚀 Getting Started
6
+
7
+ ### Prerequisites
8
+ - **Node.js** (Latest LTS version recommended)
9
+ - **Docker & Docker Compose** (For running PostgreSQL instances)
10
+ - **MongoDB** (For MongoDB-related examples)
11
+ - **Blok CLI** (If available, install it globally)
12
+ - **OpenAI API Key**: Required for workflows that utilize OpenAI services. Ensure you have a valid API key set in your environment variables.
13
+
14
+ ## 📌 Workflows
15
+
16
+ The repository contains the following workflows:
17
+
18
+ | Workflow | Description |
19
+ |----------|-------------|
20
+ | **countries-vs-facts.json** | Calls either a Countries API or a Cat Facts API |
21
+ | **countries.json** | Retrieves country and city data from an API |
22
+ | **dashboard-gen.json** | Generates insights and charts from PostgreSQL schema using OpenAI |
23
+ | **db-manager.json** | SQL Query generator using OpenAI prompts with a web admin interface |
24
+ | **films.json** | API to list films |
25
+ | **launches-by-year.json** | Retrieves space launch data by year |
26
+ | **mongodb.json** | REST API for MongoDB queries |
27
+ | **workflow-docs.json** | Uses OpenAI to generate documentation for workflow JSON files |
28
+
29
+ ---
30
+
31
+ ## 🛠 Bloks
32
+
33
+ These bloks are used within the workflows to handle specific tasks:
34
+
35
+ | Blok | Description |
36
+ |------------|-------------|
37
+ | **mongodb-query.ts** | Executes queries on MongoDB |
38
+ | **DirectoryManager.ts** | Retrieves the list of files in a directory |
39
+ | **ErrorNode.ts** | Returns an error |
40
+ | **FileManager.ts** | Reads the content of a file |
41
+ | **OpenAI.ts** | Sends prompts to OpenAI |
42
+ | **workflow-docs/ui/index.ts** | UI for workflow documentation (EJS, TailwindCSS, ReactJS) |
43
+ | **postgres-query/index.ts** | Executes PostgreSQL queries |
44
+ | **MapperNode.ts** | Performs data transformation |
45
+ | **QueryGeneratorNode.ts** | Uses OpenAI to generate PostgreSQL queries from a prompt |
46
+ | **db-manager/ui/index.ts** | Web admin interface for database queries (EJS, TailwindCSS, ReactJS) |
47
+ | **ArrayMap.ts** | Transforms items within an array |
48
+ | **DashboardChartGenerator.ts** | Uses OpenAI to generate charts using Chart.js |
49
+ | **MemoryStorage.ts** | In-memory key-value store |
50
+ | **MultipleQueryGeneratorNode.ts** | Uses OpenAI to generate PostgreSQL queries for dashboard charts |
51
+ | **dashboard-generator/ui/index.ts** | Dashboard generator UI (EJS, TailwindCSS, ReactJS) |
52
+
53
+ ---
54
+
55
+ ## 🏗 Infrastructure
56
+
57
+ This repository includes a **Docker Compose** setup to run a PostgreSQL database for testing workflows that require a database.
58
+
59
+ ### Start PostgreSQL Instance
60
+ ```sh
61
+ cd infra
62
+ docker-compose up -d
63
+ ```
64
+
65
+ ### Stop PostgreSQL Instance
66
+ ```sh
67
+ cd infra
68
+ docker-compose down
69
+ ```
70
+
71
+ ---
72
+
73
+ ### Required Environment Variables
74
+ Before running the workflows, ensure you have the following environment variables set:
75
+ ```sh
76
+ export OPENAI_API_KEY=your_openai_api_key
77
+ export MONGODB_URI=your_mongodb_connection_string
78
+ export MONGODB_DATABASE=your_database_name
79
+ ```
80
+
81
+ ---
82
+
83
+ ### Testing in Browser
84
+ To test a workflow, open your browser and navigate to:
85
+ ```
86
+ http://localhost:4000/{workflow-file-name}
87
+ ```
88
+ Replace `{workflow-file-name}` with the actual file name of the workflow **without the extension**.
89
+
90
+ For example, to test `countries.json`, navigate to:
91
+ ```
92
+ http://localhost:4000/countries
93
+ ```
94
+
95
+ ---
96
+
97
+ ## 🔍 Next Steps
98
+
99
+ Now that you understand the basics, dive deeper into `Blok` with the following resources:
100
+
101
+ - [Context](./Core_Concepts/Context.md)
102
+ - [Creating Workflows](./CLI_Commands/Create_Workflow.md)
103
+ - [Creating Custom Nodes](./CLI_Commands/Create_Node.md)
104
+ - [Index](./index.md)
@@ -0,0 +1,51 @@
1
+ # Quick Start Guide
2
+
3
+ ## 1. Setting Up Your Environment
4
+
5
+ Get started with `Blok` by following these steps:
6
+
7
+ ### Prerequisites
8
+ Ensure the following are installed:
9
+ - **Node.js** (v22.14.0 LTS recommended)
10
+
11
+ ### Step 1: Create a New Project
12
+ Run the command below to create a project:
13
+ ```sh
14
+ npx blokctl@latest create project
15
+ ```
16
+ Follow the prompts:
17
+ 1. Assign a project name.
18
+ 2. Select **HTTP trigger** (default).
19
+ 3. Choose **NodeJS** as the runtime (Python3 is in alpha).
20
+ 4. **Select Example Installation: YES** (recommended for discovery and learning).
21
+
22
+ ### Step 2: Navigate to Your Project and Start the Server
23
+ ```sh
24
+ cd your-project-name
25
+ pnpm run dev
26
+ ```
27
+ Your server will be running at:
28
+ `http://localhost:4000`
29
+
30
+ ---
31
+
32
+ ## 2. Running the Example Workflows
33
+
34
+ Explore the provided example workflows to get started. Access them via:
35
+
36
+ - **Countries API**:
37
+ `http://localhost:4000/countries`
38
+
39
+ ---
40
+
41
+ ## 🔍 Next Steps
42
+
43
+ Now that you understand the basics, dive deeper into `Blok` with the following resources:
44
+
45
+ - [Context](./Core_Concepts/Context.md)
46
+ - [Creating Workflows](./CLI_Commands/Create_Workflow.md)
47
+ - [Creating Custom Nodes](./CLI_Commands/Create_Node.md)
48
+ - [Examples](./examples.md)
49
+ - [Authentication](./CLI_Commands/Authentication.md)
50
+ - [Building](./CLI_Commands/Building.md)
51
+ - [Deployment](./CLI_Commands/Deployment.md)