temporalio 1.5.0 → 1.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 (492) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +1461 -621
  3. data/Cargo.toml +1 -1
  4. data/Gemfile +6 -5
  5. data/README.md +42 -1
  6. data/ext/Cargo.toml +9 -3
  7. data/lib/temporalio/api/activity/v1/message.rb +1 -1
  8. data/lib/temporalio/api/cloud/billing/v1/message.rb +2 -1
  9. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +17 -1
  10. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +1 -1
  11. data/lib/temporalio/api/cloud/connectivityrule/v1/message.rb +1 -1
  12. data/lib/temporalio/api/cloud/identity/v1/message.rb +8 -1
  13. data/lib/temporalio/api/cloud/namespace/v1/message.rb +5 -1
  14. data/lib/temporalio/api/command/v1/message.rb +2 -1
  15. data/lib/temporalio/api/common/v1/message.rb +5 -1
  16. data/lib/temporalio/api/deployment/v1/message.rb +3 -1
  17. data/lib/temporalio/api/history/v1/message.rb +3 -1
  18. data/lib/temporalio/api/namespace/v1/message.rb +1 -1
  19. data/lib/temporalio/api/nexus/v1/message.rb +1 -1
  20. data/lib/temporalio/api/nexusannotations/v1/options.rb +20 -0
  21. data/lib/temporalio/api/payload_visitor.rb +32 -0
  22. data/lib/temporalio/api/schedule/v1/message.rb +1 -1
  23. data/lib/temporalio/api/sdk/v1/event_group_marker.rb +26 -0
  24. data/lib/temporalio/api/update/v1/message.rb +1 -1
  25. data/lib/temporalio/api/workflow/v1/message.rb +3 -2
  26. data/lib/temporalio/api/workflowservice/v1/request_response.rb +11 -1
  27. data/lib/temporalio/api/workflowservice/v1/service.rb +3 -2
  28. data/lib/temporalio/client/connection/cloud_service.rb +120 -0
  29. data/lib/temporalio/client/connection/workflow_service.rb +75 -0
  30. data/lib/temporalio/client/connection.rb +37 -2
  31. data/lib/temporalio/client.rb +10 -5
  32. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +1 -1
  33. data/lib/temporalio/internal/bridge/client.rb +6 -1
  34. data/lib/temporalio/internal/bridge.rb +20 -0
  35. data/lib/temporalio/internal/google_protobuf.rb +11 -0
  36. data/lib/temporalio/internal/worker/workflow_instance/context.rb +2 -0
  37. data/lib/temporalio/internal/worker/workflow_instance/details.rb +3 -1
  38. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +73 -2
  39. data/lib/temporalio/internal/worker/workflow_instance.rb +36 -6
  40. data/lib/temporalio/internal/worker/workflow_worker.rb +10 -2
  41. data/lib/temporalio/internal/workflow_task_failure_error.rb +9 -0
  42. data/lib/temporalio/version.rb +1 -1
  43. data/lib/temporalio/worker/activity_executor/fiber.rb +1 -1
  44. data/lib/temporalio/worker/activity_executor/thread_pool.rb +1 -1
  45. data/lib/temporalio/worker/illegal_workflow_call_validator.rb +3 -1
  46. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +5 -1
  47. data/lib/temporalio/worker/workflow_replayer.rb +17 -4
  48. data/lib/temporalio/worker.rb +30 -5
  49. data/lib/temporalio/workflow/future.rb +5 -0
  50. data/lib/temporalio/workflow/nexus_operation_cancellation_type.rb +4 -2
  51. data/lib/temporalio/workflow.rb +8 -0
  52. data/rbi/google/protobuf.rbi +25 -0
  53. data/rbi/temporalio/activity/cancellation_details.rbi +33 -0
  54. data/rbi/temporalio/activity/complete_async_error.rbi +3 -0
  55. data/rbi/temporalio/activity/context.rbi +42 -0
  56. data/rbi/temporalio/activity/definition.rbi +74 -0
  57. data/rbi/temporalio/activity/info.rbi +112 -0
  58. data/rbi/temporalio/activity.rbi +3 -0
  59. data/rbi/temporalio/api/activity/v1/message.rbi +1453 -0
  60. data/rbi/temporalio/api/batch/v1/message.rbi +1283 -0
  61. data/rbi/temporalio/api/callback/v1/message.rbi +188 -0
  62. data/rbi/temporalio/api/cloud/account/v1/message.rbi +650 -0
  63. data/rbi/temporalio/api/cloud/auditlog/v1/message.rbi +318 -0
  64. data/rbi/temporalio/api/cloud/billing/v1/message.rbi +480 -0
  65. data/rbi/temporalio/api/cloud/cloudservice/v1/request_response.rbi +12454 -0
  66. data/rbi/temporalio/api/cloud/cloudservice/v1/service.rbi +3 -0
  67. data/rbi/temporalio/api/cloud/cloudservice/v1/service_services.rbi +709 -0
  68. data/rbi/temporalio/api/cloud/cloudservice.rbi +5 -0
  69. data/rbi/temporalio/api/cloud/connectivityrule/v1/message.rbi +403 -0
  70. data/rbi/temporalio/api/cloud/identity/v1/message.rbi +3072 -0
  71. data/rbi/temporalio/api/cloud/namespace/v1/message.rbi +3659 -0
  72. data/rbi/temporalio/api/cloud/nexus/v1/message.rbi +595 -0
  73. data/rbi/temporalio/api/cloud/operation/v1/message.rbi +244 -0
  74. data/rbi/temporalio/api/cloud/region/v1/message.rbi +166 -0
  75. data/rbi/temporalio/api/cloud/resource/v1/message.rbi +29 -0
  76. data/rbi/temporalio/api/cloud/sink/v1/message.rbi +438 -0
  77. data/rbi/temporalio/api/cloud/usage/v1/message.rbi +409 -0
  78. data/rbi/temporalio/api/command/v1/message.rbi +2655 -0
  79. data/rbi/temporalio/api/common/v1/grpc_status.rbi +92 -0
  80. data/rbi/temporalio/api/common/v1/message.rbi +2983 -0
  81. data/rbi/temporalio/api/compute/v1/config.rbi +421 -0
  82. data/rbi/temporalio/api/compute/v1/provider.rbi +125 -0
  83. data/rbi/temporalio/api/compute/v1/scaler.rbi +102 -0
  84. data/rbi/temporalio/api/deployment/v1/message.rbi +2340 -0
  85. data/rbi/temporalio/api/enums/v1/activity.rbi +62 -0
  86. data/rbi/temporalio/api/enums/v1/batch_operation.rbi +47 -0
  87. data/rbi/temporalio/api/enums/v1/command_type.rbi +36 -0
  88. data/rbi/temporalio/api/enums/v1/common.rbi +181 -0
  89. data/rbi/temporalio/api/enums/v1/deployment.rbi +80 -0
  90. data/rbi/temporalio/api/enums/v1/event_type.rbi +79 -0
  91. data/rbi/temporalio/api/enums/v1/failed_cause.rbi +155 -0
  92. data/rbi/temporalio/api/enums/v1/namespace.rbi +58 -0
  93. data/rbi/temporalio/api/enums/v1/nexus.rbi +98 -0
  94. data/rbi/temporalio/api/enums/v1/query.rbi +40 -0
  95. data/rbi/temporalio/api/enums/v1/reset.rbi +60 -0
  96. data/rbi/temporalio/api/enums/v1/schedule.rbi +25 -0
  97. data/rbi/temporalio/api/enums/v1/task_queue.rbi +134 -0
  98. data/rbi/temporalio/api/enums/v1/update.rbi +39 -0
  99. data/rbi/temporalio/api/enums/v1/workflow.rbi +259 -0
  100. data/rbi/temporalio/api/errordetails/v1/message.rbi +1389 -0
  101. data/rbi/temporalio/api/export/v1/message.rbi +123 -0
  102. data/rbi/temporalio/api/failure/v1/message.rbi +1303 -0
  103. data/rbi/temporalio/api/filter/v1/message.rbi +267 -0
  104. data/rbi/temporalio/api/history/v1/message.rbi +10737 -0
  105. data/rbi/temporalio/api/namespace/v1/message.rbi +1044 -0
  106. data/rbi/temporalio/api/nexus/v1/message.rbi +2780 -0
  107. data/rbi/temporalio/api/nexusannotations/v1/options.rbi +161 -0
  108. data/rbi/temporalio/api/nexusservices/workerservice/v1/request_response.rbi +124 -0
  109. data/rbi/temporalio/api/operatorservice/v1/request_response.rbi +1836 -0
  110. data/rbi/temporalio/api/operatorservice/v1/service.rbi +3 -0
  111. data/rbi/temporalio/api/operatorservice/v1/service_services.rbi +143 -0
  112. data/rbi/temporalio/api/operatorservice.rbi +5 -0
  113. data/rbi/temporalio/api/payload_visitor.rbi +876 -0
  114. data/rbi/temporalio/api/protoc_gen_openapiv2/options/annotations.rbi +3 -0
  115. data/rbi/temporalio/api/protoc_gen_openapiv2/options/openapiv2.rbi +3482 -0
  116. data/rbi/temporalio/api/protocol/v1/message.rbi +139 -0
  117. data/rbi/temporalio/api/protometa/v1/annotations.rbi +97 -0
  118. data/rbi/temporalio/api/query/v1/message.rbi +288 -0
  119. data/rbi/temporalio/api/replication/v1/message.rbi +226 -0
  120. data/rbi/temporalio/api/rules/v1/message.rbi +492 -0
  121. data/rbi/temporalio/api/schedule/v1/message.rbi +2377 -0
  122. data/rbi/temporalio/api/sdk/v1/enhanced_stack_trace.rbi +478 -0
  123. data/rbi/temporalio/api/sdk/v1/event_group_marker.rbi +337 -0
  124. data/rbi/temporalio/api/sdk/v1/external_storage.rbi +85 -0
  125. data/rbi/temporalio/api/sdk/v1/task_complete_metadata.rbi +206 -0
  126. data/rbi/temporalio/api/sdk/v1/user_metadata.rbi +98 -0
  127. data/rbi/temporalio/api/sdk/v1/worker_config.rbi +255 -0
  128. data/rbi/temporalio/api/sdk/v1/workflow_metadata.rbi +297 -0
  129. data/rbi/temporalio/api/taskqueue/v1/message.rbi +2460 -0
  130. data/rbi/temporalio/api/testservice/v1/request_response.rbi +380 -0
  131. data/rbi/temporalio/api/testservice/v1/service.rbi +3 -0
  132. data/rbi/temporalio/api/testservice/v1/service_services.rbi +100 -0
  133. data/rbi/temporalio/api/update/v1/message.rbi +800 -0
  134. data/rbi/temporalio/api/version/v1/message.rbi +281 -0
  135. data/rbi/temporalio/api/worker/v1/message.rbi +1565 -0
  136. data/rbi/temporalio/api/workflow/v1/message.rbi +5011 -0
  137. data/rbi/temporalio/api/workflowservice/v1/request_response.rbi +30477 -0
  138. data/rbi/temporalio/api/workflowservice/v1/service.rbi +3 -0
  139. data/rbi/temporalio/api/workflowservice/v1/service_services.rbi +1571 -0
  140. data/rbi/temporalio/api/workflowservice.rbi +5 -0
  141. data/rbi/temporalio/api.rbi +7 -0
  142. data/rbi/temporalio/cancellation.rbi +40 -0
  143. data/rbi/temporalio/client/activity_execution.rbi +134 -0
  144. data/rbi/temporalio/client/activity_execution_count.rbi +23 -0
  145. data/rbi/temporalio/client/activity_execution_status.rbi +11 -0
  146. data/rbi/temporalio/client/activity_handle.rbi +49 -0
  147. data/rbi/temporalio/client/activity_id_reference.rbi +24 -0
  148. data/rbi/temporalio/client/async_activity_handle.rbi +49 -0
  149. data/rbi/temporalio/client/connection/cloud_service.rbi +239 -0
  150. data/rbi/temporalio/client/connection/operator_service.rbi +47 -0
  151. data/rbi/temporalio/client/connection/service.rbi +19 -0
  152. data/rbi/temporalio/client/connection/test_service.rbi +29 -0
  153. data/rbi/temporalio/client/connection/workflow_service.rbi +377 -0
  154. data/rbi/temporalio/client/connection.rbi +284 -0
  155. data/rbi/temporalio/client/interceptor.rbi +1067 -0
  156. data/rbi/temporalio/client/pending_activity_state.rbi +9 -0
  157. data/rbi/temporalio/client/plugin.rbi +17 -0
  158. data/rbi/temporalio/client/schedule.rbi +677 -0
  159. data/rbi/temporalio/client/schedule_handle.rbi +40 -0
  160. data/rbi/temporalio/client/with_start_workflow_operation.rbi +126 -0
  161. data/rbi/temporalio/client/workflow_execution.rbi +62 -0
  162. data/rbi/temporalio/client/workflow_execution_count.rbi +23 -0
  163. data/rbi/temporalio/client/workflow_execution_status.rbi +11 -0
  164. data/rbi/temporalio/client/workflow_handle.rbi +148 -0
  165. data/rbi/temporalio/client/workflow_query_reject_condition.rbi +7 -0
  166. data/rbi/temporalio/client/workflow_update_handle.rbi +38 -0
  167. data/rbi/temporalio/client/workflow_update_wait_stage.rbi +7 -0
  168. data/rbi/temporalio/client.rbi +534 -0
  169. data/rbi/temporalio/common_enums.rbi +45 -0
  170. data/rbi/temporalio/contrib/open_telemetry.rbi +73 -0
  171. data/rbi/temporalio/converters/data_converter.rbi +44 -0
  172. data/rbi/temporalio/converters/failure_converter.rbi +20 -0
  173. data/rbi/temporalio/converters/payload_codec.rbi +11 -0
  174. data/rbi/temporalio/converters/payload_converter/binary_null.rbi +5 -0
  175. data/rbi/temporalio/converters/payload_converter/binary_plain.rbi +5 -0
  176. data/rbi/temporalio/converters/payload_converter/binary_protobuf.rbi +5 -0
  177. data/rbi/temporalio/converters/payload_converter/composite.rbi +20 -0
  178. data/rbi/temporalio/converters/payload_converter/encoding.rbi +14 -0
  179. data/rbi/temporalio/converters/payload_converter/json_plain.rbi +10 -0
  180. data/rbi/temporalio/converters/payload_converter/json_protobuf.rbi +5 -0
  181. data/rbi/temporalio/converters/payload_converter.rbi +28 -0
  182. data/rbi/temporalio/converters/raw_value.rbi +11 -0
  183. data/rbi/temporalio/converters.rbi +3 -0
  184. data/rbi/temporalio/env_config.rbi +156 -0
  185. data/rbi/temporalio/error/failure.rbi +3 -0
  186. data/rbi/temporalio/error.rbi +313 -0
  187. data/rbi/temporalio/internal/bridge/api/activity_result/activity_result.rbi +547 -0
  188. data/rbi/temporalio/internal/bridge/api/activity_task/activity_task.rbi +705 -0
  189. data/rbi/temporalio/internal/bridge/api/child_workflow/child_workflow.rbi +332 -0
  190. data/rbi/temporalio/internal/bridge/api/common/common.rbi +191 -0
  191. data/rbi/temporalio/internal/bridge/api/core_interface.rbi +567 -0
  192. data/rbi/temporalio/internal/bridge/api/external_data/external_data.rbi +255 -0
  193. data/rbi/temporalio/internal/bridge/api/nexus/nexus.rbi +527 -0
  194. data/rbi/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbi +2808 -0
  195. data/rbi/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rbi +3309 -0
  196. data/rbi/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rbi +272 -0
  197. data/rbi/temporalio/internal/bridge/api.rbi +3 -0
  198. data/rbi/temporalio/internal/bridge/client.rbi +346 -0
  199. data/rbi/temporalio/internal/bridge/runtime.rbi +231 -0
  200. data/rbi/temporalio/internal/bridge/testing.rbi +109 -0
  201. data/rbi/temporalio/internal/bridge/worker.rbi +250 -0
  202. data/rbi/temporalio/internal/bridge.rbi +47 -0
  203. data/rbi/temporalio/internal/client/implementation.rbi +53 -0
  204. data/rbi/temporalio/internal/google_protobuf.rbi +8 -0
  205. data/rbi/temporalio/internal/metric.rbi +55 -0
  206. data/rbi/temporalio/internal/proto_utils.rbi +148 -0
  207. data/rbi/temporalio/internal/worker/activity_worker.rbi +108 -0
  208. data/rbi/temporalio/internal/worker/multi_runner.rbi +175 -0
  209. data/rbi/temporalio/internal/worker/workflow_instance/child_workflow_handle.rbi +20 -0
  210. data/rbi/temporalio/internal/worker/workflow_instance/context.rbi +290 -0
  211. data/rbi/temporalio/internal/worker/workflow_instance/details.rbi +87 -0
  212. data/rbi/temporalio/internal/worker/workflow_instance/external_workflow_handle.rbi +14 -0
  213. data/rbi/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rbi +17 -0
  214. data/rbi/temporalio/internal/worker/workflow_instance/handler_execution.rbi +17 -0
  215. data/rbi/temporalio/internal/worker/workflow_instance/handler_hash.rbi +24 -0
  216. data/rbi/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rbi +17 -0
  217. data/rbi/temporalio/internal/worker/workflow_instance/inbound_implementation.rbi +21 -0
  218. data/rbi/temporalio/internal/worker/workflow_instance/nexus_client.rbi +47 -0
  219. data/rbi/temporalio/internal/worker/workflow_instance/nexus_operation_handle.rbi +19 -0
  220. data/rbi/temporalio/internal/worker/workflow_instance/outbound_implementation.rbi +43 -0
  221. data/rbi/temporalio/internal/worker/workflow_instance/replay_safe_logger.rbi +11 -0
  222. data/rbi/temporalio/internal/worker/workflow_instance/replay_safe_metric.rbi +15 -0
  223. data/rbi/temporalio/internal/worker/workflow_instance/scheduler.rbi +36 -0
  224. data/rbi/temporalio/internal/worker/workflow_instance.rbi +231 -0
  225. data/rbi/temporalio/internal/worker/workflow_worker.rbi +199 -0
  226. data/rbi/temporalio/internal/workflow_task_failure_error.rbi +3 -0
  227. data/rbi/temporalio/internal.rbi +3 -0
  228. data/rbi/temporalio/metric.rbi +56 -0
  229. data/rbi/temporalio/priority.rbi +38 -0
  230. data/rbi/temporalio/retry_policy.rbi +40 -0
  231. data/rbi/temporalio/runtime/metric_buffer.rbi +45 -0
  232. data/rbi/temporalio/runtime.rbi +185 -0
  233. data/rbi/temporalio/scoped_logger.rbi +50 -0
  234. data/rbi/temporalio/search_attributes.rbi +94 -0
  235. data/rbi/temporalio/simple_plugin.rbi +41 -0
  236. data/rbi/temporalio/testing/activity_environment.rbi +43 -0
  237. data/rbi/temporalio/testing/workflow_environment.rbi +116 -0
  238. data/rbi/temporalio/testing.rbi +3 -0
  239. data/rbi/temporalio/version.rbi +5 -0
  240. data/rbi/temporalio/versioning_override.rbi +13 -0
  241. data/rbi/temporalio/worker/activity_executor/fiber.rbi +20 -0
  242. data/rbi/temporalio/worker/activity_executor/thread_pool.rbi +20 -0
  243. data/rbi/temporalio/worker/activity_executor.rbi +20 -0
  244. data/rbi/temporalio/worker/deployment_options.rbi +23 -0
  245. data/rbi/temporalio/worker/illegal_workflow_call_validator.rbi +33 -0
  246. data/rbi/temporalio/worker/interceptor.rbi +489 -0
  247. data/rbi/temporalio/worker/plugin.rbi +49 -0
  248. data/rbi/temporalio/worker/poller_behavior.rbi +29 -0
  249. data/rbi/temporalio/worker/thread_pool.rbi +38 -0
  250. data/rbi/temporalio/worker/tuner.rbi +221 -0
  251. data/rbi/temporalio/worker/workflow_executor/thread_pool.rbi +15 -0
  252. data/rbi/temporalio/worker/workflow_executor.rbi +8 -0
  253. data/rbi/temporalio/worker/workflow_replayer.rbi +152 -0
  254. data/rbi/temporalio/worker.rbi +258 -0
  255. data/rbi/temporalio/worker_deployment_version.rbi +29 -0
  256. data/rbi/temporalio/workflow/activity_cancellation_type.rbi +7 -0
  257. data/rbi/temporalio/workflow/child_workflow_cancellation_type.rbi +8 -0
  258. data/rbi/temporalio/workflow/child_workflow_handle.rbi +27 -0
  259. data/rbi/temporalio/workflow/definition.rbi +305 -0
  260. data/rbi/temporalio/workflow/external_workflow_handle.rbi +24 -0
  261. data/rbi/temporalio/workflow/future.rbi +62 -0
  262. data/rbi/temporalio/workflow/handler_unfinished_policy.rbi +6 -0
  263. data/rbi/temporalio/workflow/info.rbi +100 -0
  264. data/rbi/temporalio/workflow/nexus_client.rbi +65 -0
  265. data/rbi/temporalio/workflow/nexus_operation_cancellation_type.rbi +8 -0
  266. data/rbi/temporalio/workflow/nexus_operation_handle.rbi +14 -0
  267. data/rbi/temporalio/workflow/parent_close_policy.rbi +8 -0
  268. data/rbi/temporalio/workflow/update_info.rbi +14 -0
  269. data/rbi/temporalio/workflow.rbi +393 -0
  270. data/rbi/temporalio/workflow_history.rbi +21 -0
  271. data/rbi/temporalio.rbi +5 -0
  272. data/sig/common.rbs +1 -0
  273. data/sig/google/protobuf_compat.rbs +17 -0
  274. data/sig/open_telemetry.rbs +47 -0
  275. data/sig/temporalio/activity/cancellation_details.rbs +21 -0
  276. data/sig/temporalio/activity/complete_async_error.rbs +6 -0
  277. data/sig/temporalio/activity/context.rbs +26 -0
  278. data/sig/temporalio/activity/definition.rbs +60 -0
  279. data/sig/temporalio/activity/info.rbs +57 -0
  280. data/sig/temporalio/activity.rbs +4 -0
  281. data/sig/temporalio/api/activity/v1/message.rbs +708 -0
  282. data/sig/temporalio/api/batch/v1/message.rbs +594 -0
  283. data/sig/temporalio/api/callback/v1/message.rbs +112 -0
  284. data/sig/temporalio/api/cloud/account/v1/message.rbs +314 -0
  285. data/sig/temporalio/api/cloud/auditlog/v1/message.rbs +168 -0
  286. data/sig/temporalio/api/cloud/billing/v1/message.rbs +279 -0
  287. data/sig/temporalio/api/cloud/cloudservice/v1/request_response.rbs +4726 -0
  288. data/sig/temporalio/api/cloud/cloudservice/v1/service.rbs +25 -0
  289. data/sig/temporalio/api/cloud/cloudservice.rbs +8 -0
  290. data/sig/temporalio/api/cloud/connectivityrule/v1/message.rbs +191 -0
  291. data/sig/temporalio/api/cloud/identity/v1/message.rbs +1372 -0
  292. data/sig/temporalio/api/cloud/namespace/v1/message.rbs +1571 -0
  293. data/sig/temporalio/api/cloud/nexus/v1/message.rbs +269 -0
  294. data/sig/temporalio/api/cloud/operation/v1/message.rbs +156 -0
  295. data/sig/temporalio/api/cloud/region/v1/message.rbs +109 -0
  296. data/sig/temporalio/api/cloud/resource/v1/message.rbs +61 -0
  297. data/sig/temporalio/api/cloud/sink/v1/message.rbs +207 -0
  298. data/sig/temporalio/api/cloud/usage/v1/message.rbs +230 -0
  299. data/sig/temporalio/api/command/v1/message.rbs +1211 -0
  300. data/sig/temporalio/api/common/v1/grpc_status.rbs +59 -0
  301. data/sig/temporalio/api/common/v1/message.rbs +1238 -0
  302. data/sig/temporalio/api/compute/v1/config.rbs +176 -0
  303. data/sig/temporalio/api/compute/v1/provider.rbs +73 -0
  304. data/sig/temporalio/api/compute/v1/scaler.rbs +60 -0
  305. data/sig/temporalio/api/deployment/v1/message.rbs +1063 -0
  306. data/sig/temporalio/api/enums/v1/activity.rbs +134 -0
  307. data/sig/temporalio/api/enums/v1/batch_operation.rbs +80 -0
  308. data/sig/temporalio/api/enums/v1/command_type.rbs +74 -0
  309. data/sig/temporalio/api/enums/v1/common.rbs +271 -0
  310. data/sig/temporalio/api/enums/v1/deployment.rbs +177 -0
  311. data/sig/temporalio/api/enums/v1/event_type.rbs +263 -0
  312. data/sig/temporalio/api/enums/v1/failed_cause.rbs +281 -0
  313. data/sig/temporalio/api/enums/v1/namespace.rbs +87 -0
  314. data/sig/temporalio/api/enums/v1/nexus.rbs +172 -0
  315. data/sig/temporalio/api/enums/v1/query.rbs +69 -0
  316. data/sig/temporalio/api/enums/v1/reset.rbs +106 -0
  317. data/sig/temporalio/api/enums/v1/schedule.rbs +68 -0
  318. data/sig/temporalio/api/enums/v1/task_queue.rbs +238 -0
  319. data/sig/temporalio/api/enums/v1/update.rbs +87 -0
  320. data/sig/temporalio/api/enums/v1/workflow.rbs +435 -0
  321. data/sig/temporalio/api/errordetails/v1/message.rbs +532 -0
  322. data/sig/temporalio/api/export/v1/message.rbs +63 -0
  323. data/sig/temporalio/api/failure/v1/message.rbs +579 -0
  324. data/sig/temporalio/api/filter/v1/message.rbs +121 -0
  325. data/sig/temporalio/api/history/v1/message.rbs +4928 -0
  326. data/sig/temporalio/api/namespace/v1/message.rbs +465 -0
  327. data/sig/temporalio/api/nexus/v1/message.rbs +1268 -0
  328. data/sig/temporalio/api/nexusannotations/v1/options.rbs +76 -0
  329. data/sig/temporalio/api/nexusservices/workerservice/v1/request_response.rbs +65 -0
  330. data/sig/temporalio/api/operatorservice/v1/request_response.rbs +679 -0
  331. data/sig/temporalio/api/operatorservice/v1/service.rbs +23 -0
  332. data/sig/temporalio/api/operatorservice.rbs +6 -0
  333. data/sig/temporalio/api/payload_visitor.rbs +298 -0
  334. data/sig/temporalio/api/protoc_gen_openapiv2/options/annotations.rbs +23 -0
  335. data/sig/temporalio/api/protoc_gen_openapiv2/options/openapiv2.rbs +1691 -0
  336. data/sig/temporalio/api/protocol/v1/message.rbs +90 -0
  337. data/sig/temporalio/api/protometa/v1/annotations.rbs +62 -0
  338. data/sig/temporalio/api/query/v1/message.rbs +138 -0
  339. data/sig/temporalio/api/replication/v1/message.rbs +109 -0
  340. data/sig/temporalio/api/rules/v1/message.rbs +213 -0
  341. data/sig/temporalio/api/schedule/v1/message.rbs +1066 -0
  342. data/sig/temporalio/api/sdk/v1/enhanced_stack_trace.rbs +210 -0
  343. data/sig/temporalio/api/sdk/v1/event_group_marker.rbs +154 -0
  344. data/sig/temporalio/api/sdk/v1/external_storage.rbs +54 -0
  345. data/sig/temporalio/api/sdk/v1/task_complete_metadata.rbs +92 -0
  346. data/sig/temporalio/api/sdk/v1/user_metadata.rbs +58 -0
  347. data/sig/temporalio/api/sdk/v1/worker_config.rbs +122 -0
  348. data/sig/temporalio/api/sdk/v1/workflow_metadata.rbs +138 -0
  349. data/sig/temporalio/api/taskqueue/v1/message.rbs +1013 -0
  350. data/sig/temporalio/api/testservice/v1/request_response.rbs +125 -0
  351. data/sig/temporalio/api/testservice/v1/service.rbs +23 -0
  352. data/sig/temporalio/api/update/v1/message.rbs +349 -0
  353. data/sig/temporalio/api/version/v1/message.rbs +143 -0
  354. data/sig/temporalio/api/worker/v1/message.rbs +716 -0
  355. data/sig/temporalio/api/workflow/v1/message.rbs +2322 -0
  356. data/sig/temporalio/api/workflowservice/v1/request_response.rbs +12735 -0
  357. data/sig/temporalio/api/workflowservice/v1/service.rbs +23 -0
  358. data/sig/temporalio/api/workflowservice.rbs +6 -0
  359. data/sig/temporalio/api.rbs +4 -0
  360. data/sig/temporalio/cancellation.rbs +20 -0
  361. data/sig/temporalio/client/activity_execution.rbs +50 -0
  362. data/sig/temporalio/client/activity_execution_count.rbs +17 -0
  363. data/sig/temporalio/client/activity_execution_status.rbs +15 -0
  364. data/sig/temporalio/client/activity_handle.rbs +26 -0
  365. data/sig/temporalio/client/activity_id_reference.rbs +16 -0
  366. data/sig/temporalio/client/async_activity_handle.rbs +41 -0
  367. data/sig/temporalio/client/connection/cloud_service.rbs +315 -0
  368. data/sig/temporalio/client/connection/operator_service.rbs +59 -0
  369. data/sig/temporalio/client/connection/service.rbs +17 -0
  370. data/sig/temporalio/client/connection/test_service.rbs +35 -0
  371. data/sig/temporalio/client/connection/workflow_service.rbs +499 -0
  372. data/sig/temporalio/client/connection.rbs +143 -0
  373. data/sig/temporalio/client/interceptor.rbs +622 -0
  374. data/sig/temporalio/client/pending_activity_state.rbs +14 -0
  375. data/sig/temporalio/client/plugin.rbs +14 -0
  376. data/sig/temporalio/client/schedule.rbs +337 -0
  377. data/sig/temporalio/client/schedule_handle.rbs +44 -0
  378. data/sig/temporalio/client/with_start_workflow_operation.rbs +82 -0
  379. data/sig/temporalio/client/workflow_execution.rbs +37 -0
  380. data/sig/temporalio/client/workflow_execution_count.rbs +17 -0
  381. data/sig/temporalio/client/workflow_execution_status.rbs +16 -0
  382. data/sig/temporalio/client/workflow_handle.rbs +95 -0
  383. data/sig/temporalio/client/workflow_query_reject_condition.rbs +12 -0
  384. data/sig/temporalio/client/workflow_update_handle.rbs +26 -0
  385. data/sig/temporalio/client/workflow_update_wait_stage.rbs +12 -0
  386. data/sig/temporalio/client.rbs +271 -0
  387. data/sig/temporalio/common_enums.rbs +60 -0
  388. data/sig/temporalio/contrib/open_telemetry.rbs +74 -0
  389. data/sig/temporalio/converters/data_converter.rbs +32 -0
  390. data/sig/temporalio/converters/failure_converter.rbs +12 -0
  391. data/sig/temporalio/converters/payload_codec.rbs +8 -0
  392. data/sig/temporalio/converters/payload_converter/binary_null.rbs +9 -0
  393. data/sig/temporalio/converters/payload_converter/binary_plain.rbs +9 -0
  394. data/sig/temporalio/converters/payload_converter/binary_protobuf.rbs +9 -0
  395. data/sig/temporalio/converters/payload_converter/composite.rbs +16 -0
  396. data/sig/temporalio/converters/payload_converter/encoding.rbs +13 -0
  397. data/sig/temporalio/converters/payload_converter/json_plain.rbs +14 -0
  398. data/sig/temporalio/converters/payload_converter/json_protobuf.rbs +9 -0
  399. data/sig/temporalio/converters/payload_converter.rbs +24 -0
  400. data/sig/temporalio/converters/raw_value.rbs +9 -0
  401. data/sig/temporalio/converters.rbs +4 -0
  402. data/sig/temporalio/env_config.rbs +86 -0
  403. data/sig/temporalio/error/failure.rbs +170 -0
  404. data/sig/temporalio/error.rbs +88 -0
  405. data/sig/temporalio/internal/bridge/api/activity_result/activity_result.rbs +247 -0
  406. data/sig/temporalio/internal/bridge/api/activity_task/activity_task.rbs +372 -0
  407. data/sig/temporalio/internal/bridge/api/child_workflow/child_workflow.rbs +207 -0
  408. data/sig/temporalio/internal/bridge/api/common/common.rbs +123 -0
  409. data/sig/temporalio/internal/bridge/api/core_interface.rbs +231 -0
  410. data/sig/temporalio/internal/bridge/api/external_data/external_data.rbs +134 -0
  411. data/sig/temporalio/internal/bridge/api/nexus/nexus.rbs +285 -0
  412. data/sig/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbs +1304 -0
  413. data/sig/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rbs +1526 -0
  414. data/sig/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rbs +136 -0
  415. data/sig/temporalio/internal/bridge/api.rbs +8 -0
  416. data/sig/temporalio/internal/bridge/client.rbs +144 -0
  417. data/sig/temporalio/internal/bridge/metric.rbs +28 -0
  418. data/sig/temporalio/internal/bridge/runtime.rbs +97 -0
  419. data/sig/temporalio/internal/bridge/testing.rbs +91 -0
  420. data/sig/temporalio/internal/bridge/worker.rbs +199 -0
  421. data/sig/temporalio/internal/bridge.rbs +36 -0
  422. data/sig/temporalio/internal/client/implementation.rbs +33 -0
  423. data/sig/temporalio/internal/google_protobuf.rbs +7 -0
  424. data/sig/temporalio/internal/metric.rbs +35 -0
  425. data/sig/temporalio/internal/proto_utils.rbs +94 -0
  426. data/sig/temporalio/internal/worker/activity_worker.rbs +64 -0
  427. data/sig/temporalio/internal/worker/multi_runner.rbs +132 -0
  428. data/sig/temporalio/internal/worker/workflow_instance/child_workflow_handle.rbs +22 -0
  429. data/sig/temporalio/internal/worker/workflow_instance/context.rbs +172 -0
  430. data/sig/temporalio/internal/worker/workflow_instance/details.rbs +43 -0
  431. data/sig/temporalio/internal/worker/workflow_instance/external_workflow_handle.rbs +15 -0
  432. data/sig/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rbs +16 -0
  433. data/sig/temporalio/internal/worker/workflow_instance/handler_execution.rbs +19 -0
  434. data/sig/temporalio/internal/worker/workflow_instance/handler_hash.rbs +14 -0
  435. data/sig/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rbs +20 -0
  436. data/sig/temporalio/internal/worker/workflow_instance/inbound_implementation.rbs +19 -0
  437. data/sig/temporalio/internal/worker/workflow_instance/nexus_client.rbs +25 -0
  438. data/sig/temporalio/internal/worker/workflow_instance/nexus_operation_handle.rbs +19 -0
  439. data/sig/temporalio/internal/worker/workflow_instance/outbound_implementation.rbs +35 -0
  440. data/sig/temporalio/internal/worker/workflow_instance/replay_safe_logger.rbs +16 -0
  441. data/sig/temporalio/internal/worker/workflow_instance/replay_safe_metric.rbs +15 -0
  442. data/sig/temporalio/internal/worker/workflow_instance/scheduler.rbs +52 -0
  443. data/sig/temporalio/internal/worker/workflow_instance.rbs +111 -0
  444. data/sig/temporalio/internal/worker/workflow_worker.rbs +99 -0
  445. data/sig/temporalio/internal/workflow_task_failure_error.rbs +6 -0
  446. data/sig/temporalio/internal.rbs +4 -0
  447. data/sig/temporalio/metric.rbs +55 -0
  448. data/sig/temporalio/priority.rbs +17 -0
  449. data/sig/temporalio/retry_policy.rbs +21 -0
  450. data/sig/temporalio/runtime/metric_buffer.rbs +49 -0
  451. data/sig/temporalio/runtime.rbs +118 -0
  452. data/sig/temporalio/scoped_logger.rbs +15 -0
  453. data/sig/temporalio/search_attributes.rbs +82 -0
  454. data/sig/temporalio/simple_plugin.rbs +65 -0
  455. data/sig/temporalio/testing/activity_environment.rbs +52 -0
  456. data/sig/temporalio/testing/workflow_environment.rbs +141 -0
  457. data/sig/temporalio/testing.rbs +4 -0
  458. data/sig/temporalio/version.rbs +3 -0
  459. data/sig/temporalio/versioning_override.rbs +17 -0
  460. data/sig/temporalio/worker/activity_executor/fiber.rbs +9 -0
  461. data/sig/temporalio/worker/activity_executor/thread_pool.rbs +11 -0
  462. data/sig/temporalio/worker/activity_executor.rbs +12 -0
  463. data/sig/temporalio/worker/deployment_options.rbs +17 -0
  464. data/sig/temporalio/worker/illegal_workflow_call_validator.rbs +25 -0
  465. data/sig/temporalio/worker/interceptor.rbs +373 -0
  466. data/sig/temporalio/worker/plugin.rbs +47 -0
  467. data/sig/temporalio/worker/poller_behavior.rbs +23 -0
  468. data/sig/temporalio/worker/thread_pool.rbs +44 -0
  469. data/sig/temporalio/worker/tuner.rbs +121 -0
  470. data/sig/temporalio/worker/workflow_executor/thread_pool.rbs +58 -0
  471. data/sig/temporalio/worker/workflow_executor.rbs +15 -0
  472. data/sig/temporalio/worker/workflow_replayer.rbs +105 -0
  473. data/sig/temporalio/worker.rbs +168 -0
  474. data/sig/temporalio/worker_deployment_version.rbs +17 -0
  475. data/sig/temporalio/workflow/activity_cancellation_type.rbs +11 -0
  476. data/sig/temporalio/workflow/child_workflow_cancellation_type.rbs +12 -0
  477. data/sig/temporalio/workflow/child_workflow_handle.rbs +18 -0
  478. data/sig/temporalio/workflow/definition.rbs +181 -0
  479. data/sig/temporalio/workflow/external_workflow_handle.rbs +17 -0
  480. data/sig/temporalio/workflow/future.rbs +24 -0
  481. data/sig/temporalio/workflow/handler_unfinished_policy.rbs +10 -0
  482. data/sig/temporalio/workflow/info.rbs +79 -0
  483. data/sig/temporalio/workflow/nexus_client.rbs +34 -0
  484. data/sig/temporalio/workflow/nexus_operation_cancellation_type.rbs +12 -0
  485. data/sig/temporalio/workflow/nexus_operation_handle.rbs +10 -0
  486. data/sig/temporalio/workflow/parent_close_policy.rbs +12 -0
  487. data/sig/temporalio/workflow/update_info.rbs +15 -0
  488. data/sig/temporalio/workflow.rbs +215 -0
  489. data/sig/temporalio/workflow_history.rbs +13 -0
  490. data/sig/temporalio.rbs +3 -0
  491. data/temporalio.gemspec +1 -1
  492. metadata +445 -2
