aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/hatchet_sdk/contracts
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/hatchet_sdk/contracts')
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.py102
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.pyi387
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2_grpc.py621
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.py46
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.pyi87
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2_grpc.py274
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.py80
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.pyi312
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2_grpc.py277
9 files changed, 2186 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.py
new file mode 100644
index 00000000..5a939ebd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.py
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: dispatcher.proto
+# Protobuf Python Version: 5.26.1
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf.internal import builder as _builder
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x64ispatcher.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"V\n\x0cWorkerLabels\x12\x15\n\x08strValue\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08intValue\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_strValueB\x0b\n\t_intValue\"\xc8\x01\n\x0bRuntimeInfo\x12\x17\n\nsdkVersion\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x08language\x18\x02 \x01(\x0e\x32\x05.SDKSH\x01\x88\x01\x01\x12\x1c\n\x0flanguageVersion\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x0f\n\x02os\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05\x65xtra\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_sdkVersionB\x0b\n\t_languageB\x12\n\x10_languageVersionB\x05\n\x03_osB\x08\n\x06_extra\"\xc0\x02\n\x15WorkerRegisterRequest\x12\x12\n\nworkerName\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\x12\x10\n\x08services\x18\x03 \x03(\t\x12\x14\n\x07maxRuns\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x32\n\x06labels\x18\x05 \x03(\x0b\x32\".WorkerRegisterRequest.LabelsEntry\x12\x16\n\twebhookId\x18\x06 \x01(\tH\x01\x88\x01\x01\x12&\n\x0bruntimeInfo\x18\x07 \x01(\x0b\x32\x0c.RuntimeInfoH\x02\x88\x01\x01\x1a<\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.WorkerLabels:\x02\x38\x01\x42\n\n\x08_maxRunsB\x0c\n\n_webhookIdB\x0e\n\x0c_runtimeInfo\"P\n\x16WorkerRegisterResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\x12\x12\n\nworkerName\x18\x03 \x01(\t\"\xa3\x01\n\x19UpsertWorkerLabelsRequest\x12\x10\n\x08workerId\x18\x01 \x01(\t\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.UpsertWorkerLabelsRequest.LabelsEntry\x1a<\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.WorkerLabels:\x02\x38\x01\"@\n\x1aUpsertWorkerLabelsResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\"\x86\x04\n\x0e\x41ssignedAction\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x15\n\rworkflowRunId\x18\x02 \x01(\t\x12\x18\n\x10getGroupKeyRunId\x18\x03 \x01(\t\x12\r\n\x05jobId\x18\x04 \x01(\t\x12\x0f\n\x07jobName\x18\x05 \x01(\t\x12\x10\n\x08jobRunId\x18\x06 \x01(\t\x12\x0e\n\x06stepId\x18\x07 \x01(\t\x12\x11\n\tstepRunId\x18\x08 \x01(\t\x12\x10\n\x08\x61\x63tionId\x18\t \x01(\t\x12\x1f\n\nactionType\x18\n \x01(\x0e\x32\x0b.ActionType\x12\x15\n\ractionPayload\x18\x0b \x01(\t\x12\x10\n\x08stepName\x18\x0c \x01(\t\x12\x12\n\nretryCount\x18\r \x01(\x05\x12 \n\x13\x61\x64\x64itional_metadata\x18\x0e \x01(\tH\x00\x88\x01\x01\x12!\n\x14\x63hild_workflow_index\x18\x0f \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x12\x63hild_workflow_key\x18\x10 \x01(\tH\x02\x88\x01\x01\x12#\n\x16parent_workflow_run_id\x18\x11 \x01(\tH\x03\x88\x01\x01\x42\x16\n\x14_additional_metadataB\x17\n\x15_child_workflow_indexB\x15\n\x13_child_workflow_keyB\x19\n\x17_parent_workflow_run_id\"\'\n\x13WorkerListenRequest\x12\x10\n\x08workerId\x18\x01 \x01(\t\",\n\x18WorkerUnsubscribeRequest\x12\x10\n\x08workerId\x18\x01 \x01(\t\"?\n\x19WorkerUnsubscribeResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\"\xe1\x01\n\x13GroupKeyActionEvent\x12\x10\n\x08workerId\x18\x01 \x01(\t\x12\x15\n\rworkflowRunId\x18\x02 \x01(\t\x12\x18\n\x10getGroupKeyRunId\x18\x03 \x01(\t\x12\x10\n\x08\x61\x63tionId\x18\x04 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\teventType\x18\x06 \x01(\x0e\x32\x18.GroupKeyActionEventType\x12\x14\n\x0c\x65ventPayload\x18\x07 \x01(\t\"\x94\x02\n\x0fStepActionEvent\x12\x10\n\x08workerId\x18\x01 \x01(\t\x12\r\n\x05jobId\x18\x02 \x01(\t\x12\x10\n\x08jobRunId\x18\x03 \x01(\t\x12\x0e\n\x06stepId\x18\x04 \x01(\t\x12\x11\n\tstepRunId\x18\x05 \x01(\t\x12\x10\n\x08\x61\x63tionId\x18\x06 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\teventType\x18\x08 \x01(\x0e\x32\x14.StepActionEventType\x12\x14\n\x0c\x65ventPayload\x18\t \x01(\t\x12\x17\n\nretryCount\x18\n \x01(\x05H\x00\x88\x01\x01\x42\r\n\x0b_retryCount\"9\n\x13\x41\x63tionEventResponse\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x10\n\x08workerId\x18\x02 \x01(\t\"\xc0\x01\n SubscribeToWorkflowEventsRequest\x12\x1a\n\rworkflowRunId\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x61\x64\x64itionalMetaKey\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13\x61\x64\x64itionalMetaValue\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_workflowRunIdB\x14\n\x12_additionalMetaKeyB\x16\n\x14_additionalMetaValue\"7\n\x1eSubscribeToWorkflowRunsRequest\x12\x15\n\rworkflowRunId\x18\x01 \x01(\t\"\xb2\x02\n\rWorkflowEvent\x12\x15\n\rworkflowRunId\x18\x01 \x01(\t\x12#\n\x0cresourceType\x18\x02 \x01(\x0e\x32\r.ResourceType\x12%\n\teventType\x18\x03 \x01(\x0e\x32\x12.ResourceEventType\x12\x12\n\nresourceId\x18\x04 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0c\x65ventPayload\x18\x06 \x01(\t\x12\x0e\n\x06hangup\x18\x07 \x01(\x08\x12\x18\n\x0bstepRetries\x18\x08 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\nretryCount\x18\t \x01(\x05H\x01\x88\x01\x01\x42\x0e\n\x0c_stepRetriesB\r\n\x0b_retryCount\"\xa8\x01\n\x10WorkflowRunEvent\x12\x15\n\rworkflowRunId\x18\x01 \x01(\t\x12(\n\teventType\x18\x02 \x01(\x0e\x32\x15.WorkflowRunEventType\x12\x32\n\x0e\x65ventTimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1f\n\x07results\x18\x04 \x03(\x0b\x32\x0e.StepRunResult\"\x8a\x01\n\rStepRunResult\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12\x16\n\x0estepReadableId\x18\x02 \x01(\t\x12\x10\n\x08jobRunId\x18\x03 \x01(\t\x12\x12\n\x05\x65rror\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06output\x18\x05 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_errorB\t\n\x07_output\"W\n\rOverridesData\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x16\n\x0e\x63\x61llerFilename\x18\x04 \x01(\t\"\x17\n\x15OverridesDataResponse\"U\n\x10HeartbeatRequest\x12\x10\n\x08workerId\x18\x01 \x01(\t\x12/\n\x0bheartbeatAt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x13\n\x11HeartbeatResponse\"F\n\x15RefreshTimeoutRequest\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12\x1a\n\x12incrementTimeoutBy\x18\x02 \x01(\t\"G\n\x16RefreshTimeoutResponse\x12-\n\ttimeoutAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\'\n\x12ReleaseSlotRequest\x12\x11\n\tstepRunId\x18\x01 \x01(\t\"\x15\n\x13ReleaseSlotResponse*7\n\x04SDKS\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02GO\x10\x01\x12\n\n\x06PYTHON\x10\x02\x12\x0e\n\nTYPESCRIPT\x10\x03*N\n\nActionType\x12\x12\n\x0eSTART_STEP_RUN\x10\x00\x12\x13\n\x0f\x43\x41NCEL_STEP_RUN\x10\x01\x12\x17\n\x13START_GET_GROUP_KEY\x10\x02*\xa2\x01\n\x17GroupKeyActionEventType\x12 \n\x1cGROUP_KEY_EVENT_TYPE_UNKNOWN\x10\x00\x12 \n\x1cGROUP_KEY_EVENT_TYPE_STARTED\x10\x01\x12\"\n\x1eGROUP_KEY_EVENT_TYPE_COMPLETED\x10\x02\x12\x1f\n\x1bGROUP_KEY_EVENT_TYPE_FAILED\x10\x03*\xac\x01\n\x13StepActionEventType\x12\x1b\n\x17STEP_EVENT_TYPE_UNKNOWN\x10\x00\x12\x1b\n\x17STEP_EVENT_TYPE_STARTED\x10\x01\x12\x1d\n\x19STEP_EVENT_TYPE_COMPLETED\x10\x02\x12\x1a\n\x16STEP_EVENT_TYPE_FAILED\x10\x03\x12 \n\x1cSTEP_EVENT_TYPE_ACKNOWLEDGED\x10\x04*e\n\x0cResourceType\x12\x19\n\x15RESOURCE_TYPE_UNKNOWN\x10\x00\x12\x1a\n\x16RESOURCE_TYPE_STEP_RUN\x10\x01\x12\x1e\n\x1aRESOURCE_TYPE_WORKFLOW_RUN\x10\x02*\xfe\x01\n\x11ResourceEventType\x12\x1f\n\x1bRESOURCE_EVENT_TYPE_UNKNOWN\x10\x00\x12\x1f\n\x1bRESOURCE_EVENT_TYPE_STARTED\x10\x01\x12!\n\x1dRESOURCE_EVENT_TYPE_COMPLETED\x10\x02\x12\x1e\n\x1aRESOURCE_EVENT_TYPE_FAILED\x10\x03\x12!\n\x1dRESOURCE_EVENT_TYPE_CANCELLED\x10\x04\x12!\n\x1dRESOURCE_EVENT_TYPE_TIMED_OUT\x10\x05\x12\x1e\n\x1aRESOURCE_EVENT_TYPE_STREAM\x10\x06*<\n\x14WorkflowRunEventType\x12$\n WORKFLOW_RUN_EVENT_TYPE_FINISHED\x10\x00\x32\xf8\x06\n\nDispatcher\x12=\n\x08Register\x12\x16.WorkerRegisterRequest\x1a\x17.WorkerRegisterResponse\"\x00\x12\x33\n\x06Listen\x12\x14.WorkerListenRequest\x1a\x0f.AssignedAction\"\x00\x30\x01\x12\x35\n\x08ListenV2\x12\x14.WorkerListenRequest\x1a\x0f.AssignedAction\"\x00\x30\x01\x12\x34\n\tHeartbeat\x12\x11.HeartbeatRequest\x1a\x12.HeartbeatResponse\"\x00\x12R\n\x19SubscribeToWorkflowEvents\x12!.SubscribeToWorkflowEventsRequest\x1a\x0e.WorkflowEvent\"\x00\x30\x01\x12S\n\x17SubscribeToWorkflowRuns\x12\x1f.SubscribeToWorkflowRunsRequest\x1a\x11.WorkflowRunEvent\"\x00(\x01\x30\x01\x12?\n\x13SendStepActionEvent\x12\x10.StepActionEvent\x1a\x14.ActionEventResponse\"\x00\x12G\n\x17SendGroupKeyActionEvent\x12\x14.GroupKeyActionEvent\x1a\x14.ActionEventResponse\"\x00\x12<\n\x10PutOverridesData\x12\x0e.OverridesData\x1a\x16.OverridesDataResponse\"\x00\x12\x46\n\x0bUnsubscribe\x12\x19.WorkerUnsubscribeRequest\x1a\x1a.WorkerUnsubscribeResponse\"\x00\x12\x43\n\x0eRefreshTimeout\x12\x16.RefreshTimeoutRequest\x1a\x17.RefreshTimeoutResponse\"\x00\x12:\n\x0bReleaseSlot\x12\x13.ReleaseSlotRequest\x1a\x14.ReleaseSlotResponse\"\x00\x12O\n\x12UpsertWorkerLabels\x12\x1a.UpsertWorkerLabelsRequest\x1a\x1b.UpsertWorkerLabelsResponse\"\x00\x42GZEgithub.com/hatchet-dev/hatchet/internal/services/dispatcher/contractsb\x06proto3')
+
+_globals = globals()
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'dispatcher_pb2', _globals)
+if not _descriptor._USE_C_DESCRIPTORS:
+ _globals['DESCRIPTOR']._loaded_options = None
+ _globals['DESCRIPTOR']._serialized_options = b'ZEgithub.com/hatchet-dev/hatchet/internal/services/dispatcher/contracts'
+ _globals['_WORKERREGISTERREQUEST_LABELSENTRY']._loaded_options = None
+ _globals['_WORKERREGISTERREQUEST_LABELSENTRY']._serialized_options = b'8\001'
+ _globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._loaded_options = None
+ _globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._serialized_options = b'8\001'
+ _globals['_SDKS']._serialized_start=3524
+ _globals['_SDKS']._serialized_end=3579
+ _globals['_ACTIONTYPE']._serialized_start=3581
+ _globals['_ACTIONTYPE']._serialized_end=3659
+ _globals['_GROUPKEYACTIONEVENTTYPE']._serialized_start=3662
+ _globals['_GROUPKEYACTIONEVENTTYPE']._serialized_end=3824
+ _globals['_STEPACTIONEVENTTYPE']._serialized_start=3827
+ _globals['_STEPACTIONEVENTTYPE']._serialized_end=3999
+ _globals['_RESOURCETYPE']._serialized_start=4001
+ _globals['_RESOURCETYPE']._serialized_end=4102
+ _globals['_RESOURCEEVENTTYPE']._serialized_start=4105
+ _globals['_RESOURCEEVENTTYPE']._serialized_end=4359
+ _globals['_WORKFLOWRUNEVENTTYPE']._serialized_start=4361
+ _globals['_WORKFLOWRUNEVENTTYPE']._serialized_end=4421
+ _globals['_WORKERLABELS']._serialized_start=53
+ _globals['_WORKERLABELS']._serialized_end=139
+ _globals['_RUNTIMEINFO']._serialized_start=142
+ _globals['_RUNTIMEINFO']._serialized_end=342
+ _globals['_WORKERREGISTERREQUEST']._serialized_start=345
+ _globals['_WORKERREGISTERREQUEST']._serialized_end=665
+ _globals['_WORKERREGISTERREQUEST_LABELSENTRY']._serialized_start=563
+ _globals['_WORKERREGISTERREQUEST_LABELSENTRY']._serialized_end=623
+ _globals['_WORKERREGISTERRESPONSE']._serialized_start=667
+ _globals['_WORKERREGISTERRESPONSE']._serialized_end=747
+ _globals['_UPSERTWORKERLABELSREQUEST']._serialized_start=750
+ _globals['_UPSERTWORKERLABELSREQUEST']._serialized_end=913
+ _globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._serialized_start=563
+ _globals['_UPSERTWORKERLABELSREQUEST_LABELSENTRY']._serialized_end=623
+ _globals['_UPSERTWORKERLABELSRESPONSE']._serialized_start=915
+ _globals['_UPSERTWORKERLABELSRESPONSE']._serialized_end=979
+ _globals['_ASSIGNEDACTION']._serialized_start=982
+ _globals['_ASSIGNEDACTION']._serialized_end=1500
+ _globals['_WORKERLISTENREQUEST']._serialized_start=1502
+ _globals['_WORKERLISTENREQUEST']._serialized_end=1541
+ _globals['_WORKERUNSUBSCRIBEREQUEST']._serialized_start=1543
+ _globals['_WORKERUNSUBSCRIBEREQUEST']._serialized_end=1587
+ _globals['_WORKERUNSUBSCRIBERESPONSE']._serialized_start=1589
+ _globals['_WORKERUNSUBSCRIBERESPONSE']._serialized_end=1652
+ _globals['_GROUPKEYACTIONEVENT']._serialized_start=1655
+ _globals['_GROUPKEYACTIONEVENT']._serialized_end=1880
+ _globals['_STEPACTIONEVENT']._serialized_start=1883
+ _globals['_STEPACTIONEVENT']._serialized_end=2159
+ _globals['_ACTIONEVENTRESPONSE']._serialized_start=2161
+ _globals['_ACTIONEVENTRESPONSE']._serialized_end=2218
+ _globals['_SUBSCRIBETOWORKFLOWEVENTSREQUEST']._serialized_start=2221
+ _globals['_SUBSCRIBETOWORKFLOWEVENTSREQUEST']._serialized_end=2413
+ _globals['_SUBSCRIBETOWORKFLOWRUNSREQUEST']._serialized_start=2415
+ _globals['_SUBSCRIBETOWORKFLOWRUNSREQUEST']._serialized_end=2470
+ _globals['_WORKFLOWEVENT']._serialized_start=2473
+ _globals['_WORKFLOWEVENT']._serialized_end=2779
+ _globals['_WORKFLOWRUNEVENT']._serialized_start=2782
+ _globals['_WORKFLOWRUNEVENT']._serialized_end=2950
+ _globals['_STEPRUNRESULT']._serialized_start=2953
+ _globals['_STEPRUNRESULT']._serialized_end=3091
+ _globals['_OVERRIDESDATA']._serialized_start=3093
+ _globals['_OVERRIDESDATA']._serialized_end=3180
+ _globals['_OVERRIDESDATARESPONSE']._serialized_start=3182
+ _globals['_OVERRIDESDATARESPONSE']._serialized_end=3205
+ _globals['_HEARTBEATREQUEST']._serialized_start=3207
+ _globals['_HEARTBEATREQUEST']._serialized_end=3292
+ _globals['_HEARTBEATRESPONSE']._serialized_start=3294
+ _globals['_HEARTBEATRESPONSE']._serialized_end=3313
+ _globals['_REFRESHTIMEOUTREQUEST']._serialized_start=3315
+ _globals['_REFRESHTIMEOUTREQUEST']._serialized_end=3385
+ _globals['_REFRESHTIMEOUTRESPONSE']._serialized_start=3387
+ _globals['_REFRESHTIMEOUTRESPONSE']._serialized_end=3458
+ _globals['_RELEASESLOTREQUEST']._serialized_start=3460
+ _globals['_RELEASESLOTREQUEST']._serialized_end=3499
+ _globals['_RELEASESLOTRESPONSE']._serialized_start=3501
+ _globals['_RELEASESLOTRESPONSE']._serialized_end=3522
+ _globals['_DISPATCHER']._serialized_start=4424
+ _globals['_DISPATCHER']._serialized_end=5312
+# @@protoc_insertion_point(module_scope)
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.pyi b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.pyi
new file mode 100644
index 00000000..c5c82f50
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2.pyi
@@ -0,0 +1,387 @@
+from google.protobuf import timestamp_pb2 as _timestamp_pb2
+from google.protobuf.internal import containers as _containers
+from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
+
+DESCRIPTOR: _descriptor.FileDescriptor
+
+class SDKS(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ UNKNOWN: _ClassVar[SDKS]
+ GO: _ClassVar[SDKS]
+ PYTHON: _ClassVar[SDKS]
+ TYPESCRIPT: _ClassVar[SDKS]
+
+class ActionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ START_STEP_RUN: _ClassVar[ActionType]
+ CANCEL_STEP_RUN: _ClassVar[ActionType]
+ START_GET_GROUP_KEY: _ClassVar[ActionType]
+
+class GroupKeyActionEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ GROUP_KEY_EVENT_TYPE_UNKNOWN: _ClassVar[GroupKeyActionEventType]
+ GROUP_KEY_EVENT_TYPE_STARTED: _ClassVar[GroupKeyActionEventType]
+ GROUP_KEY_EVENT_TYPE_COMPLETED: _ClassVar[GroupKeyActionEventType]
+ GROUP_KEY_EVENT_TYPE_FAILED: _ClassVar[GroupKeyActionEventType]
+
+class StepActionEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ STEP_EVENT_TYPE_UNKNOWN: _ClassVar[StepActionEventType]
+ STEP_EVENT_TYPE_STARTED: _ClassVar[StepActionEventType]
+ STEP_EVENT_TYPE_COMPLETED: _ClassVar[StepActionEventType]
+ STEP_EVENT_TYPE_FAILED: _ClassVar[StepActionEventType]
+ STEP_EVENT_TYPE_ACKNOWLEDGED: _ClassVar[StepActionEventType]
+
+class ResourceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ RESOURCE_TYPE_UNKNOWN: _ClassVar[ResourceType]
+ RESOURCE_TYPE_STEP_RUN: _ClassVar[ResourceType]
+ RESOURCE_TYPE_WORKFLOW_RUN: _ClassVar[ResourceType]
+
+class ResourceEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ RESOURCE_EVENT_TYPE_UNKNOWN: _ClassVar[ResourceEventType]
+ RESOURCE_EVENT_TYPE_STARTED: _ClassVar[ResourceEventType]
+ RESOURCE_EVENT_TYPE_COMPLETED: _ClassVar[ResourceEventType]
+ RESOURCE_EVENT_TYPE_FAILED: _ClassVar[ResourceEventType]
+ RESOURCE_EVENT_TYPE_CANCELLED: _ClassVar[ResourceEventType]
+ RESOURCE_EVENT_TYPE_TIMED_OUT: _ClassVar[ResourceEventType]
+ RESOURCE_EVENT_TYPE_STREAM: _ClassVar[ResourceEventType]
+
+class WorkflowRunEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ WORKFLOW_RUN_EVENT_TYPE_FINISHED: _ClassVar[WorkflowRunEventType]
+UNKNOWN: SDKS
+GO: SDKS
+PYTHON: SDKS
+TYPESCRIPT: SDKS
+START_STEP_RUN: ActionType
+CANCEL_STEP_RUN: ActionType
+START_GET_GROUP_KEY: ActionType
+GROUP_KEY_EVENT_TYPE_UNKNOWN: GroupKeyActionEventType
+GROUP_KEY_EVENT_TYPE_STARTED: GroupKeyActionEventType
+GROUP_KEY_EVENT_TYPE_COMPLETED: GroupKeyActionEventType
+GROUP_KEY_EVENT_TYPE_FAILED: GroupKeyActionEventType
+STEP_EVENT_TYPE_UNKNOWN: StepActionEventType
+STEP_EVENT_TYPE_STARTED: StepActionEventType
+STEP_EVENT_TYPE_COMPLETED: StepActionEventType
+STEP_EVENT_TYPE_FAILED: StepActionEventType
+STEP_EVENT_TYPE_ACKNOWLEDGED: StepActionEventType
+RESOURCE_TYPE_UNKNOWN: ResourceType
+RESOURCE_TYPE_STEP_RUN: ResourceType
+RESOURCE_TYPE_WORKFLOW_RUN: ResourceType
+RESOURCE_EVENT_TYPE_UNKNOWN: ResourceEventType
+RESOURCE_EVENT_TYPE_STARTED: ResourceEventType
+RESOURCE_EVENT_TYPE_COMPLETED: ResourceEventType
+RESOURCE_EVENT_TYPE_FAILED: ResourceEventType
+RESOURCE_EVENT_TYPE_CANCELLED: ResourceEventType
+RESOURCE_EVENT_TYPE_TIMED_OUT: ResourceEventType
+RESOURCE_EVENT_TYPE_STREAM: ResourceEventType
+WORKFLOW_RUN_EVENT_TYPE_FINISHED: WorkflowRunEventType
+
+class WorkerLabels(_message.Message):
+ __slots__ = ("strValue", "intValue")
+ STRVALUE_FIELD_NUMBER: _ClassVar[int]
+ INTVALUE_FIELD_NUMBER: _ClassVar[int]
+ strValue: str
+ intValue: int
+ def __init__(self, strValue: _Optional[str] = ..., intValue: _Optional[int] = ...) -> None: ...
+
+class RuntimeInfo(_message.Message):
+ __slots__ = ("sdkVersion", "language", "languageVersion", "os", "extra")
+ SDKVERSION_FIELD_NUMBER: _ClassVar[int]
+ LANGUAGE_FIELD_NUMBER: _ClassVar[int]
+ LANGUAGEVERSION_FIELD_NUMBER: _ClassVar[int]
+ OS_FIELD_NUMBER: _ClassVar[int]
+ EXTRA_FIELD_NUMBER: _ClassVar[int]
+ sdkVersion: str
+ language: SDKS
+ languageVersion: str
+ os: str
+ extra: str
+ def __init__(self, sdkVersion: _Optional[str] = ..., language: _Optional[_Union[SDKS, str]] = ..., languageVersion: _Optional[str] = ..., os: _Optional[str] = ..., extra: _Optional[str] = ...) -> None: ...
+
+class WorkerRegisterRequest(_message.Message):
+ __slots__ = ("workerName", "actions", "services", "maxRuns", "labels", "webhookId", "runtimeInfo")
+ class LabelsEntry(_message.Message):
+ __slots__ = ("key", "value")
+ KEY_FIELD_NUMBER: _ClassVar[int]
+ VALUE_FIELD_NUMBER: _ClassVar[int]
+ key: str
+ value: WorkerLabels
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[WorkerLabels, _Mapping]] = ...) -> None: ...
+ WORKERNAME_FIELD_NUMBER: _ClassVar[int]
+ ACTIONS_FIELD_NUMBER: _ClassVar[int]
+ SERVICES_FIELD_NUMBER: _ClassVar[int]
+ MAXRUNS_FIELD_NUMBER: _ClassVar[int]
+ LABELS_FIELD_NUMBER: _ClassVar[int]
+ WEBHOOKID_FIELD_NUMBER: _ClassVar[int]
+ RUNTIMEINFO_FIELD_NUMBER: _ClassVar[int]
+ workerName: str
+ actions: _containers.RepeatedScalarFieldContainer[str]
+ services: _containers.RepeatedScalarFieldContainer[str]
+ maxRuns: int
+ labels: _containers.MessageMap[str, WorkerLabels]
+ webhookId: str
+ runtimeInfo: RuntimeInfo
+ def __init__(self, workerName: _Optional[str] = ..., actions: _Optional[_Iterable[str]] = ..., services: _Optional[_Iterable[str]] = ..., maxRuns: _Optional[int] = ..., labels: _Optional[_Mapping[str, WorkerLabels]] = ..., webhookId: _Optional[str] = ..., runtimeInfo: _Optional[_Union[RuntimeInfo, _Mapping]] = ...) -> None: ...
+
+class WorkerRegisterResponse(_message.Message):
+ __slots__ = ("tenantId", "workerId", "workerName")
+ TENANTID_FIELD_NUMBER: _ClassVar[int]
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ WORKERNAME_FIELD_NUMBER: _ClassVar[int]
+ tenantId: str
+ workerId: str
+ workerName: str
+ def __init__(self, tenantId: _Optional[str] = ..., workerId: _Optional[str] = ..., workerName: _Optional[str] = ...) -> None: ...
+
+class UpsertWorkerLabelsRequest(_message.Message):
+ __slots__ = ("workerId", "labels")
+ class LabelsEntry(_message.Message):
+ __slots__ = ("key", "value")
+ KEY_FIELD_NUMBER: _ClassVar[int]
+ VALUE_FIELD_NUMBER: _ClassVar[int]
+ key: str
+ value: WorkerLabels
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[WorkerLabels, _Mapping]] = ...) -> None: ...
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ LABELS_FIELD_NUMBER: _ClassVar[int]
+ workerId: str
+ labels: _containers.MessageMap[str, WorkerLabels]
+ def __init__(self, workerId: _Optional[str] = ..., labels: _Optional[_Mapping[str, WorkerLabels]] = ...) -> None: ...
+
+class UpsertWorkerLabelsResponse(_message.Message):
+ __slots__ = ("tenantId", "workerId")
+ TENANTID_FIELD_NUMBER: _ClassVar[int]
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ tenantId: str
+ workerId: str
+ def __init__(self, tenantId: _Optional[str] = ..., workerId: _Optional[str] = ...) -> None: ...
+
+class AssignedAction(_message.Message):
+ __slots__ = ("tenantId", "workflowRunId", "getGroupKeyRunId", "jobId", "jobName", "jobRunId", "stepId", "stepRunId", "actionId", "actionType", "actionPayload", "stepName", "retryCount", "additional_metadata", "child_workflow_index", "child_workflow_key", "parent_workflow_run_id")
+ TENANTID_FIELD_NUMBER: _ClassVar[int]
+ WORKFLOWRUNID_FIELD_NUMBER: _ClassVar[int]
+ GETGROUPKEYRUNID_FIELD_NUMBER: _ClassVar[int]
+ JOBID_FIELD_NUMBER: _ClassVar[int]
+ JOBNAME_FIELD_NUMBER: _ClassVar[int]
+ JOBRUNID_FIELD_NUMBER: _ClassVar[int]
+ STEPID_FIELD_NUMBER: _ClassVar[int]
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ ACTIONID_FIELD_NUMBER: _ClassVar[int]
+ ACTIONTYPE_FIELD_NUMBER: _ClassVar[int]
+ ACTIONPAYLOAD_FIELD_NUMBER: _ClassVar[int]
+ STEPNAME_FIELD_NUMBER: _ClassVar[int]
+ RETRYCOUNT_FIELD_NUMBER: _ClassVar[int]
+ ADDITIONAL_METADATA_FIELD_NUMBER: _ClassVar[int]
+ CHILD_WORKFLOW_INDEX_FIELD_NUMBER: _ClassVar[int]
+ CHILD_WORKFLOW_KEY_FIELD_NUMBER: _ClassVar[int]
+ PARENT_WORKFLOW_RUN_ID_FIELD_NUMBER: _ClassVar[int]
+ tenantId: str
+ workflowRunId: str
+ getGroupKeyRunId: str
+ jobId: str
+ jobName: str
+ jobRunId: str
+ stepId: str
+ stepRunId: str
+ actionId: str
+ actionType: ActionType
+ actionPayload: str
+ stepName: str
+ retryCount: int
+ additional_metadata: str
+ child_workflow_index: int
+ child_workflow_key: str
+ parent_workflow_run_id: str
+ def __init__(self, tenantId: _Optional[str] = ..., workflowRunId: _Optional[str] = ..., getGroupKeyRunId: _Optional[str] = ..., jobId: _Optional[str] = ..., jobName: _Optional[str] = ..., jobRunId: _Optional[str] = ..., stepId: _Optional[str] = ..., stepRunId: _Optional[str] = ..., actionId: _Optional[str] = ..., actionType: _Optional[_Union[ActionType, str]] = ..., actionPayload: _Optional[str] = ..., stepName: _Optional[str] = ..., retryCount: _Optional[int] = ..., additional_metadata: _Optional[str] = ..., child_workflow_index: _Optional[int] = ..., child_workflow_key: _Optional[str] = ..., parent_workflow_run_id: _Optional[str] = ...) -> None: ...
+
+class WorkerListenRequest(_message.Message):
+ __slots__ = ("workerId",)
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ workerId: str
+ def __init__(self, workerId: _Optional[str] = ...) -> None: ...
+
+class WorkerUnsubscribeRequest(_message.Message):
+ __slots__ = ("workerId",)
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ workerId: str
+ def __init__(self, workerId: _Optional[str] = ...) -> None: ...
+
+class WorkerUnsubscribeResponse(_message.Message):
+ __slots__ = ("tenantId", "workerId")
+ TENANTID_FIELD_NUMBER: _ClassVar[int]
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ tenantId: str
+ workerId: str
+ def __init__(self, tenantId: _Optional[str] = ..., workerId: _Optional[str] = ...) -> None: ...
+
+class GroupKeyActionEvent(_message.Message):
+ __slots__ = ("workerId", "workflowRunId", "getGroupKeyRunId", "actionId", "eventTimestamp", "eventType", "eventPayload")
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ WORKFLOWRUNID_FIELD_NUMBER: _ClassVar[int]
+ GETGROUPKEYRUNID_FIELD_NUMBER: _ClassVar[int]
+ ACTIONID_FIELD_NUMBER: _ClassVar[int]
+ EVENTTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
+ EVENTTYPE_FIELD_NUMBER: _ClassVar[int]
+ EVENTPAYLOAD_FIELD_NUMBER: _ClassVar[int]
+ workerId: str
+ workflowRunId: str
+ getGroupKeyRunId: str
+ actionId: str
+ eventTimestamp: _timestamp_pb2.Timestamp
+ eventType: GroupKeyActionEventType
+ eventPayload: str
+ def __init__(self, workerId: _Optional[str] = ..., workflowRunId: _Optional[str] = ..., getGroupKeyRunId: _Optional[str] = ..., actionId: _Optional[str] = ..., eventTimestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., eventType: _Optional[_Union[GroupKeyActionEventType, str]] = ..., eventPayload: _Optional[str] = ...) -> None: ...
+
+class StepActionEvent(_message.Message):
+ __slots__ = ("workerId", "jobId", "jobRunId", "stepId", "stepRunId", "actionId", "eventTimestamp", "eventType", "eventPayload", "retryCount")
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ JOBID_FIELD_NUMBER: _ClassVar[int]
+ JOBRUNID_FIELD_NUMBER: _ClassVar[int]
+ STEPID_FIELD_NUMBER: _ClassVar[int]
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ ACTIONID_FIELD_NUMBER: _ClassVar[int]
+ EVENTTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
+ EVENTTYPE_FIELD_NUMBER: _ClassVar[int]
+ EVENTPAYLOAD_FIELD_NUMBER: _ClassVar[int]
+ RETRYCOUNT_FIELD_NUMBER: _ClassVar[int]
+ workerId: str
+ jobId: str
+ jobRunId: str
+ stepId: str
+ stepRunId: str
+ actionId: str
+ eventTimestamp: _timestamp_pb2.Timestamp
+ eventType: StepActionEventType
+ eventPayload: str
+ retryCount: int
+ def __init__(self, workerId: _Optional[str] = ..., jobId: _Optional[str] = ..., jobRunId: _Optional[str] = ..., stepId: _Optional[str] = ..., stepRunId: _Optional[str] = ..., actionId: _Optional[str] = ..., eventTimestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., eventType: _Optional[_Union[StepActionEventType, str]] = ..., eventPayload: _Optional[str] = ..., retryCount: _Optional[int] = ...) -> None: ...
+
+class ActionEventResponse(_message.Message):
+ __slots__ = ("tenantId", "workerId")
+ TENANTID_FIELD_NUMBER: _ClassVar[int]
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ tenantId: str
+ workerId: str
+ def __init__(self, tenantId: _Optional[str] = ..., workerId: _Optional[str] = ...) -> None: ...
+
+class SubscribeToWorkflowEventsRequest(_message.Message):
+ __slots__ = ("workflowRunId", "additionalMetaKey", "additionalMetaValue")
+ WORKFLOWRUNID_FIELD_NUMBER: _ClassVar[int]
+ ADDITIONALMETAKEY_FIELD_NUMBER: _ClassVar[int]
+ ADDITIONALMETAVALUE_FIELD_NUMBER: _ClassVar[int]
+ workflowRunId: str
+ additionalMetaKey: str
+ additionalMetaValue: str
+ def __init__(self, workflowRunId: _Optional[str] = ..., additionalMetaKey: _Optional[str] = ..., additionalMetaValue: _Optional[str] = ...) -> None: ...
+
+class SubscribeToWorkflowRunsRequest(_message.Message):
+ __slots__ = ("workflowRunId",)
+ WORKFLOWRUNID_FIELD_NUMBER: _ClassVar[int]
+ workflowRunId: str
+ def __init__(self, workflowRunId: _Optional[str] = ...) -> None: ...
+
+class WorkflowEvent(_message.Message):
+ __slots__ = ("workflowRunId", "resourceType", "eventType", "resourceId", "eventTimestamp", "eventPayload", "hangup", "stepRetries", "retryCount")
+ WORKFLOWRUNID_FIELD_NUMBER: _ClassVar[int]
+ RESOURCETYPE_FIELD_NUMBER: _ClassVar[int]
+ EVENTTYPE_FIELD_NUMBER: _ClassVar[int]
+ RESOURCEID_FIELD_NUMBER: _ClassVar[int]
+ EVENTTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
+ EVENTPAYLOAD_FIELD_NUMBER: _ClassVar[int]
+ HANGUP_FIELD_NUMBER: _ClassVar[int]
+ STEPRETRIES_FIELD_NUMBER: _ClassVar[int]
+ RETRYCOUNT_FIELD_NUMBER: _ClassVar[int]
+ workflowRunId: str
+ resourceType: ResourceType
+ eventType: ResourceEventType
+ resourceId: str
+ eventTimestamp: _timestamp_pb2.Timestamp
+ eventPayload: str
+ hangup: bool
+ stepRetries: int
+ retryCount: int
+ def __init__(self, workflowRunId: _Optional[str] = ..., resourceType: _Optional[_Union[ResourceType, str]] = ..., eventType: _Optional[_Union[ResourceEventType, str]] = ..., resourceId: _Optional[str] = ..., eventTimestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., eventPayload: _Optional[str] = ..., hangup: bool = ..., stepRetries: _Optional[int] = ..., retryCount: _Optional[int] = ...) -> None: ...
+
+class WorkflowRunEvent(_message.Message):
+ __slots__ = ("workflowRunId", "eventType", "eventTimestamp", "results")
+ WORKFLOWRUNID_FIELD_NUMBER: _ClassVar[int]
+ EVENTTYPE_FIELD_NUMBER: _ClassVar[int]
+ EVENTTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
+ RESULTS_FIELD_NUMBER: _ClassVar[int]
+ workflowRunId: str
+ eventType: WorkflowRunEventType
+ eventTimestamp: _timestamp_pb2.Timestamp
+ results: _containers.RepeatedCompositeFieldContainer[StepRunResult]
+ def __init__(self, workflowRunId: _Optional[str] = ..., eventType: _Optional[_Union[WorkflowRunEventType, str]] = ..., eventTimestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., results: _Optional[_Iterable[_Union[StepRunResult, _Mapping]]] = ...) -> None: ...
+
+class StepRunResult(_message.Message):
+ __slots__ = ("stepRunId", "stepReadableId", "jobRunId", "error", "output")
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ STEPREADABLEID_FIELD_NUMBER: _ClassVar[int]
+ JOBRUNID_FIELD_NUMBER: _ClassVar[int]
+ ERROR_FIELD_NUMBER: _ClassVar[int]
+ OUTPUT_FIELD_NUMBER: _ClassVar[int]
+ stepRunId: str
+ stepReadableId: str
+ jobRunId: str
+ error: str
+ output: str
+ def __init__(self, stepRunId: _Optional[str] = ..., stepReadableId: _Optional[str] = ..., jobRunId: _Optional[str] = ..., error: _Optional[str] = ..., output: _Optional[str] = ...) -> None: ...
+
+class OverridesData(_message.Message):
+ __slots__ = ("stepRunId", "path", "value", "callerFilename")
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ PATH_FIELD_NUMBER: _ClassVar[int]
+ VALUE_FIELD_NUMBER: _ClassVar[int]
+ CALLERFILENAME_FIELD_NUMBER: _ClassVar[int]
+ stepRunId: str
+ path: str
+ value: str
+ callerFilename: str
+ def __init__(self, stepRunId: _Optional[str] = ..., path: _Optional[str] = ..., value: _Optional[str] = ..., callerFilename: _Optional[str] = ...) -> None: ...
+
+class OverridesDataResponse(_message.Message):
+ __slots__ = ()
+ def __init__(self) -> None: ...
+
+class HeartbeatRequest(_message.Message):
+ __slots__ = ("workerId", "heartbeatAt")
+ WORKERID_FIELD_NUMBER: _ClassVar[int]
+ HEARTBEATAT_FIELD_NUMBER: _ClassVar[int]
+ workerId: str
+ heartbeatAt: _timestamp_pb2.Timestamp
+ def __init__(self, workerId: _Optional[str] = ..., heartbeatAt: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
+
+class HeartbeatResponse(_message.Message):
+ __slots__ = ()
+ def __init__(self) -> None: ...
+
+class RefreshTimeoutRequest(_message.Message):
+ __slots__ = ("stepRunId", "incrementTimeoutBy")
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ INCREMENTTIMEOUTBY_FIELD_NUMBER: _ClassVar[int]
+ stepRunId: str
+ incrementTimeoutBy: str
+ def __init__(self, stepRunId: _Optional[str] = ..., incrementTimeoutBy: _Optional[str] = ...) -> None: ...
+
+class RefreshTimeoutResponse(_message.Message):
+ __slots__ = ("timeoutAt",)
+ TIMEOUTAT_FIELD_NUMBER: _ClassVar[int]
+ timeoutAt: _timestamp_pb2.Timestamp
+ def __init__(self, timeoutAt: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
+
+class ReleaseSlotRequest(_message.Message):
+ __slots__ = ("stepRunId",)
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ stepRunId: str
+ def __init__(self, stepRunId: _Optional[str] = ...) -> None: ...
+
+class ReleaseSlotResponse(_message.Message):
+ __slots__ = ()
+ def __init__(self) -> None: ...
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2_grpc.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2_grpc.py
new file mode 100644
index 00000000..6b0d8cf3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/dispatcher_pb2_grpc.py
@@ -0,0 +1,621 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+import warnings
+
+from . import dispatcher_pb2 as dispatcher__pb2
+
+GRPC_GENERATED_VERSION = '1.64.1'
+GRPC_VERSION = grpc.__version__
+EXPECTED_ERROR_RELEASE = '1.65.0'
+SCHEDULED_RELEASE_DATE = 'June 25, 2024'
+_version_not_supported = False
+
+try:
+ from grpc._utilities import first_version_is_lower
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
+except ImportError:
+ _version_not_supported = True
+
+if _version_not_supported:
+ warnings.warn(
+ f'The grpc package installed is at version {GRPC_VERSION},'
+ + f' but the generated code in dispatcher_pb2_grpc.py depends on'
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
+ + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},'
+ + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.',
+ RuntimeWarning
+ )
+
+
+class DispatcherStub(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.Register = channel.unary_unary(
+ '/Dispatcher/Register',
+ request_serializer=dispatcher__pb2.WorkerRegisterRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.WorkerRegisterResponse.FromString,
+ _registered_method=True)
+ self.Listen = channel.unary_stream(
+ '/Dispatcher/Listen',
+ request_serializer=dispatcher__pb2.WorkerListenRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.AssignedAction.FromString,
+ _registered_method=True)
+ self.ListenV2 = channel.unary_stream(
+ '/Dispatcher/ListenV2',
+ request_serializer=dispatcher__pb2.WorkerListenRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.AssignedAction.FromString,
+ _registered_method=True)
+ self.Heartbeat = channel.unary_unary(
+ '/Dispatcher/Heartbeat',
+ request_serializer=dispatcher__pb2.HeartbeatRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.HeartbeatResponse.FromString,
+ _registered_method=True)
+ self.SubscribeToWorkflowEvents = channel.unary_stream(
+ '/Dispatcher/SubscribeToWorkflowEvents',
+ request_serializer=dispatcher__pb2.SubscribeToWorkflowEventsRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.WorkflowEvent.FromString,
+ _registered_method=True)
+ self.SubscribeToWorkflowRuns = channel.stream_stream(
+ '/Dispatcher/SubscribeToWorkflowRuns',
+ request_serializer=dispatcher__pb2.SubscribeToWorkflowRunsRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.WorkflowRunEvent.FromString,
+ _registered_method=True)
+ self.SendStepActionEvent = channel.unary_unary(
+ '/Dispatcher/SendStepActionEvent',
+ request_serializer=dispatcher__pb2.StepActionEvent.SerializeToString,
+ response_deserializer=dispatcher__pb2.ActionEventResponse.FromString,
+ _registered_method=True)
+ self.SendGroupKeyActionEvent = channel.unary_unary(
+ '/Dispatcher/SendGroupKeyActionEvent',
+ request_serializer=dispatcher__pb2.GroupKeyActionEvent.SerializeToString,
+ response_deserializer=dispatcher__pb2.ActionEventResponse.FromString,
+ _registered_method=True)
+ self.PutOverridesData = channel.unary_unary(
+ '/Dispatcher/PutOverridesData',
+ request_serializer=dispatcher__pb2.OverridesData.SerializeToString,
+ response_deserializer=dispatcher__pb2.OverridesDataResponse.FromString,
+ _registered_method=True)
+ self.Unsubscribe = channel.unary_unary(
+ '/Dispatcher/Unsubscribe',
+ request_serializer=dispatcher__pb2.WorkerUnsubscribeRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.WorkerUnsubscribeResponse.FromString,
+ _registered_method=True)
+ self.RefreshTimeout = channel.unary_unary(
+ '/Dispatcher/RefreshTimeout',
+ request_serializer=dispatcher__pb2.RefreshTimeoutRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.RefreshTimeoutResponse.FromString,
+ _registered_method=True)
+ self.ReleaseSlot = channel.unary_unary(
+ '/Dispatcher/ReleaseSlot',
+ request_serializer=dispatcher__pb2.ReleaseSlotRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.ReleaseSlotResponse.FromString,
+ _registered_method=True)
+ self.UpsertWorkerLabels = channel.unary_unary(
+ '/Dispatcher/UpsertWorkerLabels',
+ request_serializer=dispatcher__pb2.UpsertWorkerLabelsRequest.SerializeToString,
+ response_deserializer=dispatcher__pb2.UpsertWorkerLabelsResponse.FromString,
+ _registered_method=True)
+
+
+class DispatcherServicer(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def Register(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def Listen(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def ListenV2(self, request, context):
+ """ListenV2 is like listen, but implementation does not include heartbeats. This should only used by SDKs
+ against engine version v0.18.1+
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def Heartbeat(self, request, context):
+ """Heartbeat is a method for workers to send heartbeats to the dispatcher
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SubscribeToWorkflowEvents(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SubscribeToWorkflowRuns(self, request_iterator, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SendStepActionEvent(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SendGroupKeyActionEvent(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def PutOverridesData(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def Unsubscribe(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def RefreshTimeout(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def ReleaseSlot(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def UpsertWorkerLabels(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_DispatcherServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'Register': grpc.unary_unary_rpc_method_handler(
+ servicer.Register,
+ request_deserializer=dispatcher__pb2.WorkerRegisterRequest.FromString,
+ response_serializer=dispatcher__pb2.WorkerRegisterResponse.SerializeToString,
+ ),
+ 'Listen': grpc.unary_stream_rpc_method_handler(
+ servicer.Listen,
+ request_deserializer=dispatcher__pb2.WorkerListenRequest.FromString,
+ response_serializer=dispatcher__pb2.AssignedAction.SerializeToString,
+ ),
+ 'ListenV2': grpc.unary_stream_rpc_method_handler(
+ servicer.ListenV2,
+ request_deserializer=dispatcher__pb2.WorkerListenRequest.FromString,
+ response_serializer=dispatcher__pb2.AssignedAction.SerializeToString,
+ ),
+ 'Heartbeat': grpc.unary_unary_rpc_method_handler(
+ servicer.Heartbeat,
+ request_deserializer=dispatcher__pb2.HeartbeatRequest.FromString,
+ response_serializer=dispatcher__pb2.HeartbeatResponse.SerializeToString,
+ ),
+ 'SubscribeToWorkflowEvents': grpc.unary_stream_rpc_method_handler(
+ servicer.SubscribeToWorkflowEvents,
+ request_deserializer=dispatcher__pb2.SubscribeToWorkflowEventsRequest.FromString,
+ response_serializer=dispatcher__pb2.WorkflowEvent.SerializeToString,
+ ),
+ 'SubscribeToWorkflowRuns': grpc.stream_stream_rpc_method_handler(
+ servicer.SubscribeToWorkflowRuns,
+ request_deserializer=dispatcher__pb2.SubscribeToWorkflowRunsRequest.FromString,
+ response_serializer=dispatcher__pb2.WorkflowRunEvent.SerializeToString,
+ ),
+ 'SendStepActionEvent': grpc.unary_unary_rpc_method_handler(
+ servicer.SendStepActionEvent,
+ request_deserializer=dispatcher__pb2.StepActionEvent.FromString,
+ response_serializer=dispatcher__pb2.ActionEventResponse.SerializeToString,
+ ),
+ 'SendGroupKeyActionEvent': grpc.unary_unary_rpc_method_handler(
+ servicer.SendGroupKeyActionEvent,
+ request_deserializer=dispatcher__pb2.GroupKeyActionEvent.FromString,
+ response_serializer=dispatcher__pb2.ActionEventResponse.SerializeToString,
+ ),
+ 'PutOverridesData': grpc.unary_unary_rpc_method_handler(
+ servicer.PutOverridesData,
+ request_deserializer=dispatcher__pb2.OverridesData.FromString,
+ response_serializer=dispatcher__pb2.OverridesDataResponse.SerializeToString,
+ ),
+ 'Unsubscribe': grpc.unary_unary_rpc_method_handler(
+ servicer.Unsubscribe,
+ request_deserializer=dispatcher__pb2.WorkerUnsubscribeRequest.FromString,
+ response_serializer=dispatcher__pb2.WorkerUnsubscribeResponse.SerializeToString,
+ ),
+ 'RefreshTimeout': grpc.unary_unary_rpc_method_handler(
+ servicer.RefreshTimeout,
+ request_deserializer=dispatcher__pb2.RefreshTimeoutRequest.FromString,
+ response_serializer=dispatcher__pb2.RefreshTimeoutResponse.SerializeToString,
+ ),
+ 'ReleaseSlot': grpc.unary_unary_rpc_method_handler(
+ servicer.ReleaseSlot,
+ request_deserializer=dispatcher__pb2.ReleaseSlotRequest.FromString,
+ response_serializer=dispatcher__pb2.ReleaseSlotResponse.SerializeToString,
+ ),
+ 'UpsertWorkerLabels': grpc.unary_unary_rpc_method_handler(
+ servicer.UpsertWorkerLabels,
+ request_deserializer=dispatcher__pb2.UpsertWorkerLabelsRequest.FromString,
+ response_serializer=dispatcher__pb2.UpsertWorkerLabelsResponse.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'Dispatcher', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
+ server.add_registered_method_handlers('Dispatcher', rpc_method_handlers)
+
+
+ # This class is part of an EXPERIMENTAL API.
+class Dispatcher(object):
+ """Missing associated documentation comment in .proto file."""
+
+ @staticmethod
+ def Register(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/Register',
+ dispatcher__pb2.WorkerRegisterRequest.SerializeToString,
+ dispatcher__pb2.WorkerRegisterResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def Listen(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ '/Dispatcher/Listen',
+ dispatcher__pb2.WorkerListenRequest.SerializeToString,
+ dispatcher__pb2.AssignedAction.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def ListenV2(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ '/Dispatcher/ListenV2',
+ dispatcher__pb2.WorkerListenRequest.SerializeToString,
+ dispatcher__pb2.AssignedAction.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def Heartbeat(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/Heartbeat',
+ dispatcher__pb2.HeartbeatRequest.SerializeToString,
+ dispatcher__pb2.HeartbeatResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def SubscribeToWorkflowEvents(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ '/Dispatcher/SubscribeToWorkflowEvents',
+ dispatcher__pb2.SubscribeToWorkflowEventsRequest.SerializeToString,
+ dispatcher__pb2.WorkflowEvent.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def SubscribeToWorkflowRuns(request_iterator,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.stream_stream(
+ request_iterator,
+ target,
+ '/Dispatcher/SubscribeToWorkflowRuns',
+ dispatcher__pb2.SubscribeToWorkflowRunsRequest.SerializeToString,
+ dispatcher__pb2.WorkflowRunEvent.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def SendStepActionEvent(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/SendStepActionEvent',
+ dispatcher__pb2.StepActionEvent.SerializeToString,
+ dispatcher__pb2.ActionEventResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def SendGroupKeyActionEvent(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/SendGroupKeyActionEvent',
+ dispatcher__pb2.GroupKeyActionEvent.SerializeToString,
+ dispatcher__pb2.ActionEventResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def PutOverridesData(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/PutOverridesData',
+ dispatcher__pb2.OverridesData.SerializeToString,
+ dispatcher__pb2.OverridesDataResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def Unsubscribe(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/Unsubscribe',
+ dispatcher__pb2.WorkerUnsubscribeRequest.SerializeToString,
+ dispatcher__pb2.WorkerUnsubscribeResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def RefreshTimeout(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/RefreshTimeout',
+ dispatcher__pb2.RefreshTimeoutRequest.SerializeToString,
+ dispatcher__pb2.RefreshTimeoutResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def ReleaseSlot(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/ReleaseSlot',
+ dispatcher__pb2.ReleaseSlotRequest.SerializeToString,
+ dispatcher__pb2.ReleaseSlotResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def UpsertWorkerLabels(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/Dispatcher/UpsertWorkerLabels',
+ dispatcher__pb2.UpsertWorkerLabelsRequest.SerializeToString,
+ dispatcher__pb2.UpsertWorkerLabelsResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.py
new file mode 100644
index 00000000..f0a26fce
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: events.proto
+# Protobuf Python Version: 5.26.1
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf.internal import builder as _builder
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x65vents.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb4\x01\n\x05\x45vent\x12\x10\n\x08tenantId\x18\x01 \x01(\t\x12\x0f\n\x07\x65ventId\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x0f\n\x07payload\x18\x04 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1f\n\x12\x61\x64\x64itionalMetadata\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_additionalMetadata\" \n\x06\x45vents\x12\x16\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x06.Event\"\x92\x01\n\rPutLogRequest\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12-\n\tcreatedAt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x12\n\x05level\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08metadata\x18\x05 \x01(\tB\x08\n\x06_level\"\x10\n\x0ePutLogResponse\"|\n\x15PutStreamEventRequest\x12\x11\n\tstepRunId\x18\x01 \x01(\t\x12-\n\tcreatedAt\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12\x10\n\x08metadata\x18\x05 \x01(\t\"\x18\n\x16PutStreamEventResponse\"9\n\x14\x42ulkPushEventRequest\x12!\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x11.PushEventRequest\"\x9c\x01\n\x10PushEventRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\t\x12\x32\n\x0e\x65ventTimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1f\n\x12\x61\x64\x64itionalMetadata\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_additionalMetadata\"%\n\x12ReplayEventRequest\x12\x0f\n\x07\x65ventId\x18\x01 \x01(\t2\x88\x02\n\rEventsService\x12#\n\x04Push\x12\x11.PushEventRequest\x1a\x06.Event\"\x00\x12,\n\x08\x42ulkPush\x12\x15.BulkPushEventRequest\x1a\x07.Events\"\x00\x12\x32\n\x11ReplaySingleEvent\x12\x13.ReplayEventRequest\x1a\x06.Event\"\x00\x12+\n\x06PutLog\x12\x0e.PutLogRequest\x1a\x0f.PutLogResponse\"\x00\x12\x43\n\x0ePutStreamEvent\x12\x16.PutStreamEventRequest\x1a\x17.PutStreamEventResponse\"\x00\x42GZEgithub.com/hatchet-dev/hatchet/internal/services/dispatcher/contractsb\x06proto3')
+
+_globals = globals()
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'events_pb2', _globals)
+if not _descriptor._USE_C_DESCRIPTORS:
+ _globals['DESCRIPTOR']._loaded_options = None
+ _globals['DESCRIPTOR']._serialized_options = b'ZEgithub.com/hatchet-dev/hatchet/internal/services/dispatcher/contracts'
+ _globals['_EVENT']._serialized_start=50
+ _globals['_EVENT']._serialized_end=230
+ _globals['_EVENTS']._serialized_start=232
+ _globals['_EVENTS']._serialized_end=264
+ _globals['_PUTLOGREQUEST']._serialized_start=267
+ _globals['_PUTLOGREQUEST']._serialized_end=413
+ _globals['_PUTLOGRESPONSE']._serialized_start=415
+ _globals['_PUTLOGRESPONSE']._serialized_end=431
+ _globals['_PUTSTREAMEVENTREQUEST']._serialized_start=433
+ _globals['_PUTSTREAMEVENTREQUEST']._serialized_end=557
+ _globals['_PUTSTREAMEVENTRESPONSE']._serialized_start=559
+ _globals['_PUTSTREAMEVENTRESPONSE']._serialized_end=583
+ _globals['_BULKPUSHEVENTREQUEST']._serialized_start=585
+ _globals['_BULKPUSHEVENTREQUEST']._serialized_end=642
+ _globals['_PUSHEVENTREQUEST']._serialized_start=645
+ _globals['_PUSHEVENTREQUEST']._serialized_end=801
+ _globals['_REPLAYEVENTREQUEST']._serialized_start=803
+ _globals['_REPLAYEVENTREQUEST']._serialized_end=840
+ _globals['_EVENTSSERVICE']._serialized_start=843
+ _globals['_EVENTSSERVICE']._serialized_end=1107
+# @@protoc_insertion_point(module_scope)
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.pyi b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.pyi
new file mode 100644
index 00000000..e9132fb2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2.pyi
@@ -0,0 +1,87 @@
+from google.protobuf import timestamp_pb2 as _timestamp_pb2
+from google.protobuf.internal import containers as _containers
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
+
+DESCRIPTOR: _descriptor.FileDescriptor
+
+class Event(_message.Message):
+ __slots__ = ("tenantId", "eventId", "key", "payload", "eventTimestamp", "additionalMetadata")
+ TENANTID_FIELD_NUMBER: _ClassVar[int]
+ EVENTID_FIELD_NUMBER: _ClassVar[int]
+ KEY_FIELD_NUMBER: _ClassVar[int]
+ PAYLOAD_FIELD_NUMBER: _ClassVar[int]
+ EVENTTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
+ ADDITIONALMETADATA_FIELD_NUMBER: _ClassVar[int]
+ tenantId: str
+ eventId: str
+ key: str
+ payload: str
+ eventTimestamp: _timestamp_pb2.Timestamp
+ additionalMetadata: str
+ def __init__(self, tenantId: _Optional[str] = ..., eventId: _Optional[str] = ..., key: _Optional[str] = ..., payload: _Optional[str] = ..., eventTimestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., additionalMetadata: _Optional[str] = ...) -> None: ...
+
+class Events(_message.Message):
+ __slots__ = ("events",)
+ EVENTS_FIELD_NUMBER: _ClassVar[int]
+ events: _containers.RepeatedCompositeFieldContainer[Event]
+ def __init__(self, events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ...) -> None: ...
+
+class PutLogRequest(_message.Message):
+ __slots__ = ("stepRunId", "createdAt", "message", "level", "metadata")
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ CREATEDAT_FIELD_NUMBER: _ClassVar[int]
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
+ LEVEL_FIELD_NUMBER: _ClassVar[int]
+ METADATA_FIELD_NUMBER: _ClassVar[int]
+ stepRunId: str
+ createdAt: _timestamp_pb2.Timestamp
+ message: str
+ level: str
+ metadata: str
+ def __init__(self, stepRunId: _Optional[str] = ..., createdAt: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., message: _Optional[str] = ..., level: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ...
+
+class PutLogResponse(_message.Message):
+ __slots__ = ()
+ def __init__(self) -> None: ...
+
+class PutStreamEventRequest(_message.Message):
+ __slots__ = ("stepRunId", "createdAt", "message", "metadata")
+ STEPRUNID_FIELD_NUMBER: _ClassVar[int]
+ CREATEDAT_FIELD_NUMBER: _ClassVar[int]
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
+ METADATA_FIELD_NUMBER: _ClassVar[int]
+ stepRunId: str
+ createdAt: _timestamp_pb2.Timestamp
+ message: bytes
+ metadata: str
+ def __init__(self, stepRunId: _Optional[str] = ..., createdAt: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., message: _Optional[bytes] = ..., metadata: _Optional[str] = ...) -> None: ...
+
+class PutStreamEventResponse(_message.Message):
+ __slots__ = ()
+ def __init__(self) -> None: ...
+
+class BulkPushEventRequest(_message.Message):
+ __slots__ = ("events",)
+ EVENTS_FIELD_NUMBER: _ClassVar[int]
+ events: _containers.RepeatedCompositeFieldContainer[PushEventRequest]
+ def __init__(self, events: _Optional[_Iterable[_Union[PushEventRequest, _Mapping]]] = ...) -> None: ...
+
+class PushEventRequest(_message.Message):
+ __slots__ = ("key", "payload", "eventTimestamp", "additionalMetadata")
+ KEY_FIELD_NUMBER: _ClassVar[int]
+ PAYLOAD_FIELD_NUMBER: _ClassVar[int]
+ EVENTTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
+ ADDITIONALMETADATA_FIELD_NUMBER: _ClassVar[int]
+ key: str
+ payload: str
+ eventTimestamp: _timestamp_pb2.Timestamp
+ additionalMetadata: str
+ def __init__(self, key: _Optional[str] = ..., payload: _Optional[str] = ..., eventTimestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., additionalMetadata: _Optional[str] = ...) -> None: ...
+
+class ReplayEventRequest(_message.Message):
+ __slots__ = ("eventId",)
+ EVENTID_FIELD_NUMBER: _ClassVar[int]
+ eventId: str
+ def __init__(self, eventId: _Optional[str] = ...) -> None: ...
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2_grpc.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2_grpc.py
new file mode 100644
index 00000000..ddea5aa4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/events_pb2_grpc.py
@@ -0,0 +1,274 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+import warnings
+
+from . import events_pb2 as events__pb2
+
+GRPC_GENERATED_VERSION = '1.64.1'
+GRPC_VERSION = grpc.__version__
+EXPECTED_ERROR_RELEASE = '1.65.0'
+SCHEDULED_RELEASE_DATE = 'June 25, 2024'
+_version_not_supported = False
+
+try:
+ from grpc._utilities import first_version_is_lower
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
+except ImportError:
+ _version_not_supported = True
+
+if _version_not_supported:
+ warnings.warn(
+ f'The grpc package installed is at version {GRPC_VERSION},'
+ + f' but the generated code in events_pb2_grpc.py depends on'
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
+ + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},'
+ + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.',
+ RuntimeWarning
+ )
+
+
+class EventsServiceStub(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.Push = channel.unary_unary(
+ '/EventsService/Push',
+ request_serializer=events__pb2.PushEventRequest.SerializeToString,
+ response_deserializer=events__pb2.Event.FromString,
+ _registered_method=True)
+ self.BulkPush = channel.unary_unary(
+ '/EventsService/BulkPush',
+ request_serializer=events__pb2.BulkPushEventRequest.SerializeToString,
+ response_deserializer=events__pb2.Events.FromString,
+ _registered_method=True)
+ self.ReplaySingleEvent = channel.unary_unary(
+ '/EventsService/ReplaySingleEvent',
+ request_serializer=events__pb2.ReplayEventRequest.SerializeToString,
+ response_deserializer=events__pb2.Event.FromString,
+ _registered_method=True)
+ self.PutLog = channel.unary_unary(
+ '/EventsService/PutLog',
+ request_serializer=events__pb2.PutLogRequest.SerializeToString,
+ response_deserializer=events__pb2.PutLogResponse.FromString,
+ _registered_method=True)
+ self.PutStreamEvent = channel.unary_unary(
+ '/EventsService/PutStreamEvent',
+ request_serializer=events__pb2.PutStreamEventRequest.SerializeToString,
+ response_deserializer=events__pb2.PutStreamEventResponse.FromString,
+ _registered_method=True)
+
+
+class EventsServiceServicer(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def Push(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def BulkPush(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def ReplaySingleEvent(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def PutLog(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def PutStreamEvent(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_EventsServiceServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'Push': grpc.unary_unary_rpc_method_handler(
+ servicer.Push,
+ request_deserializer=events__pb2.PushEventRequest.FromString,
+ response_serializer=events__pb2.Event.SerializeToString,
+ ),
+ 'BulkPush': grpc.unary_unary_rpc_method_handler(
+ servicer.BulkPush,
+ request_deserializer=events__pb2.BulkPushEventRequest.FromString,
+ response_serializer=events__pb2.Events.SerializeToString,
+ ),
+ 'ReplaySingleEvent': grpc.unary_unary_rpc_method_handler(
+ servicer.ReplaySingleEvent,
+ request_deserializer=events__pb2.ReplayEventRequest.FromString,
+ response_serializer=events__pb2.Event.SerializeToString,
+ ),
+ 'PutLog': grpc.unary_unary_rpc_method_handler(
+ servicer.PutLog,
+ request_deserializer=events__pb2.PutLogRequest.FromString,
+ response_serializer=events__pb2.PutLogResponse.SerializeToString,
+ ),
+ 'PutStreamEvent': grpc.unary_unary_rpc_method_handler(
+ servicer.PutStreamEvent,
+ request_deserializer=events__pb2.PutStreamEventRequest.FromString,
+ response_serializer=events__pb2.PutStreamEventResponse.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'EventsService', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
+ server.add_registered_method_handlers('EventsService', rpc_method_handlers)
+
+
+ # This class is part of an EXPERIMENTAL API.
+class EventsService(object):
+ """Missing associated documentation comment in .proto file."""
+
+ @staticmethod
+ def Push(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/EventsService/Push',
+ events__pb2.PushEventRequest.SerializeToString,
+ events__pb2.Event.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def BulkPush(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/EventsService/BulkPush',
+ events__pb2.BulkPushEventRequest.SerializeToString,
+ events__pb2.Events.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def ReplaySingleEvent(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/EventsService/ReplaySingleEvent',
+ events__pb2.ReplayEventRequest.SerializeToString,
+ events__pb2.Event.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def PutLog(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/EventsService/PutLog',
+ events__pb2.PutLogRequest.SerializeToString,
+ events__pb2.PutLogResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def PutStreamEvent(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/EventsService/PutStreamEvent',
+ events__pb2.PutStreamEventRequest.SerializeToString,
+ events__pb2.PutStreamEventResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.py
new file mode 100644
index 00000000..a2010e39
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.py
@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: workflows.proto
+# Protobuf Python Version: 5.26.1
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf.internal import builder as _builder
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fworkflows.proto\x1a\x1fgoogle/protobuf/timestamp.proto\">\n\x12PutWorkflowRequest\x12(\n\x04opts\x18\x01 \x01(\x0b\x32\x1a.CreateWorkflowVersionOpts\"\xbf\x04\n\x19\x43reateWorkflowVersionOpts\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x16\n\x0e\x65vent_triggers\x18\x04 \x03(\t\x12\x15\n\rcron_triggers\x18\x05 \x03(\t\x12\x36\n\x12scheduled_triggers\x18\x06 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12$\n\x04jobs\x18\x07 \x03(\x0b\x32\x16.CreateWorkflowJobOpts\x12-\n\x0b\x63oncurrency\x18\x08 \x01(\x0b\x32\x18.WorkflowConcurrencyOpts\x12\x1d\n\x10schedule_timeout\x18\t \x01(\tH\x00\x88\x01\x01\x12\x17\n\ncron_input\x18\n \x01(\tH\x01\x88\x01\x01\x12\x33\n\x0eon_failure_job\x18\x0b \x01(\x0b\x32\x16.CreateWorkflowJobOptsH\x02\x88\x01\x01\x12$\n\x06sticky\x18\x0c \x01(\x0e\x32\x0f.StickyStrategyH\x03\x88\x01\x01\x12 \n\x04kind\x18\r \x01(\x0e\x32\r.WorkflowKindH\x04\x88\x01\x01\x12\x1d\n\x10\x64\x65\x66\x61ult_priority\x18\x0e \x01(\x05H\x05\x88\x01\x01\x42\x13\n\x11_schedule_timeoutB\r\n\x0b_cron_inputB\x11\n\x0f_on_failure_jobB\t\n\x07_stickyB\x07\n\x05_kindB\x13\n\x11_default_priority\"\xd0\x01\n\x17WorkflowConcurrencyOpts\x12\x13\n\x06\x61\x63tion\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08max_runs\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x36\n\x0elimit_strategy\x18\x03 \x01(\x0e\x32\x19.ConcurrencyLimitStrategyH\x02\x88\x01\x01\x12\x17\n\nexpression\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_actionB\x0b\n\t_max_runsB\x11\n\x0f_limit_strategyB\r\n\x0b_expression\"h\n\x15\x43reateWorkflowJobOpts\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12&\n\x05steps\x18\x04 \x03(\x0b\x32\x17.CreateWorkflowStepOptsJ\x04\x08\x03\x10\x04\"\xe1\x01\n\x13\x44\x65siredWorkerLabels\x12\x15\n\x08strValue\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08intValue\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08required\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12/\n\ncomparator\x18\x04 \x01(\x0e\x32\x16.WorkerLabelComparatorH\x03\x88\x01\x01\x12\x13\n\x06weight\x18\x05 \x01(\x05H\x04\x88\x01\x01\x42\x0b\n\t_strValueB\x0b\n\t_intValueB\x0b\n\t_requiredB\r\n\x0b_comparatorB\t\n\x07_weight\"\xb5\x03\n\x16\x43reateWorkflowStepOpts\x12\x13\n\x0breadable_id\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\t\x12\x0e\n\x06inputs\x18\x04 \x01(\t\x12\x0f\n\x07parents\x18\x05 \x03(\t\x12\x11\n\tuser_data\x18\x06 \x01(\t\x12\x0f\n\x07retries\x18\x07 \x01(\x05\x12)\n\x0brate_limits\x18\x08 \x03(\x0b\x32\x14.CreateStepRateLimit\x12@\n\rworker_labels\x18\t \x03(\x0b\x32).CreateWorkflowStepOpts.WorkerLabelsEntry\x12\x1b\n\x0e\x62\x61\x63koff_factor\x18\n \x01(\x02H\x00\x88\x01\x01\x12 \n\x13\x62\x61\x63koff_max_seconds\x18\x0b \x01(\x05H\x01\x88\x01\x01\x1aI\n\x11WorkerLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.DesiredWorkerLabels:\x02\x38\x01\x42\x11\n\x0f_backoff_factorB\x16\n\x14_backoff_max_seconds\"\xfa\x01\n\x13\x43reateStepRateLimit\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\x05units\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08key_expr\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nunits_expr\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x11limit_values_expr\x18\x05 \x01(\tH\x03\x88\x01\x01\x12)\n\x08\x64uration\x18\x06 \x01(\x0e\x32\x12.RateLimitDurationH\x04\x88\x01\x01\x42\x08\n\x06_unitsB\x0b\n\t_key_exprB\r\n\x0b_units_exprB\x14\n\x12_limit_values_exprB\x0b\n\t_duration\"\x16\n\x14ListWorkflowsRequest\"\xcd\x02\n\x17ScheduleWorkflowRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\tschedules\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\r\n\x05input\x18\x03 \x01(\t\x12\x16\n\tparent_id\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12parent_step_run_id\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63hild_index\x18\x06 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tchild_key\x18\x07 \x01(\tH\x03\x88\x01\x01\x12 \n\x13\x61\x64\x64itional_metadata\x18\x08 \x01(\tH\x04\x88\x01\x01\x42\x0c\n\n_parent_idB\x15\n\x13_parent_step_run_idB\x0e\n\x0c_child_indexB\x0c\n\n_child_keyB\x16\n\x14_additional_metadata\"O\n\x11ScheduledWorkflow\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ntrigger_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe3\x01\n\x0fWorkflowVersion\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07version\x18\x05 \x01(\t\x12\r\n\x05order\x18\x06 \x01(\x03\x12\x13\n\x0bworkflow_id\x18\x07 \x01(\t\x12/\n\x13scheduled_workflows\x18\x08 \x03(\x0b\x32\x12.ScheduledWorkflow\"?\n\x17WorkflowTriggerEventRef\x12\x11\n\tparent_id\x18\x01 \x01(\t\x12\x11\n\tevent_key\x18\x02 \x01(\t\"9\n\x16WorkflowTriggerCronRef\x12\x11\n\tparent_id\x18\x01 \x01(\t\x12\x0c\n\x04\x63ron\x18\x02 \x01(\t\"H\n\x1a\x42ulkTriggerWorkflowRequest\x12*\n\tworkflows\x18\x01 \x03(\x0b\x32\x17.TriggerWorkflowRequest\"7\n\x1b\x42ulkTriggerWorkflowResponse\x12\x18\n\x10workflow_run_ids\x18\x01 \x03(\t\"\xf7\x02\n\x16TriggerWorkflowRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05input\x18\x02 \x01(\t\x12\x16\n\tparent_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12parent_step_run_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63hild_index\x18\x05 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tchild_key\x18\x06 \x01(\tH\x03\x88\x01\x01\x12 \n\x13\x61\x64\x64itional_metadata\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x1e\n\x11\x64\x65sired_worker_id\x18\x08 \x01(\tH\x05\x88\x01\x01\x12\x15\n\x08priority\x18\t \x01(\x05H\x06\x88\x01\x01\x42\x0c\n\n_parent_idB\x15\n\x13_parent_step_run_idB\x0e\n\x0c_child_indexB\x0c\n\n_child_keyB\x16\n\x14_additional_metadataB\x14\n\x12_desired_worker_idB\x0b\n\t_priority\"2\n\x17TriggerWorkflowResponse\x12\x17\n\x0fworkflow_run_id\x18\x01 \x01(\t\"W\n\x13PutRateLimitRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12$\n\x08\x64uration\x18\x03 \x01(\x0e\x32\x12.RateLimitDuration\"\x16\n\x14PutRateLimitResponse*$\n\x0eStickyStrategy\x12\x08\n\x04SOFT\x10\x00\x12\x08\n\x04HARD\x10\x01*2\n\x0cWorkflowKind\x12\x0c\n\x08\x46UNCTION\x10\x00\x12\x0b\n\x07\x44URABLE\x10\x01\x12\x07\n\x03\x44\x41G\x10\x02*\x7f\n\x18\x43oncurrencyLimitStrategy\x12\x16\n\x12\x43\x41NCEL_IN_PROGRESS\x10\x00\x12\x0f\n\x0b\x44ROP_NEWEST\x10\x01\x12\x10\n\x0cQUEUE_NEWEST\x10\x02\x12\x15\n\x11GROUP_ROUND_ROBIN\x10\x03\x12\x11\n\rCANCEL_NEWEST\x10\x04*\x85\x01\n\x15WorkerLabelComparator\x12\t\n\x05\x45QUAL\x10\x00\x12\r\n\tNOT_EQUAL\x10\x01\x12\x10\n\x0cGREATER_THAN\x10\x02\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x03\x12\r\n\tLESS_THAN\x10\x04\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x05*]\n\x11RateLimitDuration\x12\n\n\x06SECOND\x10\x00\x12\n\n\x06MINUTE\x10\x01\x12\x08\n\x04HOUR\x10\x02\x12\x07\n\x03\x44\x41Y\x10\x03\x12\x08\n\x04WEEK\x10\x04\x12\t\n\x05MONTH\x10\x05\x12\x08\n\x04YEAR\x10\x06\x32\xdc\x02\n\x0fWorkflowService\x12\x34\n\x0bPutWorkflow\x12\x13.PutWorkflowRequest\x1a\x10.WorkflowVersion\x12>\n\x10ScheduleWorkflow\x12\x18.ScheduleWorkflowRequest\x1a\x10.WorkflowVersion\x12\x44\n\x0fTriggerWorkflow\x12\x17.TriggerWorkflowRequest\x1a\x18.TriggerWorkflowResponse\x12P\n\x13\x42ulkTriggerWorkflow\x12\x1b.BulkTriggerWorkflowRequest\x1a\x1c.BulkTriggerWorkflowResponse\x12;\n\x0cPutRateLimit\x12\x14.PutRateLimitRequest\x1a\x15.PutRateLimitResponseBBZ@github.com/hatchet-dev/hatchet/internal/services/admin/contractsb\x06proto3')
+
+_globals = globals()
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'workflows_pb2', _globals)
+if not _descriptor._USE_C_DESCRIPTORS:
+ _globals['DESCRIPTOR']._loaded_options = None
+ _globals['DESCRIPTOR']._serialized_options = b'Z@github.com/hatchet-dev/hatchet/internal/services/admin/contracts'
+ _globals['_CREATEWORKFLOWSTEPOPTS_WORKERLABELSENTRY']._loaded_options = None
+ _globals['_CREATEWORKFLOWSTEPOPTS_WORKERLABELSENTRY']._serialized_options = b'8\001'
+ _globals['_STICKYSTRATEGY']._serialized_start=3401
+ _globals['_STICKYSTRATEGY']._serialized_end=3437
+ _globals['_WORKFLOWKIND']._serialized_start=3439
+ _globals['_WORKFLOWKIND']._serialized_end=3489
+ _globals['_CONCURRENCYLIMITSTRATEGY']._serialized_start=3491
+ _globals['_CONCURRENCYLIMITSTRATEGY']._serialized_end=3618
+ _globals['_WORKERLABELCOMPARATOR']._serialized_start=3621
+ _globals['_WORKERLABELCOMPARATOR']._serialized_end=3754
+ _globals['_RATELIMITDURATION']._serialized_start=3756
+ _globals['_RATELIMITDURATION']._serialized_end=3849
+ _globals['_PUTWORKFLOWREQUEST']._serialized_start=52
+ _globals['_PUTWORKFLOWREQUEST']._serialized_end=114
+ _globals['_CREATEWORKFLOWVERSIONOPTS']._serialized_start=117
+ _globals['_CREATEWORKFLOWVERSIONOPTS']._serialized_end=692
+ _globals['_WORKFLOWCONCURRENCYOPTS']._serialized_start=695
+ _globals['_WORKFLOWCONCURRENCYOPTS']._serialized_end=903
+ _globals['_CREATEWORKFLOWJOBOPTS']._serialized_start=905
+ _globals['_CREATEWORKFLOWJOBOPTS']._serialized_end=1009
+ _globals['_DESIREDWORKERLABELS']._serialized_start=1012
+ _globals['_DESIREDWORKERLABELS']._serialized_end=1237
+ _globals['_CREATEWORKFLOWSTEPOPTS']._serialized_start=1240
+ _globals['_CREATEWORKFLOWSTEPOPTS']._serialized_end=1677
+ _globals['_CREATEWORKFLOWSTEPOPTS_WORKERLABELSENTRY']._serialized_start=1561
+ _globals['_CREATEWORKFLOWSTEPOPTS_WORKERLABELSENTRY']._serialized_end=1634
+ _globals['_CREATESTEPRATELIMIT']._serialized_start=1680
+ _globals['_CREATESTEPRATELIMIT']._serialized_end=1930
+ _globals['_LISTWORKFLOWSREQUEST']._serialized_start=1932
+ _globals['_LISTWORKFLOWSREQUEST']._serialized_end=1954
+ _globals['_SCHEDULEWORKFLOWREQUEST']._serialized_start=1957
+ _globals['_SCHEDULEWORKFLOWREQUEST']._serialized_end=2290
+ _globals['_SCHEDULEDWORKFLOW']._serialized_start=2292
+ _globals['_SCHEDULEDWORKFLOW']._serialized_end=2371
+ _globals['_WORKFLOWVERSION']._serialized_start=2374
+ _globals['_WORKFLOWVERSION']._serialized_end=2601
+ _globals['_WORKFLOWTRIGGEREVENTREF']._serialized_start=2603
+ _globals['_WORKFLOWTRIGGEREVENTREF']._serialized_end=2666
+ _globals['_WORKFLOWTRIGGERCRONREF']._serialized_start=2668
+ _globals['_WORKFLOWTRIGGERCRONREF']._serialized_end=2725
+ _globals['_BULKTRIGGERWORKFLOWREQUEST']._serialized_start=2727
+ _globals['_BULKTRIGGERWORKFLOWREQUEST']._serialized_end=2799
+ _globals['_BULKTRIGGERWORKFLOWRESPONSE']._serialized_start=2801
+ _globals['_BULKTRIGGERWORKFLOWRESPONSE']._serialized_end=2856
+ _globals['_TRIGGERWORKFLOWREQUEST']._serialized_start=2859
+ _globals['_TRIGGERWORKFLOWREQUEST']._serialized_end=3234
+ _globals['_TRIGGERWORKFLOWRESPONSE']._serialized_start=3236
+ _globals['_TRIGGERWORKFLOWRESPONSE']._serialized_end=3286
+ _globals['_PUTRATELIMITREQUEST']._serialized_start=3288
+ _globals['_PUTRATELIMITREQUEST']._serialized_end=3375
+ _globals['_PUTRATELIMITRESPONSE']._serialized_start=3377
+ _globals['_PUTRATELIMITRESPONSE']._serialized_end=3399
+ _globals['_WORKFLOWSERVICE']._serialized_start=3852
+ _globals['_WORKFLOWSERVICE']._serialized_end=4200
+# @@protoc_insertion_point(module_scope)
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.pyi b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.pyi
new file mode 100644
index 00000000..b406fcc4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2.pyi
@@ -0,0 +1,312 @@
+from google.protobuf import timestamp_pb2 as _timestamp_pb2
+from google.protobuf.internal import containers as _containers
+from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
+
+DESCRIPTOR: _descriptor.FileDescriptor
+
+class StickyStrategy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ SOFT: _ClassVar[StickyStrategy]
+ HARD: _ClassVar[StickyStrategy]
+
+class WorkflowKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ FUNCTION: _ClassVar[WorkflowKind]
+ DURABLE: _ClassVar[WorkflowKind]
+ DAG: _ClassVar[WorkflowKind]
+
+class ConcurrencyLimitStrategy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ CANCEL_IN_PROGRESS: _ClassVar[ConcurrencyLimitStrategy]
+ DROP_NEWEST: _ClassVar[ConcurrencyLimitStrategy]
+ QUEUE_NEWEST: _ClassVar[ConcurrencyLimitStrategy]
+ GROUP_ROUND_ROBIN: _ClassVar[ConcurrencyLimitStrategy]
+ CANCEL_NEWEST: _ClassVar[ConcurrencyLimitStrategy]
+
+class WorkerLabelComparator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ EQUAL: _ClassVar[WorkerLabelComparator]
+ NOT_EQUAL: _ClassVar[WorkerLabelComparator]
+ GREATER_THAN: _ClassVar[WorkerLabelComparator]
+ GREATER_THAN_OR_EQUAL: _ClassVar[WorkerLabelComparator]
+ LESS_THAN: _ClassVar[WorkerLabelComparator]
+ LESS_THAN_OR_EQUAL: _ClassVar[WorkerLabelComparator]
+
+class RateLimitDuration(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ SECOND: _ClassVar[RateLimitDuration]
+ MINUTE: _ClassVar[RateLimitDuration]
+ HOUR: _ClassVar[RateLimitDuration]
+ DAY: _ClassVar[RateLimitDuration]
+ WEEK: _ClassVar[RateLimitDuration]
+ MONTH: _ClassVar[RateLimitDuration]
+ YEAR: _ClassVar[RateLimitDuration]
+SOFT: StickyStrategy
+HARD: StickyStrategy
+FUNCTION: WorkflowKind
+DURABLE: WorkflowKind
+DAG: WorkflowKind
+CANCEL_IN_PROGRESS: ConcurrencyLimitStrategy
+DROP_NEWEST: ConcurrencyLimitStrategy
+QUEUE_NEWEST: ConcurrencyLimitStrategy
+GROUP_ROUND_ROBIN: ConcurrencyLimitStrategy
+CANCEL_NEWEST: ConcurrencyLimitStrategy
+EQUAL: WorkerLabelComparator
+NOT_EQUAL: WorkerLabelComparator
+GREATER_THAN: WorkerLabelComparator
+GREATER_THAN_OR_EQUAL: WorkerLabelComparator
+LESS_THAN: WorkerLabelComparator
+LESS_THAN_OR_EQUAL: WorkerLabelComparator
+SECOND: RateLimitDuration
+MINUTE: RateLimitDuration
+HOUR: RateLimitDuration
+DAY: RateLimitDuration
+WEEK: RateLimitDuration
+MONTH: RateLimitDuration
+YEAR: RateLimitDuration
+
+class PutWorkflowRequest(_message.Message):
+ __slots__ = ("opts",)
+ OPTS_FIELD_NUMBER: _ClassVar[int]
+ opts: CreateWorkflowVersionOpts
+ def __init__(self, opts: _Optional[_Union[CreateWorkflowVersionOpts, _Mapping]] = ...) -> None: ...
+
+class CreateWorkflowVersionOpts(_message.Message):
+ __slots__ = ("name", "description", "version", "event_triggers", "cron_triggers", "scheduled_triggers", "jobs", "concurrency", "schedule_timeout", "cron_input", "on_failure_job", "sticky", "kind", "default_priority")
+ NAME_FIELD_NUMBER: _ClassVar[int]
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
+ VERSION_FIELD_NUMBER: _ClassVar[int]
+ EVENT_TRIGGERS_FIELD_NUMBER: _ClassVar[int]
+ CRON_TRIGGERS_FIELD_NUMBER: _ClassVar[int]
+ SCHEDULED_TRIGGERS_FIELD_NUMBER: _ClassVar[int]
+ JOBS_FIELD_NUMBER: _ClassVar[int]
+ CONCURRENCY_FIELD_NUMBER: _ClassVar[int]
+ SCHEDULE_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
+ CRON_INPUT_FIELD_NUMBER: _ClassVar[int]
+ ON_FAILURE_JOB_FIELD_NUMBER: _ClassVar[int]
+ STICKY_FIELD_NUMBER: _ClassVar[int]
+ KIND_FIELD_NUMBER: _ClassVar[int]
+ DEFAULT_PRIORITY_FIELD_NUMBER: _ClassVar[int]
+ name: str
+ description: str
+ version: str
+ event_triggers: _containers.RepeatedScalarFieldContainer[str]
+ cron_triggers: _containers.RepeatedScalarFieldContainer[str]
+ scheduled_triggers: _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]
+ jobs: _containers.RepeatedCompositeFieldContainer[CreateWorkflowJobOpts]
+ concurrency: WorkflowConcurrencyOpts
+ schedule_timeout: str
+ cron_input: str
+ on_failure_job: CreateWorkflowJobOpts
+ sticky: StickyStrategy
+ kind: WorkflowKind
+ default_priority: int
+ def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., version: _Optional[str] = ..., event_triggers: _Optional[_Iterable[str]] = ..., cron_triggers: _Optional[_Iterable[str]] = ..., scheduled_triggers: _Optional[_Iterable[_Union[_timestamp_pb2.Timestamp, _Mapping]]] = ..., jobs: _Optional[_Iterable[_Union[CreateWorkflowJobOpts, _Mapping]]] = ..., concurrency: _Optional[_Union[WorkflowConcurrencyOpts, _Mapping]] = ..., schedule_timeout: _Optional[str] = ..., cron_input: _Optional[str] = ..., on_failure_job: _Optional[_Union[CreateWorkflowJobOpts, _Mapping]] = ..., sticky: _Optional[_Union[StickyStrategy, str]] = ..., kind: _Optional[_Union[WorkflowKind, str]] = ..., default_priority: _Optional[int] = ...) -> None: ...
+
+class WorkflowConcurrencyOpts(_message.Message):
+ __slots__ = ("action", "max_runs", "limit_strategy", "expression")
+ ACTION_FIELD_NUMBER: _ClassVar[int]
+ MAX_RUNS_FIELD_NUMBER: _ClassVar[int]
+ LIMIT_STRATEGY_FIELD_NUMBER: _ClassVar[int]
+ EXPRESSION_FIELD_NUMBER: _ClassVar[int]
+ action: str
+ max_runs: int
+ limit_strategy: ConcurrencyLimitStrategy
+ expression: str
+ def __init__(self, action: _Optional[str] = ..., max_runs: _Optional[int] = ..., limit_strategy: _Optional[_Union[ConcurrencyLimitStrategy, str]] = ..., expression: _Optional[str] = ...) -> None: ...
+
+class CreateWorkflowJobOpts(_message.Message):
+ __slots__ = ("name", "description", "steps")
+ NAME_FIELD_NUMBER: _ClassVar[int]
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
+ STEPS_FIELD_NUMBER: _ClassVar[int]
+ name: str
+ description: str
+ steps: _containers.RepeatedCompositeFieldContainer[CreateWorkflowStepOpts]
+ def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., steps: _Optional[_Iterable[_Union[CreateWorkflowStepOpts, _Mapping]]] = ...) -> None: ...
+
+class DesiredWorkerLabels(_message.Message):
+ __slots__ = ("strValue", "intValue", "required", "comparator", "weight")
+ STRVALUE_FIELD_NUMBER: _ClassVar[int]
+ INTVALUE_FIELD_NUMBER: _ClassVar[int]
+ REQUIRED_FIELD_NUMBER: _ClassVar[int]
+ COMPARATOR_FIELD_NUMBER: _ClassVar[int]
+ WEIGHT_FIELD_NUMBER: _ClassVar[int]
+ strValue: str
+ intValue: int
+ required: bool
+ comparator: WorkerLabelComparator
+ weight: int
+ def __init__(self, strValue: _Optional[str] = ..., intValue: _Optional[int] = ..., required: bool = ..., comparator: _Optional[_Union[WorkerLabelComparator, str]] = ..., weight: _Optional[int] = ...) -> None: ...
+
+class CreateWorkflowStepOpts(_message.Message):
+ __slots__ = ("readable_id", "action", "timeout", "inputs", "parents", "user_data", "retries", "rate_limits", "worker_labels", "backoff_factor", "backoff_max_seconds")
+ class WorkerLabelsEntry(_message.Message):
+ __slots__ = ("key", "value")
+ KEY_FIELD_NUMBER: _ClassVar[int]
+ VALUE_FIELD_NUMBER: _ClassVar[int]
+ key: str
+ value: DesiredWorkerLabels
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[DesiredWorkerLabels, _Mapping]] = ...) -> None: ...
+ READABLE_ID_FIELD_NUMBER: _ClassVar[int]
+ ACTION_FIELD_NUMBER: _ClassVar[int]
+ TIMEOUT_FIELD_NUMBER: _ClassVar[int]
+ INPUTS_FIELD_NUMBER: _ClassVar[int]
+ PARENTS_FIELD_NUMBER: _ClassVar[int]
+ USER_DATA_FIELD_NUMBER: _ClassVar[int]
+ RETRIES_FIELD_NUMBER: _ClassVar[int]
+ RATE_LIMITS_FIELD_NUMBER: _ClassVar[int]
+ WORKER_LABELS_FIELD_NUMBER: _ClassVar[int]
+ BACKOFF_FACTOR_FIELD_NUMBER: _ClassVar[int]
+ BACKOFF_MAX_SECONDS_FIELD_NUMBER: _ClassVar[int]
+ readable_id: str
+ action: str
+ timeout: str
+ inputs: str
+ parents: _containers.RepeatedScalarFieldContainer[str]
+ user_data: str
+ retries: int
+ rate_limits: _containers.RepeatedCompositeFieldContainer[CreateStepRateLimit]
+ worker_labels: _containers.MessageMap[str, DesiredWorkerLabels]
+ backoff_factor: float
+ backoff_max_seconds: int
+ def __init__(self, readable_id: _Optional[str] = ..., action: _Optional[str] = ..., timeout: _Optional[str] = ..., inputs: _Optional[str] = ..., parents: _Optional[_Iterable[str]] = ..., user_data: _Optional[str] = ..., retries: _Optional[int] = ..., rate_limits: _Optional[_Iterable[_Union[CreateStepRateLimit, _Mapping]]] = ..., worker_labels: _Optional[_Mapping[str, DesiredWorkerLabels]] = ..., backoff_factor: _Optional[float] = ..., backoff_max_seconds: _Optional[int] = ...) -> None: ...
+
+class CreateStepRateLimit(_message.Message):
+ __slots__ = ("key", "units", "key_expr", "units_expr", "limit_values_expr", "duration")
+ KEY_FIELD_NUMBER: _ClassVar[int]
+ UNITS_FIELD_NUMBER: _ClassVar[int]
+ KEY_EXPR_FIELD_NUMBER: _ClassVar[int]
+ UNITS_EXPR_FIELD_NUMBER: _ClassVar[int]
+ LIMIT_VALUES_EXPR_FIELD_NUMBER: _ClassVar[int]
+ DURATION_FIELD_NUMBER: _ClassVar[int]
+ key: str
+ units: int
+ key_expr: str
+ units_expr: str
+ limit_values_expr: str
+ duration: RateLimitDuration
+ def __init__(self, key: _Optional[str] = ..., units: _Optional[int] = ..., key_expr: _Optional[str] = ..., units_expr: _Optional[str] = ..., limit_values_expr: _Optional[str] = ..., duration: _Optional[_Union[RateLimitDuration, str]] = ...) -> None: ...
+
+class ListWorkflowsRequest(_message.Message):
+ __slots__ = ()
+ def __init__(self) -> None: ...
+
+class ScheduleWorkflowRequest(_message.Message):
+ __slots__ = ("name", "schedules", "input", "parent_id", "parent_step_run_id", "child_index", "child_key", "additional_metadata")
+ NAME_FIELD_NUMBER: _ClassVar[int]
+ SCHEDULES_FIELD_NUMBER: _ClassVar[int]
+ INPUT_FIELD_NUMBER: _ClassVar[int]
+ PARENT_ID_FIELD_NUMBER: _ClassVar[int]
+ PARENT_STEP_RUN_ID_FIELD_NUMBER: _ClassVar[int]
+ CHILD_INDEX_FIELD_NUMBER: _ClassVar[int]
+ CHILD_KEY_FIELD_NUMBER: _ClassVar[int]
+ ADDITIONAL_METADATA_FIELD_NUMBER: _ClassVar[int]
+ name: str
+ schedules: _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]
+ input: str
+ parent_id: str
+ parent_step_run_id: str
+ child_index: int
+ child_key: str
+ additional_metadata: str
+ def __init__(self, name: _Optional[str] = ..., schedules: _Optional[_Iterable[_Union[_timestamp_pb2.Timestamp, _Mapping]]] = ..., input: _Optional[str] = ..., parent_id: _Optional[str] = ..., parent_step_run_id: _Optional[str] = ..., child_index: _Optional[int] = ..., child_key: _Optional[str] = ..., additional_metadata: _Optional[str] = ...) -> None: ...
+
+class ScheduledWorkflow(_message.Message):
+ __slots__ = ("id", "trigger_at")
+ ID_FIELD_NUMBER: _ClassVar[int]
+ TRIGGER_AT_FIELD_NUMBER: _ClassVar[int]
+ id: str
+ trigger_at: _timestamp_pb2.Timestamp
+ def __init__(self, id: _Optional[str] = ..., trigger_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
+
+class WorkflowVersion(_message.Message):
+ __slots__ = ("id", "created_at", "updated_at", "version", "order", "workflow_id", "scheduled_workflows")
+ ID_FIELD_NUMBER: _ClassVar[int]
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
+ UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
+ VERSION_FIELD_NUMBER: _ClassVar[int]
+ ORDER_FIELD_NUMBER: _ClassVar[int]
+ WORKFLOW_ID_FIELD_NUMBER: _ClassVar[int]
+ SCHEDULED_WORKFLOWS_FIELD_NUMBER: _ClassVar[int]
+ id: str
+ created_at: _timestamp_pb2.Timestamp
+ updated_at: _timestamp_pb2.Timestamp
+ version: str
+ order: int
+ workflow_id: str
+ scheduled_workflows: _containers.RepeatedCompositeFieldContainer[ScheduledWorkflow]
+ def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., version: _Optional[str] = ..., order: _Optional[int] = ..., workflow_id: _Optional[str] = ..., scheduled_workflows: _Optional[_Iterable[_Union[ScheduledWorkflow, _Mapping]]] = ...) -> None: ...
+
+class WorkflowTriggerEventRef(_message.Message):
+ __slots__ = ("parent_id", "event_key")
+ PARENT_ID_FIELD_NUMBER: _ClassVar[int]
+ EVENT_KEY_FIELD_NUMBER: _ClassVar[int]
+ parent_id: str
+ event_key: str
+ def __init__(self, parent_id: _Optional[str] = ..., event_key: _Optional[str] = ...) -> None: ...
+
+class WorkflowTriggerCronRef(_message.Message):
+ __slots__ = ("parent_id", "cron")
+ PARENT_ID_FIELD_NUMBER: _ClassVar[int]
+ CRON_FIELD_NUMBER: _ClassVar[int]
+ parent_id: str
+ cron: str
+ def __init__(self, parent_id: _Optional[str] = ..., cron: _Optional[str] = ...) -> None: ...
+
+class BulkTriggerWorkflowRequest(_message.Message):
+ __slots__ = ("workflows",)
+ WORKFLOWS_FIELD_NUMBER: _ClassVar[int]
+ workflows: _containers.RepeatedCompositeFieldContainer[TriggerWorkflowRequest]
+ def __init__(self, workflows: _Optional[_Iterable[_Union[TriggerWorkflowRequest, _Mapping]]] = ...) -> None: ...
+
+class BulkTriggerWorkflowResponse(_message.Message):
+ __slots__ = ("workflow_run_ids",)
+ WORKFLOW_RUN_IDS_FIELD_NUMBER: _ClassVar[int]
+ workflow_run_ids: _containers.RepeatedScalarFieldContainer[str]
+ def __init__(self, workflow_run_ids: _Optional[_Iterable[str]] = ...) -> None: ...
+
+class TriggerWorkflowRequest(_message.Message):
+ __slots__ = ("name", "input", "parent_id", "parent_step_run_id", "child_index", "child_key", "additional_metadata", "desired_worker_id", "priority")
+ NAME_FIELD_NUMBER: _ClassVar[int]
+ INPUT_FIELD_NUMBER: _ClassVar[int]
+ PARENT_ID_FIELD_NUMBER: _ClassVar[int]
+ PARENT_STEP_RUN_ID_FIELD_NUMBER: _ClassVar[int]
+ CHILD_INDEX_FIELD_NUMBER: _ClassVar[int]
+ CHILD_KEY_FIELD_NUMBER: _ClassVar[int]
+ ADDITIONAL_METADATA_FIELD_NUMBER: _ClassVar[int]
+ DESIRED_WORKER_ID_FIELD_NUMBER: _ClassVar[int]
+ PRIORITY_FIELD_NUMBER: _ClassVar[int]
+ name: str
+ input: str
+ parent_id: str
+ parent_step_run_id: str
+ child_index: int
+ child_key: str
+ additional_metadata: str
+ desired_worker_id: str
+ priority: int
+ def __init__(self, name: _Optional[str] = ..., input: _Optional[str] = ..., parent_id: _Optional[str] = ..., parent_step_run_id: _Optional[str] = ..., child_index: _Optional[int] = ..., child_key: _Optional[str] = ..., additional_metadata: _Optional[str] = ..., desired_worker_id: _Optional[str] = ..., priority: _Optional[int] = ...) -> None: ...
+
+class TriggerWorkflowResponse(_message.Message):
+ __slots__ = ("workflow_run_id",)
+ WORKFLOW_RUN_ID_FIELD_NUMBER: _ClassVar[int]
+ workflow_run_id: str
+ def __init__(self, workflow_run_id: _Optional[str] = ...) -> None: ...
+
+class PutRateLimitRequest(_message.Message):
+ __slots__ = ("key", "limit", "duration")
+ KEY_FIELD_NUMBER: _ClassVar[int]
+ LIMIT_FIELD_NUMBER: _ClassVar[int]
+ DURATION_FIELD_NUMBER: _ClassVar[int]
+ key: str
+ limit: int
+ duration: RateLimitDuration
+ def __init__(self, key: _Optional[str] = ..., limit: _Optional[int] = ..., duration: _Optional[_Union[RateLimitDuration, str]] = ...) -> None: ...
+
+class PutRateLimitResponse(_message.Message):
+ __slots__ = ()
+ def __init__(self) -> None: ...
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2_grpc.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2_grpc.py
new file mode 100644
index 00000000..383170e2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/contracts/workflows_pb2_grpc.py
@@ -0,0 +1,277 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+import warnings
+
+from . import workflows_pb2 as workflows__pb2
+
+GRPC_GENERATED_VERSION = '1.64.1'
+GRPC_VERSION = grpc.__version__
+EXPECTED_ERROR_RELEASE = '1.65.0'
+SCHEDULED_RELEASE_DATE = 'June 25, 2024'
+_version_not_supported = False
+
+try:
+ from grpc._utilities import first_version_is_lower
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
+except ImportError:
+ _version_not_supported = True
+
+if _version_not_supported:
+ warnings.warn(
+ f'The grpc package installed is at version {GRPC_VERSION},'
+ + f' but the generated code in workflows_pb2_grpc.py depends on'
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
+ + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},'
+ + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.',
+ RuntimeWarning
+ )
+
+
+class WorkflowServiceStub(object):
+ """WorkflowService represents a set of RPCs for managing workflows.
+ """
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.PutWorkflow = channel.unary_unary(
+ '/WorkflowService/PutWorkflow',
+ request_serializer=workflows__pb2.PutWorkflowRequest.SerializeToString,
+ response_deserializer=workflows__pb2.WorkflowVersion.FromString,
+ _registered_method=True)
+ self.ScheduleWorkflow = channel.unary_unary(
+ '/WorkflowService/ScheduleWorkflow',
+ request_serializer=workflows__pb2.ScheduleWorkflowRequest.SerializeToString,
+ response_deserializer=workflows__pb2.WorkflowVersion.FromString,
+ _registered_method=True)
+ self.TriggerWorkflow = channel.unary_unary(
+ '/WorkflowService/TriggerWorkflow',
+ request_serializer=workflows__pb2.TriggerWorkflowRequest.SerializeToString,
+ response_deserializer=workflows__pb2.TriggerWorkflowResponse.FromString,
+ _registered_method=True)
+ self.BulkTriggerWorkflow = channel.unary_unary(
+ '/WorkflowService/BulkTriggerWorkflow',
+ request_serializer=workflows__pb2.BulkTriggerWorkflowRequest.SerializeToString,
+ response_deserializer=workflows__pb2.BulkTriggerWorkflowResponse.FromString,
+ _registered_method=True)
+ self.PutRateLimit = channel.unary_unary(
+ '/WorkflowService/PutRateLimit',
+ request_serializer=workflows__pb2.PutRateLimitRequest.SerializeToString,
+ response_deserializer=workflows__pb2.PutRateLimitResponse.FromString,
+ _registered_method=True)
+
+
+class WorkflowServiceServicer(object):
+ """WorkflowService represents a set of RPCs for managing workflows.
+ """
+
+ def PutWorkflow(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def ScheduleWorkflow(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def TriggerWorkflow(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def BulkTriggerWorkflow(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def PutRateLimit(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_WorkflowServiceServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'PutWorkflow': grpc.unary_unary_rpc_method_handler(
+ servicer.PutWorkflow,
+ request_deserializer=workflows__pb2.PutWorkflowRequest.FromString,
+ response_serializer=workflows__pb2.WorkflowVersion.SerializeToString,
+ ),
+ 'ScheduleWorkflow': grpc.unary_unary_rpc_method_handler(
+ servicer.ScheduleWorkflow,
+ request_deserializer=workflows__pb2.ScheduleWorkflowRequest.FromString,
+ response_serializer=workflows__pb2.WorkflowVersion.SerializeToString,
+ ),
+ 'TriggerWorkflow': grpc.unary_unary_rpc_method_handler(
+ servicer.TriggerWorkflow,
+ request_deserializer=workflows__pb2.TriggerWorkflowRequest.FromString,
+ response_serializer=workflows__pb2.TriggerWorkflowResponse.SerializeToString,
+ ),
+ 'BulkTriggerWorkflow': grpc.unary_unary_rpc_method_handler(
+ servicer.BulkTriggerWorkflow,
+ request_deserializer=workflows__pb2.BulkTriggerWorkflowRequest.FromString,
+ response_serializer=workflows__pb2.BulkTriggerWorkflowResponse.SerializeToString,
+ ),
+ 'PutRateLimit': grpc.unary_unary_rpc_method_handler(
+ servicer.PutRateLimit,
+ request_deserializer=workflows__pb2.PutRateLimitRequest.FromString,
+ response_serializer=workflows__pb2.PutRateLimitResponse.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'WorkflowService', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
+ server.add_registered_method_handlers('WorkflowService', rpc_method_handlers)
+
+
+ # This class is part of an EXPERIMENTAL API.
+class WorkflowService(object):
+ """WorkflowService represents a set of RPCs for managing workflows.
+ """
+
+ @staticmethod
+ def PutWorkflow(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/WorkflowService/PutWorkflow',
+ workflows__pb2.PutWorkflowRequest.SerializeToString,
+ workflows__pb2.WorkflowVersion.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def ScheduleWorkflow(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/WorkflowService/ScheduleWorkflow',
+ workflows__pb2.ScheduleWorkflowRequest.SerializeToString,
+ workflows__pb2.WorkflowVersion.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def TriggerWorkflow(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/WorkflowService/TriggerWorkflow',
+ workflows__pb2.TriggerWorkflowRequest.SerializeToString,
+ workflows__pb2.TriggerWorkflowResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def BulkTriggerWorkflow(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/WorkflowService/BulkTriggerWorkflow',
+ workflows__pb2.BulkTriggerWorkflowRequest.SerializeToString,
+ workflows__pb2.BulkTriggerWorkflowResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def PutRateLimit(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/WorkflowService/PutRateLimit',
+ workflows__pb2.PutRateLimitRequest.SerializeToString,
+ workflows__pb2.PutRateLimitResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)