@temporalio/core-bridge 1.13.2 → 1.14.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 (388) hide show
  1. package/Cargo.lock +135 -100
  2. package/Cargo.toml +3 -2
  3. package/{sdk-core/fsm/rustfsm_trait/LICENSE.txt → LICENSE} +5 -5
  4. package/README.md +0 -1
  5. package/bridge-macros/Cargo.toml +16 -0
  6. package/bridge-macros/src/derive_js_function.rs +126 -0
  7. package/bridge-macros/src/derive_tryfromjs.rs +138 -0
  8. package/bridge-macros/src/derive_tryintojs.rs +151 -0
  9. package/bridge-macros/src/lib.rs +42 -0
  10. package/lib/native.d.ts +13 -6
  11. package/package.json +6 -5
  12. package/releases/aarch64-apple-darwin/index.node +0 -0
  13. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  14. package/releases/x86_64-apple-darwin/index.node +0 -0
  15. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  16. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  17. package/sdk-core/.cargo/config.toml +9 -3
  18. package/sdk-core/.github/workflows/per-pr.yml +42 -5
  19. package/sdk-core/AGENTS.md +17 -19
  20. package/sdk-core/Cargo.toml +6 -7
  21. package/sdk-core/README.md +12 -15
  22. package/sdk-core/arch_docs/diagrams/deps.svg +102 -0
  23. package/sdk-core/{client → crates/client}/Cargo.toml +7 -9
  24. package/sdk-core/{client → crates/client}/src/lib.rs +110 -159
  25. package/sdk-core/{client → crates/client}/src/metrics.rs +1 -1
  26. package/sdk-core/{client → crates/client}/src/raw.rs +73 -44
  27. package/sdk-core/crates/client/src/request_extensions.rs +40 -0
  28. package/sdk-core/{client → crates/client}/src/retry.rs +24 -17
  29. package/sdk-core/crates/client/src/worker/mod.rs +1468 -0
  30. package/sdk-core/{client → crates/client}/src/workflow_handle/mod.rs +4 -4
  31. package/sdk-core/{core-api → crates/common}/Cargo.toml +17 -8
  32. package/sdk-core/crates/common/protos/api_cloud_upstream/VERSION +1 -0
  33. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/account/v1/message.proto +18 -0
  34. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto +38 -11
  35. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto +21 -4
  36. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto +6 -6
  37. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto +22 -0
  38. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/create-release.yml +5 -0
  39. package/sdk-core/{core-api → crates/common}/src/envconfig.rs +2 -2
  40. package/sdk-core/{core-api → crates/common}/src/errors.rs +8 -1
  41. package/sdk-core/{fsm/rustfsm_trait/src/lib.rs → crates/common/src/fsm_trait.rs} +1 -27
  42. package/sdk-core/{core-api → crates/common}/src/lib.rs +24 -9
  43. package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/canned_histories.rs +1 -1
  44. package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/history_builder.rs +1 -1
  45. package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/history_info.rs +2 -2
  46. package/sdk-core/{sdk-core-protos/src/lib.rs → crates/common/src/protos/mod.rs} +18 -17
  47. package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/test_utils.rs +1 -1
  48. package/sdk-core/{core-api → crates/common}/src/telemetry/metrics.rs +447 -50
  49. package/sdk-core/{core-api → crates/common}/src/telemetry.rs +3 -1
  50. package/sdk-core/{core-api → crates/common}/src/worker.rs +112 -18
  51. package/sdk-core/crates/common/tests/worker_task_types_test.rs +129 -0
  52. package/sdk-core/crates/macros/Cargo.toml +23 -0
  53. package/sdk-core/{fsm/rustfsm_procmacro → crates/macros}/src/lib.rs +6 -11
  54. package/sdk-core/{sdk → crates/sdk}/Cargo.toml +10 -10
  55. package/sdk-core/{sdk → crates/sdk}/src/activity_context.rs +8 -6
  56. package/sdk-core/{sdk → crates/sdk}/src/interceptors.rs +1 -1
  57. package/sdk-core/{sdk → crates/sdk}/src/lib.rs +42 -37
  58. package/sdk-core/{sdk → crates/sdk}/src/workflow_context/options.rs +2 -2
  59. package/sdk-core/{sdk → crates/sdk}/src/workflow_context.rs +21 -19
  60. package/sdk-core/{sdk → crates/sdk}/src/workflow_future.rs +1 -1
  61. package/sdk-core/{core → crates/sdk-core}/Cargo.toml +32 -25
  62. package/sdk-core/{tests → crates/sdk-core/benches}/workflow_replay_bench.rs +10 -10
  63. package/sdk-core/crates/sdk-core/machine_coverage/ActivityMachine_Coverage.puml +32 -0
  64. package/sdk-core/crates/sdk-core/machine_coverage/CancelExternalMachine_Coverage.puml +9 -0
  65. package/sdk-core/crates/sdk-core/machine_coverage/CancelWorkflowMachine_Coverage.puml +6 -0
  66. package/sdk-core/crates/sdk-core/machine_coverage/ChildWorkflowMachine_Coverage.puml +27 -0
  67. package/sdk-core/crates/sdk-core/machine_coverage/CompleteWorkflowMachine_Coverage.puml +6 -0
  68. package/sdk-core/crates/sdk-core/machine_coverage/ContinueAsNewWorkflowMachine_Coverage.puml +6 -0
  69. package/sdk-core/crates/sdk-core/machine_coverage/FailWorkflowMachine_Coverage.puml +6 -0
  70. package/sdk-core/crates/sdk-core/machine_coverage/LocalActivityMachine_Coverage.puml +23 -0
  71. package/sdk-core/crates/sdk-core/machine_coverage/ModifyWorkflowPropertiesMachine_Coverage.puml +5 -0
  72. package/sdk-core/crates/sdk-core/machine_coverage/PatchMachine_Coverage.puml +8 -0
  73. package/sdk-core/crates/sdk-core/machine_coverage/SignalExternalMachine_Coverage.puml +12 -0
  74. package/sdk-core/crates/sdk-core/machine_coverage/TimerMachine_Coverage.puml +13 -0
  75. package/sdk-core/crates/sdk-core/machine_coverage/UpdateMachine_Coverage.puml +19 -0
  76. package/sdk-core/crates/sdk-core/machine_coverage/UpsertSearchAttributesMachine_Coverage.puml +5 -0
  77. package/sdk-core/crates/sdk-core/machine_coverage/WorkflowTaskMachine_Coverage.puml +11 -0
  78. package/sdk-core/{core → crates/sdk-core}/src/abstractions.rs +62 -6
  79. package/sdk-core/crates/sdk-core/src/antithesis.rs +60 -0
  80. package/sdk-core/{core → crates/sdk-core}/src/core_tests/activity_tasks.rs +36 -31
  81. package/sdk-core/{core → crates/sdk-core}/src/core_tests/mod.rs +12 -9
  82. package/sdk-core/{core → crates/sdk-core}/src/core_tests/queries.rs +24 -21
  83. package/sdk-core/{core → crates/sdk-core}/src/core_tests/replay_flag.rs +10 -8
  84. package/sdk-core/{core → crates/sdk-core}/src/core_tests/updates.rs +17 -15
  85. package/sdk-core/{core → crates/sdk-core}/src/core_tests/workers.rs +242 -17
  86. package/sdk-core/{core → crates/sdk-core}/src/core_tests/workflow_cancels.rs +1 -1
  87. package/sdk-core/{core → crates/sdk-core}/src/core_tests/workflow_tasks.rs +126 -39
  88. package/sdk-core/{core → crates/sdk-core}/src/debug_client.rs +1 -1
  89. package/sdk-core/{core → crates/sdk-core}/src/ephemeral_server/mod.rs +3 -3
  90. package/sdk-core/crates/sdk-core/src/histfetch.rs +33 -0
  91. package/sdk-core/{core → crates/sdk-core}/src/internal_flags.rs +4 -3
  92. package/sdk-core/{core → crates/sdk-core}/src/lib.rs +85 -43
  93. package/sdk-core/{core → crates/sdk-core}/src/pollers/mod.rs +8 -6
  94. package/sdk-core/{core → crates/sdk-core}/src/pollers/poll_buffer.rs +51 -16
  95. package/sdk-core/{core → crates/sdk-core}/src/protosext/mod.rs +1 -1
  96. package/sdk-core/{core → crates/sdk-core}/src/protosext/protocol_messages.rs +1 -1
  97. package/sdk-core/{core → crates/sdk-core}/src/replay/mod.rs +14 -11
  98. package/sdk-core/{core → crates/sdk-core}/src/retry_logic.rs +19 -1
  99. package/sdk-core/{core → crates/sdk-core}/src/telemetry/log_export.rs +2 -2
  100. package/sdk-core/{core → crates/sdk-core}/src/telemetry/metrics.rs +80 -34
  101. package/sdk-core/{core → crates/sdk-core}/src/telemetry/mod.rs +4 -4
  102. package/sdk-core/{core → crates/sdk-core}/src/telemetry/otel.rs +1 -1
  103. package/sdk-core/{core → crates/sdk-core}/src/telemetry/prometheus_meter.rs +13 -13
  104. package/sdk-core/{core → crates/sdk-core}/src/telemetry/prometheus_server.rs +2 -2
  105. package/sdk-core/{core → crates/sdk-core}/src/test_help/integ_helpers.rs +127 -40
  106. package/sdk-core/{core → crates/sdk-core}/src/test_help/unit_helpers.rs +13 -11
  107. package/sdk-core/{core → crates/sdk-core}/src/worker/activities/activity_heartbeat_manager.rs +2 -2
  108. package/sdk-core/{core → crates/sdk-core}/src/worker/activities/local_activities.rs +14 -12
  109. package/sdk-core/{core → crates/sdk-core}/src/worker/activities.rs +21 -12
  110. package/sdk-core/{core → crates/sdk-core}/src/worker/client/mocks.rs +25 -12
  111. package/sdk-core/{core → crates/sdk-core}/src/worker/client.rs +164 -71
  112. package/sdk-core/crates/sdk-core/src/worker/heartbeat.rs +246 -0
  113. package/sdk-core/crates/sdk-core/src/worker/mod.rs +1462 -0
  114. package/sdk-core/{core → crates/sdk-core}/src/worker/nexus.rs +15 -14
  115. package/sdk-core/{core → crates/sdk-core}/src/worker/slot_provider.rs +12 -13
  116. package/sdk-core/{core → crates/sdk-core}/src/worker/tuner/fixed_size.rs +5 -1
  117. package/sdk-core/{core → crates/sdk-core}/src/worker/tuner/resource_based.rs +453 -57
  118. package/sdk-core/{core → crates/sdk-core}/src/worker/tuner.rs +21 -4
  119. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/driven_workflow.rs +1 -1
  120. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/history_update.rs +2 -2
  121. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/activity_state_machine.rs +147 -37
  122. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/cancel_external_state_machine.rs +8 -9
  123. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/cancel_nexus_op_state_machine.rs +14 -12
  124. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/cancel_workflow_state_machine.rs +6 -7
  125. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/child_workflow_state_machine.rs +31 -37
  126. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/complete_workflow_state_machine.rs +13 -8
  127. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +6 -7
  128. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/fail_workflow_state_machine.rs +6 -7
  129. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/local_activity_state_machine.rs +33 -30
  130. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/mod.rs +22 -17
  131. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +4 -3
  132. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/nexus_operation_state_machine.rs +20 -22
  133. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/patch_state_machine.rs +12 -11
  134. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/signal_external_state_machine.rs +9 -12
  135. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/timer_state_machine.rs +26 -13
  136. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/transition_coverage.rs +1 -2
  137. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/update_state_machine.rs +19 -13
  138. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +20 -18
  139. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/workflow_machines/local_acts.rs +1 -1
  140. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/workflow_machines.rs +61 -70
  141. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/workflow_task_state_machine.rs +13 -15
  142. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/managed_run.rs +55 -37
  143. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/mod.rs +166 -60
  144. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/run_cache.rs +10 -7
  145. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/wft_extraction.rs +4 -2
  146. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/wft_poller.rs +15 -4
  147. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/workflow_stream.rs +30 -16
  148. package/sdk-core/{tests → crates/sdk-core/tests}/c_bridge_smoke_test.c +1 -1
  149. package/sdk-core/{tests → crates/sdk-core/tests}/cloud_tests.rs +1 -1
  150. package/sdk-core/crates/sdk-core/tests/common/fake_grpc_server.rs +106 -0
  151. package/sdk-core/{tests → crates/sdk-core/tests}/common/http_proxy.rs +1 -1
  152. package/sdk-core/{tests → crates/sdk-core/tests}/common/mod.rs +93 -74
  153. package/sdk-core/{tests → crates/sdk-core/tests}/common/workflows.rs +4 -3
  154. package/sdk-core/crates/sdk-core/tests/fsm_procmacro.rs +6 -0
  155. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/dupe_transitions_fail.rs +1 -3
  156. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/dupe_transitions_fail.stderr +12 -0
  157. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/dynamic_dest_pass.rs +2 -4
  158. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/forgot_name_fail.rs +1 -3
  159. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/forgot_name_fail.stderr +4 -4
  160. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/handler_arg_pass.rs +2 -4
  161. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/handler_pass.rs +2 -4
  162. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/medium_complex_pass.rs +2 -4
  163. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/no_handle_conversions_require_into_fail.rs +2 -4
  164. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/no_handle_conversions_require_into_fail.stderr +15 -0
  165. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/simple_pass.rs +2 -4
  166. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/struct_event_variant_fail.rs +1 -3
  167. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/struct_event_variant_fail.stderr +5 -0
  168. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/tuple_more_item_event_variant_fail.rs +1 -3
  169. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
  170. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/tuple_zero_item_event_variant_fail.rs +1 -3
  171. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
  172. package/sdk-core/{tests → crates/sdk-core/tests}/global_metric_tests.rs +14 -15
  173. package/sdk-core/{tests → crates/sdk-core/tests/heavy_tests}/fuzzy_workflow.rs +3 -3
  174. package/sdk-core/{tests → crates/sdk-core/tests}/heavy_tests.rs +19 -12
  175. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/activity_functions.rs +1 -1
  176. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/client_tests.rs +16 -111
  177. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/ephemeral_server_tests.rs +5 -6
  178. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/heartbeat_tests.rs +23 -19
  179. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/metrics_tests.rs +134 -60
  180. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/pagination_tests.rs +4 -4
  181. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/polling_tests.rs +37 -36
  182. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/queries_tests.rs +12 -10
  183. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/update_tests.rs +41 -29
  184. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/visibility_tests.rs +24 -19
  185. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_heartbeat_tests.rs +1061 -0
  186. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/worker_tests.rs +113 -51
  187. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/worker_versioning_tests.rs +19 -17
  188. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/activities.rs +35 -30
  189. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/appdata_propagation.rs +3 -3
  190. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/cancel_external.rs +14 -9
  191. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/cancel_wf.rs +13 -8
  192. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/child_workflows.rs +48 -35
  193. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/continue_as_new.rs +14 -9
  194. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/determinism.rs +24 -15
  195. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/eager.rs +9 -4
  196. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/local_activities.rs +47 -47
  197. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/modify_wf_properties.rs +16 -11
  198. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/nexus.rs +51 -23
  199. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/patches.rs +22 -10
  200. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/replay.rs +19 -17
  201. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/resets.rs +14 -5
  202. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/signals.rs +24 -15
  203. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/stickyness.rs +8 -6
  204. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/timers.rs +28 -18
  205. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/upsert_search_attrs.rs +18 -13
  206. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests.rs +46 -41
  207. package/sdk-core/{tests → crates/sdk-core/tests}/main.rs +15 -9
  208. package/sdk-core/{tests → crates/sdk-core/tests}/manual_tests.rs +20 -14
  209. package/sdk-core/{tests → crates/sdk-core/tests}/runner.rs +2 -2
  210. package/sdk-core/{tests → crates/sdk-core/tests}/shared_tests/mod.rs +10 -5
  211. package/sdk-core/{tests → crates/sdk-core/tests}/shared_tests/priority.rs +5 -5
  212. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/Cargo.toml +13 -10
  213. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/include/temporal-sdk-core-c-bridge.h +32 -23
  214. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/client.rs +55 -32
  215. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/envconfig.rs +1 -1
  216. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/lib.rs +1 -1
  217. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/metric.rs +1 -1
  218. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/runtime.rs +24 -9
  219. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/testing.rs +1 -1
  220. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/tests/context.rs +11 -10
  221. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/tests/mod.rs +7 -7
  222. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/tests/utils.rs +3 -4
  223. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/worker.rs +111 -58
  224. package/sdk-core/docker-cgroup-tests.sh +24 -0
  225. package/sdk-core/{docker → etc/docker}/docker-compose-ci.yaml +9 -9
  226. package/sdk-core/{docker → etc/docker}/docker-compose-telem.yaml +11 -11
  227. package/sdk-core/{docker → etc/docker}/docker-compose.yaml +8 -8
  228. package/sdk-core/{integ-with-otel.sh → etc/integ-with-otel.sh} +1 -1
  229. package/sdk-core/etc/regen-depgraph.sh +2 -2
  230. package/src/client.rs +24 -33
  231. package/src/helpers/try_from_js.rs +1 -1
  232. package/src/logs.rs +1 -1
  233. package/src/metrics.rs +3 -3
  234. package/src/runtime.rs +42 -28
  235. package/src/testing.rs +3 -3
  236. package/src/worker.rs +70 -36
  237. package/ts/native.ts +13 -6
  238. package/LICENSE.md +0 -23
  239. package/sdk-core/client/src/worker_registry/mod.rs +0 -282
  240. package/sdk-core/core/src/worker/heartbeat.rs +0 -230
  241. package/sdk-core/core/src/worker/mod.rs +0 -990
  242. package/sdk-core/etc/deps.svg +0 -162
  243. package/sdk-core/fsm/Cargo.toml +0 -21
  244. package/sdk-core/fsm/README.md +0 -3
  245. package/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  246. package/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -21
  247. package/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  248. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  249. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -15
  250. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  251. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  252. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  253. package/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  254. package/sdk-core/fsm/src/lib.rs +0 -2
  255. package/sdk-core/sdk-core-protos/Cargo.toml +0 -37
  256. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/VERSION +0 -1
  257. /package/sdk-core/{client → crates/client}/src/callback_based.rs +0 -0
  258. /package/sdk-core/{client → crates/client}/src/proxy.rs +0 -0
  259. /package/sdk-core/{client → crates/client}/src/replaceable.rs +0 -0
  260. /package/sdk-core/{sdk-core-protos → crates/common}/build.rs +0 -0
  261. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/.github/workflows/build.yaml +0 -0
  262. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/.github/workflows/push-to-buf.yml +0 -0
  263. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/CODEOWNERS +0 -0
  264. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/LICENSE +0 -0
  265. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/Makefile +0 -0
  266. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/README.md +0 -0
  267. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/buf.gen.yaml +0 -0
  268. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/buf.lock +0 -0
  269. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/buf.yaml +0 -0
  270. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/connectivityrule/v1/message.proto +0 -0
  271. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto +0 -0
  272. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto +0 -0
  273. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto +0 -0
  274. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto +0 -0
  275. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/resource/v1/message.proto +0 -0
  276. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto +0 -0
  277. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/CODEOWNERS +0 -0
  278. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  279. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/ci.yml +0 -0
  280. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/publish-docs.yml +0 -0
  281. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/push-to-buf.yml +0 -0
  282. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/trigger-api-go-delete-release.yml +0 -0
  283. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/trigger-api-go-publish-release.yml +0 -0
  284. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/trigger-api-go-update.yml +0 -0
  285. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/LICENSE +0 -0
  286. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/Makefile +0 -0
  287. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/README.md +0 -0
  288. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/api-linter.yaml +0 -0
  289. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/buf.gen.yaml +0 -0
  290. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/buf.lock +0 -0
  291. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/buf.yaml +0 -0
  292. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/api/annotations.proto +0 -0
  293. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/api/http.proto +0 -0
  294. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/any.proto +0 -0
  295. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/descriptor.proto +0 -0
  296. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/duration.proto +0 -0
  297. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/empty.proto +0 -0
  298. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/struct.proto +0 -0
  299. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/timestamp.proto +0 -0
  300. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/wrappers.proto +0 -0
  301. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/openapi/openapiv2.json +0 -0
  302. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/openapi/openapiv3.yaml +0 -0
  303. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/openapi/payload_description.txt +0 -0
  304. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/activity/v1/message.proto +0 -0
  305. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -0
  306. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/command/v1/message.proto +0 -0
  307. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/common/v1/message.proto +0 -0
  308. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/deployment/v1/message.proto +0 -0
  309. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -0
  310. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -0
  311. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -0
  312. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/deployment.proto +0 -0
  313. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -0
  314. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -0
  315. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -0
  316. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/nexus.proto +0 -0
  317. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -0
  318. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -0
  319. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -0
  320. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -0
  321. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -0
  322. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -0
  323. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -0
  324. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/export/v1/message.proto +0 -0
  325. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -0
  326. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -0
  327. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/history/v1/message.proto +0 -0
  328. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -0
  329. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/nexus/v1/message.proto +0 -0
  330. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -0
  331. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -0
  332. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -0
  333. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/query/v1/message.proto +0 -0
  334. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -0
  335. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/rules/v1/message.proto +0 -0
  336. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -0
  337. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/enhanced_stack_trace.proto +0 -0
  338. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -0
  339. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/user_metadata.proto +0 -0
  340. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/worker_config.proto +0 -0
  341. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/workflow_metadata.proto +0 -0
  342. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -0
  343. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/update/v1/message.proto +0 -0
  344. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/version/v1/message.proto +0 -0
  345. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/worker/v1/message.proto +0 -0
  346. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -0
  347. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -0
  348. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -0
  349. /package/sdk-core/{sdk-core-protos → crates/common}/protos/google/rpc/status.proto +0 -0
  350. /package/sdk-core/{sdk-core-protos → crates/common}/protos/grpc/health/v1/health.proto +0 -0
  351. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -0
  352. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -0
  353. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -0
  354. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/common/common.proto +0 -0
  355. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/core_interface.proto +0 -0
  356. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -0
  357. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/nexus/nexus.proto +0 -0
  358. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -0
  359. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -0
  360. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -0
  361. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/Makefile +0 -0
  362. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/api-linter.yaml +0 -0
  363. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/buf.yaml +0 -0
  364. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -0
  365. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -0
  366. /package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/constants.rs +0 -0
  367. /package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/task_token.rs +0 -0
  368. /package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/utilities.rs +0 -0
  369. /package/sdk-core/{fsm → crates/macros}/LICENSE.txt +0 -0
  370. /package/sdk-core/{sdk → crates/sdk}/src/app_data.rs +0 -0
  371. /package/sdk-core/{core → crates/sdk-core}/src/abstractions/take_cell.rs +0 -0
  372. /package/sdk-core/{core → crates/sdk-core}/src/test_help/mod.rs +0 -0
  373. /package/sdk-core/{core → crates/sdk-core}/src/worker/slot_supplier.rs +0 -0
  374. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/ends_empty_wft_complete.bin +0 -0
  375. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/evict_while_la_running_no_interference-16_history.bin +0 -0
  376. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/evict_while_la_running_no_interference-23_history.bin +0 -0
  377. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/evict_while_la_running_no_interference-85_history.bin +0 -0
  378. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/fail_wf_task.bin +0 -0
  379. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-0_history.bin +0 -0
  380. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-1_history.bin +0 -0
  381. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-2_history.bin +0 -0
  382. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-3_history.bin +0 -0
  383. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/old_change_marker_format.bin +0 -0
  384. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/timer_workflow_history.bin +0 -0
  385. /package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/priority.rs +0 -0
  386. /package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/build.rs +0 -0
  387. /package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/random.rs +0 -0
  388. /package/sdk-core/{cargo-tokio-console.sh → etc/cargo-tokio-console.sh} +0 -0
