@temporalio/core-bridge 1.15.0 → 1.16.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 (209) hide show
  1. package/Cargo.lock +172 -70
  2. package/lib/native.d.ts +1 -1
  3. package/package.json +2 -2
  4. package/releases/aarch64-apple-darwin/index.node +0 -0
  5. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  6. package/releases/x86_64-apple-darwin/index.node +0 -0
  7. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  8. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  9. package/sdk-core/.github/workflows/per-pr.yml +6 -6
  10. package/sdk-core/AGENTS.md +41 -30
  11. package/sdk-core/Cargo.toml +3 -0
  12. package/sdk-core/README.md +15 -9
  13. package/sdk-core/crates/client/Cargo.toml +4 -0
  14. package/sdk-core/crates/client/README.md +139 -0
  15. package/sdk-core/crates/client/src/async_activity_handle.rs +297 -0
  16. package/sdk-core/crates/client/src/callback_based.rs +7 -0
  17. package/sdk-core/crates/client/src/errors.rs +294 -0
  18. package/sdk-core/crates/client/src/{raw.rs → grpc.rs} +280 -159
  19. package/sdk-core/crates/client/src/lib.rs +920 -1326
  20. package/sdk-core/crates/client/src/metrics.rs +24 -33
  21. package/sdk-core/crates/client/src/options_structs.rs +457 -0
  22. package/sdk-core/crates/client/src/replaceable.rs +5 -4
  23. package/sdk-core/crates/client/src/request_extensions.rs +8 -9
  24. package/sdk-core/crates/client/src/retry.rs +99 -54
  25. package/sdk-core/crates/client/src/{worker/mod.rs → worker.rs} +1 -1
  26. package/sdk-core/crates/client/src/workflow_handle.rs +826 -0
  27. package/sdk-core/crates/common/Cargo.toml +61 -2
  28. package/sdk-core/crates/common/build.rs +742 -12
  29. package/sdk-core/crates/common/protos/api_upstream/.github/workflows/ci.yml +2 -0
  30. package/sdk-core/crates/common/protos/api_upstream/Makefile +2 -1
  31. package/sdk-core/crates/common/protos/api_upstream/buf.yaml +0 -3
  32. package/sdk-core/crates/common/protos/api_upstream/cmd/check-path-conflicts/main.go +137 -0
  33. package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv2.json +1166 -770
  34. package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv3.yaml +1243 -750
  35. package/sdk-core/crates/common/protos/api_upstream/temporal/api/deployment/v1/message.proto +2 -2
  36. package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/workflow.proto +4 -3
  37. package/sdk-core/crates/common/protos/api_upstream/temporal/api/failure/v1/message.proto +1 -0
  38. package/sdk-core/crates/common/protos/api_upstream/temporal/api/history/v1/message.proto +4 -0
  39. package/sdk-core/crates/common/protos/api_upstream/temporal/api/namespace/v1/message.proto +6 -0
  40. package/sdk-core/crates/common/protos/api_upstream/temporal/api/nexus/v1/message.proto +16 -1
  41. package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +64 -6
  42. package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +88 -33
  43. package/sdk-core/crates/common/protos/local/temporal/sdk/core/nexus/nexus.proto +4 -2
  44. package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +4 -0
  45. package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +5 -5
  46. package/sdk-core/crates/common/src/activity_definition.rs +20 -0
  47. package/sdk-core/crates/common/src/data_converters.rs +770 -0
  48. package/sdk-core/crates/common/src/envconfig.rs +5 -0
  49. package/sdk-core/crates/common/src/lib.rs +15 -211
  50. package/sdk-core/crates/common/src/payload_visitor.rs +648 -0
  51. package/sdk-core/crates/common/src/priority.rs +110 -0
  52. package/sdk-core/crates/common/src/protos/canned_histories.rs +3 -0
  53. package/sdk-core/crates/common/src/protos/history_builder.rs +45 -0
  54. package/sdk-core/crates/common/src/protos/history_info.rs +2 -0
  55. package/sdk-core/crates/common/src/protos/mod.rs +122 -27
  56. package/sdk-core/crates/common/src/protos/task_token.rs +3 -3
  57. package/sdk-core/crates/common/src/protos/utilities.rs +11 -0
  58. package/sdk-core/crates/{sdk-core → common}/src/telemetry/log_export.rs +5 -7
  59. package/sdk-core/crates/common/src/telemetry/metrics/core.rs +125 -0
  60. package/sdk-core/crates/common/src/telemetry/metrics.rs +268 -223
  61. package/sdk-core/crates/{sdk-core → common}/src/telemetry/otel.rs +8 -13
  62. package/sdk-core/crates/{sdk-core → common}/src/telemetry/prometheus_meter.rs +49 -50
  63. package/sdk-core/crates/{sdk-core → common}/src/telemetry/prometheus_server.rs +2 -3
  64. package/sdk-core/crates/common/src/telemetry.rs +264 -4
  65. package/sdk-core/crates/common/src/worker.rs +68 -603
  66. package/sdk-core/crates/common/src/workflow_definition.rs +60 -0
  67. package/sdk-core/crates/macros/Cargo.toml +5 -1
  68. package/sdk-core/crates/macros/src/activities_definitions.rs +585 -0
  69. package/sdk-core/crates/macros/src/fsm_impl.rs +507 -0
  70. package/sdk-core/crates/macros/src/lib.rs +138 -512
  71. package/sdk-core/crates/macros/src/macro_utils.rs +106 -0
  72. package/sdk-core/crates/macros/src/workflow_definitions.rs +1224 -0
  73. package/sdk-core/crates/sdk/Cargo.toml +19 -6
  74. package/sdk-core/crates/sdk/README.md +415 -0
  75. package/sdk-core/crates/sdk/src/activities.rs +417 -0
  76. package/sdk-core/crates/sdk/src/interceptors.rs +1 -1
  77. package/sdk-core/crates/sdk/src/lib.rs +757 -442
  78. package/sdk-core/crates/sdk/src/workflow_context/options.rs +45 -35
  79. package/sdk-core/crates/sdk/src/workflow_context.rs +1033 -289
  80. package/sdk-core/crates/sdk/src/workflow_future.rs +277 -213
  81. package/sdk-core/crates/sdk/src/workflows.rs +711 -0
  82. package/sdk-core/crates/sdk-core/Cargo.toml +57 -64
  83. package/sdk-core/crates/sdk-core/benches/workflow_replay_bench.rs +41 -35
  84. package/sdk-core/crates/sdk-core/machine_coverage/ActivityMachine_Coverage.puml +1 -1
  85. package/sdk-core/crates/sdk-core/src/abstractions.rs +6 -10
  86. package/sdk-core/crates/sdk-core/src/core_tests/activity_tasks.rs +6 -5
  87. package/sdk-core/crates/sdk-core/src/core_tests/mod.rs +13 -15
  88. package/sdk-core/crates/sdk-core/src/core_tests/queries.rs +21 -25
  89. package/sdk-core/crates/sdk-core/src/core_tests/replay_flag.rs +7 -10
  90. package/sdk-core/crates/sdk-core/src/core_tests/updates.rs +14 -17
  91. package/sdk-core/crates/sdk-core/src/core_tests/workers.rs +493 -26
  92. package/sdk-core/crates/sdk-core/src/core_tests/workflow_tasks.rs +4 -8
  93. package/sdk-core/crates/sdk-core/src/ephemeral_server/mod.rs +7 -7
  94. package/sdk-core/crates/sdk-core/src/histfetch.rs +20 -10
  95. package/sdk-core/crates/sdk-core/src/lib.rs +41 -111
  96. package/sdk-core/crates/sdk-core/src/pollers/mod.rs +4 -9
  97. package/sdk-core/crates/sdk-core/src/pollers/poll_buffer.rs +118 -19
  98. package/sdk-core/crates/sdk-core/src/protosext/mod.rs +2 -2
  99. package/sdk-core/crates/sdk-core/src/replay/mod.rs +14 -5
  100. package/sdk-core/crates/sdk-core/src/telemetry/metrics.rs +179 -196
  101. package/sdk-core/crates/sdk-core/src/telemetry/mod.rs +3 -280
  102. package/sdk-core/crates/sdk-core/src/test_help/integ_helpers.rs +6 -9
  103. package/sdk-core/crates/sdk-core/src/test_help/unit_helpers.rs +3 -6
  104. package/sdk-core/crates/sdk-core/src/worker/activities/local_activities.rs +11 -14
  105. package/sdk-core/crates/sdk-core/src/worker/activities.rs +16 -19
  106. package/sdk-core/crates/sdk-core/src/worker/client/mocks.rs +9 -5
  107. package/sdk-core/crates/sdk-core/src/worker/client.rs +103 -81
  108. package/sdk-core/crates/sdk-core/src/worker/heartbeat.rs +7 -11
  109. package/sdk-core/crates/sdk-core/src/worker/mod.rs +1124 -229
  110. package/sdk-core/crates/sdk-core/src/worker/nexus.rs +145 -23
  111. package/sdk-core/crates/sdk-core/src/worker/slot_provider.rs +2 -2
  112. package/sdk-core/crates/sdk-core/src/worker/tuner/fixed_size.rs +2 -2
  113. package/sdk-core/crates/sdk-core/src/worker/tuner/resource_based.rs +13 -13
  114. package/sdk-core/crates/sdk-core/src/worker/tuner.rs +28 -8
  115. package/sdk-core/crates/sdk-core/src/worker/workflow/driven_workflow.rs +9 -3
  116. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +21 -22
  117. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/workflow_machines.rs +19 -4
  118. package/sdk-core/crates/sdk-core/src/worker/workflow/managed_run.rs +14 -18
  119. package/sdk-core/crates/sdk-core/src/worker/workflow/mod.rs +4 -6
  120. package/sdk-core/crates/sdk-core/src/worker/workflow/run_cache.rs +4 -7
  121. package/sdk-core/crates/sdk-core/src/worker/workflow/wft_extraction.rs +2 -4
  122. package/sdk-core/crates/sdk-core/src/worker/workflow/wft_poller.rs +8 -9
  123. package/sdk-core/crates/sdk-core/src/worker/workflow/workflow_stream.rs +1 -3
  124. package/sdk-core/crates/sdk-core/tests/activities_procmacro.rs +6 -0
  125. package/sdk-core/crates/sdk-core/tests/activities_trybuild/basic_pass.rs +54 -0
  126. package/sdk-core/crates/sdk-core/tests/activities_trybuild/invalid_self_type_fail.rs +18 -0
  127. package/sdk-core/crates/sdk-core/tests/activities_trybuild/invalid_self_type_fail.stderr +5 -0
  128. package/sdk-core/crates/sdk-core/tests/activities_trybuild/missing_context_fail.rs +14 -0
  129. package/sdk-core/crates/sdk-core/tests/activities_trybuild/missing_context_fail.stderr +5 -0
  130. package/sdk-core/crates/sdk-core/tests/activities_trybuild/multi_arg_pass.rs +48 -0
  131. package/sdk-core/crates/sdk-core/tests/activities_trybuild/no_input_pass.rs +14 -0
  132. package/sdk-core/crates/sdk-core/tests/activities_trybuild/no_return_type_pass.rs +19 -0
  133. package/sdk-core/crates/sdk-core/tests/cloud_tests.rs +14 -5
  134. package/sdk-core/crates/sdk-core/tests/common/activity_functions.rs +55 -0
  135. package/sdk-core/crates/sdk-core/tests/common/mod.rs +241 -196
  136. package/sdk-core/crates/sdk-core/tests/common/workflows.rs +41 -28
  137. package/sdk-core/crates/sdk-core/tests/global_metric_tests.rs +3 -5
  138. package/sdk-core/crates/sdk-core/tests/heavy_tests/fuzzy_workflow.rs +73 -64
  139. package/sdk-core/crates/sdk-core/tests/heavy_tests.rs +298 -252
  140. package/sdk-core/crates/sdk-core/tests/integ_tests/async_activity_client_tests.rs +230 -0
  141. package/sdk-core/crates/sdk-core/tests/integ_tests/client_tests.rs +94 -57
  142. package/sdk-core/crates/sdk-core/tests/integ_tests/data_converter_tests.rs +381 -0
  143. package/sdk-core/crates/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +16 -12
  144. package/sdk-core/crates/sdk-core/tests/integ_tests/heartbeat_tests.rs +48 -40
  145. package/sdk-core/crates/sdk-core/tests/integ_tests/metrics_tests.rs +327 -255
  146. package/sdk-core/crates/sdk-core/tests/integ_tests/pagination_tests.rs +50 -45
  147. package/sdk-core/crates/sdk-core/tests/integ_tests/polling_tests.rs +147 -126
  148. package/sdk-core/crates/sdk-core/tests/integ_tests/queries_tests.rs +103 -89
  149. package/sdk-core/crates/sdk-core/tests/integ_tests/update_tests.rs +609 -453
  150. package/sdk-core/crates/sdk-core/tests/integ_tests/visibility_tests.rs +80 -62
  151. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_heartbeat_tests.rs +360 -231
  152. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_tests.rs +248 -185
  153. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_versioning_tests.rs +52 -43
  154. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_client_tests.rs +180 -0
  155. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/activities.rs +428 -315
  156. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +82 -56
  157. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +56 -28
  158. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +364 -243
  159. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/client_interactions.rs +552 -0
  160. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +101 -42
  161. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +243 -147
  162. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/eager.rs +98 -28
  163. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +1475 -1036
  164. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +73 -41
  165. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/nexus.rs +397 -238
  166. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/patches.rs +414 -189
  167. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/queries.rs +415 -0
  168. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/replay.rs +96 -36
  169. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/resets.rs +154 -137
  170. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/signals.rs +183 -105
  171. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +85 -38
  172. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/timers.rs +142 -40
  173. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +73 -54
  174. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests.rs +363 -226
  175. package/sdk-core/crates/sdk-core/tests/main.rs +17 -15
  176. package/sdk-core/crates/sdk-core/tests/manual_tests.rs +207 -152
  177. package/sdk-core/crates/sdk-core/tests/shared_tests/mod.rs +65 -34
  178. package/sdk-core/crates/sdk-core/tests/shared_tests/priority.rs +107 -84
  179. package/sdk-core/crates/sdk-core/tests/workflows_procmacro.rs +6 -0
  180. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/async_query_fail.rs +26 -0
  181. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/async_query_fail.stderr +5 -0
  182. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/basic_pass.rs +49 -0
  183. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/minimal_pass.rs +21 -0
  184. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/mut_query_fail.rs +26 -0
  185. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/mut_query_fail.stderr +5 -0
  186. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/sync_run_fail.rs +21 -0
  187. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/sync_run_fail.stderr +5 -0
  188. package/sdk-core/crates/sdk-core-c-bridge/Cargo.toml +7 -1
  189. package/sdk-core/crates/sdk-core-c-bridge/include/temporal-sdk-core-c-bridge.h +14 -14
  190. package/sdk-core/crates/sdk-core-c-bridge/src/client.rs +83 -74
  191. package/sdk-core/crates/sdk-core-c-bridge/src/metric.rs +9 -14
  192. package/sdk-core/crates/sdk-core-c-bridge/src/runtime.rs +1 -2
  193. package/sdk-core/crates/sdk-core-c-bridge/src/tests/context.rs +13 -13
  194. package/sdk-core/crates/sdk-core-c-bridge/src/tests/mod.rs +6 -6
  195. package/sdk-core/crates/sdk-core-c-bridge/src/tests/utils.rs +3 -4
  196. package/sdk-core/crates/sdk-core-c-bridge/src/worker.rs +62 -75
  197. package/sdk-core/rustfmt.toml +2 -1
  198. package/src/client.rs +205 -318
  199. package/src/metrics.rs +22 -30
  200. package/src/runtime.rs +4 -5
  201. package/src/worker.rs +16 -19
  202. package/ts/native.ts +1 -1
  203. package/sdk-core/crates/client/src/workflow_handle/mod.rs +0 -212
  204. package/sdk-core/crates/common/src/errors.rs +0 -85
  205. package/sdk-core/crates/common/tests/worker_task_types_test.rs +0 -129
  206. package/sdk-core/crates/sdk/src/activity_context.rs +0 -238
  207. package/sdk-core/crates/sdk/src/app_data.rs +0 -37
  208. package/sdk-core/crates/sdk-core/tests/integ_tests/activity_functions.rs +0 -5
  209. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
