temporalio 0.0.2 → 0.1.1

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 (320) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -23
  3. data/bridge/Cargo.lock +185 -76
  4. data/bridge/Cargo.toml +6 -4
  5. data/bridge/sdk-core/README.md +19 -6
  6. data/bridge/sdk-core/client/src/lib.rs +215 -39
  7. data/bridge/sdk-core/client/src/metrics.rs +17 -8
  8. data/bridge/sdk-core/client/src/raw.rs +4 -4
  9. data/bridge/sdk-core/client/src/retry.rs +32 -20
  10. data/bridge/sdk-core/core/Cargo.toml +22 -9
  11. data/bridge/sdk-core/core/src/abstractions.rs +203 -14
  12. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +76 -41
  13. data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
  14. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +204 -83
  15. data/bridge/sdk-core/core/src/core_tests/queries.rs +3 -4
  16. data/bridge/sdk-core/core/src/core_tests/workers.rs +1 -3
  17. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +397 -54
  18. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
  19. data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
  20. data/bridge/sdk-core/core/src/lib.rs +16 -9
  21. data/bridge/sdk-core/core/src/telemetry/log_export.rs +1 -1
  22. data/bridge/sdk-core/core/src/telemetry/metrics.rs +69 -35
  23. data/bridge/sdk-core/core/src/telemetry/mod.rs +29 -13
  24. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +17 -12
  25. data/bridge/sdk-core/core/src/test_help/mod.rs +62 -12
  26. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
  27. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
  28. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +352 -122
  29. data/bridge/sdk-core/core/src/worker/activities.rs +233 -157
  30. data/bridge/sdk-core/core/src/worker/client/mocks.rs +22 -2
  31. data/bridge/sdk-core/core/src/worker/client.rs +18 -2
  32. data/bridge/sdk-core/core/src/worker/mod.rs +165 -58
  33. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
  34. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
  35. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +856 -277
  36. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +100 -43
  37. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +7 -7
  38. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +5 -4
  39. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +87 -27
  40. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +5 -4
  41. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +5 -4
  42. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +5 -4
  43. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +137 -62
  44. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +25 -17
  45. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +7 -6
  46. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +103 -152
  47. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +7 -7
  48. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -9
  49. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
  50. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -7
  51. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +5 -16
  52. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +201 -121
  53. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +11 -14
  54. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +30 -15
  55. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1026 -376
  56. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +460 -384
  57. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
  58. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
  59. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
  60. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
  61. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
  62. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +448 -718
  63. data/bridge/sdk-core/core-api/Cargo.toml +2 -1
  64. data/bridge/sdk-core/core-api/src/errors.rs +1 -34
  65. data/bridge/sdk-core/core-api/src/lib.rs +6 -2
  66. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -6
  67. data/bridge/sdk-core/core-api/src/worker.rs +14 -1
  68. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
  69. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
  70. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  71. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +5 -17
  72. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +11 -0
  73. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +1 -6
  74. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +6 -6
  75. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +5 -0
  76. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +22 -6
  77. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +48 -19
  78. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -0
  79. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +3 -0
  80. data/bridge/sdk-core/protos/api_upstream/temporal/api/{enums/v1/interaction_type.proto → protocol/v1/message.proto} +29 -11
  81. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
  82. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +111 -0
  83. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +59 -28
  84. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +2 -2
  85. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
  86. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
  87. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
  88. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
  89. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
  90. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
  91. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +7 -0
  92. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +1 -0
  93. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
  94. data/bridge/sdk-core/sdk/Cargo.toml +3 -2
  95. data/bridge/sdk-core/sdk/src/lib.rs +87 -20
  96. data/bridge/sdk-core/sdk/src/workflow_future.rs +9 -8
  97. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
  98. data/bridge/sdk-core/sdk-core-protos/build.rs +36 -1
  99. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +100 -87
  100. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +5 -1
  101. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +175 -57
  102. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
  103. data/bridge/sdk-core/test-utils/Cargo.toml +3 -1
  104. data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
  105. data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
  106. data/bridge/sdk-core/test-utils/src/lib.rs +82 -23
  107. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
  108. data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
  109. data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
  110. data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
  111. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
  112. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -3
  113. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +218 -16
  114. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -47
  115. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
  116. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
  117. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
  118. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
  119. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
  120. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
  121. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
  122. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
  123. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +72 -191
  124. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +1 -0
  125. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
  126. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +12 -7
  127. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
  128. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
  129. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
  130. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
  131. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
  132. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +10 -11
  133. data/bridge/sdk-core/tests/main.rs +3 -13
  134. data/bridge/sdk-core/tests/runner.rs +75 -36
  135. data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
  136. data/bridge/src/connection.rs +41 -25
  137. data/bridge/src/lib.rs +269 -14
  138. data/bridge/src/runtime.rs +1 -1
  139. data/bridge/src/test_server.rs +153 -0
  140. data/bridge/src/worker.rs +89 -16
  141. data/lib/gen/temporal/api/command/v1/message_pb.rb +4 -18
  142. data/lib/gen/temporal/api/common/v1/message_pb.rb +4 -0
  143. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +1 -3
  144. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +3 -3
  145. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +2 -0
  146. data/lib/gen/temporal/api/enums/v1/update_pb.rb +6 -4
  147. data/lib/gen/temporal/api/history/v1/message_pb.rb +27 -19
  148. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +1 -0
  149. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +3 -0
  150. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
  151. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
  152. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
  153. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
  154. data/lib/gen/temporal/api/update/v1/message_pb.rb +72 -0
  155. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +26 -16
  156. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
  157. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
  158. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
  159. data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
  160. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
  161. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
  162. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +27 -21
  163. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +28 -24
  164. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
  165. data/lib/temporalio/activity/context.rb +13 -8
  166. data/lib/temporalio/activity/info.rb +1 -1
  167. data/lib/temporalio/bridge/connect_options.rb +15 -0
  168. data/lib/temporalio/bridge/retry_config.rb +24 -0
  169. data/lib/temporalio/bridge/tls_options.rb +19 -0
  170. data/lib/temporalio/bridge.rb +1 -1
  171. data/lib/temporalio/client/implementation.rb +8 -8
  172. data/lib/temporalio/connection/retry_config.rb +44 -0
  173. data/lib/temporalio/connection/service.rb +20 -0
  174. data/lib/temporalio/connection/test_service.rb +92 -0
  175. data/lib/temporalio/connection/tls_options.rb +51 -0
  176. data/lib/temporalio/connection/workflow_service.rb +731 -0
  177. data/lib/temporalio/connection.rb +55 -720
  178. data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
  179. data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
  180. data/lib/temporalio/interceptor/chain.rb +5 -5
  181. data/lib/temporalio/interceptor/client.rb +8 -4
  182. data/lib/temporalio/interceptor.rb +22 -0
  183. data/lib/temporalio/retry_policy.rb +13 -3
  184. data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
  185. data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
  186. data/lib/temporalio/testing/workflow_environment.rb +112 -0
  187. data/lib/temporalio/testing.rb +175 -0
  188. data/lib/temporalio/version.rb +1 -1
  189. data/lib/temporalio/worker/activity_runner.rb +26 -4
  190. data/lib/temporalio/worker/activity_worker.rb +44 -18
  191. data/lib/temporalio/worker/sync_worker.rb +47 -11
  192. data/lib/temporalio/worker.rb +27 -21
  193. data/lib/temporalio/workflow/async.rb +46 -0
  194. data/lib/temporalio/workflow/future.rb +138 -0
  195. data/lib/temporalio/workflow/info.rb +76 -0
  196. data/lib/thermite_patch.rb +10 -0
  197. data/sig/async.rbs +17 -0
  198. data/sig/protobuf.rbs +16 -0
  199. data/sig/protos/dependencies/gogoproto/gogo.rbs +914 -0
  200. data/sig/protos/google/protobuf/any.rbs +157 -0
  201. data/sig/protos/google/protobuf/descriptor.rbs +2825 -0
  202. data/sig/protos/google/protobuf/duration.rbs +114 -0
  203. data/sig/protos/google/protobuf/empty.rbs +36 -0
  204. data/sig/protos/google/protobuf/timestamp.rbs +145 -0
  205. data/sig/protos/google/protobuf/wrappers.rbs +358 -0
  206. data/sig/protos/temporal/api/batch/v1/message.rbs +300 -0
  207. data/sig/protos/temporal/api/command/v1/message.rbs +1399 -0
  208. data/sig/protos/temporal/api/common/v1/message.rbs +528 -0
  209. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +79 -0
  210. data/sig/protos/temporal/api/enums/v1/command_type.rbs +68 -0
  211. data/sig/protos/temporal/api/enums/v1/common.rbs +118 -0
  212. data/sig/protos/temporal/api/enums/v1/event_type.rbs +264 -0
  213. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +277 -0
  214. data/sig/protos/temporal/api/enums/v1/namespace.rbs +108 -0
  215. data/sig/protos/temporal/api/enums/v1/query.rbs +81 -0
  216. data/sig/protos/temporal/api/enums/v1/reset.rbs +44 -0
  217. data/sig/protos/temporal/api/enums/v1/schedule.rbs +72 -0
  218. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +92 -0
  219. data/sig/protos/temporal/api/enums/v1/update.rbs +64 -0
  220. data/sig/protos/temporal/api/enums/v1/workflow.rbs +371 -0
  221. data/sig/protos/temporal/api/errordetails/v1/message.rbs +551 -0
  222. data/sig/protos/temporal/api/failure/v1/message.rbs +581 -0
  223. data/sig/protos/temporal/api/filter/v1/message.rbs +171 -0
  224. data/sig/protos/temporal/api/history/v1/message.rbs +4609 -0
  225. data/sig/protos/temporal/api/namespace/v1/message.rbs +410 -0
  226. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +643 -0
  227. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +17 -0
  228. data/sig/protos/temporal/api/protocol/v1/message.rbs +84 -0
  229. data/sig/protos/temporal/api/query/v1/message.rbs +182 -0
  230. data/sig/protos/temporal/api/replication/v1/message.rbs +148 -0
  231. data/sig/protos/temporal/api/schedule/v1/message.rbs +1488 -0
  232. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +110 -0
  233. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +486 -0
  234. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +249 -0
  235. data/sig/protos/temporal/api/testservice/v1/service.rbs +15 -0
  236. data/sig/protos/temporal/api/update/v1/message.rbs +489 -0
  237. data/sig/protos/temporal/api/version/v1/message.rbs +184 -0
  238. data/sig/protos/temporal/api/workflow/v1/message.rbs +824 -0
  239. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +7250 -0
  240. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +22 -0
  241. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +380 -0
  242. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +386 -0
  243. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +323 -0
  244. data/sig/protos/temporal/sdk/core/common/common.rbs +62 -0
  245. data/sig/protos/temporal/sdk/core/core_interface.rbs +101 -0
  246. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +119 -0
  247. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +1473 -0
  248. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +1784 -0
  249. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +180 -0
  250. data/sig/ruby.rbs +12 -0
  251. data/sig/temporalio/activity/context.rbs +29 -0
  252. data/sig/temporalio/activity/info.rbs +43 -0
  253. data/sig/temporalio/activity.rbs +19 -0
  254. data/sig/temporalio/bridge/connect_options.rbs +19 -0
  255. data/sig/temporalio/bridge/error.rbs +8 -0
  256. data/sig/temporalio/bridge/retry_config.rbs +21 -0
  257. data/sig/temporalio/bridge/tls_options.rbs +17 -0
  258. data/sig/temporalio/bridge.rbs +71 -0
  259. data/sig/temporalio/client/implementation.rbs +38 -0
  260. data/sig/temporalio/client/workflow_handle.rbs +41 -0
  261. data/sig/temporalio/client.rbs +35 -0
  262. data/sig/temporalio/connection/retry_config.rbs +37 -0
  263. data/sig/temporalio/connection/service.rbs +14 -0
  264. data/sig/temporalio/connection/test_service.rbs +13 -0
  265. data/sig/temporalio/connection/tls_options.rbs +43 -0
  266. data/sig/temporalio/connection/workflow_service.rbs +48 -0
  267. data/sig/temporalio/connection.rbs +30 -0
  268. data/sig/temporalio/data_converter.rbs +35 -0
  269. data/sig/temporalio/error/failure.rbs +121 -0
  270. data/sig/temporalio/error/workflow_failure.rbs +9 -0
  271. data/sig/temporalio/errors.rbs +36 -0
  272. data/sig/temporalio/failure_converter/base.rbs +12 -0
  273. data/sig/temporalio/failure_converter/basic.rbs +86 -0
  274. data/sig/temporalio/failure_converter.rbs +5 -0
  275. data/sig/temporalio/interceptor/activity_inbound.rbs +21 -0
  276. data/sig/temporalio/interceptor/activity_outbound.rbs +10 -0
  277. data/sig/temporalio/interceptor/chain.rbs +24 -0
  278. data/sig/temporalio/interceptor/client.rbs +148 -0
  279. data/sig/temporalio/interceptor.rbs +6 -0
  280. data/sig/temporalio/payload_codec/base.rbs +12 -0
  281. data/sig/temporalio/payload_converter/base.rbs +12 -0
  282. data/sig/temporalio/payload_converter/bytes.rbs +9 -0
  283. data/sig/temporalio/payload_converter/composite.rbs +19 -0
  284. data/sig/temporalio/payload_converter/encoding_base.rbs +14 -0
  285. data/sig/temporalio/payload_converter/json.rbs +9 -0
  286. data/sig/temporalio/payload_converter/nil.rbs +9 -0
  287. data/sig/temporalio/payload_converter.rbs +5 -0
  288. data/sig/temporalio/retry_policy.rbs +25 -0
  289. data/sig/temporalio/retry_state.rbs +20 -0
  290. data/sig/temporalio/runtime.rbs +12 -0
  291. data/sig/temporalio/testing/time_skipping_handle.rbs +15 -0
  292. data/sig/temporalio/testing/time_skipping_interceptor.rbs +13 -0
  293. data/sig/temporalio/testing/workflow_environment.rbs +22 -0
  294. data/sig/temporalio/testing.rbs +35 -0
  295. data/sig/temporalio/timeout_type.rbs +15 -0
  296. data/sig/temporalio/version.rbs +3 -0
  297. data/sig/temporalio/worker/activity_runner.rbs +35 -0
  298. data/sig/temporalio/worker/activity_worker.rbs +44 -0
  299. data/sig/temporalio/worker/reactor.rbs +22 -0
  300. data/sig/temporalio/worker/runner.rbs +21 -0
  301. data/sig/temporalio/worker/sync_worker.rbs +23 -0
  302. data/sig/temporalio/worker/thread_pool_executor.rbs +23 -0
  303. data/sig/temporalio/worker.rbs +46 -0
  304. data/sig/temporalio/workflow/async.rbs +9 -0
  305. data/sig/temporalio/workflow/execution_info.rbs +55 -0
  306. data/sig/temporalio/workflow/execution_status.rbs +21 -0
  307. data/sig/temporalio/workflow/future.rbs +40 -0
  308. data/sig/temporalio/workflow/id_reuse_policy.rbs +15 -0
  309. data/sig/temporalio/workflow/info.rbs +55 -0
  310. data/sig/temporalio/workflow/query_reject_condition.rbs +14 -0
  311. data/sig/temporalio.rbs +2 -0
  312. data/sig/thermite_patch.rbs +15 -0
  313. data/temporalio.gemspec +6 -4
  314. metadata +183 -17
  315. data/bridge/sdk-core/Cargo.lock +0 -2606
  316. data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +0 -87
  317. data/lib/bridge.so +0 -0
  318. data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +0 -25
  319. data/lib/gen/temporal/api/interaction/v1/message_pb.rb +0 -49
  320. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