@@ -1,7 +1,7 @@
1
1
  use crate::{
2
2
  common::{
3
3
  ANY_PORT, CoreWfStarter, NAMESPACE, OTEL_URL_ENV_VAR, PROMETHEUS_QUERY_API,
4
- get_integ_server_options, get_integ_telem_options, prom_metrics,
4
+ get_integ_runtime_options, get_integ_server_options, get_integ_telem_options, prom_metrics,
5
5
  },
6
6
  integ_tests::mk_nexus_endpoint,
7
7
  };
@@ -14,20 +14,39 @@ use std::{
14
14
  sync::{Arc, OnceLock},
15
15
  time::Duration,
16
16
  };
17
- use temporal_client::{
17
+ use temporalio_client::{
18
18
  REQUEST_LATENCY_HISTOGRAM_NAME, WorkflowClientTrait, WorkflowOptions, WorkflowService,
19
19
  };
20
- use temporal_sdk::{
21
- ActContext, ActivityError, ActivityOptions, CancellableFuture, LocalActivityOptions,
22
- NexusOperationOptions, WfContext,
23
- };
24
- use temporal_sdk_core::{
25
- CoreRuntime, FixedSizeSlotSupplier, TokioRuntimeBuilder, TunerBuilder, init_worker,
26
- telemetry::{WORKFLOW_TASK_EXECUTION_LATENCY_HISTOGRAM_NAME, build_otlp_metric_exporter},
27
- };
28
- use temporal_sdk_core_api::{
20
+ use temporalio_common::{
29
21
  Worker,
30
22
  errors::PollError,
23
+ prost_dur,
24
+ protos::{
25
+ coresdk::{
26
+ ActivityTaskCompletion, AsJsonPayloadExt,
27
+ activity_result::ActivityExecutionResult,
28
+ nexus::{NexusTaskCompletion, nexus_task, nexus_task_completion},
29
+ workflow_activation::{WorkflowActivationJob, workflow_activation_job},
30
+ workflow_commands::{
31
+ CancelWorkflowExecution, CompleteWorkflowExecution, ContinueAsNewWorkflowExecution,
32
+ FailWorkflowExecution, QueryResult, QuerySuccess, ScheduleActivity,
33
+ ScheduleLocalActivity, workflow_command,
34
+ },
35
+ workflow_completion::WorkflowActivationCompletion,
36
+ },
37
+ temporal::api::{
38
+ common::v1::RetryPolicy,
39
+ enums::v1::{NexusHandlerErrorRetryBehavior, WorkflowIdReusePolicy},
40
+ failure::v1::Failure,
41
+ nexus,
42
+ nexus::v1::{
43
+ HandlerError, StartOperationResponse, UnsuccessfulOperationError, request::Variant,
44
+ start_operation_response,
45
+ },
46
+ query::v1::WorkflowQuery,
47
+ workflowservice::v1::{DescribeNamespaceRequest, ListNamespacesRequest},
48
+ },
49
+ },
31
50
  telemetry::{
32
51
  HistogramBucketOverrides, OtelCollectorOptionsBuilder, OtlpProtocol,
33
52
  PrometheusExporterOptionsBuilder, TaskQueueLabelStrategy, TelemetryOptionsBuilder,
@@ -38,36 +57,17 @@ use temporal_sdk_core_api::{
38
57
  },
39
58
  worker::{
40
59
  PollerBehavior, SlotKind, SlotMarkUsedContext, SlotReleaseContext, SlotReservationContext,
41
- SlotSupplier, SlotSupplierPermit, WorkerConfigBuilder, WorkerVersioningStrategy,
42
- WorkflowSlotKind,
60
+ SlotSupplier, SlotSupplierPermit, WorkerConfigBuilder, WorkerTaskTypes,
61
+ WorkerVersioningStrategy, WorkflowSlotKind,
43
62
  },
44
63
  };
45
- use temporal_sdk_core_protos::{
46
- coresdk::{
47
- ActivityTaskCompletion, AsJsonPayloadExt,
48
- activity_result::ActivityExecutionResult,
49
- nexus::{NexusTaskCompletion, nexus_task, nexus_task_completion},
50
- workflow_activation::{WorkflowActivationJob, workflow_activation_job},
51
- workflow_commands::{
52
- CancelWorkflowExecution, CompleteWorkflowExecution, ContinueAsNewWorkflowExecution,
53
- FailWorkflowExecution, QueryResult, QuerySuccess, ScheduleActivity,
54
- ScheduleLocalActivity, workflow_command,
55
- },
56
- workflow_completion::WorkflowActivationCompletion,
57
- },
58
- prost_dur,
59
- temporal::api::{
60
- common::v1::RetryPolicy,
61
- enums::v1::{NexusHandlerErrorRetryBehavior, WorkflowIdReusePolicy},
62
- failure::v1::Failure,
63
- nexus,
64
- nexus::v1::{
65
- HandlerError, StartOperationResponse, UnsuccessfulOperationError, request::Variant,
66
- start_operation_response,
67
- },
68
- query::v1::WorkflowQuery,
69
- workflowservice::v1::{DescribeNamespaceRequest, ListNamespacesRequest},
70
- },
64
+ use temporalio_sdk::{
65
+ ActContext, ActivityError, ActivityOptions, CancellableFuture, LocalActivityOptions,
66
+ NexusOperationOptions, WfContext,
67
+ };
68
+ use temporalio_sdk_core::{
69
+ CoreRuntime, FixedSizeSlotSupplier, TokioRuntimeBuilder, TunerBuilder, init_worker,
70
+ telemetry::{WORKFLOW_TASK_EXECUTION_LATENCY_HISTOGRAM_NAME, build_otlp_metric_exporter},
71
71
  };
72
72
  use tokio::{join, sync::Barrier};
73
73
  use tonic::IntoRequest;
@@ -98,7 +98,7 @@ async fn prometheus_metrics_exported(
98
98
  });
99
99
  }
100
100
  let (telemopts, addr, _aborter) = prom_metrics(Some(opts_builder.build().unwrap()));
101
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
101
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
102
102
  let opts = get_integ_server_options();
103
103
  let mut raw_client = opts
104
104
  .connect_no_namespace(rt.telemetry().get_temporal_metric_meter())
@@ -149,7 +149,7 @@ async fn prometheus_metrics_exported(
149
149
  async fn one_slot_worker_reports_available_slot() {
150
150
  let (telemopts, addr, _aborter) = prom_metrics(None);
151
151
  let tq = "one_slot_worker_tq";
152
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
152
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
153
153
 
154
154
  let worker_cfg = WorkerConfigBuilder::default()
155
155
  .namespace(NAMESPACE)
@@ -164,6 +164,7 @@ async fn one_slot_worker_reports_available_slot() {
164
164
  .max_outstanding_workflow_tasks(2_usize)
165
165
  .max_outstanding_nexus_tasks(1_usize)
166
166
  .workflow_task_poller_behavior(PollerBehavior::SimpleMaximum(2_usize))
167
+ .task_types(WorkerTaskTypes::all())
167
168
  .build()
168
169
  .unwrap();
169
170
 
@@ -402,7 +403,7 @@ async fn query_of_closed_workflow_doesnt_tick_terminal_metric(
402
403
  completion: workflow_command::Variant,
403
404
  ) {
404
405
  let (telemopts, addr, _aborter) = prom_metrics(None);
405
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
406
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
406
407
  let mut starter =
407
408
  CoreWfStarter::new_with_runtime("query_of_closed_workflow_doesnt_tick_terminal_metric", rt);
408
409
  // Disable cache to ensure replay happens completely
@@ -524,8 +525,11 @@ async fn query_of_closed_workflow_doesnt_tick_terminal_metric(
524
525
 
525
526
  #[test]
526
527
  fn runtime_new() {
527
- let mut rt =
528
- CoreRuntime::new(get_integ_telem_options(), TokioRuntimeBuilder::default()).unwrap();
528
+ let mut rt = CoreRuntime::new(
529
+ get_integ_runtime_options(get_integ_telem_options()),
530
+ TokioRuntimeBuilder::default(),
531
+ )
532
+ .unwrap();
529
533
  let handle = rt.tokio_handle();
530
534
  let _rt = handle.enter();
531
535
  let (telemopts, addr, _aborter) = prom_metrics(None);
@@ -571,7 +575,7 @@ async fn latency_metrics(
571
575
  .build()
572
576
  .unwrap(),
573
577
  ));
574
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
578
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
575
579
  let mut starter = CoreWfStarter::new_with_runtime("latency_metrics", rt);
576
580
  let worker = starter.get_worker().await;
577
581
  starter.start_wf().await;
@@ -625,7 +629,7 @@ async fn latency_metrics(
625
629
  #[tokio::test]
626
630
  async fn request_fail_codes() {
627
631
  let (telemopts, addr, _aborter) = prom_metrics(None);
628
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
632
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
629
633
  let opts = get_integ_server_options();
630
634
  let mut client = opts
631
635
  .connect(NAMESPACE, rt.telemetry().get_temporal_metric_meter())
@@ -671,8 +675,8 @@ async fn request_fail_codes_otel() {
671
675
  let mut telemopts = TelemetryOptionsBuilder::default();
672
676
  let exporter = Arc::new(exporter);
673
677
  telemopts.metrics(exporter as Arc<dyn CoreMeter>);
674
-
675
- let rt = CoreRuntime::new_assume_tokio(telemopts.build().unwrap()).unwrap();
678
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts.build().unwrap()))
679
+ .unwrap();
676
680
  let opts = get_integ_server_options();
677
681
  let mut client = opts
678
682
  .connect(NAMESPACE, rt.telemetry().get_temporal_metric_meter())
@@ -725,7 +729,7 @@ async fn docker_metrics_with_prometheus(
725
729
  .metric_prefix(test_uid.clone())
726
730
  .build()
727
731
  .unwrap();
728
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
732
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
729
733
  let test_name = "docker_metrics_with_prometheus";
730
734
  let mut starter = CoreWfStarter::new_with_runtime(test_name, rt);
731
735
  let worker = starter.get_worker().await;
@@ -779,7 +783,7 @@ async fn docker_metrics_with_prometheus(
779
783
  #[tokio::test]
780
784
  async fn activity_metrics() {
781
785
  let (telemopts, addr, _aborter) = prom_metrics(None);
782
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
786
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
783
787
  let wf_name = "activity_metrics";
784
788
  let mut starter = CoreWfStarter::new_with_runtime(wf_name, rt);
785
789
  starter
@@ -913,10 +917,15 @@ async fn activity_metrics() {
913
917
  #[tokio::test]
914
918
  async fn nexus_metrics() {
915
919
  let (telemopts, addr, _aborter) = prom_metrics(None);
916
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
920
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
917
921
  let wf_name = "nexus_metrics";
918
922
  let mut starter = CoreWfStarter::new_with_runtime(wf_name, rt);
919
- starter.worker_config.no_remote_activities(true);
923
+ starter.worker_config.task_types(WorkerTaskTypes {
924
+ enable_workflows: true,
925
+ enable_local_activities: false,
926
+ enable_remote_activities: false,
927
+ enable_nexus: true,
928
+ });
920
929
  let task_queue = starter.get_task_queue().to_owned();
921
930
  let mut worker = starter.worker().await;
922
931
  let core_worker = starter.get_worker().await;
@@ -1090,10 +1099,12 @@ async fn nexus_metrics() {
1090
1099
  #[tokio::test]
1091
1100
  async fn evict_on_complete_does_not_count_as_forced_eviction() {
1092
1101
  let (telemopts, addr, _aborter) = prom_metrics(None);
1093
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
1102
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
1094
1103
  let wf_name = "evict_on_complete_does_not_count_as_forced_eviction";
1095
1104
  let mut starter = CoreWfStarter::new_with_runtime(wf_name, rt);
1096
- starter.worker_config.no_remote_activities(true);
1105
+ starter
1106
+ .worker_config
1107
+ .task_types(WorkerTaskTypes::workflow_only());
1097
1108
  let mut worker = starter.worker().await;
1098
1109
 
1099
1110
  worker.register_wf(
@@ -1173,10 +1184,12 @@ where
1173
1184
  #[tokio::test]
1174
1185
  async fn metrics_available_from_custom_slot_supplier() {
1175
1186
  let (telemopts, addr, _aborter) = prom_metrics(None);
1176
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
1187
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
1177
1188
  let mut starter =
1178
1189
  CoreWfStarter::new_with_runtime("metrics_available_from_custom_slot_supplier", rt);
1179
- starter.worker_config.no_remote_activities(true);
1190
+ starter
1191
+ .worker_config
1192
+ .task_types(WorkerTaskTypes::workflow_only());
1180
1193
  starter.worker_config.clear_max_outstanding_opts();
1181
1194
  let mut tb = TunerBuilder::default();
1182
1195
  tb.workflow_slot_supplier(Arc::new(MetricRecordingSlotSupplier::<WorkflowSlotKind> {
@@ -1340,12 +1353,14 @@ async fn sticky_queue_label_strategy(
1340
1353
  .unwrap(),
1341
1354
  ));
1342
1355
  telemopts.task_queue_label_strategy = strategy;
1343
- let rt = CoreRuntime::new_assume_tokio(telemopts).unwrap();
1356
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
1344
1357
  let wf_name = format!("sticky_queue_label_strategy_{strategy:?}");
1345
1358
  let mut starter = CoreWfStarter::new_with_runtime(&wf_name, rt);
1346
1359
  // Enable sticky queues by setting a reasonable cache size
1347
1360
  starter.worker_config.max_cached_workflows(10_usize);
1348
- starter.worker_config.no_remote_activities(true);
1361
+ starter
1362
+ .worker_config
1363
+ .task_types(WorkerTaskTypes::workflow_only());
1349
1364
  let task_queue = starter.get_task_queue().to_owned();
1350
1365
  let mut worker = starter.worker().await;
1351
1366
 
@@ -1404,8 +1419,7 @@ async fn sticky_queue_label_strategy(
1404
1419
  if l.contains("task_queue=") && l.contains("WorkflowTask") {
1405
1420
  assert!(
1406
1421
  l.contains(&format!("task_queue=\"{task_queue}\"")),
1407
- "With UseNormal, all workflow task_queue labels should use normal name. Found: {}",
1408
- l
1422
+ "With UseNormal, all workflow task_queue labels should use normal name. Found: {l}",
1409
1423
  );
1410
1424
  }
1411
1425
  }
@@ -1413,3 +1427,63 @@ async fn sticky_queue_label_strategy(
1413
1427
  _ => unreachable!("Test only covers UseNormal and UseNormalAndSticky"),
1414
1428
  }
1415
1429
  }
1430
+
1431
+ #[tokio::test]
1432
+ async fn resource_based_tuner_metrics() {
1433
+ use temporalio_sdk_core::ResourceBasedTuner;
1434
+
1435
+ let (telemopts, addr, _aborter) = prom_metrics(None);
1436
+ let rt = CoreRuntime::new_assume_tokio(get_integ_runtime_options(telemopts)).unwrap();
1437
+ let wf_name = "resource_based_tuner_metrics";
1438
+ let mut starter = CoreWfStarter::new_with_runtime(wf_name, rt);
1439
+ starter
1440
+ .worker_config
1441
+ .task_types(WorkerTaskTypes::workflow_only());
1442
+ starter.worker_config.clear_max_outstanding_opts();
1443
+
1444
+ // Create a resource-based tuner with reasonable thresholds
1445
+ let tuner = ResourceBasedTuner::new(0.8, 0.8);
1446
+ starter.worker_config.tuner(Arc::new(tuner));
1447
+
1448
+ let mut worker = starter.worker().await;
1449
+
1450
+ worker.register_wf(wf_name.to_string(), |ctx: WfContext| async move {
1451
+ ctx.timer(Duration::from_millis(100)).await;
1452
+ Ok(().into())
1453
+ });
1454
+
1455
+ worker
1456
+ .submit_wf(
1457
+ wf_name.to_owned(),
1458
+ wf_name.to_owned(),
1459
+ vec![],
1460
+ WorkflowOptions::default(),
1461
+ )
1462
+ .await
1463
+ .unwrap();
1464
+
1465
+ worker.run_until_done().await.unwrap();
1466
+
1467
+ // Give metrics time to be recorded (metrics are emitted every 1 second)
1468
+ tokio::time::sleep(Duration::from_millis(1500)).await;
1469
+
1470
+ let body = get_text(format!("http://{addr}/metrics")).await;
1471
+
1472
+ // Verify that the resource-based tuner metrics are present
1473
+ assert!(
1474
+ body.contains("temporal_resource_slots_mem_usage"),
1475
+ "Memory usage metric should be present"
1476
+ );
1477
+ assert!(
1478
+ body.contains("temporal_resource_slots_cpu_usage"),
1479
+ "CPU usage metric should be present"
1480
+ );
1481
+ assert!(
1482
+ body.contains("temporal_resource_slots_mem_pid_output"),
1483
+ "Memory PID output metric should be present"
1484
+ );
1485
+ assert!(
1486
+ body.contains("temporal_resource_slots_cpu_pid_output"),
1487
+ "CPU PID output metric should be present"
1488
+ );
1489
+ }
@@ -4,10 +4,8 @@ use std::sync::{
4
4
  Arc,
5
5
  atomic::{AtomicUsize, Ordering},
6
6
  };
7
- use temporal_client::WorkflowOptions;
8
- use temporal_sdk::WfContext;
9
- use temporal_sdk_core::test_help::{MockPollCfg, ResponseType, mock_worker_client};
10
- use temporal_sdk_core_protos::{
7
+ use temporalio_client::WorkflowOptions;
8
+ use temporalio_common::protos::{
11
9
  DEFAULT_WORKFLOW_TYPE, TestHistoryBuilder,
12
10
  temporal::api::{
13
11
  common::v1::WorkflowExecution,
@@ -16,6 +14,8 @@ use temporal_sdk_core_protos::{
16
14
  workflowservice::v1::GetWorkflowExecutionHistoryResponse,
17
15
  },
18
16
  };
17
+ use temporalio_sdk::WfContext;
18
+ use temporalio_sdk_core::test_help::{MockPollCfg, ResponseType, mock_worker_client};
19
19
 
20
20
  #[tokio::test]
21
21
  async fn weird_pagination_doesnt_drop_wft_events() {
@@ -15,32 +15,31 @@ use std::{
15
15
  },
16
16
  time::Duration,
17
17
  };
18
- use temporal_client::{WfClientExt, WorkflowClientTrait, WorkflowOptions};
19
- use temporal_sdk::{ActivityOptions, WfContext};
20
- use temporal_sdk_core::{
21
- ClientOptionsBuilder, CoreRuntime,
18
+ use temporalio_client::{WfClientExt, WorkflowClientTrait, WorkflowOptions};
19
+ use temporalio_common::{
20
+ Worker, prost_dur,
21
+ protos::{
22
+ coresdk::{
23
+ AsJsonPayloadExt, IntoCompletion,
24
+ activity_task::activity_task as act_task,
25
+ workflow_activation::{FireTimer, WorkflowActivationJob, workflow_activation_job},
26
+ workflow_commands::{ActivityCancellationType, RequestCancelActivity, StartTimer},
27
+ workflow_completion::WorkflowActivationCompletion,
28
+ },
29
+ temporal::api::enums::v1::EventType,
30
+ test_utils::schedule_activity_cmd,
31
+ },
32
+ telemetry::{Logger, TelemetryOptionsBuilder},
33
+ worker::PollerBehavior,
34
+ };
35
+ use temporalio_sdk::{ActivityOptions, WfContext};
36
+ use temporalio_sdk_core::{
37
+ ClientOptions, CoreRuntime, RuntimeOptionsBuilder,
22
38
  ephemeral_server::{TemporalDevServerConfigBuilder, default_cached_download},
23
39
  init_worker,
24
40
  telemetry::CoreLogStreamConsumer,
25
41
  test_help::{NAMESPACE, WorkerTestHelpers, drain_pollers_and_shutdown},
26
42
  };
27
- use temporal_sdk_core_api::{
28
- Worker,
29
- telemetry::{Logger, TelemetryOptionsBuilder},
30
- worker::PollerBehavior,
31
- };
32
- use temporal_sdk_core_protos::{
33
- coresdk::{
34
- AsJsonPayloadExt, IntoCompletion,
35
- activity_task::activity_task as act_task,
36
- workflow_activation::{FireTimer, WorkflowActivationJob, workflow_activation_job},
37
- workflow_commands::{ActivityCancellationType, RequestCancelActivity, StartTimer},
38
- workflow_completion::WorkflowActivationCompletion,
39
- },
40
- prost_dur,
41
- temporal::api::enums::v1::EventType,
42
- test_utils::schedule_activity_cmd,
43
- };
44
43
  use tokio::{sync::Notify, time::timeout};
45
44
  use tracing::info;
46
45
  use url::Url;
@@ -147,24 +146,21 @@ async fn switching_worker_client_changes_poll() {
147
146
  let result = std::panic::AssertUnwindSafe(async {
148
147
  // Connect clients to both servers
149
148
  info!("Connecting clients");
150
- let mut client_common_config = ClientOptionsBuilder::default();
151
- client_common_config
149
+ let client1 = ClientOptions::builder()
152
150
  .identity("integ_tester".to_owned())
153
151
  .client_name("temporal-core".to_owned())
154
- .client_version("0.1.0".to_owned());
155
- let client1 = client_common_config
156
- .clone()
152
+ .client_version("0.1.0".to_owned())
157
153
  .target_url(Url::parse(&format!("http://{}", server1.target)).unwrap())
158
154
  .build()
159
- .unwrap()
160
155
  .connect("default", None)
161
156
  .await
162
157
  .unwrap();
163
- let client2 = client_common_config
164
- .clone()
158
+ let client2 = ClientOptions::builder()
159
+ .identity("integ_tester".to_owned())
160
+ .client_name("temporal-core".to_owned())
161
+ .client_version("0.1.0".to_owned())
165
162
  .target_url(Url::parse(&format!("http://{}", server2.target)).unwrap())
166
163
  .build()
167
- .unwrap()
168
164
  .connect("default", None)
169
165
  .await
170
166
  .unwrap();
@@ -221,7 +217,9 @@ async fn switching_worker_client_changes_poll() {
221
217
 
222
218
  // Swap client, poll for next task, confirm it's second wf, and respond w/ empty
223
219
  info!("Replacing client and polling again");
224
- worker.replace_client(client2.get_client().inner().clone());
220
+ worker
221
+ .replace_client(client2.get_client().inner().clone())
222
+ .unwrap();
225
223
  let act2 = worker.poll_workflow_activation().await.unwrap();
226
224
  assert_eq!(wf2.run_id, act2.run_id);
227
225
  worker.complete_execution(&act2.run_id).await;
@@ -334,12 +332,16 @@ async fn replace_client_works_after_polling_failure() {
334
332
  let (log_consumer, mut log_rx) = CoreLogStreamConsumer::new(100);
335
333
  let telem_opts = TelemetryOptionsBuilder::default()
336
334
  .logging(Logger::Push {
337
- filter: "OFF,temporal_client=DEBUG".into(),
335
+ filter: "OFF,temporalio_client=DEBUG".into(),
338
336
  consumer: Arc::new(log_consumer),
339
337
  })
340
338
  .build()
341
339
  .unwrap();
342
- let rt = Arc::new(CoreRuntime::new_assume_tokio(telem_opts).unwrap());
340
+ let runtime_opts = RuntimeOptionsBuilder::default()
341
+ .telemetry_options(telem_opts)
342
+ .build()
343
+ .unwrap();
344
+ let rt = Arc::new(CoreRuntime::new_assume_tokio(runtime_opts).unwrap());
343
345
 
344
346
  // Spawning background task to read logs and notify the test when polling failure occurs.
345
347
  let look_for_poll_failure_log = Arc::new(AtomicBool::new(false));
@@ -390,13 +392,12 @@ async fn replace_client_works_after_polling_failure() {
390
392
  "http://{}",
391
393
  initial_server.lock().unwrap().as_ref().unwrap().target
392
394
  );
393
- let client_for_initial_server = ClientOptionsBuilder::default()
395
+ let client_for_initial_server = ClientOptions::builder()
394
396
  .identity("client_for_initial_server".to_string())
395
397
  .target_url(Url::parse(&initial_server_target).unwrap())
396
398
  .client_name(INTEG_CLIENT_NAME.to_string())
397
399
  .client_version(INTEG_CLIENT_VERSION.to_string())
398
400
  .build()
399
- .unwrap()
400
401
  .connect(NAMESPACE, rt.telemetry().get_temporal_metric_meter())
401
402
  .await
402
403
  .unwrap();
@@ -477,7 +478,7 @@ async fn replace_client_works_after_polling_failure() {
477
478
 
478
479
  // Switch worker over to the main integration server.
479
480
  // The polling started on the initial server should complete with a task from the new server.
480
- worker.replace_client(client_for_integ_server);
481
+ worker.replace_client(client_for_integ_server).unwrap();
481
482
  let act_2 = tokio::time::timeout(Duration::from_secs(60), poll_join_handle)
482
483
  .await
483
484
  .unwrap()
@@ -2,18 +2,20 @@ use crate::common::{CoreWfStarter, init_core_and_create_wf};
2
2
  use assert_matches::assert_matches;
3
3
  use futures_util::{FutureExt, StreamExt, future::join_all, stream::FuturesUnordered};
4
4
  use std::time::{Duration, Instant};
5
- use temporal_client::WorkflowClientTrait;
6
- use temporal_sdk_core::test_help::{WorkerTestHelpers, drain_pollers_and_shutdown};
7
- use temporal_sdk_core_protos::{
8
- coresdk::{
9
- workflow_activation::{WorkflowActivationJob, workflow_activation_job},
10
- workflow_commands::{QueryResult, QuerySuccess, StartTimer},
11
- workflow_completion::WorkflowActivationCompletion,
12
- },
5
+ use temporalio_client::WorkflowClientTrait;
6
+ use temporalio_common::{
13
7
  prost_dur,
14
- temporal::api::{failure::v1::Failure, query::v1::WorkflowQuery},
15
- test_utils::start_timer_cmd,
8
+ protos::{
9
+ coresdk::{
10
+ workflow_activation::{WorkflowActivationJob, workflow_activation_job},
11
+ workflow_commands::{QueryResult, QuerySuccess, StartTimer},
12
+ workflow_completion::WorkflowActivationCompletion,
13
+ },
14
+ temporal::api::{failure::v1::Failure, query::v1::WorkflowQuery},
15
+ test_utils::start_timer_cmd,
16
+ },
16
17
  };
18
+ use temporalio_sdk_core::test_help::{WorkerTestHelpers, drain_pollers_and_shutdown};
17
19
  use tokio::join;
18
20
 
19
21
  #[tokio::test]
@@ -11,35 +11,37 @@ use std::{
11
11
  },
12
12
  time::Duration,
13
13
  };
14
- use temporal_client::{
14
+ use temporalio_client::{
15
15
  Client, NamespacedClient, RetryClient, WorkflowClientTrait, WorkflowService,
16
16
  };
17
- use temporal_sdk::{ActContext, ActivityOptions, LocalActivityOptions, UpdateContext, WfContext};
18
- use temporal_sdk_core::{
19
- replay::HistoryForReplay,
20
- test_help::{WorkerTestHelpers, drain_pollers_and_shutdown},
21
- };
22
- use temporal_sdk_core_api::Worker;
23
- use temporal_sdk_core_protos::{
24
- coresdk::{
25
- ActivityTaskCompletion, AsJsonPayloadExt, IntoPayloadsExt,
26
- activity_result::ActivityExecutionResult,
27
- workflow_activation::{
28
- WorkflowActivationJob, remove_from_cache::EvictionReason, workflow_activation_job,
17
+ use temporalio_common::{
18
+ Worker, prost_dur,
19
+ protos::{
20
+ coresdk::{
21
+ ActivityTaskCompletion, AsJsonPayloadExt, IntoPayloadsExt,
22
+ activity_result::ActivityExecutionResult,
23
+ workflow_activation::{
24
+ WorkflowActivationJob, remove_from_cache::EvictionReason, workflow_activation_job,
25
+ },
26
+ workflow_commands::{
27
+ CompleteWorkflowExecution, ScheduleLocalActivity, UpdateResponse, update_response,
28
+ },
29
+ workflow_completion::WorkflowActivationCompletion,
29
30
  },
30
- workflow_commands::{
31
- CompleteWorkflowExecution, ScheduleLocalActivity, UpdateResponse, update_response,
31
+ temporal::api::{
32
+ common::v1::WorkflowExecution,
33
+ enums::v1::{EventType, ResetReapplyType, UpdateWorkflowExecutionLifecycleStage},
34
+ update::{self, v1::WaitPolicy},
35
+ workflowservice::v1::ResetWorkflowExecutionRequest,
32
36
  },
33
- workflow_completion::WorkflowActivationCompletion,
37
+ test_utils::start_timer_cmd,
34
38
  },
35
- prost_dur,
36
- temporal::api::{
37
- common::v1::WorkflowExecution,
38
- enums::v1::{EventType, ResetReapplyType, UpdateWorkflowExecutionLifecycleStage},
39
- update::{self, v1::WaitPolicy},
40
- workflowservice::v1::ResetWorkflowExecutionRequest,
41
- },
42
- test_utils::start_timer_cmd,
39
+ worker::WorkerTaskTypes,
40
+ };
41
+ use temporalio_sdk::{ActContext, ActivityOptions, LocalActivityOptions, UpdateContext, WfContext};
42
+ use temporalio_sdk_core::{
43
+ replay::HistoryForReplay,
44
+ test_help::{WorkerTestHelpers, drain_pollers_and_shutdown},
43
45
  };
44
46
  use tokio::{join, sync::Barrier};
45
47
  use tonic::IntoRequest;
@@ -722,7 +724,9 @@ async fn update_with_local_acts() {
722
724
  async fn update_rejection_sdk() {
723
725
  let wf_name = "update_rejection_sdk";
724
726
  let mut starter = CoreWfStarter::new(wf_name);
725
- starter.worker_config.no_remote_activities(true);
727
+ starter
728
+ .worker_config
729
+ .task_types(WorkerTaskTypes::workflow_only());
726
730
  let mut worker = starter.worker().await;
727
731
  let client = starter.get_client().await;
728
732
  worker.register_wf(wf_name.to_owned(), |ctx: WfContext| async move {
@@ -766,7 +770,9 @@ async fn update_rejection_sdk() {
766
770
  async fn update_fail_sdk() {
767
771
  let wf_name = "update_fail_sdk";
768
772
  let mut starter = CoreWfStarter::new(wf_name);
769
- starter.worker_config.no_remote_activities(true);
773
+ starter
774
+ .worker_config
775
+ .task_types(WorkerTaskTypes::workflow_only());
770
776
  let mut worker = starter.worker().await;
771
777
  let client = starter.get_client().await;
772
778
  worker.register_wf(wf_name.to_owned(), |ctx: WfContext| async move {
@@ -810,7 +816,9 @@ async fn update_fail_sdk() {
810
816
  async fn update_timer_sequence() {
811
817
  let wf_name = "update_timer_sequence";
812
818
  let mut starter = CoreWfStarter::new(wf_name);
813
- starter.worker_config.no_remote_activities(true);
819
+ starter
820
+ .worker_config
821
+ .task_types(WorkerTaskTypes::workflow_only());
814
822
  let mut worker = starter.worker().await;
815
823
  let client = starter.get_client().await;
816
824
  worker.register_wf(wf_name.to_owned(), |ctx: WfContext| async move {
@@ -858,7 +866,9 @@ async fn update_timer_sequence() {
858
866
  async fn task_failure_during_validation() {
859
867
  let wf_name = "task_failure_during_validation";
860
868
  let mut starter = CoreWfStarter::new(wf_name);
861
- starter.worker_config.no_remote_activities(true);
869
+ starter
870
+ .worker_config
871
+ .task_types(WorkerTaskTypes::workflow_only());
862
872
  starter.workflow_options.task_timeout = Some(Duration::from_secs(1));
863
873
  let mut worker = starter.worker().await;
864
874
  let client = starter.get_client().await;
@@ -919,7 +929,9 @@ async fn task_failure_during_validation() {
919
929
  async fn task_failure_after_update() {
920
930
  let wf_name = "task_failure_after_update";
921
931
  let mut starter = CoreWfStarter::new(wf_name);
922
- starter.worker_config.no_remote_activities(true);
932
+ starter
933
+ .worker_config
934
+ .task_types(WorkerTaskTypes::workflow_only());
923
935
  starter.workflow_options.task_timeout = Some(Duration::from_secs(1));
924
936
  let mut worker = starter.worker().await;
925
937
  let client = starter.get_client().await;