@wazir-dev/cli 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/CHANGELOG.md +54 -44
  2. package/README.md +13 -13
  3. package/assets/demo.cast +47 -0
  4. package/assets/demo.gif +0 -0
  5. package/docs/anti-patterns/AP-23-skipping-enabled-workflows.md +28 -0
  6. package/docs/anti-patterns/AP-24-clarifier-deciding-scope.md +34 -0
  7. package/docs/concepts/architecture.md +1 -1
  8. package/docs/concepts/why-wazir.md +1 -1
  9. package/docs/readmes/INDEX.md +1 -1
  10. package/docs/readmes/features/expertise/README.md +1 -1
  11. package/docs/readmes/features/hooks/pre-compact-summary.md +1 -1
  12. package/docs/reference/hooks.md +1 -0
  13. package/docs/reference/launch-checklist.md +3 -3
  14. package/docs/reference/review-loop-pattern.md +3 -2
  15. package/docs/reference/skill-tiers.md +2 -2
  16. package/docs/research/2026-03-20-agents/a18fb002157904af5.txt +187 -0
  17. package/docs/research/2026-03-20-agents/a1d0ac79ac2f11e6f.txt +2 -0
  18. package/docs/research/2026-03-20-agents/a324079de037abd7c.txt +198 -0
  19. package/docs/research/2026-03-20-agents/a357586bccfafb0e5.txt +256 -0
  20. package/docs/research/2026-03-20-agents/a4365394e4d753105.txt +137 -0
  21. package/docs/research/2026-03-20-agents/a492af28bc52d3613.txt +136 -0
  22. package/docs/research/2026-03-20-agents/a4984db0b6a8eee07.txt +124 -0
  23. package/docs/research/2026-03-20-agents/a5b30e59d34bbb062.txt +214 -0
  24. package/docs/research/2026-03-20-agents/a5cf7829dab911586.txt +165 -0
  25. package/docs/research/2026-03-20-agents/a607157c30dd97c9e.txt +96 -0
  26. package/docs/research/2026-03-20-agents/a60b68b1e19d1e16b.txt +115 -0
  27. package/docs/research/2026-03-20-agents/a722af01c5594aba0.txt +166 -0
  28. package/docs/research/2026-03-20-agents/a787bdc516faa5829.txt +181 -0
  29. package/docs/research/2026-03-20-agents/a7c46d1bba1056ed2.txt +132 -0
  30. package/docs/research/2026-03-20-agents/a7e5abbab2b281a0d.txt +100 -0
  31. package/docs/research/2026-03-20-agents/a8dbadc66cd0d7d5a.txt +95 -0
  32. package/docs/research/2026-03-20-agents/a904d9f45d6b86a6d.txt +75 -0
  33. package/docs/research/2026-03-20-agents/a927659a942ee7f60.txt +102 -0
  34. package/docs/research/2026-03-20-agents/a962cb569191f7583.txt +125 -0
  35. package/docs/research/2026-03-20-agents/aab6decea538aac41.txt +148 -0
  36. package/docs/research/2026-03-20-agents/abd58b853dd938a1b.txt +295 -0
  37. package/docs/research/2026-03-20-agents/ac009da573eff7f65.txt +100 -0
  38. package/docs/research/2026-03-20-agents/ac1bc783364405e5f.txt +190 -0
  39. package/docs/research/2026-03-20-agents/aca5e2b57fde152a0.txt +132 -0
  40. package/docs/research/2026-03-20-agents/ad849b8c0a7e95b8b.txt +176 -0
  41. package/docs/research/2026-03-20-agents/adc2b12a4da32c962.txt +258 -0
  42. package/docs/research/2026-03-20-agents/af97caaaa9a80e4cb.txt +146 -0
  43. package/docs/research/2026-03-20-agents/afc5faceee368b3ca.txt +111 -0
  44. package/docs/research/2026-03-20-agents/afdb282d866e3c1e4.txt +164 -0
  45. package/docs/research/2026-03-20-agents/afe9d1f61c02b1e8d.txt +299 -0
  46. package/docs/research/2026-03-20-agents/b4hmkwril.txt +1856 -0
  47. package/docs/research/2026-03-20-agents/b80ptk89g.txt +1856 -0
  48. package/docs/research/2026-03-20-agents/bf54s1jss.txt +1150 -0
  49. package/docs/research/2026-03-20-agents/bhd6kq2kx.txt +1856 -0
  50. package/docs/research/2026-03-20-agents/bmb2fodyr.txt +988 -0
  51. package/docs/research/2026-03-20-agents/bmmsrij8i.txt +826 -0
  52. package/docs/research/2026-03-20-agents/bn4t2ywpu.txt +2175 -0
  53. package/docs/research/2026-03-20-agents/bu22t9f1z.txt +0 -0
  54. package/docs/research/2026-03-20-agents/bwvl98v2p.txt +738 -0
  55. package/docs/research/2026-03-20-agents/psych-a3697a7fd06eb64fd.txt +135 -0
  56. package/docs/research/2026-03-20-agents/psych-a37776fabc870feae.txt +123 -0
  57. package/docs/research/2026-03-20-agents/psych-a5b1fe05c0589efaf.txt +2 -0
  58. package/docs/research/2026-03-20-agents/psych-a95c15b1f29424435.txt +76 -0
  59. package/docs/research/2026-03-20-agents/psych-a9c26f4d9172dde7c.txt +2 -0
  60. package/docs/research/2026-03-20-agents/psych-aa19c69f0ca2c5ad3.txt +2 -0
  61. package/docs/research/2026-03-20-agents/psych-aa4e4cb70e1be5ecb.txt +95 -0
  62. package/docs/research/2026-03-20-agents/psych-ab5b302f26a554663.txt +102 -0
  63. package/docs/research/2026-03-20-deep-research-complete.md +101 -0
  64. package/docs/research/2026-03-20-deep-research-status.md +38 -0
  65. package/docs/research/2026-03-20-enforcement-research.md +107 -0
  66. package/expertise/antipatterns/process/ai-coding-antipatterns.md +117 -0
  67. package/expertise/composition-map.yaml +27 -8
  68. package/expertise/digests/reviewer/ai-coding-digest.md +83 -0
  69. package/expertise/digests/reviewer/architectural-thinking-digest.md +63 -0
  70. package/expertise/digests/reviewer/architecture-antipatterns-digest.md +49 -0
  71. package/expertise/digests/reviewer/code-smells-digest.md +53 -0
  72. package/expertise/digests/reviewer/coupling-cohesion-digest.md +54 -0
  73. package/expertise/digests/reviewer/ddd-digest.md +60 -0
  74. package/expertise/digests/reviewer/dependency-risk-digest.md +40 -0
  75. package/expertise/digests/reviewer/error-handling-digest.md +55 -0
  76. package/expertise/digests/reviewer/review-methodology-digest.md +49 -0
  77. package/exports/hosts/claude/.claude/commands/learn.md +61 -8
  78. package/exports/hosts/claude/.claude/commands/plan-review.md +3 -1
  79. package/exports/hosts/claude/.claude/commands/verify.md +30 -1
  80. package/exports/hosts/claude/.claude/settings.json +7 -6
  81. package/exports/hosts/claude/export.manifest.json +8 -5
  82. package/exports/hosts/claude/host-package.json +3 -0
  83. package/exports/hosts/codex/export.manifest.json +8 -5
  84. package/exports/hosts/codex/host-package.json +3 -0
  85. package/exports/hosts/cursor/.cursor/hooks.json +6 -6
  86. package/exports/hosts/cursor/export.manifest.json +8 -5
  87. package/exports/hosts/cursor/host-package.json +3 -0
  88. package/exports/hosts/gemini/export.manifest.json +8 -5
  89. package/exports/hosts/gemini/host-package.json +3 -0
  90. package/hooks/definitions/pretooluse_dispatcher.yaml +26 -0
  91. package/hooks/definitions/pretooluse_pipeline_guard.yaml +22 -0
  92. package/hooks/definitions/stop_pipeline_gate.yaml +22 -0
  93. package/hooks/hooks.json +7 -6
  94. package/hooks/pretooluse-dispatcher +84 -0
  95. package/hooks/pretooluse-pipeline-guard +9 -0
  96. package/hooks/stop-pipeline-gate +9 -0
  97. package/llms-full.txt +48 -18
  98. package/package.json +2 -3
  99. package/schemas/decision.schema.json +15 -0
  100. package/schemas/hook.schema.json +4 -1
  101. package/schemas/phase-report.schema.json +9 -0
  102. package/skills/TEMPLATE-3-ZONE.md +160 -0
  103. package/skills/brainstorming/SKILL.md +137 -21
  104. package/skills/clarifier/SKILL.md +364 -53
  105. package/skills/claude-cli/SKILL.md +91 -12
  106. package/skills/codex-cli/SKILL.md +91 -12
  107. package/skills/debugging/SKILL.md +133 -38
  108. package/skills/design/SKILL.md +173 -37
  109. package/skills/dispatching-parallel-agents/SKILL.md +129 -31
  110. package/skills/executing-plans/SKILL.md +113 -25
  111. package/skills/executor/SKILL.md +252 -21
  112. package/skills/finishing-a-development-branch/SKILL.md +107 -18
  113. package/skills/gemini-cli/SKILL.md +91 -12
  114. package/skills/humanize/SKILL.md +92 -13
  115. package/skills/init-pipeline/SKILL.md +90 -18
  116. package/skills/prepare-next/SKILL.md +93 -24
  117. package/skills/receiving-code-review/SKILL.md +90 -16
  118. package/skills/requesting-code-review/SKILL.md +100 -24
  119. package/skills/requesting-code-review/code-reviewer.md +29 -17
  120. package/skills/reviewer/SKILL.md +270 -57
  121. package/skills/run-audit/SKILL.md +92 -15
  122. package/skills/scan-project/SKILL.md +93 -14
  123. package/skills/self-audit/SKILL.md +133 -39
  124. package/skills/skill-research/SKILL.md +275 -0
  125. package/skills/subagent-driven-development/SKILL.md +129 -30
  126. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +30 -2
  127. package/skills/subagent-driven-development/implementer-prompt.md +40 -27
  128. package/skills/subagent-driven-development/spec-reviewer-prompt.md +25 -12
  129. package/skills/tdd/SKILL.md +125 -20
  130. package/skills/using-git-worktrees/SKILL.md +118 -28
  131. package/skills/using-skills/SKILL.md +116 -29
  132. package/skills/verification/SKILL.md +160 -17
  133. package/skills/wazir/SKILL.md +750 -120
  134. package/skills/writing-plans/SKILL.md +134 -28
  135. package/skills/writing-skills/SKILL.md +91 -13
  136. package/skills/writing-skills/anthropic-best-practices.md +104 -64
  137. package/skills/writing-skills/persuasion-principles.md +100 -34
  138. package/tooling/src/capture/command.js +46 -2
  139. package/tooling/src/capture/decision.js +40 -0
  140. package/tooling/src/capture/store.js +33 -0
  141. package/tooling/src/capture/user-input.js +66 -0
  142. package/tooling/src/checks/security-sensitivity.js +69 -0
  143. package/tooling/src/cli.js +28 -26
  144. package/tooling/src/config/depth-table.js +60 -0
  145. package/tooling/src/export/compiler.js +7 -8
  146. package/tooling/src/guards/guardrail-functions.js +131 -0
  147. package/tooling/src/guards/phase-prerequisite-guard.js +97 -3
  148. package/tooling/src/hooks/pretooluse-dispatcher.js +300 -0
  149. package/tooling/src/hooks/pretooluse-pipeline-guard.js +141 -0
  150. package/tooling/src/hooks/stop-pipeline-gate.js +92 -0
  151. package/tooling/src/init/auto-detect.js +0 -2
  152. package/tooling/src/init/command.js +3 -95
  153. package/tooling/src/learn/pipeline.js +177 -0
  154. package/tooling/src/state/db.js +251 -2
  155. package/tooling/src/state/pipeline-state.js +262 -0
  156. package/tooling/src/status/command.js +6 -1
  157. package/tooling/src/verify/proof-collector.js +299 -0
  158. package/wazir.manifest.yaml +3 -0
  159. package/workflows/learn.md +61 -8
  160. package/workflows/plan-review.md +3 -1
  161. package/workflows/verify.md +30 -1