@@ -1,5 +1,6 @@
1
1
  use crate::{
2
- ByteArray, ByteArrayRef, ByteArrayRefArray, UserDataHandle, client::Client, runtime::Runtime,
2
+ ByteArray, ByteArrayRef, ByteArrayRefArray, UserDataHandle, client::Connection,
3
+ runtime::Runtime,
3
4
  };
4
5
  use anyhow::{Context, bail};
5
6
  use crossbeam_utils::atomic::AtomicCell;
@@ -10,23 +11,16 @@ use std::{
10
11
  sync::Arc,
11
12
  time::Duration,
12
13
  };
13
- use temporalio_common::{
14
- Worker as CoreWorker,
15
- errors::{PollError, WorkflowErrorType},
16
- protos::{
17
- coresdk::{
18
- ActivityHeartbeat, ActivityTaskCompletion, nexus::NexusTaskCompletion,
19
- workflow_completion::WorkflowActivationCompletion,
20
- },
21
- temporal::api::history::v1::History,
22
- },
23
- worker::{
24
- SlotInfoTrait, SlotKind, SlotMarkUsedContext, SlotReleaseContext, SlotReservationContext,
25
- SlotSupplierPermit,
14
+ use temporalio_common::protos::{
15
+ coresdk::{
16
+ ActivityHeartbeat, ActivityTaskCompletion, nexus::NexusTaskCompletion,
17
+ workflow_completion::WorkflowActivationCompletion,
26
18
  },
19
+ temporal::api::history::v1::History,
27
20
  };
28
21
  use temporalio_sdk_core::{
29
- WorkerConfig,
22
+ PollError, SlotInfoTrait, SlotKind, SlotMarkUsedContext, SlotReleaseContext,
23
+ SlotReservationContext, SlotSupplierPermit, WorkerConfig, WorkflowErrorType,
30
24
  replay::{HistoryForReplay, ReplayWorkerInput},
31
25
  };
32
26
  use tokio::sync::{
@@ -97,18 +91,18 @@ pub struct PollerBehavior {
97
91
  pub autoscaling: *const PollerBehaviorAutoscaling,
98
92
  }
99
93
 
100
- impl TryFrom<&PollerBehavior> for temporalio_common::worker::PollerBehavior {
94
+ impl TryFrom<&PollerBehavior> for temporalio_sdk_core::PollerBehavior {
101
95
  type Error = anyhow::Error;
102
96
  fn try_from(value: &PollerBehavior) -> Result<Self, Self::Error> {
103
97
  if !value.simple_maximum.is_null() && !value.autoscaling.is_null() {
104
98
  bail!("simple_maximum and autoscaling cannot both be non-null values");
105
99
  }
106
100
  if let Some(value) = unsafe { value.simple_maximum.as_ref() } {
107
- return Ok(temporalio_common::worker::PollerBehavior::SimpleMaximum(
101
+ return Ok(temporalio_sdk_core::PollerBehavior::SimpleMaximum(
108
102
  value.simple_maximum,
109
103
  ));
110
104
  } else if let Some(value) = unsafe { value.autoscaling.as_ref() } {
111
- return Ok(temporalio_common::worker::PollerBehavior::Autoscaling {
105
+ return Ok(temporalio_sdk_core::PollerBehavior::Autoscaling {
112
106
  minimum: value.minimum,
113
107
  maximum: value.maximum,
114
108
  initial: value.initial,
@@ -237,7 +231,7 @@ pub struct CustomSlotSupplierCallbacks {
237
231
  /// is arbitrary, but must be unique among live reservations as it's later used for [`mark_used`](Self::mark_used)
238
232
  /// and [`release`](Self::release) callbacks.
239
233
  pub try_reserve: CustomSlotSupplierTryReserveCallback,
240
- /// Called after successful reservation to mark slot as used. See [`SlotSupplier`](temporalio_common::worker::SlotSupplier)
234
+ /// Called after successful reservation to mark slot as used. See [`SlotSupplier`](temporalio_sdk_core::SlotSupplier)
241
235
  /// trait for details.
242
236
  pub mark_used: CustomSlotSupplierMarkUsedCallback,
243
237
  /// Called to free a previously reserved slot.
@@ -258,8 +252,7 @@ pub struct CustomSlotSupplierCallbacks {
258
252
  impl CustomSlotSupplierCallbacksImpl {
259
253
  fn into_ss<SK: SlotKind + Send + Sync + 'static>(
260
254
  self,
261
- ) -> Arc<dyn temporalio_common::worker::SlotSupplier<SlotKind = SK> + Send + Sync + 'static>
262
- {
255
+ ) -> Arc<dyn temporalio_sdk_core::SlotSupplier<SlotKind = SK> + Send + Sync + 'static> {
263
256
  Arc::new(CustomSlotSupplier {
264
257
  inner: self,
265
258
  _pd: Default::default(),
@@ -376,9 +369,7 @@ impl<'a, SK: SlotKind + Send + Sync> Drop for CancelReserveGuard<'a, SK> {
376
369
  }
377
370
 
378
371
  #[async_trait::async_trait]
379
- impl<SK: SlotKind + Send + Sync> temporalio_common::worker::SlotSupplier
380
- for CustomSlotSupplier<SK>
381
- {
372
+ impl<SK: SlotKind + Send + Sync> temporalio_sdk_core::SlotSupplier for CustomSlotSupplier<SK> {
382
373
  type SlotKind = SK;
383
374
 
384
375
  async fn reserve_slot(&self, ctx: &dyn SlotReservationContext) -> SlotSupplierPermit {
@@ -467,16 +458,12 @@ impl<SK: SlotKind + Send + Sync> CustomSlotSupplier<SK> {
467
458
  fn convert_reserve_ctx(ctx: &dyn SlotReservationContext) -> SlotReserveCtx {
468
459
  SlotReserveCtx {
469
460
  slot_type: match SK::kind() {
470
- temporalio_common::worker::SlotKindType::Workflow => {
471
- SlotKindType::WorkflowSlotKindType
472
- }
473
- temporalio_common::worker::SlotKindType::Activity => {
474
- SlotKindType::ActivitySlotKindType
475
- }
476
- temporalio_common::worker::SlotKindType::LocalActivity => {
461
+ temporalio_sdk_core::SlotKindType::Workflow => SlotKindType::WorkflowSlotKindType,
462
+ temporalio_sdk_core::SlotKindType::Activity => SlotKindType::ActivitySlotKindType,
463
+ temporalio_sdk_core::SlotKindType::LocalActivity => {
477
464
  SlotKindType::LocalActivitySlotKindType
478
465
  }
479
- temporalio_common::worker::SlotKindType::Nexus => SlotKindType::NexusSlotKindType,
466
+ temporalio_sdk_core::SlotKindType::Nexus => SlotKindType::NexusSlotKindType,
480
467
  },
481
468
  task_queue: ctx.task_queue().into(),
482
469
  worker_identity: ctx.worker_identity().into(),
@@ -489,21 +476,19 @@ impl<SK: SlotKind + Send + Sync> CustomSlotSupplier<SK> {
489
476
  }
490
477
  }
491
478
 
492
- fn convert_slot_info(info: temporalio_common::worker::SlotInfo) -> SlotInfo {
479
+ fn convert_slot_info(info: temporalio_sdk_core::SlotInfo) -> SlotInfo {
493
480
  match info {
494
- temporalio_common::worker::SlotInfo::Workflow(w) => SlotInfo::WorkflowSlotInfo {
481
+ temporalio_sdk_core::SlotInfo::Workflow(w) => SlotInfo::WorkflowSlotInfo {
495
482
  workflow_type: w.workflow_type.as_str().into(),
496
483
  is_sticky: w.is_sticky,
497
484
  },
498
- temporalio_common::worker::SlotInfo::Activity(a) => SlotInfo::ActivitySlotInfo {
485
+ temporalio_sdk_core::SlotInfo::Activity(a) => SlotInfo::ActivitySlotInfo {
499
486
  activity_type: a.activity_type.as_str().into(),
500
487
  },
501
- temporalio_common::worker::SlotInfo::LocalActivity(a) => {
502
- SlotInfo::LocalActivitySlotInfo {
503
- activity_type: a.activity_type.as_str().into(),
504
- }
505
- }
506
- temporalio_common::worker::SlotInfo::Nexus(n) => SlotInfo::NexusSlotInfo {
488
+ temporalio_sdk_core::SlotInfo::LocalActivity(a) => SlotInfo::LocalActivitySlotInfo {
489
+ activity_type: a.activity_type.as_str().into(),
490
+ },
491
+ temporalio_sdk_core::SlotInfo::Nexus(n) => SlotInfo::NexusSlotInfo {
507
492
  operation: n.operation.as_str().into(),
508
493
  service: n.service.as_str().into(),
509
494
  },
@@ -563,43 +548,45 @@ macro_rules! enter_sync {
563
548
 
564
549
  #[unsafe(no_mangle)]
565
550
  pub extern "C" fn temporal_core_worker_new(
566
- client: *mut Client,
551
+ connection: *mut Connection,
567
552
  options: *const WorkerOptions,
568
553
  ) -> WorkerOrFail {
569
- let client = unsafe { &mut *client };
570
- enter_sync!(client.runtime);
554
+ let connection = unsafe { &mut *connection };
555
+ enter_sync!(connection.runtime);
571
556
  let options = unsafe { &*options };
572
557
 
573
558
  let (worker, fail) = match options.try_into() {
574
559
  Err(err) => (
575
560
  std::ptr::null_mut(),
576
- client
561
+ connection
577
562
  .runtime
578
563
  .alloc_utf8(&format!("Invalid options: {err}"))
579
564
  .into_raw()
580
565
  .cast_const(),
581
566
  ),
582
- Ok(config) => match temporalio_sdk_core::init_worker(
583
- &client.runtime.core,
584
- config,
585
- client.core.clone().into_inner(),
586
- ) {
587
- Err(err) => (
588
- std::ptr::null_mut(),
589
- client
590
- .runtime
591
- .alloc_utf8(&format!("Worker start failed: {err}"))
592
- .into_raw()
593
- .cast_const(),
594
- ),
595
- Ok(worker) => (
596
- Box::into_raw(Box::new(Worker {
597
- worker: Some(Arc::new(worker)),
598
- runtime: client.runtime.clone(),
599
- })),
600
- std::ptr::null(),
601
- ),
602
- },
567
+ Ok(config) => {
568
+ match temporalio_sdk_core::init_worker(
569
+ &connection.runtime.core,
570
+ config,
571
+ connection.core.clone(),
572
+ ) {
573
+ Err(err) => (
574
+ std::ptr::null_mut(),
575
+ connection
576
+ .runtime
577
+ .alloc_utf8(&format!("Worker start failed: {err}"))
578
+ .into_raw()
579
+ .cast_const(),
580
+ ),
581
+ Ok(worker) => (
582
+ Box::into_raw(Box::new(Worker {
583
+ worker: Some(Arc::new(worker)),
584
+ runtime: connection.runtime.clone(),
585
+ })),
586
+ std::ptr::null(),
587
+ ),
588
+ }
589
+ }
603
590
  };
604
591
  WorkerOrFail { worker, fail }
605
592
  }
@@ -646,14 +633,14 @@ pub extern "C" fn temporal_core_worker_validate(
646
633
  #[unsafe(no_mangle)]
647
634
  pub extern "C" fn temporal_core_worker_replace_client(
648
635
  worker: *mut Worker,
649
- new_client: *mut Client,
636
+ new_connection: *mut Connection,
650
637
  ) -> *const ByteArray {
651
638
  let worker = unsafe { &*worker };
652
639
  enter_sync!(worker.runtime);
653
640
  let core_worker = worker.worker.as_ref().expect("missing worker").clone();
654
- let client = unsafe { &*new_client };
641
+ let client = unsafe { &*new_connection };
655
642
 
656
- match core_worker.replace_client(client.core.get_client().clone()) {
643
+ match core_worker.replace_client(client.core.clone()) {
657
644
  Ok(()) => std::ptr::null(),
658
645
  Err(err) => worker
659
646
  .runtime
@@ -1170,7 +1157,7 @@ impl TryFrom<&WorkerOptions> for temporalio_sdk_core::WorkerConfig {
1170
1157
  .versioning_strategy({
1171
1158
  match &opt.versioning_strategy {
1172
1159
  WorkerVersioningStrategy::None(n) => {
1173
- temporalio_common::worker::WorkerVersioningStrategy::None {
1160
+ temporalio_sdk_core::WorkerVersioningStrategy::None {
1174
1161
  build_id: n.build_id.to_string(),
1175
1162
  }
1176
1163
  }
@@ -1183,7 +1170,7 @@ impl TryFrom<&WorkerOptions> for temporalio_sdk_core::WorkerConfig {
1183
1170
  dopts.default_versioning_behavior
1184
1171
  )
1185
1172
  };
1186
- temporalio_common::worker::WorkerVersioningStrategy::WorkerDeploymentBased(
1173
+ temporalio_sdk_core::WorkerVersioningStrategy::WorkerDeploymentBased(
1187
1174
  temporalio_common::worker::WorkerDeploymentOptions {
1188
1175
  version: temporalio_common::worker::WorkerDeploymentVersion {
1189
1176
  deployment_name: dopts.version.deployment_name.to_string(),
@@ -1195,7 +1182,7 @@ impl TryFrom<&WorkerOptions> for temporalio_sdk_core::WorkerConfig {
1195
1182
  )
1196
1183
  }
1197
1184
  WorkerVersioningStrategy::LegacyBuildIdBased(l) => {
1198
- temporalio_common::worker::WorkerVersioningStrategy::LegacyBuildIdBased {
1185
+ temporalio_sdk_core::WorkerVersioningStrategy::LegacyBuildIdBased {
1199
1186
  build_id: l.build_id.to_string(),
1200
1187
  }
1201
1188
  }
@@ -1232,14 +1219,14 @@ impl TryFrom<&WorkerOptions> for temporalio_sdk_core::WorkerConfig {
1232
1219
  // auto-cancel-activity behavior or shutdown will not occur, so we
1233
1220
  // always set it even if 0.
1234
1221
  .graceful_shutdown_period(Duration::from_millis(opt.graceful_shutdown_period_millis))
1235
- .workflow_task_poller_behavior(temporalio_common::worker::PollerBehavior::try_from(
1222
+ .workflow_task_poller_behavior(temporalio_sdk_core::PollerBehavior::try_from(
1236
1223
  &opt.workflow_task_poller_behavior,
1237
1224
  )?)
1238
1225
  .nonsticky_to_sticky_poll_ratio(opt.nonsticky_to_sticky_poll_ratio)
1239
- .activity_task_poller_behavior(temporalio_common::worker::PollerBehavior::try_from(
1226
+ .activity_task_poller_behavior(temporalio_sdk_core::PollerBehavior::try_from(
1240
1227
  &opt.activity_task_poller_behavior,
1241
1228
  )?)
1242
- .nexus_task_poller_behavior(temporalio_common::worker::PollerBehavior::try_from(
1229
+ .nexus_task_poller_behavior(temporalio_sdk_core::PollerBehavior::try_from(
1243
1230
  &opt.nexus_task_poller_behavior,
1244
1231
  )?)
1245
1232
  .workflow_failure_errors(if opt.nondeterminism_as_workflow_fail {
@@ -1 +1,2 @@
1
- imports_granularity="Crate"
1
+ imports_granularity="Crate"
2
+ format_code_in_doc_comments=true