@@ -0,0 +1,19 @@
1
+ module Temporalio
2
+ module PayloadConverter
3
+ class Composite < Base
4
+ class ConverterNotFound < Temporalio::Error
5
+ end
6
+
7
+ class EncodingNotSet < Temporalio::Error
8
+ end
9
+
10
+ include _PayloadConverter
11
+
12
+ def initialize: (*_EncodingPayloadConverter converters) -> void
13
+
14
+ private
15
+
16
+ attr_reader converters: Hash[String, _EncodingPayloadConverter]
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,14 @@
1
+ module Temporalio
2
+ module PayloadConverter
3
+ interface _EncodingPayloadConverter
4
+ def class: -> Class
5
+ def encoding: -> String
6
+ def to_payload: (untyped) -> Temporalio::Api::Common::V1::Payload?
7
+ def from_payload: (Temporalio::Api::Common::V1::Payload) -> untyped
8
+ end
9
+
10
+ class EncodingBase
11
+ include _EncodingPayloadConverter
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ module Temporalio
2
+ module PayloadConverter
3
+ class JSON
4
+ include _EncodingPayloadConverter
5
+
6
+ ENCODING: String
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Temporalio
2
+ module PayloadConverter
3
+ class Nil
4
+ include _EncodingPayloadConverter
5
+
6
+ ENCODING: String
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ module Temporalio
2
+ module PayloadConverter
3
+ DEFAULT: _PayloadConverter
4
+ end
5
+ end
@@ -0,0 +1,25 @@
1
+ module Temporalio
2
+ class RetryPolicy
3
+ Invalid: Temporalio::Error
4
+
5
+ attr_reader initial_interval: Integer
6
+ attr_reader backoff: Float
7
+ attr_reader max_interval: Integer?
8
+ attr_reader max_attempts: Integer
9
+ attr_reader non_retriable_errors: Array[String]
10
+
11
+ def self.from_proto: (Temporalio::Api::Common::V1::RetryPolicy) -> RetryPolicy
12
+
13
+ def initialize: (
14
+ ?initial_interval: Integer,
15
+ ?backoff: Float,
16
+ ?max_interval: Integer?,
17
+ ?max_attempts: Integer,
18
+ ?non_retriable_errors: Array[Class | String]
19
+ ) -> void
20
+
21
+ def validate!: -> nil
22
+
23
+ def to_proto: -> Temporalio::Api::Common::V1::RetryPolicy
24
+ end
25
+ end
@@ -0,0 +1,20 @@
1
+ module Temporalio
2
+ module RetryState
3
+ type values =
4
+ :IN_PROGRESS | :NON_RETRYABLE_FAILURE | :TIMEOUT | :MAXIMUM_ATTEMPTS_REACHED |
5
+ :RETRY_POLICY_NOT_SET | :INTERNAL_SERVER_ERROR | :CANCEL_REQUESTED
6
+
7
+ IN_PROGRESS: :IN_PROGRESS
8
+ NON_RETRYABLE_FAILURE: :NON_RETRYABLE_FAILURE
9
+ TIMEOUT: :TIMEOUT
10
+ MAXIMUM_ATTEMPTS_REACHED: :MAXIMUM_ATTEMPTS_REACHED
11
+ RETRY_POLICY_NOT_SET: :RETRY_POLICY_NOT_SET
12
+ INTERNAL_SERVER_ERROR: :INTERNAL_SERVER_ERROR
13
+ CANCEL_REQUESTED: :CANCEL_REQUESTED
14
+ STATES: Array[values]
15
+ API_MAP: Hash[Temporalio::Api::Enums::V1::RetryState::init, values]
16
+
17
+ def self.to_raw: (values) -> Temporalio::Api::Enums::V1::RetryState::init
18
+ def self.from_raw: (Temporalio::Api::Enums::V1::RetryState::init) -> values
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ module Temporalio
2
+ class Runtime
3
+ attr_reader core_runtime: Temporalio::Bridge::Runtime
4
+ attr_reader reactor: Temporalio::Worker::Reactor
5
+
6
+ @thread: Thread
7
+
8
+ def self.instance: () -> Runtime
9
+ def initialize: () -> void
10
+ def ensure_callback_loop: () -> void
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ module Temporalio
2
+ module Testing
3
+ class TimeSkippingHandle
4
+ extend Forwardable
5
+ include Temporalio::Client::WorkflowHandle::_Interface
6
+
7
+ def initialize: (Temporalio::Client::WorkflowHandle, Temporalio::Testing::WorkflowEnvironment) -> void
8
+
9
+ private
10
+
11
+ attr_reader handle: Temporalio::Client::WorkflowHandle
12
+ attr_reader env: Temporalio::Testing::WorkflowEnvironment
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module Temporalio
2
+ module Testing
3
+ class TimeSkippingInterceptor
4
+ include Temporalio::Interceptor::Client
5
+
6
+ def initialize: (Temporalio::Testing::WorkflowEnvironment env) -> void
7
+
8
+ private
9
+
10
+ attr_reader env: Temporalio::Testing::WorkflowEnvironment
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ module Temporalio
2
+ module Testing
3
+ class WorkflowEnvironment
4
+ attr_reader connection: Temporalio::Connection
5
+ attr_reader namespace: String
6
+
7
+ def initialize: (Temporalio::Bridge::TestServer server, Temporalio::Connection connection, String namespace) -> void
8
+ def client: -> Temporalio::Client
9
+ def sleep: (Integer duration) -> void
10
+ def current_time: -> Time?
11
+ def supports_time_skipping?: -> bool
12
+ def shutdown: -> void
13
+ def with_time_skipping: { () -> untyped } -> untyped
14
+
15
+ private
16
+
17
+ @client: Temporalio::Client
18
+
19
+ attr_reader server: Temporalio::Bridge::TestServer
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,35 @@
1
+ module Temporalio
2
+ module Testing
3
+ DEFAULT_NAMESPACE: String
4
+
5
+ def self.start_local_environment: (
6
+ ?namespace: String,
7
+ ?ip: String,
8
+ ?port: Integer?,
9
+ ?download_dir: String?,
10
+ ?ui: bool,
11
+ ?temporalite_existing_path: String?,
12
+ ?temporalite_database_filename: String?,
13
+ ?temporalite_log_format: String,
14
+ ?temporalite_log_level: String,
15
+ ?temporalite_download_version: String,
16
+ ?temporalite_extra_args: Array[String]
17
+ ) { (Temporalio::Testing::WorkflowEnvironment) -> untyped } -> (Temporalio::Testing::WorkflowEnvironment | untyped)
18
+
19
+ def self.start_time_skipping_environment: (
20
+ ?port: Integer?,
21
+ ?download_dir: String?,
22
+ ?test_server_existing_path: String?,
23
+ ?test_server_download_version: String,
24
+ ?test_server_extra_args: Array[String]
25
+ ) { (Temporalio::Testing::WorkflowEnvironment) -> untyped } -> (Temporalio::Testing::WorkflowEnvironment | untyped)
26
+
27
+ private
28
+
29
+ def self.init_workflow_environment_for: (Temporalio::Bridge::TestServer server, String namespace) -> WorkflowEnvironment
30
+ def self.run_server: (
31
+ Temporalio::Bridge::TestServer server,
32
+ Temporalio::Testing::WorkflowEnvironment env
33
+ ) { (Temporalio::Testing::WorkflowEnvironment) -> untyped } -> void
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ module Temporalio
2
+ module TimeoutType
3
+ type values = :START_TO_CLOSE | :SCHEDULE_TO_START | :SCHEDULE_TO_CLOSE | :HEARTBEAT
4
+
5
+ START_TO_CLOSE: :START_TO_CLOSE
6
+ SCHEDULE_TO_START: :SCHEDULE_TO_START
7
+ SCHEDULE_TO_CLOSE: :SCHEDULE_TO_CLOSE
8
+ HEARTBEAT: :HEARTBEAT
9
+ TYPES: Array[values]
10
+ API_MAP: Hash[Temporalio::Api::Enums::V1::TimeoutType::init, values]
11
+
12
+ def self.to_raw: (values) -> Temporalio::Api::Enums::V1::TimeoutType::init
13
+ def self.from_raw: (Temporalio::Api::Enums::V1::TimeoutType::init) -> values
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ module Temporalio
2
+ VERSION: String
3
+ end
@@ -0,0 +1,35 @@
1
+ module Temporalio
2
+ class Worker
3
+ class ActivityRunner
4
+ def initialize: (
5
+ singleton(Temporalio::Activity) activity_class,
6
+ Temporalio::Bridge::Api::ActivityTask::Start start,
7
+ String task_queue,
8
+ String task_token,
9
+ Temporalio::Worker::SyncWorker worker,
10
+ Temporalio::DataConverter converter,
11
+ Temporalio::Interceptor::Chain[Temporalio::Interceptor::ActivityInbound] inbound_interceptors,
12
+ Temporalio::Interceptor::Chain[Temporalio::Interceptor::ActivityOutbound] outbound_interceptors
13
+ ) -> void
14
+ def run: -> (Temporalio::Api::Common::V1::Payload | Temporalio::Api::Failure::V1::Failure)
15
+ def cancel: (String reason, by_request: bool) -> void
16
+
17
+ private
18
+
19
+ @context: Temporalio::Activity::Context
20
+
21
+ attr_reader activity_class: singleton(Temporalio::Activity)
22
+ attr_reader start: Temporalio::Bridge::Api::ActivityTask::Start
23
+ attr_reader task_queue: String
24
+ attr_reader task_token: String
25
+ attr_reader worker: Temporalio::Worker::SyncWorker
26
+ attr_reader converter: Temporalio::DataConverter
27
+ attr_reader inbound_interceptors: Temporalio::Interceptor::Chain[Temporalio::Interceptor::ActivityInbound]
28
+ attr_reader outbound_interceptors: Temporalio::Interceptor::Chain[Temporalio::Interceptor::ActivityOutbound]
29
+
30
+ def context: -> Temporalio::Activity::Context
31
+ def generate_activity_info: -> Temporalio::Activity::Info
32
+ def heartbeat: (*untyped) -> void
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,44 @@
1
+ module Temporalio
2
+ class Worker
3
+ class ActivityWorker
4
+ @cancelation_task: Async::Task?
5
+ @running: bool
6
+
7
+ def initialize: (
8
+ String task_queue,
9
+ Temporalio::Worker::SyncWorker worker,
10
+ Array[singleton(Temporalio::Activity)] activities,
11
+ Temporalio::DataConverter converter,
12
+ Array[Temporalio::Worker::worker_interceptor] interceptors,
13
+ Temporalio::Worker::_ActivityExecutor executor,
14
+ Integer? graceful_timeout
15
+ ) -> void
16
+ def run: (Async::Task reactor) -> void
17
+ def drain: -> void
18
+ def setup_graceful_shutdown_timer: (Temporalio::Worker::Reactor reactor) -> void
19
+
20
+ private
21
+
22
+ attr_reader task_queue: String
23
+ attr_reader worker: SyncWorker
24
+ attr_reader activities: Hash[String, singleton(Temporalio::Activity)]
25
+ attr_reader converter: Temporalio::DataConverter
26
+ attr_reader inbound_interceptors: Temporalio::Interceptor::Chain[Temporalio::Interceptor::ActivityInbound]
27
+ attr_reader outbound_interceptors: Temporalio::Interceptor::Chain[Temporalio::Interceptor::ActivityOutbound]
28
+ attr_reader executor: Temporalio::Worker::_ActivityExecutor
29
+ attr_reader graceful_timeout: Integer?
30
+ attr_reader running_activities: Hash[String, Temporalio::Worker::ActivityRunner]
31
+ attr_reader cancellations: Array[String]
32
+ attr_reader drain_queue: Thread::Queue
33
+
34
+ def running?: -> bool
35
+ def prepare_activities: (Array[singleton(Temporalio::Activity)] activities)
36
+ -> Hash[String, singleton(Temporalio::Activity)]
37
+ def lookup_activity: (String activity_type) -> singleton(Temporalio::Activity)
38
+ def run_activity: (String token, Temporalio::Bridge::Api::ActivityTask::Start task)
39
+ -> (Temporalio::Api::Common::V1::Payload | Temporalio::Api::Failure::V1::Failure)
40
+ def handle_start_activity: (String task_token, Temporalio::Bridge::Api::ActivityTask::Start task) -> void
41
+ def handle_cancel_activity: (String task_token, Temporalio::Bridge::Api::ActivityTask::Cancel task) -> void
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,22 @@
1
+ module Temporalio
2
+ class Worker
3
+ interface _Reactor
4
+ def async: { (Async::Task) -> void } -> void
5
+ end
6
+
7
+ class Reactor
8
+ include _Reactor
9
+
10
+ def initialize: -> void
11
+
12
+ private
13
+
14
+ attr_reader queue: Thread::Queue
15
+ attr_reader thread: Thread?
16
+ attr_reader mutex: Thread::Mutex
17
+
18
+ def ensure_reactor_thread: -> void
19
+ def run_loop: -> void
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ module Temporalio
2
+ class Worker
3
+ class Runner
4
+ @started: bool
5
+ @shutdown: bool
6
+
7
+ def initialize: (*Temporalio::Worker workers) -> void
8
+ def run: ?{ -> void } -> void
9
+ def shutdown: (?Exception exception) -> void
10
+
11
+ private
12
+
13
+ attr_reader workers: Array[Temporalio::Worker]
14
+ attr_reader mutex: Thread::Mutex
15
+ attr_reader thread: Thread
16
+
17
+ def running?: -> bool
18
+ def shutdown_workers: -> void
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ module Temporalio
2
+ class Worker
3
+ class SyncWorker
4
+ def initialize: (Temporalio::Bridge::Worker core_worker) -> void
5
+ def poll_activity_task: -> Temporalio::Bridge::Api::ActivityTask::ActivityTask
6
+ def complete_activity_task_with_success: (String task_token, Temporalio::Api::Common::V1::Payload payload) -> void
7
+ def complete_activity_task_with_failure: (String task_token, Temporalio::Api::Failure::V1::Failure failure) -> void
8
+ def complete_activity_task_with_cancellation: (String task_token, Temporalio::Api::Failure::V1::Failure failure) -> void
9
+ def record_activity_heartbeat: (String task_token, Array[Temporalio::Api::Common::V1::Payload] payloads) -> void
10
+ def poll_workflow_activation: -> Temporalio::Bridge::Api::WorkflowActivation::WorkflowActivation
11
+ def complete_workflow_activation_with_success: (String, Array[Temporalio::Bridge::Api::WorkflowCommands::WorkflowCommand]) -> void
12
+ def complete_workflow_activation_with_failure: (String, Temporalio::Api::Failure::V1::Failure) -> void
13
+
14
+ private
15
+
16
+ attr_reader core_worker: Temporalio::Bridge::Worker
17
+
18
+ def with_queue: { (^(untyped?, Exception?) -> void) -> void } -> untyped
19
+ def complete_activity_task: (String task_token, Temporalio::Bridge::Api::ActivityResult::ActivityExecutionResult result) -> void
20
+ def complete_workflow_activation: (Temporalio::Bridge::Api::WorkflowCompletion::WorkflowActivationCompletion) -> void
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module Temporalio
2
+ class Worker
3
+ interface _ActivityExecutor
4
+ def schedule: { -> untyped } -> void
5
+ def shutdown: -> void
6
+ end
7
+
8
+ class ThreadPoolExecutor
9
+ EXIT_SYMBOL: :exit
10
+
11
+ def initialize: (Integer size) -> void
12
+ def schedule: { -> untyped } -> void
13
+ def shutdown: -> void
14
+
15
+ private
16
+
17
+ attr_reader queue: Thread::Queue
18
+ attr_reader pool: Array[Thread]
19
+
20
+ def poll: -> void
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,46 @@
1
+ module Temporalio
2
+ class Worker
3
+ type worker_interceptor =
4
+ Temporalio::Interceptor::ActivityInbound |
5
+ Temporalio::Interceptor::ActivityOutbound
6
+
7
+ type interceptor_classes =
8
+ singleton(Temporalio::Interceptor::ActivityInbound) |
9
+ singleton(Temporalio::Interceptor::ActivityOutbound)
10
+
11
+ def self.run: (
12
+ *Temporalio::Worker workers,
13
+ ?shutdown_signals: Array[String]
14
+ ) ?{ -> void } -> void
15
+
16
+ def initialize: (
17
+ Temporalio::Connection connection,
18
+ String namespace,
19
+ String task_queue,
20
+ ?activities: Array[singleton(Temporalio::Activity)],
21
+ ?data_converter: Temporalio::DataConverter,
22
+ ?activity_executor: Temporalio::Worker::_ActivityExecutor?,
23
+ ?interceptors: Array[worker_interceptor],
24
+ ?max_concurrent_activities: Integer,
25
+ ?graceful_shutdown_timeout: Integer?
26
+ ) -> void
27
+ def run: ?{ -> void } -> void
28
+ def start: (?Temporalio::Worker::Runner? runner) -> void
29
+ def shutdown: (?Exception exception) -> void
30
+
31
+ def started?: -> bool
32
+ def running?: -> bool
33
+
34
+ private
35
+
36
+ @started: bool
37
+ @shutdown: bool
38
+
39
+ attr_reader mutex: Thread::Mutex
40
+ attr_reader runtime: Temporalio::Runtime
41
+ attr_reader activity_executor: Temporalio::Worker::_ActivityExecutor
42
+ attr_reader core_worker: Temporalio::Bridge::Worker
43
+ attr_reader activity_worker: Temporalio::Worker::ActivityWorker?
44
+ attr_reader runner: Temporalio::Worker::Runner?
45
+ end
46
+ end
@@ -0,0 +1,9 @@
1
+ module Temporalio
2
+ class Workflow
3
+ module Async
4
+ def self.run: [T] { () -> T } -> Temporalio::Workflow::Future[T]
5
+ def self.all: (*Temporalio::Workflow::Future[untyped] futures) -> Temporalio::Workflow::Future[nil]
6
+ def self.any: (*Temporalio::Workflow::Future[untyped] futures) -> Temporalio::Workflow::Future[Temporalio::Workflow::Future[untyped]]
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,55 @@
1
+ module Temporalio
2
+ class Workflow
3
+ EXECUTION_INFO_ATTRIBUTES: [:raw, :workflow, :id, :run_id, :task_queue, :status, :parent_id, :parent_run_id, :start_time, :close_time, :execution_time, :history_length, :memo, :search_attributes]
4
+
5
+ class ExecutionInfo < Struct[untyped]
6
+ attr_accessor raw(): Temporalio::Api::WorkflowService::V1::DescribeWorkflowExecutionResponse
7
+ attr_accessor workflow(): String
8
+ attr_accessor id(): String
9
+ attr_accessor run_id(): String
10
+ attr_accessor task_queue(): String
11
+ attr_accessor status(): Symbol
12
+ attr_accessor parent_id(): String
13
+ attr_accessor parent_run_id(): String
14
+ attr_accessor start_time(): Time
15
+ attr_accessor close_time(): Time
16
+ attr_accessor execution_time(): Time
17
+ attr_accessor history_length(): Integer
18
+ attr_accessor memo(): Hash[Symbol | String, untyped]
19
+ attr_accessor search_attributes(): Hash[Symbol | String, untyped]
20
+
21
+ def self.from_raw: (
22
+ Temporalio::Api::WorkflowService::V1::DescribeWorkflowExecutionResponse response,
23
+ Temporalio::DataConverter converter
24
+ ) -> ExecutionInfo
25
+
26
+ def self.new: (
27
+ raw: Temporalio::Api::WorkflowService::V1::DescribeWorkflowExecutionResponse,
28
+ workflow: String?,
29
+ id: String?,
30
+ run_id: String?,
31
+ task_queue: String?,
32
+ status: Symbol?,
33
+ parent_id: String?,
34
+ parent_run_id: String?,
35
+ start_time: Time?,
36
+ close_time: Time?,
37
+ execution_time: Time?,
38
+ history_length: Integer?,
39
+ memo: Hash[Symbol | String, untyped]?,
40
+ search_attributes: Hash[Symbol | String, untyped]?
41
+ ) -> ExecutionInfo
42
+
43
+ # NOTE: RBS doesn't understand define_method semantics
44
+ def self.status: () -> Symbol
45
+
46
+ def running?: -> bool
47
+ def completed?: -> bool
48
+ def failed?: -> bool
49
+ def canceled?: -> bool
50
+ def terminated?: -> bool
51
+ def continued_as_new?: -> bool
52
+ def timed_out?: -> bool
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,21 @@
1
+ module Temporalio
2
+ class Workflow
3
+ module ExecutionStatus
4
+ type values =
5
+ :RUNNING | :COMPLETED | :FAILED | :CANCELED | :TERMINATED | :CONTINUED_AS_NEW | :TIMED_OUT
6
+
7
+ RUNNING: :RUNNING
8
+ COMPLETED: :COMPLETED
9
+ FAILED: :FAILED
10
+ CANCELED: :CANCELED
11
+ TERMINATED: :TERMINATED
12
+ CONTINUED_AS_NEW: :CONTINUED_AS_NEW
13
+ TIMED_OUT: :TIMED_OUT
14
+ STATUSES: Array[values]
15
+ API_MAP: Hash[Temporalio::Api::Enums::V1::WorkflowExecutionStatus::init, values]
16
+
17
+ def self.to_raw: (values) -> Temporalio::Api::Enums::V1::WorkflowExecutionStatus::init
18
+ def self.from_raw: (Temporalio::Api::Enums::V1::WorkflowExecutionStatus::init) -> values
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,40 @@
1
+ module Temporalio
2
+ class Workflow
3
+ class Future[T]
4
+ class Rejected < StandardError
5
+ end
6
+
7
+ THREAD_KEY: Symbol
8
+
9
+ def self.current: -> Future[untyped]?
10
+ def self.current=: (Future[untyped]) -> void
11
+
12
+ def initialize: { (Future[T] future, ^(T) -> void resolve, ^(Exception) -> void reject) -> void } -> void
13
+ def then: [X] { (Future[T]) -> X } -> Future[X]
14
+ def on_cancel: { () -> untyped } -> void
15
+ def pending?: -> bool
16
+ def resolved?: -> bool
17
+ def rejected?: -> bool
18
+ def await: -> T?
19
+ def cancel: -> void
20
+
21
+ private
22
+
23
+ @resolved: bool
24
+ @rejected: bool
25
+ @cancel_requested: bool
26
+
27
+ attr_reader value: T?
28
+ attr_reader error: Exception
29
+ attr_reader blocked_fibers: Array[Fiber]
30
+ attr_reader callbacks: Array[^() -> void]
31
+ attr_reader cancel_callbacks: Array[^() -> void]
32
+
33
+ def cancel_requested?: -> bool
34
+ def run_callbacks: -> void
35
+ def resume_fibers: -> void
36
+ def resolve: (T value) -> void
37
+ def reject: (Exception error) -> void
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,15 @@
1
+ module Temporalio
2
+ class Workflow
3
+ class IDReusePolicy
4
+ ALLOW_DUPLICATE: :ALLOW_DUPLICATE
5
+ ALLOW_DUPLICATE_FAILED_ONLY: :ALLOW_DUPLICATE_FAILED_ONLY
6
+ REJECT_DUPLICATE: :REJECT_DUPLICATE
7
+ TERMINATE_IF_RUNNING: :TERMINATE_IF_RUNNING
8
+ POLICIES: Array[Symbol]
9
+ API_MAP: Hash[Temporalio::Api::Enums::V1::WorkflowIdReusePolicy::init, Symbol]
10
+
11
+ def self.to_raw: (Symbol policy) -> Temporalio::Api::Enums::V1::WorkflowIdReusePolicy::init?
12
+ def self.from_raw: (Temporalio::Api::Enums::V1::WorkflowIdReusePolicy::init raw_policy) -> Symbol
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,55 @@
1
+ module Temporalio
2
+ class Workflow
3
+ class ParentInfo < Struct[untyped]
4
+ attr_accessor namespace: String
5
+ attr_accessor run_id: String
6
+ attr_accessor workflow_id: String
7
+
8
+ def self.new: (
9
+ namespace: String?,
10
+ run_id: String?,
11
+ workflow_id: String?
12
+ ) -> ParentInfo
13
+ end
14
+
15
+ class Info < Struct[untyped]
16
+ attr_accessor Integer: String
17
+ attr_accessor continued_run_id: String
18
+ attr_accessor cron_schedule: String
19
+ attr_accessor execution_timeout: Float
20
+ attr_accessor headers: Hash[String, untyped]
21
+ attr_accessor namespace: String
22
+ attr_accessor parent: ParentInfo
23
+ attr_accessor raw_memo: Hash[String, untyped]
24
+ attr_accessor retry_policy: Temporalio::RetryPolicy
25
+ attr_accessor run_id: String
26
+ attr_accessor run_timeout: Float
27
+ attr_accessor search_attributes: Hash[String, String]
28
+ attr_accessor start_time: Time
29
+ attr_accessor task_queue: String
30
+ attr_accessor task_timeout: Float
31
+ attr_accessor workflow_id: String
32
+ attr_accessor workflow_type: String
33
+
34
+ def self.new: (
35
+ attempt: Integer,
36
+ continued_run_id: String,
37
+ cron_schedule: String,
38
+ execution_timeout: Float?,
39
+ headers: Hash[String, untyped],
40
+ namespace: String,
41
+ parent: ParentInfo,
42
+ raw_memo: Hash[String, untyped],
43
+ retry_policy: Temporalio::RetryPolicy?,
44
+ run_id: String,
45
+ run_timeout: Float?,
46
+ search_attributes: Hash[String, String],
47
+ start_time: Time?,
48
+ task_queue: String,
49
+ task_timeout: Float?,
50
+ workflow_id: String,
51
+ workflow_type: String
52
+ ) -> Info
53
+ end
54
+ end
55
+ end