@@ -0,0 +1,988 @@
1
+ def start_activity(
2
+ activity: CallableAsyncNoParam[ReturnType],
3
+ *,
4
+ task_queue: str | None = None,
5
+ schedule_to_close_timeout: timedelta | None = None,
6
+ schedule_to_start_timeout: timedelta | None = None,
7
+ start_to_close_timeout: timedelta | None = None,
8
+ heartbeat_timeout: timedelta | None = None,
9
+ retry_policy: temporalio.common.RetryPolicy | None = None,
10
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
11
+ activity_id: str | None = None,
12
+ versioning_intent: VersioningIntent | None = None,
13
+ summary: str | None = None,
14
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
15
+ ) -> ActivityHandle[ReturnType]: ...
16
+
17
+
18
+ # Overload for sync no-param activity
19
+ @overload
20
+ def start_activity(
21
+ activity: CallableSyncNoParam[ReturnType],
22
+ *,
23
+ task_queue: str | None = None,
24
+ schedule_to_close_timeout: timedelta | None = None,
25
+ schedule_to_start_timeout: timedelta | None = None,
26
+ start_to_close_timeout: timedelta | None = None,
27
+ heartbeat_timeout: timedelta | None = None,
28
+ retry_policy: temporalio.common.RetryPolicy | None = None,
29
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
30
+ activity_id: str | None = None,
31
+ versioning_intent: VersioningIntent | None = None,
32
+ summary: str | None = None,
33
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
34
+ ) -> ActivityHandle[ReturnType]: ...
35
+
36
+
37
+ # Overload for async single-param activity
38
+ @overload
39
+ def start_activity(
40
+ activity: CallableAsyncSingleParam[ParamType, ReturnType],
41
+ arg: ParamType,
42
+ *,
43
+ task_queue: str | None = None,
44
+ schedule_to_close_timeout: timedelta | None = None,
45
+ schedule_to_start_timeout: timedelta | None = None,
46
+ start_to_close_timeout: timedelta | None = None,
47
+ heartbeat_timeout: timedelta | None = None,
48
+ retry_policy: temporalio.common.RetryPolicy | None = None,
49
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
50
+ activity_id: str | None = None,
51
+ versioning_intent: VersioningIntent | None = None,
52
+ summary: str | None = None,
53
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
54
+ ) -> ActivityHandle[ReturnType]: ...
55
+
56
+
57
+ # Overload for sync single-param activity
58
+ @overload
59
+ def start_activity(
60
+ activity: CallableSyncSingleParam[ParamType, ReturnType],
61
+ arg: ParamType,
62
+ *,
63
+ task_queue: str | None = None,
64
+ schedule_to_close_timeout: timedelta | None = None,
65
+ schedule_to_start_timeout: timedelta | None = None,
66
+ start_to_close_timeout: timedelta | None = None,
67
+ heartbeat_timeout: timedelta | None = None,
68
+ retry_policy: temporalio.common.RetryPolicy | None = None,
69
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
70
+ activity_id: str | None = None,
71
+ versioning_intent: VersioningIntent | None = None,
72
+ summary: str | None = None,
73
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
74
+ ) -> ActivityHandle[ReturnType]: ...
75
+
76
+
77
+ # Overload for async multi-param activity
78
+ @overload
79
+ def start_activity(
80
+ activity: Callable[..., Awaitable[ReturnType]],
81
+ *,
82
+ args: Sequence[Any],
83
+ task_queue: str | None = None,
84
+ schedule_to_close_timeout: timedelta | None = None,
85
+ schedule_to_start_timeout: timedelta | None = None,
86
+ start_to_close_timeout: timedelta | None = None,
87
+ heartbeat_timeout: timedelta | None = None,
88
+ retry_policy: temporalio.common.RetryPolicy | None = None,
89
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
90
+ activity_id: str | None = None,
91
+ versioning_intent: VersioningIntent | None = None,
92
+ summary: str | None = None,
93
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
94
+ ) -> ActivityHandle[ReturnType]: ...
95
+
96
+
97
+ # Overload for sync multi-param activity
98
+ @overload
99
+ def start_activity(
100
+ activity: Callable[..., ReturnType],
101
+ *,
102
+ args: Sequence[Any],
103
+ task_queue: str | None = None,
104
+ schedule_to_close_timeout: timedelta | None = None,
105
+ schedule_to_start_timeout: timedelta | None = None,
106
+ start_to_close_timeout: timedelta | None = None,
107
+ heartbeat_timeout: timedelta | None = None,
108
+ retry_policy: temporalio.common.RetryPolicy | None = None,
109
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
110
+ activity_id: str | None = None,
111
+ versioning_intent: VersioningIntent | None = None,
112
+ summary: str | None = None,
113
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
114
+ ) -> ActivityHandle[ReturnType]: ...
115
+
116
+
117
+ # Overload for string-name activity
118
+ @overload
119
+ def start_activity(
120
+ activity: str,
121
+ arg: Any = temporalio.common._arg_unset,
122
+ *,
123
+ args: Sequence[Any] = [],
124
+ task_queue: str | None = None,
125
+ result_type: type | None = None,
126
+ schedule_to_close_timeout: timedelta | None = None,
127
+ schedule_to_start_timeout: timedelta | None = None,
128
+ start_to_close_timeout: timedelta | None = None,
129
+ heartbeat_timeout: timedelta | None = None,
130
+ retry_policy: temporalio.common.RetryPolicy | None = None,
131
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
132
+ activity_id: str | None = None,
133
+ versioning_intent: VersioningIntent | None = None,
134
+ summary: str | None = None,
135
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
136
+ ) -> ActivityHandle[Any]: ...
137
+
138
+
139
+ def start_activity(
140
+ activity: Any,
141
+ arg: Any = temporalio.common._arg_unset,
142
+ *,
143
+ args: Sequence[Any] = [],
144
+ task_queue: str | None = None,
145
+ result_type: type | None = None,
146
+ schedule_to_close_timeout: timedelta | None = None,
147
+ schedule_to_start_timeout: timedelta | None = None,
148
+ start_to_close_timeout: timedelta | None = None,
149
+ heartbeat_timeout: timedelta | None = None,
150
+ retry_policy: temporalio.common.RetryPolicy | None = None,
151
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
152
+ activity_id: str | None = None,
153
+ versioning_intent: VersioningIntent | None = None,
154
+ summary: str | None = None,
155
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
156
+ ) -> ActivityHandle[Any]:
157
+ """Start an activity and return its handle.
158
+
159
+ At least one of ``schedule_to_close_timeout`` or ``start_to_close_timeout``
160
+ must be present.
161
+
162
+ Args:
163
+ activity: Activity name or function reference.
164
+ arg: Single argument to the activity.
165
+ args: Multiple arguments to the activity. Cannot be set if arg is.
166
+ task_queue: Task queue to run the activity on. Defaults to the current
167
+ workflow's task queue.
168
+ result_type: For string activities, this can set the specific result
169
+ type hint to deserialize into.
170
+ schedule_to_close_timeout: Max amount of time the activity can take from
171
+ first being scheduled to being completed before it times out. This
172
+ is inclusive of all retries.
173
+ schedule_to_start_timeout: Max amount of time the activity can take to
174
+ be started from first being scheduled.
175
+ start_to_close_timeout: Max amount of time a single activity run can
176
+ take from when it starts to when it completes. This is per retry.
177
+ heartbeat_timeout: How frequently an activity must invoke heartbeat
178
+ while running before it is considered timed out.
179
+ retry_policy: How an activity is retried on failure. If unset, a
180
+ --
181
+ async def execute_activity(
182
+ activity: CallableAsyncNoParam[ReturnType],
183
+ *,
184
+ task_queue: str | None = None,
185
+ schedule_to_close_timeout: timedelta | None = None,
186
+ schedule_to_start_timeout: timedelta | None = None,
187
+ start_to_close_timeout: timedelta | None = None,
188
+ heartbeat_timeout: timedelta | None = None,
189
+ retry_policy: temporalio.common.RetryPolicy | None = None,
190
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
191
+ activity_id: str | None = None,
192
+ versioning_intent: VersioningIntent | None = None,
193
+ summary: str | None = None,
194
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
195
+ ) -> ReturnType: ...
196
+
197
+
198
+ # Overload for sync no-param activity
199
+ @overload
200
+ async def execute_activity(
201
+ activity: CallableSyncNoParam[ReturnType],
202
+ *,
203
+ task_queue: str | None = None,
204
+ schedule_to_close_timeout: timedelta | None = None,
205
+ schedule_to_start_timeout: timedelta | None = None,
206
+ start_to_close_timeout: timedelta | None = None,
207
+ heartbeat_timeout: timedelta | None = None,
208
+ retry_policy: temporalio.common.RetryPolicy | None = None,
209
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
210
+ activity_id: str | None = None,
211
+ versioning_intent: VersioningIntent | None = None,
212
+ summary: str | None = None,
213
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
214
+ ) -> ReturnType: ...
215
+
216
+
217
+ # Overload for async single-param activity
218
+ @overload
219
+ async def execute_activity(
220
+ activity: CallableAsyncSingleParam[ParamType, ReturnType],
221
+ arg: ParamType,
222
+ *,
223
+ task_queue: str | None = None,
224
+ schedule_to_close_timeout: timedelta | None = None,
225
+ schedule_to_start_timeout: timedelta | None = None,
226
+ start_to_close_timeout: timedelta | None = None,
227
+ heartbeat_timeout: timedelta | None = None,
228
+ retry_policy: temporalio.common.RetryPolicy | None = None,
229
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
230
+ activity_id: str | None = None,
231
+ versioning_intent: VersioningIntent | None = None,
232
+ summary: str | None = None,
233
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
234
+ ) -> ReturnType: ...
235
+
236
+
237
+ # Overload for sync single-param activity
238
+ @overload
239
+ async def execute_activity(
240
+ activity: CallableSyncSingleParam[ParamType, ReturnType],
241
+ arg: ParamType,
242
+ *,
243
+ task_queue: str | None = None,
244
+ schedule_to_close_timeout: timedelta | None = None,
245
+ schedule_to_start_timeout: timedelta | None = None,
246
+ start_to_close_timeout: timedelta | None = None,
247
+ heartbeat_timeout: timedelta | None = None,
248
+ retry_policy: temporalio.common.RetryPolicy | None = None,
249
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
250
+ activity_id: str | None = None,
251
+ versioning_intent: VersioningIntent | None = None,
252
+ summary: str | None = None,
253
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
254
+ ) -> ReturnType: ...
255
+
256
+
257
+ # Overload for async multi-param activity
258
+ @overload
259
+ async def execute_activity(
260
+ activity: Callable[..., Awaitable[ReturnType]],
261
+ *,
262
+ args: Sequence[Any],
263
+ task_queue: str | None = None,
264
+ schedule_to_close_timeout: timedelta | None = None,
265
+ schedule_to_start_timeout: timedelta | None = None,
266
+ start_to_close_timeout: timedelta | None = None,
267
+ heartbeat_timeout: timedelta | None = None,
268
+ retry_policy: temporalio.common.RetryPolicy | None = None,
269
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
270
+ activity_id: str | None = None,
271
+ versioning_intent: VersioningIntent | None = None,
272
+ summary: str | None = None,
273
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
274
+ ) -> ReturnType: ...
275
+
276
+
277
+ # Overload for sync multi-param activity
278
+ @overload
279
+ async def execute_activity(
280
+ activity: Callable[..., ReturnType],
281
+ *,
282
+ args: Sequence[Any],
283
+ task_queue: str | None = None,
284
+ schedule_to_close_timeout: timedelta | None = None,
285
+ schedule_to_start_timeout: timedelta | None = None,
286
+ start_to_close_timeout: timedelta | None = None,
287
+ heartbeat_timeout: timedelta | None = None,
288
+ retry_policy: temporalio.common.RetryPolicy | None = None,
289
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
290
+ activity_id: str | None = None,
291
+ versioning_intent: VersioningIntent | None = None,
292
+ summary: str | None = None,
293
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
294
+ ) -> ReturnType: ...
295
+
296
+
297
+ # Overload for string-name activity
298
+ @overload
299
+ async def execute_activity(
300
+ activity: str,
301
+ arg: Any = temporalio.common._arg_unset,
302
+ *,
303
+ args: Sequence[Any] = [],
304
+ task_queue: str | None = None,
305
+ result_type: type | None = None,
306
+ schedule_to_close_timeout: timedelta | None = None,
307
+ schedule_to_start_timeout: timedelta | None = None,
308
+ start_to_close_timeout: timedelta | None = None,
309
+ heartbeat_timeout: timedelta | None = None,
310
+ retry_policy: temporalio.common.RetryPolicy | None = None,
311
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
312
+ activity_id: str | None = None,
313
+ versioning_intent: VersioningIntent | None = None,
314
+ summary: str | None = None,
315
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
316
+ ) -> Any: ...
317
+
318
+
319
+ async def execute_activity(
320
+ activity: Any,
321
+ arg: Any = temporalio.common._arg_unset,
322
+ *,
323
+ args: Sequence[Any] = [],
324
+ task_queue: str | None = None,
325
+ result_type: type | None = None,
326
+ schedule_to_close_timeout: timedelta | None = None,
327
+ schedule_to_start_timeout: timedelta | None = None,
328
+ start_to_close_timeout: timedelta | None = None,
329
+ heartbeat_timeout: timedelta | None = None,
330
+ retry_policy: temporalio.common.RetryPolicy | None = None,
331
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
332
+ activity_id: str | None = None,
333
+ versioning_intent: VersioningIntent | None = None,
334
+ summary: str | None = None,
335
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
336
+ ) -> Any:
337
+ """Start an activity and wait for completion.
338
+
339
+ This is a shortcut for ``await`` :py:meth:`start_activity`.
340
+ """
341
+ # We call the runtime directly instead of top-level start_activity to ensure
342
+ # we don't miss new parameters
343
+ return await _Runtime.current().workflow_start_activity(
344
+ activity,
345
+ *temporalio.common._arg_or_args(arg, args),
346
+ task_queue=task_queue,
347
+ result_type=result_type,
348
+ schedule_to_close_timeout=schedule_to_close_timeout,
349
+ schedule_to_start_timeout=schedule_to_start_timeout,
350
+ start_to_close_timeout=start_to_close_timeout,
351
+ heartbeat_timeout=heartbeat_timeout,
352
+ retry_policy=retry_policy,
353
+ cancellation_type=cancellation_type,
354
+ activity_id=activity_id,
355
+ versioning_intent=versioning_intent,
356
+ summary=summary,
357
+ priority=priority,
358
+ )
359
+
360
+ --
361
+ def start_activity_class(
362
+ activity: type[CallableAsyncNoParam[ReturnType]],
363
+ *,
364
+ task_queue: str | None = None,
365
+ schedule_to_close_timeout: timedelta | None = None,
366
+ schedule_to_start_timeout: timedelta | None = None,
367
+ start_to_close_timeout: timedelta | None = None,
368
+ heartbeat_timeout: timedelta | None = None,
369
+ retry_policy: temporalio.common.RetryPolicy | None = None,
370
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
371
+ activity_id: str | None = None,
372
+ versioning_intent: VersioningIntent | None = None,
373
+ summary: str | None = None,
374
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
375
+ ) -> ActivityHandle[ReturnType]: ...
376
+
377
+
378
+ # Overload for sync no-param activity
379
+ @overload
380
+ def start_activity_class(
381
+ activity: type[CallableSyncNoParam[ReturnType]],
382
+ *,
383
+ task_queue: str | None = None,
384
+ schedule_to_close_timeout: timedelta | None = None,
385
+ schedule_to_start_timeout: timedelta | None = None,
386
+ start_to_close_timeout: timedelta | None = None,
387
+ heartbeat_timeout: timedelta | None = None,
388
+ retry_policy: temporalio.common.RetryPolicy | None = None,
389
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
390
+ activity_id: str | None = None,
391
+ versioning_intent: VersioningIntent | None = None,
392
+ summary: str | None = None,
393
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
394
+ ) -> ActivityHandle[ReturnType]: ...
395
+
396
+
397
+ # Overload for async single-param activity
398
+ @overload
399
+ def start_activity_class(
400
+ activity: type[CallableAsyncSingleParam[ParamType, ReturnType]],
401
+ arg: ParamType,
402
+ *,
403
+ task_queue: str | None = None,
404
+ schedule_to_close_timeout: timedelta | None = None,
405
+ schedule_to_start_timeout: timedelta | None = None,
406
+ start_to_close_timeout: timedelta | None = None,
407
+ heartbeat_timeout: timedelta | None = None,
408
+ retry_policy: temporalio.common.RetryPolicy | None = None,
409
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
410
+ activity_id: str | None = None,
411
+ versioning_intent: VersioningIntent | None = None,
412
+ summary: str | None = None,
413
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
414
+ ) -> ActivityHandle[ReturnType]: ...
415
+
416
+
417
+ # Overload for sync single-param activity
418
+ @overload
419
+ def start_activity_class(
420
+ activity: type[CallableSyncSingleParam[ParamType, ReturnType]],
421
+ arg: ParamType,
422
+ *,
423
+ task_queue: str | None = None,
424
+ schedule_to_close_timeout: timedelta | None = None,
425
+ schedule_to_start_timeout: timedelta | None = None,
426
+ start_to_close_timeout: timedelta | None = None,
427
+ heartbeat_timeout: timedelta | None = None,
428
+ retry_policy: temporalio.common.RetryPolicy | None = None,
429
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
430
+ activity_id: str | None = None,
431
+ versioning_intent: VersioningIntent | None = None,
432
+ summary: str | None = None,
433
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
434
+ ) -> ActivityHandle[ReturnType]: ...
435
+
436
+
437
+ # Overload for async multi-param activity
438
+ @overload
439
+ def start_activity_class(
440
+ activity: type[Callable[..., Awaitable[ReturnType]]], # type: ignore[reportOverlappingOverload]
441
+ *,
442
+ args: Sequence[Any],
443
+ task_queue: str | None = None,
444
+ schedule_to_close_timeout: timedelta | None = None,
445
+ schedule_to_start_timeout: timedelta | None = None,
446
+ start_to_close_timeout: timedelta | None = None,
447
+ heartbeat_timeout: timedelta | None = None,
448
+ retry_policy: temporalio.common.RetryPolicy | None = None,
449
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
450
+ activity_id: str | None = None,
451
+ versioning_intent: VersioningIntent | None = None,
452
+ summary: str | None = None,
453
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
454
+ ) -> ActivityHandle[ReturnType]: ...
455
+
456
+
457
+ # Overload for sync multi-param activity
458
+ @overload
459
+ def start_activity_class( # type: ignore[reportOverlappingOverload]
460
+ activity: type[Callable[..., ReturnType]], # type: ignore[reportOverlappingOverload]
461
+ *,
462
+ args: Sequence[Any],
463
+ task_queue: str | None = None,
464
+ schedule_to_close_timeout: timedelta | None = None,
465
+ schedule_to_start_timeout: timedelta | None = None,
466
+ start_to_close_timeout: timedelta | None = None,
467
+ heartbeat_timeout: timedelta | None = None,
468
+ retry_policy: temporalio.common.RetryPolicy | None = None,
469
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
470
+ activity_id: str | None = None,
471
+ versioning_intent: VersioningIntent | None = None,
472
+ summary: str | None = None,
473
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
474
+ ) -> ActivityHandle[ReturnType]: ...
475
+
476
+
477
+ def start_activity_class(
478
+ activity: type[Callable], # type: ignore[reportOverlappingOverload]
479
+ arg: Any = temporalio.common._arg_unset,
480
+ *,
481
+ args: Sequence[Any] = [],
482
+ task_queue: str | None = None,
483
+ schedule_to_close_timeout: timedelta | None = None,
484
+ schedule_to_start_timeout: timedelta | None = None,
485
+ start_to_close_timeout: timedelta | None = None,
486
+ heartbeat_timeout: timedelta | None = None,
487
+ retry_policy: temporalio.common.RetryPolicy | None = None,
488
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
489
+ activity_id: str | None = None,
490
+ versioning_intent: VersioningIntent | None = None,
491
+ summary: str | None = None,
492
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
493
+ ) -> ActivityHandle[Any]:
494
+ """Start an activity from a callable class.
495
+
496
+ See :py:meth:`start_activity` for parameter and return details.
497
+ """
498
+ return _Runtime.current().workflow_start_activity(
499
+ activity,
500
+ *temporalio.common._arg_or_args(arg, args),
501
+ task_queue=task_queue,
502
+ result_type=None,
503
+ schedule_to_close_timeout=schedule_to_close_timeout,
504
+ schedule_to_start_timeout=schedule_to_start_timeout,
505
+ start_to_close_timeout=start_to_close_timeout,
506
+ heartbeat_timeout=heartbeat_timeout,
507
+ retry_policy=retry_policy,
508
+ cancellation_type=cancellation_type,
509
+ activity_id=activity_id,
510
+ versioning_intent=versioning_intent,
511
+ summary=summary,
512
+ priority=priority,
513
+ )
514
+
515
+
516
+ # Overload for async no-param activity
517
+ @overload
518
+ async def execute_activity_class(
519
+ activity: type[CallableAsyncNoParam[ReturnType]],
520
+ *,
521
+ task_queue: str | None = None,
522
+ schedule_to_close_timeout: timedelta | None = None,
523
+ schedule_to_start_timeout: timedelta | None = None,
524
+ start_to_close_timeout: timedelta | None = None,
525
+ heartbeat_timeout: timedelta | None = None,
526
+ retry_policy: temporalio.common.RetryPolicy | None = None,
527
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
528
+ activity_id: str | None = None,
529
+ versioning_intent: VersioningIntent | None = None,
530
+ summary: str | None = None,
531
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
532
+ ) -> ReturnType: ...
533
+
534
+
535
+ # Overload for sync no-param activity
536
+ @overload
537
+ async def execute_activity_class(
538
+ activity: type[CallableSyncNoParam[ReturnType]],
539
+ *,
540
+ task_queue: str | None = None,
541
+ schedule_to_close_timeout: timedelta | None = None,
542
+ schedule_to_start_timeout: timedelta | None = None,
543
+ start_to_close_timeout: timedelta | None = None,
544
+ heartbeat_timeout: timedelta | None = None,
545
+ retry_policy: temporalio.common.RetryPolicy | None = None,
546
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
547
+ activity_id: str | None = None,
548
+ versioning_intent: VersioningIntent | None = None,
549
+ summary: str | None = None,
550
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
551
+ ) -> ReturnType: ...
552
+
553
+
554
+ # Overload for async single-param activity
555
+ @overload
556
+ async def execute_activity_class(
557
+ activity: type[CallableAsyncSingleParam[ParamType, ReturnType]],
558
+ arg: ParamType,
559
+ *,
560
+ task_queue: str | None = None,
561
+ schedule_to_close_timeout: timedelta | None = None,
562
+ schedule_to_start_timeout: timedelta | None = None,
563
+ start_to_close_timeout: timedelta | None = None,
564
+ heartbeat_timeout: timedelta | None = None,
565
+ retry_policy: temporalio.common.RetryPolicy | None = None,
566
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
567
+ activity_id: str | None = None,
568
+ versioning_intent: VersioningIntent | None = None,
569
+ summary: str | None = None,
570
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
571
+ ) -> ReturnType: ...
572
+
573
+
574
+ # Overload for sync single-param activity
575
+ @overload
576
+ async def execute_activity_class(
577
+ activity: type[CallableSyncSingleParam[ParamType, ReturnType]],
578
+ arg: ParamType,
579
+ *,
580
+ task_queue: str | None = None,
581
+ schedule_to_close_timeout: timedelta | None = None,
582
+ schedule_to_start_timeout: timedelta | None = None,
583
+ start_to_close_timeout: timedelta | None = None,
584
+ heartbeat_timeout: timedelta | None = None,
585
+ retry_policy: temporalio.common.RetryPolicy | None = None,
586
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
587
+ activity_id: str | None = None,
588
+ versioning_intent: VersioningIntent | None = None,
589
+ summary: str | None = None,
590
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
591
+ ) -> ReturnType: ...
592
+
593
+
594
+ # Overload for async multi-param activity
595
+ @overload
596
+ async def execute_activity_class(
597
+ activity: type[Callable[..., Awaitable[ReturnType]]], # type: ignore[reportOverlappingOverload]
598
+ *,
599
+ args: Sequence[Any],
600
+ task_queue: str | None = None,
601
+ schedule_to_close_timeout: timedelta | None = None,
602
+ schedule_to_start_timeout: timedelta | None = None,
603
+ start_to_close_timeout: timedelta | None = None,
604
+ heartbeat_timeout: timedelta | None = None,
605
+ retry_policy: temporalio.common.RetryPolicy | None = None,
606
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
607
+ activity_id: str | None = None,
608
+ versioning_intent: VersioningIntent | None = None,
609
+ summary: str | None = None,
610
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
611
+ ) -> ReturnType: ...
612
+
613
+
614
+ # Overload for sync multi-param activity
615
+ @overload
616
+ async def execute_activity_class(
617
+ activity: type[Callable[..., ReturnType]], # type: ignore[reportOverlappingOverload]
618
+ *,
619
+ args: Sequence[Any],
620
+ task_queue: str | None = None,
621
+ schedule_to_close_timeout: timedelta | None = None,
622
+ schedule_to_start_timeout: timedelta | None = None,
623
+ start_to_close_timeout: timedelta | None = None,
624
+ heartbeat_timeout: timedelta | None = None,
625
+ retry_policy: temporalio.common.RetryPolicy | None = None,
626
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
627
+ activity_id: str | None = None,
628
+ versioning_intent: VersioningIntent | None = None,
629
+ summary: str | None = None,
630
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
631
+ ) -> ReturnType: ...
632
+
633
+
634
+ async def execute_activity_class(
635
+ activity: type[Callable], # type: ignore[reportOverlappingOverload]
636
+ arg: Any = temporalio.common._arg_unset,
637
+ *,
638
+ args: Sequence[Any] = [],
639
+ task_queue: str | None = None,
640
+ schedule_to_close_timeout: timedelta | None = None,
641
+ schedule_to_start_timeout: timedelta | None = None,
642
+ start_to_close_timeout: timedelta | None = None,
643
+ heartbeat_timeout: timedelta | None = None,
644
+ retry_policy: temporalio.common.RetryPolicy | None = None,
645
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
646
+ activity_id: str | None = None,
647
+ versioning_intent: VersioningIntent | None = None,
648
+ summary: str | None = None,
649
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
650
+ ) -> Any:
651
+ """Start an activity from a callable class and wait for completion.
652
+
653
+ This is a shortcut for ``await`` :py:meth:`start_activity_class`.
654
+ """
655
+ return await _Runtime.current().workflow_start_activity(
656
+ activity,
657
+ *temporalio.common._arg_or_args(arg, args),
658
+ task_queue=task_queue,
659
+ result_type=None,
660
+ schedule_to_close_timeout=schedule_to_close_timeout,
661
+ schedule_to_start_timeout=schedule_to_start_timeout,
662
+ start_to_close_timeout=start_to_close_timeout,
663
+ heartbeat_timeout=heartbeat_timeout,
664
+ retry_policy=retry_policy,
665
+ cancellation_type=cancellation_type,
666
+ activity_id=activity_id,
667
+ versioning_intent=versioning_intent,
668
+ summary=summary,
669
+ priority=priority,
670
+ )
671
+
672
+
673
+ # Overload for async no-param activity
674
+ @overload
675
+ def start_activity_method(
676
+ activity: MethodAsyncNoParam[SelfType, ReturnType],
677
+ *,
678
+ task_queue: str | None = None,
679
+ schedule_to_close_timeout: timedelta | None = None,
680
+ schedule_to_start_timeout: timedelta | None = None,
681
+ start_to_close_timeout: timedelta | None = None,
682
+ heartbeat_timeout: timedelta | None = None,
683
+ retry_policy: temporalio.common.RetryPolicy | None = None,
684
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
685
+ activity_id: str | None = None,
686
+ versioning_intent: VersioningIntent | None = None,
687
+ summary: str | None = None,
688
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
689
+ ) -> ActivityHandle[ReturnType]: ...
690
+
691
+
692
+ # Overload for sync no-param activity
693
+ @overload
694
+ def start_activity_method(
695
+ activity: MethodSyncNoParam[SelfType, ReturnType],
696
+ *,
697
+ task_queue: str | None = None,
698
+ schedule_to_close_timeout: timedelta | None = None,
699
+ schedule_to_start_timeout: timedelta | None = None,
700
+ start_to_close_timeout: timedelta | None = None,
701
+ heartbeat_timeout: timedelta | None = None,
702
+ retry_policy: temporalio.common.RetryPolicy | None = None,
703
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
704
+ activity_id: str | None = None,
705
+ versioning_intent: VersioningIntent | None = None,
706
+ summary: str | None = None,
707
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
708
+ ) -> ActivityHandle[ReturnType]: ...
709
+
710
+
711
+ # Overload for async single-param activity
712
+ @overload
713
+ def start_activity_method(
714
+ activity: MethodAsyncSingleParam[SelfType, ParamType, ReturnType],
715
+ arg: ParamType,
716
+ *,
717
+ task_queue: str | None = None,
718
+ schedule_to_close_timeout: timedelta | None = None,
719
+ schedule_to_start_timeout: timedelta | None = None,
720
+ start_to_close_timeout: timedelta | None = None,
721
+ heartbeat_timeout: timedelta | None = None,
722
+ retry_policy: temporalio.common.RetryPolicy | None = None,
723
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
724
+ activity_id: str | None = None,
725
+ versioning_intent: VersioningIntent | None = None,
726
+ summary: str | None = None,
727
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
728
+ ) -> ActivityHandle[ReturnType]: ...
729
+
730
+
731
+ # Overload for sync single-param activity
732
+ @overload
733
+ def start_activity_method(
734
+ activity: MethodSyncSingleParam[SelfType, ParamType, ReturnType],
735
+ arg: ParamType,
736
+ *,
737
+ task_queue: str | None = None,
738
+ schedule_to_close_timeout: timedelta | None = None,
739
+ schedule_to_start_timeout: timedelta | None = None,
740
+ start_to_close_timeout: timedelta | None = None,
741
+ heartbeat_timeout: timedelta | None = None,
742
+ retry_policy: temporalio.common.RetryPolicy | None = None,
743
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
744
+ activity_id: str | None = None,
745
+ versioning_intent: VersioningIntent | None = None,
746
+ summary: str | None = None,
747
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
748
+ ) -> ActivityHandle[ReturnType]: ...
749
+
750
+
751
+ # Overload for async multi-param activity
752
+ @overload
753
+ def start_activity_method(
754
+ activity: Callable[Concatenate[SelfType, MultiParamSpec], Awaitable[ReturnType]],
755
+ *,
756
+ args: Sequence[Any],
757
+ task_queue: str | None = None,
758
+ schedule_to_close_timeout: timedelta | None = None,
759
+ schedule_to_start_timeout: timedelta | None = None,
760
+ start_to_close_timeout: timedelta | None = None,
761
+ heartbeat_timeout: timedelta | None = None,
762
+ retry_policy: temporalio.common.RetryPolicy | None = None,
763
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
764
+ activity_id: str | None = None,
765
+ versioning_intent: VersioningIntent | None = None,
766
+ summary: str | None = None,
767
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
768
+ ) -> ActivityHandle[ReturnType]: ...
769
+
770
+
771
+ # Overload for sync multi-param activity
772
+ @overload
773
+ def start_activity_method(
774
+ activity: Callable[Concatenate[SelfType, MultiParamSpec], ReturnType],
775
+ *,
776
+ args: Sequence[Any],
777
+ task_queue: str | None = None,
778
+ schedule_to_close_timeout: timedelta | None = None,
779
+ schedule_to_start_timeout: timedelta | None = None,
780
+ start_to_close_timeout: timedelta | None = None,
781
+ heartbeat_timeout: timedelta | None = None,
782
+ retry_policy: temporalio.common.RetryPolicy | None = None,
783
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
784
+ activity_id: str | None = None,
785
+ versioning_intent: VersioningIntent | None = None,
786
+ summary: str | None = None,
787
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
788
+ ) -> ActivityHandle[ReturnType]: ...
789
+
790
+
791
+ def start_activity_method(
792
+ activity: Callable,
793
+ arg: Any = temporalio.common._arg_unset,
794
+ *,
795
+ args: Sequence[Any] = [],
796
+ task_queue: str | None = None,
797
+ schedule_to_close_timeout: timedelta | None = None,
798
+ schedule_to_start_timeout: timedelta | None = None,
799
+ start_to_close_timeout: timedelta | None = None,
800
+ heartbeat_timeout: timedelta | None = None,
801
+ retry_policy: temporalio.common.RetryPolicy | None = None,
802
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
803
+ activity_id: str | None = None,
804
+ versioning_intent: VersioningIntent | None = None,
805
+ summary: str | None = None,
806
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
807
+ ) -> ActivityHandle[Any]:
808
+ """Start an activity from a method.
809
+
810
+ See :py:meth:`start_activity` for parameter and return details.
811
+ """
812
+ return _Runtime.current().workflow_start_activity(
813
+ activity,
814
+ *temporalio.common._arg_or_args(arg, args),
815
+ task_queue=task_queue,
816
+ result_type=None,
817
+ schedule_to_close_timeout=schedule_to_close_timeout,
818
+ schedule_to_start_timeout=schedule_to_start_timeout,
819
+ start_to_close_timeout=start_to_close_timeout,
820
+ heartbeat_timeout=heartbeat_timeout,
821
+ retry_policy=retry_policy,
822
+ cancellation_type=cancellation_type,
823
+ activity_id=activity_id,
824
+ versioning_intent=versioning_intent,
825
+ summary=summary,
826
+ priority=priority,
827
+ )
828
+
829
+
830
+ # Overload for async no-param activity
831
+ @overload
832
+ async def execute_activity_method(
833
+ activity: MethodAsyncNoParam[SelfType, ReturnType],
834
+ *,
835
+ task_queue: str | None = None,
836
+ schedule_to_close_timeout: timedelta | None = None,
837
+ schedule_to_start_timeout: timedelta | None = None,
838
+ start_to_close_timeout: timedelta | None = None,
839
+ heartbeat_timeout: timedelta | None = None,
840
+ retry_policy: temporalio.common.RetryPolicy | None = None,
841
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
842
+ activity_id: str | None = None,
843
+ versioning_intent: VersioningIntent | None = None,
844
+ summary: str | None = None,
845
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
846
+ ) -> ReturnType: ...
847
+
848
+
849
+ # Overload for sync no-param activity
850
+ @overload
851
+ async def execute_activity_method(
852
+ activity: MethodSyncNoParam[SelfType, ReturnType],
853
+ *,
854
+ task_queue: str | None = None,
855
+ schedule_to_close_timeout: timedelta | None = None,
856
+ schedule_to_start_timeout: timedelta | None = None,
857
+ start_to_close_timeout: timedelta | None = None,
858
+ heartbeat_timeout: timedelta | None = None,
859
+ retry_policy: temporalio.common.RetryPolicy | None = None,
860
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
861
+ activity_id: str | None = None,
862
+ versioning_intent: VersioningIntent | None = None,
863
+ summary: str | None = None,
864
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
865
+ ) -> ReturnType: ...
866
+
867
+
868
+ # Overload for async single-param activity
869
+ @overload
870
+ async def execute_activity_method(
871
+ activity: MethodAsyncSingleParam[SelfType, ParamType, ReturnType],
872
+ arg: ParamType,
873
+ *,
874
+ task_queue: str | None = None,
875
+ schedule_to_close_timeout: timedelta | None = None,
876
+ schedule_to_start_timeout: timedelta | None = None,
877
+ start_to_close_timeout: timedelta | None = None,
878
+ heartbeat_timeout: timedelta | None = None,
879
+ retry_policy: temporalio.common.RetryPolicy | None = None,
880
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
881
+ activity_id: str | None = None,
882
+ versioning_intent: VersioningIntent | None = None,
883
+ summary: str | None = None,
884
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
885
+ ) -> ReturnType: ...
886
+
887
+
888
+ # Overload for sync single-param activity
889
+ @overload
890
+ async def execute_activity_method(
891
+ activity: MethodSyncSingleParam[SelfType, ParamType, ReturnType],
892
+ arg: ParamType,
893
+ *,
894
+ task_queue: str | None = None,
895
+ schedule_to_close_timeout: timedelta | None = None,
896
+ schedule_to_start_timeout: timedelta | None = None,
897
+ start_to_close_timeout: timedelta | None = None,
898
+ heartbeat_timeout: timedelta | None = None,
899
+ retry_policy: temporalio.common.RetryPolicy | None = None,
900
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
901
+ activity_id: str | None = None,
902
+ versioning_intent: VersioningIntent | None = None,
903
+ summary: str | None = None,
904
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
905
+ ) -> ReturnType: ...
906
+
907
+
908
+ # Overload for async multi-param activity
909
+ @overload
910
+ async def execute_activity_method(
911
+ activity: Callable[Concatenate[SelfType, MultiParamSpec], Awaitable[ReturnType]],
912
+ *,
913
+ args: Sequence[Any],
914
+ task_queue: str | None = None,
915
+ schedule_to_close_timeout: timedelta | None = None,
916
+ schedule_to_start_timeout: timedelta | None = None,
917
+ start_to_close_timeout: timedelta | None = None,
918
+ heartbeat_timeout: timedelta | None = None,
919
+ retry_policy: temporalio.common.RetryPolicy | None = None,
920
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
921
+ activity_id: str | None = None,
922
+ versioning_intent: VersioningIntent | None = None,
923
+ summary: str | None = None,
924
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
925
+ ) -> ReturnType: ...
926
+
927
+
928
+ # Overload for sync multi-param activity
929
+ @overload
930
+ async def execute_activity_method(
931
+ activity: Callable[Concatenate[SelfType, MultiParamSpec], ReturnType],
932
+ *,
933
+ args: Sequence[Any],
934
+ task_queue: str | None = None,
935
+ schedule_to_close_timeout: timedelta | None = None,
936
+ schedule_to_start_timeout: timedelta | None = None,
937
+ start_to_close_timeout: timedelta | None = None,
938
+ heartbeat_timeout: timedelta | None = None,
939
+ retry_policy: temporalio.common.RetryPolicy | None = None,
940
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
941
+ activity_id: str | None = None,
942
+ versioning_intent: VersioningIntent | None = None,
943
+ summary: str | None = None,
944
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
945
+ ) -> ReturnType: ...
946
+
947
+
948
+ async def execute_activity_method(
949
+ activity: Callable,
950
+ arg: Any = temporalio.common._arg_unset,
951
+ *,
952
+ args: Sequence[Any] = [],
953
+ task_queue: str | None = None,
954
+ schedule_to_close_timeout: timedelta | None = None,
955
+ schedule_to_start_timeout: timedelta | None = None,
956
+ start_to_close_timeout: timedelta | None = None,
957
+ heartbeat_timeout: timedelta | None = None,
958
+ retry_policy: temporalio.common.RetryPolicy | None = None,
959
+ cancellation_type: ActivityCancellationType = ActivityCancellationType.TRY_CANCEL,
960
+ activity_id: str | None = None,
961
+ versioning_intent: VersioningIntent | None = None,
962
+ summary: str | None = None,
963
+ priority: temporalio.common.Priority = temporalio.common.Priority.default,
964
+ ) -> Any:
965
+ """Start an activity from a method and wait for completion.
966
+
967
+ This is a shortcut for ``await`` :py:meth:`start_activity_method`.
968
+ """
969
+ # We call the runtime directly instead of top-level start_activity to ensure
970
+ # we don't miss new parameters
971
+ return await _Runtime.current().workflow_start_activity(
972
+ activity,
973
+ *temporalio.common._arg_or_args(arg, args),
974
+ task_queue=task_queue,
975
+ result_type=None,
976
+ schedule_to_close_timeout=schedule_to_close_timeout,
977
+ schedule_to_start_timeout=schedule_to_start_timeout,
978
+ start_to_close_timeout=start_to_close_timeout,
979
+ heartbeat_timeout=heartbeat_timeout,
980
+ retry_policy=retry_policy,
981
+ cancellation_type=cancellation_type,
982
+ activity_id=activity_id,
983
+ versioning_intent=versioning_intent,
984
+ summary=summary,
985
+ priority=priority,
986
+ )
987
+
988
+