@@ -16,7 +16,7 @@ require 'temporalio/internal/bridge/api/nexus/nexus'
16
16
  require 'temporalio/internal/bridge/api/common/common'
17
17
 
18
18
 
19
- descriptor_data = "\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a#temporal/sdk/core/nexus/nexus.proto\x1a%temporal/sdk/core/common/common.proto\"\xe5\x0f\n\x0fWorkflowCommand\x12\x38\n\ruser_metadata\x18\x64 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n\"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n\"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x12U\n\x18schedule_nexus_operation\x18\x15 \x01(\x0b\x32\x31.coresdk.workflow_commands.ScheduleNexusOperationH\x00\x12`\n\x1erequest_cancel_nexus_operation\x18\x16 \x01(\x0b\x32\x36.coresdk.workflow_commands.RequestCancelNexusOperationH\x00\x42\t\n\x07variant\"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\xb8\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x10 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant\"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"\xd7\x06\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12\x43\n\x11search_attributes\x18\x08 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12[\n\x1binitial_versioning_behavior\x18\x0b \x01(\x0e\x32\x36.temporal.api.enums.v1.ContinueAsNewVersioningBehavior\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x19\n\x17\x43\x61ncelWorkflowExecution\"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08\"\x96\t\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12\x43\n\x11search_attributes\x18\x11 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"J\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\"\x8e\x01\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12G\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target\"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\"e\n\x1eUpsertWorkflowSearchAttributes\x12\x43\n\x11search_attributes\x18\x01 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response\"\x9a\x04\n\x16ScheduleNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0f\n\x07service\x18\x03 \x01(\t\x12\x11\n\toperation\x18\x04 \x01(\t\x12.\n\x05input\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12X\n\x0cnexus_header\x18\x07 \x03(\x0b\x32\x42.coresdk.workflow_commands.ScheduleNexusOperation.NexusHeaderEntry\x12H\n\x11\x63\x61ncellation_type\x18\x08 \x01(\x0e\x32-.coresdk.nexus.NexusOperationCancellationType\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"*\n\x1bRequestCancelNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3"
19
+ descriptor_data = "\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a#temporal/sdk/core/nexus/nexus.proto\x1a%temporal/sdk/core/common/common.proto\"\xe5\x0f\n\x0fWorkflowCommand\x12\x38\n\ruser_metadata\x18\x64 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n\"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n\"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x12U\n\x18schedule_nexus_operation\x18\x15 \x01(\x0b\x32\x31.coresdk.workflow_commands.ScheduleNexusOperationH\x00\x12`\n\x1erequest_cancel_nexus_operation\x18\x16 \x01(\x0b\x32\x36.coresdk.workflow_commands.RequestCancelNexusOperationH\x00\x42\t\n\x07variant\"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\xb8\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x10 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant\"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"\x92\x07\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12\x43\n\x11search_attributes\x18\x08 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12[\n\x1binitial_versioning_behavior\x18\x0b \x01(\x0e\x32\x36.temporal.api.enums.v1.ContinueAsNewVersioningBehavior\x12\x39\n\x16\x62\x61\x63koff_start_interval\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x19\n\x17\x43\x61ncelWorkflowExecution\"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08\"\x96\t\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12\x43\n\x11search_attributes\x18\x11 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"J\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\"\x8e\x01\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12G\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target\"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\"e\n\x1eUpsertWorkflowSearchAttributes\x12\x43\n\x11search_attributes\x18\x01 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response\"\x9a\x04\n\x16ScheduleNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0f\n\x07service\x18\x03 \x01(\t\x12\x11\n\toperation\x18\x04 \x01(\t\x12.\n\x05input\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12X\n\x0cnexus_header\x18\x07 \x03(\x0b\x32\x42.coresdk.workflow_commands.ScheduleNexusOperation.NexusHeaderEntry\x12H\n\x11\x63\x61ncellation_type\x18\x08 \x01(\x0e\x32-.coresdk.nexus.NexusOperationCancellationType\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"*\n\x1bRequestCancelNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3"
20
20
 
21
21
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
22
22
  pool.add_serialized_file(descriptor_data)
@@ -17,7 +17,8 @@ module Temporalio
17
17
  :rpc_retry,
18
18
  :keep_alive, # Optional
19
19
  :http_connect_proxy, # Optional
20
- :dns_load_balancing # Optional
20
+ :dns_load_balancing, # Optional
21
+ :grpc_compression
21
22
  )
22
23
 
23
24
  TLSOptions = Struct.new(
@@ -51,6 +52,10 @@ module Temporalio
51
52
  :resolution_interval
52
53
  )
53
54
 
55
+ GrpcCompressionOptions = Struct.new(
56
+ :codec
57
+ )
58
+
54
59
  def self.new(runtime, options)
55
60
  queue = Queue.new
56
61
  async_new(runtime, options, queue)
@@ -25,6 +25,26 @@ module Temporalio
25
25
  'see https://github.com/temporalio/sdk-ruby/issues/162'
26
26
  end
27
27
 
28
+ # On FIPS builds the native crypto backend (aws-lc-rs) is FIPS-validated, but the SDK still relies on Ruby's
29
+ # own OpenSSL for `SecureRandom` (request IDs) and the default worker build id digest. Those are only
30
+ # FIPS-backed if Ruby was built against a FIPS-enabled OpenSSL with FIPS mode active. If not, warn once rather
31
+ # than raise. No-op on non-FIPS builds.
32
+ def self.assert_fips_compatibility!
33
+ return unless FIPS
34
+ return if @fips_compatibility_checked
35
+
36
+ @fips_compatibility_checked = true
37
+ require 'openssl'
38
+ return if OpenSSL.fips_mode
39
+
40
+ warn 'temporalio: built for FIPS (aws-lc-rs) but Ruby OpenSSL is not in FIPS mode; SecureRandom and the ' \
41
+ 'default worker build id will not use a FIPS-validated module. Build Ruby against a FIPS-enabled ' \
42
+ 'OpenSSL and enable FIPS mode for full compliance.'
43
+ rescue StandardError
44
+ # Some OpenSSL builds cannot report fips_mode; do not block usage over an unanswerable check.
45
+ nil
46
+ end
47
+
28
48
  def self.fibers_supported
29
49
  # We do not allow fibers on < 3.3 due to a bug we still need to dig
30
50
  # into: https://github.com/temporalio/sdk-ruby/issues/162
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Temporalio
4
+ module Internal
5
+ module GoogleProtobuf
6
+ def self.in_call_stack?(locations)
7
+ locations&.any? { |loc| loc.path&.include?('google/protobuf/') } || false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -248,6 +248,8 @@ module Temporalio
248
248
  end
249
249
 
250
250
  def random
251
+ raise Workflow::InvalidWorkflowStateError, 'Cannot use random in this context' if @instance.random_disabled
252
+
251
253
  @instance.random
252
254
  end
253
255
 
@@ -9,7 +9,7 @@ module Temporalio
9
9
  attr_reader :namespace, :task_queue, :definition, :initial_activation, :logger, :metric_meter,
10
10
  :payload_converter, :failure_converter, :interceptors, :disable_eager_activity_execution,
11
11
  :illegal_calls, :workflow_failure_exception_types, :unsafe_workflow_io_enabled,
12
- :assert_valid_local_activity
12
+ :patch_activation_callback, :assert_valid_local_activity
13
13
 
14
14
  def initialize(
15
15
  namespace:,
@@ -25,6 +25,7 @@ module Temporalio
25
25
  illegal_calls:,
26
26
  workflow_failure_exception_types:,
27
27
  unsafe_workflow_io_enabled:,
28
+ patch_activation_callback:,
28
29
  assert_valid_local_activity:
29
30
  )
30
31
  @namespace = namespace
@@ -40,6 +41,7 @@ module Temporalio
40
41
  @illegal_calls = illegal_calls
41
42
  @workflow_failure_exception_types = workflow_failure_exception_types
42
43
  @unsafe_workflow_io_enabled = unsafe_workflow_io_enabled
44
+ @patch_activation_callback = patch_activation_callback
43
45
  @assert_valid_local_activity = assert_valid_local_activity
44
46
  end
45
47
  end
@@ -3,6 +3,7 @@
3
3
  require 'temporalio'
4
4
  require 'temporalio/cancellation'
5
5
  require 'temporalio/error'
6
+ require 'temporalio/internal/google_protobuf'
6
7
  require 'temporalio/internal/worker/workflow_instance'
7
8
  require 'temporalio/workflow'
8
9
  require 'timeout'
@@ -19,6 +20,10 @@ module Temporalio
19
20
  @ready = []
20
21
  @wait_conditions = {}
21
22
  @wait_condition_counter = 0
23
+ @thread_blocking_fibers = {}
24
+ @thread_blocking_mutex = Mutex.new
25
+ @thread_blocking_condition = ConditionVariable.new
26
+ @workflow_thread = nil
22
27
  end
23
28
 
24
29
  def context
@@ -26,12 +31,17 @@ module Temporalio
26
31
  end
27
32
 
28
33
  def run_until_all_yielded
34
+ @workflow_thread = Thread.current
29
35
  loop do
30
36
  # Run all fibers until all yielded
31
37
  while (fiber = @ready.shift)
32
38
  fiber.resume
33
39
  end
34
40
 
41
+ # Thread-blocking fibers are not durable workflow yields. Wait for them to unblock before satisfying any
42
+ # wait condition so the condition sees the workflow after all runnable work has settled.
43
+ next if wait_for_thread_blocking_fiber
44
+
35
45
  # Find the _first_ resolvable wait condition and if there, resolve it, and loop again, otherwise return.
36
46
  # It is important that we both let fibers get all settled _before_ this and only allow a _single_ wait
37
47
  # condition to be satisfied before looping. This allows wait condition users to trust that the line of
@@ -55,6 +65,8 @@ module Temporalio
55
65
 
56
66
  cond_fiber.resume(cond_result)
57
67
  end
68
+ ensure
69
+ @workflow_thread = nil
58
70
  end
59
71
 
60
72
  def wait_condition(cancellation:, &block)
@@ -110,9 +122,26 @@ module Temporalio
110
122
  # work inside of workflows. So we only implement the bare minimum.
111
123
  ###
112
124
 
113
- def block(_blocker, timeout = nil)
125
+ def block(blocker, timeout = nil)
114
126
  # TODO(cretz): Make the blocker visible in the stack trace?
115
127
 
128
+ # Protobuf's object cache uses a process-local Mutex. We allowlist that Mutex use, but it is not a durable
129
+ # workflow yield: if it blocks the only runnable workflow fiber, the workflow task must remain blocked so
130
+ # deadlock detection can fail it instead of completing a partial command set.
131
+ if timeout.nil? && thread_blocking_protobuf_mutex_wait?(blocker)
132
+ fiber = Fiber.current
133
+ synchronize_thread_blocking_fibers { @thread_blocking_fibers[fiber] = true }
134
+ begin
135
+ Fiber.yield
136
+ return true
137
+ ensure
138
+ synchronize_thread_blocking_fibers do
139
+ @thread_blocking_fibers.delete(fiber)
140
+ @thread_blocking_condition.broadcast
141
+ end
142
+ end
143
+ end
144
+
116
145
  # We just yield because unblock will resume this. We will just wrap in timeout if needed.
117
146
  if timeout
118
147
  begin
@@ -189,7 +218,49 @@ module Temporalio
189
218
  end
190
219
 
191
220
  def unblock(_blocker, fiber)
192
- @ready << fiber
221
+ synchronize_thread_blocking_fibers do
222
+ @thread_blocking_fibers.delete(fiber)
223
+ @ready << fiber
224
+ @thread_blocking_condition.broadcast
225
+ end
226
+ end
227
+
228
+ private
229
+
230
+ def thread_blocking_protobuf_mutex_wait?(blocker)
231
+ blocker.is_a?(::Mutex) &&
232
+ ::Temporalio::Internal::GoogleProtobuf.in_call_stack?(caller_locations)
233
+ end
234
+
235
+ def wait_for_thread_blocking_fiber
236
+ synchronize_thread_blocking_fibers do
237
+ return true unless @ready.empty?
238
+ return false if @thread_blocking_fibers.empty?
239
+
240
+ @thread_blocking_condition.wait(@thread_blocking_mutex) while @ready.empty? &&
241
+ !@thread_blocking_fibers.empty?
242
+ true
243
+ end
244
+ end
245
+
246
+ def synchronize_thread_blocking_fibers(&)
247
+ if Thread.current == @workflow_thread
248
+ with_workflow_scheduler_disabled do
249
+ @thread_blocking_mutex.synchronize(&)
250
+ end
251
+ else
252
+ @thread_blocking_mutex.synchronize(&)
253
+ end
254
+ end
255
+
256
+ def with_workflow_scheduler_disabled
257
+ previous_scheduler = Fiber.scheduler
258
+ @instance.illegal_call_tracing_disabled do
259
+ Fiber.set_scheduler(nil)
260
+ yield
261
+ ensure
262
+ Fiber.set_scheduler(previous_scheduler)
263
+ end
193
264
  end
194
265
  end
195
266
  end
@@ -61,7 +61,7 @@ module Temporalio
61
61
  :current_deployment_version,
62
62
  :current_history_length, :current_history_size, :replaying, :random,
63
63
  :signal_handlers, :query_handlers, :update_handlers, :context_frozen, :assert_valid_local_activity,
64
- :in_query_or_validator
64
+ :in_query_or_validator, :random_disabled, :patch_activation_callback
65
65
  attr_accessor :io_enabled, :current_details
66
66
 
67
67
  def initialize(details)
@@ -77,6 +77,7 @@ module Temporalio
77
77
  @scheduler = Scheduler.new(self)
78
78
  @payload_converter = details.payload_converter
79
79
  @failure_converter = details.failure_converter
80
+ @patch_activation_callback = details.patch_activation_callback
80
81
  @disable_eager_activity_execution = details.disable_eager_activity_execution
81
82
  @pending_activities = {} # Keyed by sequence, value is fiber to resume with proto result
82
83
  @pending_timers = {} # Keyed by sequence, value is fiber to resume with proto result
@@ -99,7 +100,9 @@ module Temporalio
99
100
  @current_history_length = 0
100
101
  @current_history_size = 0
101
102
  @replaying = false
103
+ @context_frozen = false
102
104
  @in_query_or_validator = false
105
+ @random_disabled = false
103
106
  @workflow_failure_exception_types = details.workflow_failure_exception_types
104
107
  @signal_handlers = HandlerHash.new(
105
108
  details.definition.signals,
@@ -180,7 +183,9 @@ module Temporalio
180
183
  @commands = []
181
184
  @current_activation_error = nil
182
185
  @continue_as_new_suggested = activation.continue_as_new_suggested
183
- @suggest_continue_as_new_reasons = activation.suggest_continue_as_new_reasons.map(&:to_i)
186
+ @suggest_continue_as_new_reasons = activation.suggest_continue_as_new_reasons.map do |reason|
187
+ ProtoUtils.enum_to_int(Api::Enums::V1::SuggestContinueAsNewReason, reason)
188
+ end
184
189
  @target_worker_deployment_version_changed = activation.target_worker_deployment_version_changed
185
190
  @current_deployment_version = WorkerDeploymentVersion._from_bridge(
186
191
  activation.deployment_version_for_current_task
@@ -290,7 +295,12 @@ module Temporalio
290
295
  patch_id = patch_id.to_s
291
296
  @patches_memoized ||= {}
292
297
  @patches_memoized.fetch(patch_id) do
293
- patched = !replaying || @patches_notified.include?(patch_id)
298
+ # Only fresh, non-replay patches can consult rollout policy; replay and deprecation must follow history.
299
+ patched = if deprecated || replaying || @patches_notified.include?(patch_id)
300
+ !replaying || @patches_notified.include?(patch_id)
301
+ else
302
+ patch_activated?(patch_id)
303
+ end
294
304
  @patches_memoized[patch_id] = patched
295
305
  if patched
296
306
  add_command(
@@ -303,6 +313,20 @@ module Temporalio
303
313
  end
304
314
  end
305
315
 
316
+ def patch_activated?(patch_id)
317
+ return true unless patch_activation_callback
318
+
319
+ patched = with_context_frozen(in_query_or_validator: false, random_disabled: true) do
320
+ patch_activation_callback.call(Temporalio::Worker::PatchActivationInput.new(
321
+ workflow_info: info,
322
+ patch_id:
323
+ ))
324
+ end
325
+ return patched if patched == true || patched == false
326
+
327
+ raise TypeError, 'Patch activation callback must return true or false'
328
+ end
329
+
306
330
  def metric_meter
307
331
  @metric_meter ||= ReplaySafeMetric::Meter.new(
308
332
  @runtime_metric_meter.with_additional_attributes(
@@ -642,6 +666,7 @@ module Temporalio
642
666
  hints: err.arg_hints || defn_arg_hints),
643
667
  workflow_run_timeout: ProtoUtils.seconds_to_duration(err.run_timeout),
644
668
  workflow_task_timeout: ProtoUtils.seconds_to_duration(err.task_timeout),
669
+ backoff_start_interval: ProtoUtils.seconds_to_duration(err.backoff_start_interval),
645
670
  memo: ProtoUtils.memo_to_proto_hash(err.memo, payload_converter),
646
671
  headers: ProtoUtils.headers_to_proto_hash(err.headers, payload_converter),
647
672
  search_attributes: err.search_attributes&._to_proto,
@@ -683,13 +708,18 @@ module Temporalio
683
708
  @definition_options.failure_exception_types&.any? { |cls| err.is_a?(cls) }
684
709
  end
685
710
 
686
- def with_context_frozen(in_query_or_validator:, &)
711
+ def with_context_frozen(in_query_or_validator:, random_disabled: false, &)
712
+ previous_context_frozen = @context_frozen
713
+ previous_in_query_or_validator = @in_query_or_validator
714
+ previous_random_disabled = @random_disabled
687
715
  @context_frozen = true
688
716
  @in_query_or_validator = in_query_or_validator
717
+ @random_disabled = random_disabled
689
718
  yield
690
719
  ensure
691
- @context_frozen = false
692
- @in_query_or_validator = false
720
+ @context_frozen = previous_context_frozen
721
+ @in_query_or_validator = previous_in_query_or_validator
722
+ @random_disabled = previous_random_disabled
693
723
  end
694
724
 
695
725
  def convert_handler_args(payload_array:, defn:)
@@ -74,6 +74,7 @@ module Temporalio
74
74
  workflow_failure_exception_types:,
75
75
  workflow_payload_codec_thread_pool:,
76
76
  unsafe_workflow_io_enabled:,
77
+ patch_activation_callback:,
77
78
  debug_mode:,
78
79
  assert_valid_local_activity:, on_eviction: nil
79
80
  )
@@ -118,6 +119,7 @@ module Temporalio
118
119
  t
119
120
  end.freeze,
120
121
  unsafe_workflow_io_enabled:,
122
+ patch_activation_callback:,
121
123
  assert_valid_local_activity:
122
124
  )
123
125
  @state.on_eviction = on_eviction if on_eviction
@@ -145,6 +147,8 @@ module Temporalio
145
147
  @state.logger.error(e)
146
148
  end
147
149
 
150
+ # Returns whether completion was submitted to the bridge
151
+ # rubocop:disable Naming/PredicateMethod
148
152
  def handle_activation_complete(runner:, activation_completion:, encoded:, completion_complete_queue:)
149
153
  if @payload_encoding_visitor && !encoded
150
154
  if Fiber.current_scheduler
@@ -154,12 +158,15 @@ module Temporalio
154
158
  encode_activation_completion(runner, activation_completion)
155
159
  end
156
160
  end
161
+ false
157
162
  else
158
163
  @state.bridge_worker.async_complete_workflow_activation(
159
164
  activation_completion.run_id, activation_completion.to_proto, completion_complete_queue
160
165
  )
166
+ true
161
167
  end
162
168
  end
169
+ # rubocop:enable Naming/PredicateMethod
163
170
 
164
171
  def on_shutdown_complete
165
172
  @state.evict_all
@@ -194,7 +201,7 @@ module Temporalio
194
201
  attr_reader :workflow_definitions, :bridge_worker, :logger, :metric_meter, :data_converter, :deadlock_timeout,
195
202
  :illegal_calls, :namespace, :task_queue, :disable_eager_activity_execution,
196
203
  :workflow_interceptors, :workflow_failure_exception_types, :unsafe_workflow_io_enabled,
197
- :assert_valid_local_activity
204
+ :patch_activation_callback, :assert_valid_local_activity
198
205
 
199
206
  attr_writer :on_eviction
200
207
 
@@ -202,7 +209,7 @@ module Temporalio
202
209
  workflow_definitions:, bridge_worker:, logger:, metric_meter:, data_converter:, deadlock_timeout:,
203
210
  illegal_calls:, namespace:, task_queue:, disable_eager_activity_execution:,
204
211
  workflow_interceptors:, workflow_failure_exception_types:, unsafe_workflow_io_enabled:,
205
- assert_valid_local_activity:
212
+ patch_activation_callback:, assert_valid_local_activity:
206
213
  )
207
214
  @workflow_definitions = workflow_definitions
208
215
  @bridge_worker = bridge_worker
@@ -217,6 +224,7 @@ module Temporalio
217
224
  @workflow_interceptors = workflow_interceptors
218
225
  @workflow_failure_exception_types = workflow_failure_exception_types
219
226
  @unsafe_workflow_io_enabled = unsafe_workflow_io_enabled
227
+ @patch_activation_callback = patch_activation_callback
220
228
  @assert_valid_local_activity = assert_valid_local_activity
221
229
 
222
230
  @running_workflows = {}
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Temporalio
4
+ module Internal
5
+ # Marker for internal exceptions that must escape workflow fibers and fail the workflow task.
6
+ module WorkflowTaskFailureError
7
+ end
8
+ end
9
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Temporalio
4
- VERSION = '1.5.0'
4
+ VERSION = '1.6.0'
5
5
  end
@@ -23,7 +23,7 @@ module Temporalio
23
23
  end
24
24
 
25
25
  # @see ActivityExecutor.initialize_activity
26
- def execute_activity(_defn, &)
26
+ def execute_activity(defn, &) # rubocop:disable Lint/UnusedMethodArgument
27
27
  ::Fiber.schedule(&)
28
28
  end
29
29
 
@@ -20,7 +20,7 @@ module Temporalio
20
20
  end
21
21
 
22
22
  # @see ActivityExecutor.execute_activity
23
- def execute_activity(_defn, &)
23
+ def execute_activity(defn, &) # rubocop:disable Lint/UnusedMethodArgument
24
24
  @thread_pool.execute(&)
25
25
  end
26
26
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'temporalio/internal/google_protobuf'
4
+
3
5
  module Temporalio
4
6
  class Worker
5
7
  # Custom validator for validating illegal workflow calls.
@@ -44,7 +46,7 @@ module Temporalio
44
46
  def self.known_safe_mutex_validator
45
47
  @known_safe_mutex_validator ||= IllegalWorkflowCallValidator.new do
46
48
  # Only Google Protobuf use of Mutex is known to be safe, fail unless any caller location path has protobuf
47
- raise 'disallowed' unless caller_locations&.any? { |loc| loc.path&.include?('google/protobuf/') }
49
+ raise 'disallowed' unless ::Temporalio::Internal::GoogleProtobuf.in_call_stack?(caller_locations)
48
50
  end
49
51
  end
50
52
 
@@ -4,6 +4,7 @@ require 'etc'
4
4
  require 'temporalio/internal/bridge/api'
5
5
  require 'temporalio/internal/proto_utils'
6
6
  require 'temporalio/internal/worker/workflow_instance'
7
+ require 'temporalio/internal/workflow_task_failure_error'
7
8
  require 'temporalio/scoped_logger'
8
9
  require 'temporalio/worker/thread_pool'
9
10
  require 'temporalio/worker/workflow_executor'
@@ -215,6 +216,7 @@ module Temporalio
215
216
  illegal_calls: worker_state.illegal_calls,
216
217
  workflow_failure_exception_types: worker_state.workflow_failure_exception_types,
217
218
  unsafe_workflow_io_enabled: worker_state.unsafe_workflow_io_enabled,
219
+ patch_activation_callback: worker_state.patch_activation_callback,
218
220
  assert_valid_local_activity: worker_state.assert_valid_local_activity
219
221
  )
220
222
  )
@@ -229,7 +231,9 @@ module Temporalio
229
231
  private_constant :Worker
230
232
 
231
233
  # Error raised when a processing a workflow task takes more than the expected amount of time.
232
- class DeadlockError < Exception; end # rubocop:disable Lint/InheritException
234
+ class DeadlockError < Exception # rubocop:disable Lint/InheritException
235
+ include Internal::WorkflowTaskFailureError
236
+ end
233
237
  end
234
238
  end
235
239
  end
@@ -264,6 +264,7 @@ module Temporalio
264
264
  workflow_failure_exception_types: options.workflow_failure_exception_types,
265
265
  workflow_payload_codec_thread_pool: options.workflow_payload_codec_thread_pool,
266
266
  unsafe_workflow_io_enabled: options.unsafe_workflow_io_enabled,
267
+ patch_activation_callback: nil,
267
268
  debug_mode: options.debug_mode,
268
269
  on_eviction: proc { |_, remove_job| @last_workflow_remove_job = remove_job }, # steep:ignore
269
270
  assert_valid_local_activity: ->(_) {}
@@ -271,6 +272,8 @@ module Temporalio
271
272
 
272
273
  # Create the runner
273
274
  @runner = Internal::Worker::MultiRunner.new(workers: [self], shutdown_signals: [])
275
+ @pending_workflow_activations = 0
276
+ @pending_workflow_activation_completions = 0
274
277
  end
275
278
 
276
279
  # Replay a workflow history.
@@ -295,11 +298,12 @@ module Temporalio
295
298
  history.workflow_id, Api::History::V1::History.new(events: history.events).to_proto
296
299
  )
297
300
 
298
- # Process events until workflow complete
299
- until @last_workflow_remove_job
301
+ # Process events until workflow complete and all completions submitted to core have finished.
302
+ until @last_workflow_remove_job && workflow_activation_work_drained?
300
303
  event = @runner.next_event
301
304
  case event
302
305
  when Internal::Worker::MultiRunner::Event::PollSuccess
306
+ @pending_workflow_activations += 1
303
307
  @workflow_worker.handle_activation(
304
308
  runner: @runner,
305
309
  activation: Internal::Bridge::Api::WorkflowActivation::WorkflowActivation.decode(event.bytes),
@@ -308,14 +312,17 @@ module Temporalio
308
312
  when Internal::Worker::MultiRunner::Event::WorkflowActivationDecoded
309
313
  @workflow_worker.handle_activation(runner: @runner, activation: event.activation, decoded: true)
310
314
  when Internal::Worker::MultiRunner::Event::WorkflowActivationComplete
311
- @workflow_worker.handle_activation_complete(
315
+ if @workflow_worker.handle_activation_complete(
312
316
  runner: @runner,
313
317
  activation_completion: event.activation_completion,
314
318
  encoded: event.encoded,
315
319
  completion_complete_queue: event.completion_complete_queue
316
320
  )
321
+ @pending_workflow_activations -= 1
322
+ @pending_workflow_activation_completions += 1
323
+ end
317
324
  when Internal::Worker::MultiRunner::Event::WorkflowActivationCompletionComplete
318
- # Ignore
325
+ @pending_workflow_activation_completions -= 1
319
326
  else
320
327
  raise "Unexpected event: #{event}"
321
328
  end
@@ -365,6 +372,12 @@ module Temporalio
365
372
  def _wait_all_complete
366
373
  # Do nothing
367
374
  end
375
+
376
+ private
377
+
378
+ def workflow_activation_work_drained?
379
+ @pending_workflow_activations.zero? && @pending_workflow_activation_completions.zero?
380
+ end
368
381
  end
369
382
  end
370
383
  end