langgraph-api 0.5.4__py3-none-any.whl → 0.7.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. langgraph_api/__init__.py +1 -1
  2. langgraph_api/api/__init__.py +93 -27
  3. langgraph_api/api/a2a.py +36 -32
  4. langgraph_api/api/assistants.py +114 -26
  5. langgraph_api/api/mcp.py +3 -3
  6. langgraph_api/api/meta.py +15 -2
  7. langgraph_api/api/openapi.py +27 -17
  8. langgraph_api/api/profile.py +108 -0
  9. langgraph_api/api/runs.py +114 -57
  10. langgraph_api/api/store.py +19 -2
  11. langgraph_api/api/threads.py +133 -10
  12. langgraph_api/asgi_transport.py +14 -9
  13. langgraph_api/auth/custom.py +23 -13
  14. langgraph_api/cli.py +86 -41
  15. langgraph_api/command.py +2 -2
  16. langgraph_api/config/__init__.py +532 -0
  17. langgraph_api/config/_parse.py +58 -0
  18. langgraph_api/config/schemas.py +431 -0
  19. langgraph_api/cron_scheduler.py +17 -1
  20. langgraph_api/encryption/__init__.py +15 -0
  21. langgraph_api/encryption/aes_json.py +158 -0
  22. langgraph_api/encryption/context.py +35 -0
  23. langgraph_api/encryption/custom.py +280 -0
  24. langgraph_api/encryption/middleware.py +632 -0
  25. langgraph_api/encryption/shared.py +63 -0
  26. langgraph_api/errors.py +12 -1
  27. langgraph_api/executor_entrypoint.py +11 -6
  28. langgraph_api/feature_flags.py +19 -0
  29. langgraph_api/graph.py +163 -64
  30. langgraph_api/{grpc_ops → grpc}/client.py +142 -12
  31. langgraph_api/{grpc_ops → grpc}/config_conversion.py +16 -10
  32. langgraph_api/grpc/generated/__init__.py +29 -0
  33. langgraph_api/grpc/generated/checkpointer_pb2.py +63 -0
  34. langgraph_api/grpc/generated/checkpointer_pb2.pyi +99 -0
  35. langgraph_api/grpc/generated/checkpointer_pb2_grpc.py +329 -0
  36. langgraph_api/grpc/generated/core_api_pb2.py +216 -0
  37. langgraph_api/{grpc_ops → grpc}/generated/core_api_pb2.pyi +292 -372
  38. langgraph_api/{grpc_ops → grpc}/generated/core_api_pb2_grpc.py +252 -31
  39. langgraph_api/grpc/generated/engine_common_pb2.py +219 -0
  40. langgraph_api/{grpc_ops → grpc}/generated/engine_common_pb2.pyi +178 -104
  41. langgraph_api/grpc/generated/enum_cancel_run_action_pb2.py +37 -0
  42. langgraph_api/grpc/generated/enum_cancel_run_action_pb2.pyi +12 -0
  43. langgraph_api/grpc/generated/enum_cancel_run_action_pb2_grpc.py +24 -0
  44. langgraph_api/grpc/generated/enum_control_signal_pb2.py +37 -0
  45. langgraph_api/grpc/generated/enum_control_signal_pb2.pyi +16 -0
  46. langgraph_api/grpc/generated/enum_control_signal_pb2_grpc.py +24 -0
  47. langgraph_api/grpc/generated/enum_durability_pb2.py +37 -0
  48. langgraph_api/grpc/generated/enum_durability_pb2.pyi +16 -0
  49. langgraph_api/grpc/generated/enum_durability_pb2_grpc.py +24 -0
  50. langgraph_api/grpc/generated/enum_multitask_strategy_pb2.py +37 -0
  51. langgraph_api/grpc/generated/enum_multitask_strategy_pb2.pyi +16 -0
  52. langgraph_api/grpc/generated/enum_multitask_strategy_pb2_grpc.py +24 -0
  53. langgraph_api/grpc/generated/enum_run_status_pb2.py +37 -0
  54. langgraph_api/grpc/generated/enum_run_status_pb2.pyi +22 -0
  55. langgraph_api/grpc/generated/enum_run_status_pb2_grpc.py +24 -0
  56. langgraph_api/grpc/generated/enum_stream_mode_pb2.py +37 -0
  57. langgraph_api/grpc/generated/enum_stream_mode_pb2.pyi +28 -0
  58. langgraph_api/grpc/generated/enum_stream_mode_pb2_grpc.py +24 -0
  59. langgraph_api/grpc/generated/enum_thread_status_pb2.py +37 -0
  60. langgraph_api/grpc/generated/enum_thread_status_pb2.pyi +16 -0
  61. langgraph_api/grpc/generated/enum_thread_status_pb2_grpc.py +24 -0
  62. langgraph_api/grpc/generated/enum_thread_stream_mode_pb2.py +37 -0
  63. langgraph_api/grpc/generated/enum_thread_stream_mode_pb2.pyi +16 -0
  64. langgraph_api/grpc/generated/enum_thread_stream_mode_pb2_grpc.py +24 -0
  65. langgraph_api/grpc/generated/errors_pb2.py +39 -0
  66. langgraph_api/grpc/generated/errors_pb2.pyi +21 -0
  67. langgraph_api/grpc/generated/errors_pb2_grpc.py +24 -0
  68. langgraph_api/grpc/ops/__init__.py +370 -0
  69. langgraph_api/grpc/ops/assistants.py +424 -0
  70. langgraph_api/grpc/ops/runs.py +792 -0
  71. langgraph_api/grpc/ops/threads.py +1013 -0
  72. langgraph_api/http.py +16 -5
  73. langgraph_api/js/client.mts +1 -4
  74. langgraph_api/js/package.json +28 -27
  75. langgraph_api/js/remote.py +39 -17
  76. langgraph_api/js/sse.py +2 -2
  77. langgraph_api/js/ui.py +1 -1
  78. langgraph_api/js/yarn.lock +1139 -869
  79. langgraph_api/metadata.py +29 -3
  80. langgraph_api/middleware/http_logger.py +1 -1
  81. langgraph_api/middleware/private_network.py +7 -7
  82. langgraph_api/models/run.py +44 -26
  83. langgraph_api/otel_context.py +205 -0
  84. langgraph_api/patch.py +2 -2
  85. langgraph_api/queue_entrypoint.py +34 -35
  86. langgraph_api/route.py +33 -1
  87. langgraph_api/schema.py +84 -9
  88. langgraph_api/self_hosted_logs.py +2 -2
  89. langgraph_api/self_hosted_metrics.py +73 -3
  90. langgraph_api/serde.py +16 -4
  91. langgraph_api/server.py +33 -31
  92. langgraph_api/state.py +3 -2
  93. langgraph_api/store.py +25 -16
  94. langgraph_api/stream.py +20 -16
  95. langgraph_api/thread_ttl.py +28 -13
  96. langgraph_api/timing/__init__.py +25 -0
  97. langgraph_api/timing/profiler.py +200 -0
  98. langgraph_api/timing/timer.py +318 -0
  99. langgraph_api/utils/__init__.py +53 -8
  100. langgraph_api/utils/config.py +2 -1
  101. langgraph_api/utils/future.py +10 -6
  102. langgraph_api/utils/uuids.py +29 -62
  103. langgraph_api/validation.py +6 -0
  104. langgraph_api/webhook.py +120 -6
  105. langgraph_api/worker.py +54 -24
  106. {langgraph_api-0.5.4.dist-info → langgraph_api-0.7.3.dist-info}/METADATA +8 -6
  107. langgraph_api-0.7.3.dist-info/RECORD +168 -0
  108. {langgraph_api-0.5.4.dist-info → langgraph_api-0.7.3.dist-info}/WHEEL +1 -1
  109. langgraph_runtime/__init__.py +1 -0
  110. langgraph_runtime/routes.py +11 -0
  111. logging.json +1 -3
  112. openapi.json +635 -537
  113. langgraph_api/config.py +0 -523
  114. langgraph_api/grpc_ops/generated/__init__.py +0 -5
  115. langgraph_api/grpc_ops/generated/core_api_pb2.py +0 -275
  116. langgraph_api/grpc_ops/generated/engine_common_pb2.py +0 -194
  117. langgraph_api/grpc_ops/ops.py +0 -1045
  118. langgraph_api-0.5.4.dist-info/RECORD +0 -121
  119. /langgraph_api/{grpc_ops → grpc}/__init__.py +0 -0
  120. /langgraph_api/{grpc_ops → grpc}/generated/engine_common_pb2_grpc.py +0 -0
  121. {langgraph_api-0.5.4.dist-info → langgraph_api-0.7.3.dist-info}/entry_points.txt +0 -0
  122. {langgraph_api-0.5.4.dist-info → langgraph_api-0.7.3.dist-info}/licenses/LICENSE +0 -0
@@ -4,6 +4,13 @@ from google.protobuf import empty_pb2 as _empty_pb2
4
4
  from google.protobuf import struct_pb2 as _struct_pb2
5
5
  from google.protobuf import timestamp_pb2 as _timestamp_pb2
6
6
  from . import engine_common_pb2 as _engine_common_pb2
7
+ from . import enum_run_status_pb2 as _enum_run_status_pb2
8
+ from . import enum_multitask_strategy_pb2 as _enum_multitask_strategy_pb2
9
+ from . import enum_stream_mode_pb2 as _enum_stream_mode_pb2
10
+ from . import enum_cancel_run_action_pb2 as _enum_cancel_run_action_pb2
11
+ from . import enum_thread_status_pb2 as _enum_thread_status_pb2
12
+ from . import enum_thread_stream_mode_pb2 as _enum_thread_stream_mode_pb2
13
+ from . import enum_control_signal_pb2 as _enum_control_signal_pb2
7
14
  from google.protobuf.internal import containers as _containers
8
15
  from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
9
16
  from google.protobuf import descriptor as _descriptor
@@ -32,16 +39,10 @@ class AssistantsSortBy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
32
39
  CREATED_AT: _ClassVar[AssistantsSortBy]
33
40
  UPDATED_AT: _ClassVar[AssistantsSortBy]
34
41
 
35
- class ThreadStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
36
- __slots__ = ()
37
- THREAD_STATUS_IDLE: _ClassVar[ThreadStatus]
38
- THREAD_STATUS_BUSY: _ClassVar[ThreadStatus]
39
- THREAD_STATUS_INTERRUPTED: _ClassVar[ThreadStatus]
40
- THREAD_STATUS_ERROR: _ClassVar[ThreadStatus]
41
-
42
42
  class ThreadTTLStrategy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
43
43
  __slots__ = ()
44
44
  THREAD_TTL_STRATEGY_DELETE: _ClassVar[ThreadTTLStrategy]
45
+ THREAD_TTL_STRATEGY_KEEP_LATEST: _ClassVar[ThreadTTLStrategy]
45
46
 
46
47
  class CheckpointSource(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
47
48
  __slots__ = ()
@@ -59,45 +60,11 @@ class ThreadsSortBy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
59
60
  THREADS_SORT_BY_UPDATED_AT: _ClassVar[ThreadsSortBy]
60
61
  THREADS_SORT_BY_STATUS: _ClassVar[ThreadsSortBy]
61
62
 
62
- class RunStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
63
- __slots__ = ()
64
- RUN_STATUS_PENDING: _ClassVar[RunStatus]
65
- RUN_STATUS_RUNNING: _ClassVar[RunStatus]
66
- RUN_STATUS_ERROR: _ClassVar[RunStatus]
67
- RUN_STATUS_SUCCESS: _ClassVar[RunStatus]
68
- RUN_STATUS_TIMEOUT: _ClassVar[RunStatus]
69
- RUN_STATUS_INTERRUPTED: _ClassVar[RunStatus]
70
-
71
- class MultitaskStrategy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
72
- __slots__ = ()
73
- MULTITASK_STRATEGY_UNSPECIFIED: _ClassVar[MultitaskStrategy]
74
- MULTITASK_STRATEGY_REJECT: _ClassVar[MultitaskStrategy]
75
- MULTITASK_STRATEGY_ROLLBACK: _ClassVar[MultitaskStrategy]
76
- MULTITASK_STRATEGY_INTERRUPT: _ClassVar[MultitaskStrategy]
77
- MULTITASK_STRATEGY_ENQUEUE: _ClassVar[MultitaskStrategy]
78
-
79
- class StreamMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
80
- __slots__ = ()
81
- STREAM_MODE_UNSPECIFIED: _ClassVar[StreamMode]
82
- STREAM_MODE_VALUES: _ClassVar[StreamMode]
83
- STREAM_MODE_MESSAGES: _ClassVar[StreamMode]
84
- STREAM_MODE_UPDATES: _ClassVar[StreamMode]
85
- STREAM_MODE_EVENTS: _ClassVar[StreamMode]
86
- STREAM_MODE_DEBUG: _ClassVar[StreamMode]
87
- STREAM_MODE_TASKS: _ClassVar[StreamMode]
88
- STREAM_MODE_CHECKPOINTS: _ClassVar[StreamMode]
89
- STREAM_MODE_CUSTOM: _ClassVar[StreamMode]
90
-
91
63
  class CreateRunBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
92
64
  __slots__ = ()
93
65
  REJECT_RUN_IF_THREAD_NOT_EXISTS: _ClassVar[CreateRunBehavior]
94
66
  CREATE_THREAD_IF_THREAD_NOT_EXISTS: _ClassVar[CreateRunBehavior]
95
67
 
96
- class CancelRunAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
97
- __slots__ = ()
98
- CANCEL_RUN_ACTION_INTERRUPT: _ClassVar[CancelRunAction]
99
- CANCEL_RUN_ACTION_ROLLBACK: _ClassVar[CancelRunAction]
100
-
101
68
  class CancelRunStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
102
69
  __slots__ = ()
103
70
  CANCEL_RUN_STATUS_PENDING: _ClassVar[CancelRunStatus]
@@ -113,11 +80,8 @@ GRAPH_ID: AssistantsSortBy
113
80
  NAME: AssistantsSortBy
114
81
  CREATED_AT: AssistantsSortBy
115
82
  UPDATED_AT: AssistantsSortBy
116
- THREAD_STATUS_IDLE: ThreadStatus
117
- THREAD_STATUS_BUSY: ThreadStatus
118
- THREAD_STATUS_INTERRUPTED: ThreadStatus
119
- THREAD_STATUS_ERROR: ThreadStatus
120
83
  THREAD_TTL_STRATEGY_DELETE: ThreadTTLStrategy
84
+ THREAD_TTL_STRATEGY_KEEP_LATEST: ThreadTTLStrategy
121
85
  CHECKPOINT_SOURCE_UNSPECIFIED: CheckpointSource
122
86
  CHECKPOINT_SOURCE_INPUT: CheckpointSource
123
87
  CHECKPOINT_SOURCE_LOOP: CheckpointSource
@@ -128,30 +92,8 @@ THREADS_SORT_BY_THREAD_ID: ThreadsSortBy
128
92
  THREADS_SORT_BY_CREATED_AT: ThreadsSortBy
129
93
  THREADS_SORT_BY_UPDATED_AT: ThreadsSortBy
130
94
  THREADS_SORT_BY_STATUS: ThreadsSortBy
131
- RUN_STATUS_PENDING: RunStatus
132
- RUN_STATUS_RUNNING: RunStatus
133
- RUN_STATUS_ERROR: RunStatus
134
- RUN_STATUS_SUCCESS: RunStatus
135
- RUN_STATUS_TIMEOUT: RunStatus
136
- RUN_STATUS_INTERRUPTED: RunStatus
137
- MULTITASK_STRATEGY_UNSPECIFIED: MultitaskStrategy
138
- MULTITASK_STRATEGY_REJECT: MultitaskStrategy
139
- MULTITASK_STRATEGY_ROLLBACK: MultitaskStrategy
140
- MULTITASK_STRATEGY_INTERRUPT: MultitaskStrategy
141
- MULTITASK_STRATEGY_ENQUEUE: MultitaskStrategy
142
- STREAM_MODE_UNSPECIFIED: StreamMode
143
- STREAM_MODE_VALUES: StreamMode
144
- STREAM_MODE_MESSAGES: StreamMode
145
- STREAM_MODE_UPDATES: StreamMode
146
- STREAM_MODE_EVENTS: StreamMode
147
- STREAM_MODE_DEBUG: StreamMode
148
- STREAM_MODE_TASKS: StreamMode
149
- STREAM_MODE_CHECKPOINTS: StreamMode
150
- STREAM_MODE_CUSTOM: StreamMode
151
95
  REJECT_RUN_IF_THREAD_NOT_EXISTS: CreateRunBehavior
152
96
  CREATE_THREAD_IF_THREAD_NOT_EXISTS: CreateRunBehavior
153
- CANCEL_RUN_ACTION_INTERRUPT: CancelRunAction
154
- CANCEL_RUN_ACTION_ROLLBACK: CancelRunAction
155
97
  CANCEL_RUN_STATUS_PENDING: CancelRunStatus
156
98
  CANCEL_RUN_STATUS_RUNNING: CancelRunStatus
157
99
  CANCEL_RUN_STATUS_ALL: CancelRunStatus
@@ -163,24 +105,44 @@ class Tags(_message.Message):
163
105
  def __init__(self, values: _Optional[_Iterable[str]] = ...) -> None: ...
164
106
 
165
107
  class EqAuthFilter(_message.Message):
166
- __slots__ = ("match",)
108
+ __slots__ = ("key", "match")
109
+ KEY_FIELD_NUMBER: _ClassVar[int]
167
110
  MATCH_FIELD_NUMBER: _ClassVar[int]
111
+ key: str
168
112
  match: str
169
- def __init__(self, match: _Optional[str] = ...) -> None: ...
113
+ def __init__(self, key: _Optional[str] = ..., match: _Optional[str] = ...) -> None: ...
170
114
 
171
115
  class ContainsAuthFilter(_message.Message):
172
- __slots__ = ("matches",)
116
+ __slots__ = ("key", "matches")
117
+ KEY_FIELD_NUMBER: _ClassVar[int]
173
118
  MATCHES_FIELD_NUMBER: _ClassVar[int]
174
- matches: _containers.RepeatedCompositeFieldContainer[_struct_pb2.Value]
175
- def __init__(self, matches: _Optional[_Iterable[_Union[_struct_pb2.Value, _Mapping]]] = ...) -> None: ...
119
+ key: str
120
+ matches: _containers.RepeatedScalarFieldContainer[str]
121
+ def __init__(self, key: _Optional[str] = ..., matches: _Optional[_Iterable[str]] = ...) -> None: ...
122
+
123
+ class OrAuthFilter(_message.Message):
124
+ __slots__ = ("filters",)
125
+ FILTERS_FIELD_NUMBER: _ClassVar[int]
126
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
127
+ def __init__(self, filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
128
+
129
+ class AndAuthFilter(_message.Message):
130
+ __slots__ = ("filters",)
131
+ FILTERS_FIELD_NUMBER: _ClassVar[int]
132
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
133
+ def __init__(self, filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
176
134
 
177
135
  class AuthFilter(_message.Message):
178
- __slots__ = ("eq", "contains")
136
+ __slots__ = ("eq", "contains", "or_filter", "and_filter")
179
137
  EQ_FIELD_NUMBER: _ClassVar[int]
180
138
  CONTAINS_FIELD_NUMBER: _ClassVar[int]
139
+ OR_FILTER_FIELD_NUMBER: _ClassVar[int]
140
+ AND_FILTER_FIELD_NUMBER: _ClassVar[int]
181
141
  eq: EqAuthFilter
182
142
  contains: ContainsAuthFilter
183
- def __init__(self, eq: _Optional[_Union[EqAuthFilter, _Mapping]] = ..., contains: _Optional[_Union[ContainsAuthFilter, _Mapping]] = ...) -> None: ...
143
+ or_filter: OrAuthFilter
144
+ and_filter: AndAuthFilter
145
+ def __init__(self, eq: _Optional[_Union[EqAuthFilter, _Mapping]] = ..., contains: _Optional[_Union[ContainsAuthFilter, _Mapping]] = ..., or_filter: _Optional[_Union[OrAuthFilter, _Mapping]] = ..., and_filter: _Optional[_Union[AndAuthFilter, _Mapping]] = ...) -> None: ...
184
146
 
185
147
  class UUID(_message.Message):
186
148
  __slots__ = ("value",)
@@ -194,16 +156,26 @@ class CountResponse(_message.Message):
194
156
  count: int
195
157
  def __init__(self, count: _Optional[int] = ...) -> None: ...
196
158
 
159
+ class StreamEvent(_message.Message):
160
+ __slots__ = ("event_type", "message", "stream_id")
161
+ EVENT_TYPE_FIELD_NUMBER: _ClassVar[int]
162
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
163
+ STREAM_ID_FIELD_NUMBER: _ClassVar[int]
164
+ event_type: str
165
+ message: bytes
166
+ stream_id: str
167
+ def __init__(self, event_type: _Optional[str] = ..., message: _Optional[bytes] = ..., stream_id: _Optional[str] = ...) -> None: ...
168
+
197
169
  class Assistant(_message.Message):
198
- __slots__ = ("assistant_id", "graph_id", "version", "created_at", "updated_at", "config", "context", "metadata", "name", "description")
170
+ __slots__ = ("assistant_id", "graph_id", "version", "created_at", "updated_at", "config", "context_json", "metadata_json", "name", "description")
199
171
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
200
172
  GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
201
173
  VERSION_FIELD_NUMBER: _ClassVar[int]
202
174
  CREATED_AT_FIELD_NUMBER: _ClassVar[int]
203
175
  UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
204
176
  CONFIG_FIELD_NUMBER: _ClassVar[int]
205
- CONTEXT_FIELD_NUMBER: _ClassVar[int]
206
- METADATA_FIELD_NUMBER: _ClassVar[int]
177
+ CONTEXT_JSON_FIELD_NUMBER: _ClassVar[int]
178
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
207
179
  NAME_FIELD_NUMBER: _ClassVar[int]
208
180
  DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
209
181
  assistant_id: str
@@ -212,21 +184,21 @@ class Assistant(_message.Message):
212
184
  created_at: _timestamp_pb2.Timestamp
213
185
  updated_at: _timestamp_pb2.Timestamp
214
186
  config: _engine_common_pb2.EngineRunnableConfig
215
- context: _struct_pb2.Struct
216
- metadata: _struct_pb2.Struct
187
+ context_json: bytes
188
+ metadata_json: bytes
217
189
  name: str
218
190
  description: str
219
- def __init__(self, assistant_id: _Optional[str] = ..., graph_id: _Optional[str] = ..., version: _Optional[int] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
191
+ def __init__(self, assistant_id: _Optional[str] = ..., graph_id: _Optional[str] = ..., version: _Optional[int] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context_json: _Optional[bytes] = ..., metadata_json: _Optional[bytes] = ..., name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
220
192
 
221
193
  class AssistantVersion(_message.Message):
222
- __slots__ = ("assistant_id", "graph_id", "version", "created_at", "config", "context", "metadata", "name", "description")
194
+ __slots__ = ("assistant_id", "graph_id", "version", "created_at", "config", "context_json", "metadata_json", "name", "description")
223
195
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
224
196
  GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
225
197
  VERSION_FIELD_NUMBER: _ClassVar[int]
226
198
  CREATED_AT_FIELD_NUMBER: _ClassVar[int]
227
199
  CONFIG_FIELD_NUMBER: _ClassVar[int]
228
- CONTEXT_FIELD_NUMBER: _ClassVar[int]
229
- METADATA_FIELD_NUMBER: _ClassVar[int]
200
+ CONTEXT_JSON_FIELD_NUMBER: _ClassVar[int]
201
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
230
202
  NAME_FIELD_NUMBER: _ClassVar[int]
231
203
  DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
232
204
  assistant_id: str
@@ -234,97 +206,71 @@ class AssistantVersion(_message.Message):
234
206
  version: int
235
207
  created_at: _timestamp_pb2.Timestamp
236
208
  config: _engine_common_pb2.EngineRunnableConfig
237
- context: _struct_pb2.Struct
238
- metadata: _struct_pb2.Struct
209
+ context_json: bytes
210
+ metadata_json: bytes
239
211
  name: str
240
212
  description: str
241
- def __init__(self, assistant_id: _Optional[str] = ..., graph_id: _Optional[str] = ..., version: _Optional[int] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
213
+ def __init__(self, assistant_id: _Optional[str] = ..., graph_id: _Optional[str] = ..., version: _Optional[int] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context_json: _Optional[bytes] = ..., metadata_json: _Optional[bytes] = ..., name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
242
214
 
243
215
  class CreateAssistantRequest(_message.Message):
244
- __slots__ = ("assistant_id", "graph_id", "filters", "if_exists", "config", "context", "name", "description", "metadata")
245
- class FiltersEntry(_message.Message):
246
- __slots__ = ("key", "value")
247
- KEY_FIELD_NUMBER: _ClassVar[int]
248
- VALUE_FIELD_NUMBER: _ClassVar[int]
249
- key: str
250
- value: AuthFilter
251
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
216
+ __slots__ = ("assistant_id", "graph_id", "filters", "if_exists", "config", "context_json", "name", "description", "metadata_json")
252
217
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
253
218
  GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
254
219
  FILTERS_FIELD_NUMBER: _ClassVar[int]
255
220
  IF_EXISTS_FIELD_NUMBER: _ClassVar[int]
256
221
  CONFIG_FIELD_NUMBER: _ClassVar[int]
257
- CONTEXT_FIELD_NUMBER: _ClassVar[int]
222
+ CONTEXT_JSON_FIELD_NUMBER: _ClassVar[int]
258
223
  NAME_FIELD_NUMBER: _ClassVar[int]
259
224
  DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
260
- METADATA_FIELD_NUMBER: _ClassVar[int]
225
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
261
226
  assistant_id: str
262
227
  graph_id: str
263
- filters: _containers.MessageMap[str, AuthFilter]
228
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
264
229
  if_exists: OnConflictBehavior
265
230
  config: _engine_common_pb2.EngineRunnableConfig
266
- context: _struct_pb2.Struct
231
+ context_json: bytes
267
232
  name: str
268
233
  description: str
269
- metadata: _struct_pb2.Struct
270
- def __init__(self, assistant_id: _Optional[str] = ..., graph_id: _Optional[str] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ..., if_exists: _Optional[_Union[OnConflictBehavior, str]] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
234
+ metadata_json: bytes
235
+ def __init__(self, assistant_id: _Optional[str] = ..., graph_id: _Optional[str] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., if_exists: _Optional[_Union[OnConflictBehavior, str]] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context_json: _Optional[bytes] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., metadata_json: _Optional[bytes] = ...) -> None: ...
271
236
 
272
237
  class GetAssistantRequest(_message.Message):
273
238
  __slots__ = ("assistant_id", "filters")
274
- class FiltersEntry(_message.Message):
275
- __slots__ = ("key", "value")
276
- KEY_FIELD_NUMBER: _ClassVar[int]
277
- VALUE_FIELD_NUMBER: _ClassVar[int]
278
- key: str
279
- value: AuthFilter
280
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
281
239
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
282
240
  FILTERS_FIELD_NUMBER: _ClassVar[int]
283
241
  assistant_id: str
284
- filters: _containers.MessageMap[str, AuthFilter]
285
- def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
242
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
243
+ def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
286
244
 
287
245
  class PatchAssistantRequest(_message.Message):
288
- __slots__ = ("assistant_id", "filters", "graph_id", "config", "context", "name", "description", "metadata")
289
- class FiltersEntry(_message.Message):
290
- __slots__ = ("key", "value")
291
- KEY_FIELD_NUMBER: _ClassVar[int]
292
- VALUE_FIELD_NUMBER: _ClassVar[int]
293
- key: str
294
- value: AuthFilter
295
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
246
+ __slots__ = ("assistant_id", "filters", "graph_id", "config", "context_json", "name", "description", "metadata_json")
296
247
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
297
248
  FILTERS_FIELD_NUMBER: _ClassVar[int]
298
249
  GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
299
250
  CONFIG_FIELD_NUMBER: _ClassVar[int]
300
- CONTEXT_FIELD_NUMBER: _ClassVar[int]
251
+ CONTEXT_JSON_FIELD_NUMBER: _ClassVar[int]
301
252
  NAME_FIELD_NUMBER: _ClassVar[int]
302
253
  DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
303
- METADATA_FIELD_NUMBER: _ClassVar[int]
254
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
304
255
  assistant_id: str
305
- filters: _containers.MessageMap[str, AuthFilter]
256
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
306
257
  graph_id: str
307
258
  config: _engine_common_pb2.EngineRunnableConfig
308
- context: _struct_pb2.Struct
259
+ context_json: bytes
309
260
  name: str
310
261
  description: str
311
- metadata: _struct_pb2.Struct
312
- def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ..., graph_id: _Optional[str] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
262
+ metadata_json: bytes
263
+ def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., graph_id: _Optional[str] = ..., config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context_json: _Optional[bytes] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., metadata_json: _Optional[bytes] = ...) -> None: ...
313
264
 
314
265
  class DeleteAssistantRequest(_message.Message):
315
- __slots__ = ("assistant_id", "filters")
316
- class FiltersEntry(_message.Message):
317
- __slots__ = ("key", "value")
318
- KEY_FIELD_NUMBER: _ClassVar[int]
319
- VALUE_FIELD_NUMBER: _ClassVar[int]
320
- key: str
321
- value: AuthFilter
322
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
266
+ __slots__ = ("assistant_id", "filters", "delete_threads")
323
267
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
324
268
  FILTERS_FIELD_NUMBER: _ClassVar[int]
269
+ DELETE_THREADS_FIELD_NUMBER: _ClassVar[int]
325
270
  assistant_id: str
326
- filters: _containers.MessageMap[str, AuthFilter]
327
- def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
271
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
272
+ delete_threads: bool
273
+ def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., delete_threads: bool = ...) -> None: ...
328
274
 
329
275
  class DeleteAssistantsResponse(_message.Message):
330
276
  __slots__ = ("assistant_ids",)
@@ -334,47 +280,35 @@ class DeleteAssistantsResponse(_message.Message):
334
280
 
335
281
  class SetLatestAssistantRequest(_message.Message):
336
282
  __slots__ = ("assistant_id", "version", "filters")
337
- class FiltersEntry(_message.Message):
338
- __slots__ = ("key", "value")
339
- KEY_FIELD_NUMBER: _ClassVar[int]
340
- VALUE_FIELD_NUMBER: _ClassVar[int]
341
- key: str
342
- value: AuthFilter
343
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
344
283
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
345
284
  VERSION_FIELD_NUMBER: _ClassVar[int]
346
285
  FILTERS_FIELD_NUMBER: _ClassVar[int]
347
286
  assistant_id: str
348
287
  version: int
349
- filters: _containers.MessageMap[str, AuthFilter]
350
- def __init__(self, assistant_id: _Optional[str] = ..., version: _Optional[int] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
288
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
289
+ def __init__(self, assistant_id: _Optional[str] = ..., version: _Optional[int] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
351
290
 
352
291
  class SearchAssistantsRequest(_message.Message):
353
- __slots__ = ("filters", "graph_id", "metadata", "limit", "offset", "sort_by", "sort_order", "select")
354
- class FiltersEntry(_message.Message):
355
- __slots__ = ("key", "value")
356
- KEY_FIELD_NUMBER: _ClassVar[int]
357
- VALUE_FIELD_NUMBER: _ClassVar[int]
358
- key: str
359
- value: AuthFilter
360
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
292
+ __slots__ = ("filters", "graph_id", "metadata_json", "limit", "offset", "sort_by", "sort_order", "select", "name")
361
293
  FILTERS_FIELD_NUMBER: _ClassVar[int]
362
294
  GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
363
- METADATA_FIELD_NUMBER: _ClassVar[int]
295
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
364
296
  LIMIT_FIELD_NUMBER: _ClassVar[int]
365
297
  OFFSET_FIELD_NUMBER: _ClassVar[int]
366
298
  SORT_BY_FIELD_NUMBER: _ClassVar[int]
367
299
  SORT_ORDER_FIELD_NUMBER: _ClassVar[int]
368
300
  SELECT_FIELD_NUMBER: _ClassVar[int]
369
- filters: _containers.MessageMap[str, AuthFilter]
301
+ NAME_FIELD_NUMBER: _ClassVar[int]
302
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
370
303
  graph_id: str
371
- metadata: _struct_pb2.Struct
304
+ metadata_json: bytes
372
305
  limit: int
373
306
  offset: int
374
307
  sort_by: AssistantsSortBy
375
308
  sort_order: SortOrder
376
309
  select: _containers.RepeatedScalarFieldContainer[str]
377
- def __init__(self, filters: _Optional[_Mapping[str, AuthFilter]] = ..., graph_id: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., sort_by: _Optional[_Union[AssistantsSortBy, str]] = ..., sort_order: _Optional[_Union[SortOrder, str]] = ..., select: _Optional[_Iterable[str]] = ...) -> None: ...
310
+ name: str
311
+ def __init__(self, filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., graph_id: _Optional[str] = ..., metadata_json: _Optional[bytes] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., sort_by: _Optional[_Union[AssistantsSortBy, str]] = ..., sort_order: _Optional[_Union[SortOrder, str]] = ..., select: _Optional[_Iterable[str]] = ..., name: _Optional[str] = ...) -> None: ...
378
312
 
379
313
  class SearchAssistantsResponse(_message.Message):
380
314
  __slots__ = ("assistants",)
@@ -383,25 +317,18 @@ class SearchAssistantsResponse(_message.Message):
383
317
  def __init__(self, assistants: _Optional[_Iterable[_Union[Assistant, _Mapping]]] = ...) -> None: ...
384
318
 
385
319
  class GetAssistantVersionsRequest(_message.Message):
386
- __slots__ = ("assistant_id", "filters", "metadata", "limit", "offset")
387
- class FiltersEntry(_message.Message):
388
- __slots__ = ("key", "value")
389
- KEY_FIELD_NUMBER: _ClassVar[int]
390
- VALUE_FIELD_NUMBER: _ClassVar[int]
391
- key: str
392
- value: AuthFilter
393
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
320
+ __slots__ = ("assistant_id", "filters", "metadata_json", "limit", "offset")
394
321
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
395
322
  FILTERS_FIELD_NUMBER: _ClassVar[int]
396
- METADATA_FIELD_NUMBER: _ClassVar[int]
323
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
397
324
  LIMIT_FIELD_NUMBER: _ClassVar[int]
398
325
  OFFSET_FIELD_NUMBER: _ClassVar[int]
399
326
  assistant_id: str
400
- filters: _containers.MessageMap[str, AuthFilter]
401
- metadata: _struct_pb2.Struct
327
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
328
+ metadata_json: bytes
402
329
  limit: int
403
330
  offset: int
404
- def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
331
+ def __init__(self, assistant_id: _Optional[str] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., metadata_json: _Optional[bytes] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
405
332
 
406
333
  class GetAssistantVersionsResponse(_message.Message):
407
334
  __slots__ = ("versions",)
@@ -410,21 +337,16 @@ class GetAssistantVersionsResponse(_message.Message):
410
337
  def __init__(self, versions: _Optional[_Iterable[_Union[AssistantVersion, _Mapping]]] = ...) -> None: ...
411
338
 
412
339
  class CountAssistantsRequest(_message.Message):
413
- __slots__ = ("filters", "graph_id", "metadata")
414
- class FiltersEntry(_message.Message):
415
- __slots__ = ("key", "value")
416
- KEY_FIELD_NUMBER: _ClassVar[int]
417
- VALUE_FIELD_NUMBER: _ClassVar[int]
418
- key: str
419
- value: AuthFilter
420
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
340
+ __slots__ = ("filters", "graph_id", "metadata_json", "name")
421
341
  FILTERS_FIELD_NUMBER: _ClassVar[int]
422
342
  GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
423
- METADATA_FIELD_NUMBER: _ClassVar[int]
424
- filters: _containers.MessageMap[str, AuthFilter]
343
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
344
+ NAME_FIELD_NUMBER: _ClassVar[int]
345
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
425
346
  graph_id: str
426
- metadata: _struct_pb2.Struct
427
- def __init__(self, filters: _Optional[_Mapping[str, AuthFilter]] = ..., graph_id: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
347
+ metadata_json: bytes
348
+ name: str
349
+ def __init__(self, filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., graph_id: _Optional[str] = ..., metadata_json: _Optional[bytes] = ..., name: _Optional[str] = ...) -> None: ...
428
350
 
429
351
  class TruncateRequest(_message.Message):
430
352
  __slots__ = ("runs", "threads", "assistants", "checkpointer", "store")
@@ -457,18 +379,18 @@ class Fragment(_message.Message):
457
379
  def __init__(self, value: _Optional[bytes] = ...) -> None: ...
458
380
 
459
381
  class CheckpointTask(_message.Message):
460
- __slots__ = ("id", "name", "error", "interrupts", "state")
382
+ __slots__ = ("id", "name", "error", "interrupts_json", "state_json")
461
383
  ID_FIELD_NUMBER: _ClassVar[int]
462
384
  NAME_FIELD_NUMBER: _ClassVar[int]
463
385
  ERROR_FIELD_NUMBER: _ClassVar[int]
464
- INTERRUPTS_FIELD_NUMBER: _ClassVar[int]
465
- STATE_FIELD_NUMBER: _ClassVar[int]
386
+ INTERRUPTS_JSON_FIELD_NUMBER: _ClassVar[int]
387
+ STATE_JSON_FIELD_NUMBER: _ClassVar[int]
466
388
  id: str
467
389
  name: str
468
390
  error: str
469
- interrupts: _containers.RepeatedCompositeFieldContainer[_struct_pb2.Struct]
470
- state: _struct_pb2.Struct
471
- def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., error: _Optional[str] = ..., interrupts: _Optional[_Iterable[_Union[_struct_pb2.Struct, _Mapping]]] = ..., state: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
391
+ interrupts_json: _containers.RepeatedScalarFieldContainer[bytes]
392
+ state_json: bytes
393
+ def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., error: _Optional[str] = ..., interrupts_json: _Optional[_Iterable[bytes]] = ..., state_json: _Optional[bytes] = ...) -> None: ...
472
394
 
473
395
  class CheckpointMetadata(_message.Message):
474
396
  __slots__ = ("source", "step", "parents")
@@ -488,20 +410,30 @@ class CheckpointMetadata(_message.Message):
488
410
  def __init__(self, source: _Optional[_Union[CheckpointSource, str]] = ..., step: _Optional[int] = ..., parents: _Optional[_Mapping[str, str]] = ...) -> None: ...
489
411
 
490
412
  class CheckpointPayload(_message.Message):
491
- __slots__ = ("config", "metadata", "values", "next", "parent_config", "tasks")
413
+ __slots__ = ("config", "metadata", "values_json", "next", "parent_config", "tasks")
492
414
  CONFIG_FIELD_NUMBER: _ClassVar[int]
493
415
  METADATA_FIELD_NUMBER: _ClassVar[int]
494
- VALUES_FIELD_NUMBER: _ClassVar[int]
416
+ VALUES_JSON_FIELD_NUMBER: _ClassVar[int]
495
417
  NEXT_FIELD_NUMBER: _ClassVar[int]
496
418
  PARENT_CONFIG_FIELD_NUMBER: _ClassVar[int]
497
419
  TASKS_FIELD_NUMBER: _ClassVar[int]
498
420
  config: _engine_common_pb2.EngineRunnableConfig
499
421
  metadata: CheckpointMetadata
500
- values: _struct_pb2.Struct
422
+ values_json: bytes
501
423
  next: _containers.RepeatedScalarFieldContainer[str]
502
424
  parent_config: _engine_common_pb2.EngineRunnableConfig
503
425
  tasks: _containers.RepeatedCompositeFieldContainer[CheckpointTask]
504
- def __init__(self, config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., metadata: _Optional[_Union[CheckpointMetadata, _Mapping]] = ..., values: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., next: _Optional[_Iterable[str]] = ..., parent_config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., tasks: _Optional[_Iterable[_Union[CheckpointTask, _Mapping]]] = ...) -> None: ...
426
+ def __init__(self, config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., metadata: _Optional[_Union[CheckpointMetadata, _Mapping]] = ..., values_json: _Optional[bytes] = ..., next: _Optional[_Iterable[str]] = ..., parent_config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., tasks: _Optional[_Iterable[_Union[CheckpointTask, _Mapping]]] = ...) -> None: ...
427
+
428
+ class ThreadStatusCheckpoint(_message.Message):
429
+ __slots__ = ("values_json", "next", "interrupts_json")
430
+ VALUES_JSON_FIELD_NUMBER: _ClassVar[int]
431
+ NEXT_FIELD_NUMBER: _ClassVar[int]
432
+ INTERRUPTS_JSON_FIELD_NUMBER: _ClassVar[int]
433
+ values_json: bytes
434
+ next: _containers.RepeatedScalarFieldContainer[str]
435
+ interrupts_json: bytes
436
+ def __init__(self, values_json: _Optional[bytes] = ..., next: _Optional[_Iterable[str]] = ..., interrupts_json: _Optional[bytes] = ...) -> None: ...
505
437
 
506
438
  class Interrupt(_message.Message):
507
439
  __slots__ = ("id", "value", "when", "resumable", "ns")
@@ -546,125 +478,83 @@ class Thread(_message.Message):
546
478
  updated_at: _timestamp_pb2.Timestamp
547
479
  metadata: Fragment
548
480
  config: Fragment
549
- status: ThreadStatus
481
+ status: _enum_thread_status_pb2.ThreadStatus
550
482
  values: Fragment
551
483
  interrupts: _containers.MessageMap[str, Interrupts]
552
484
  error: Fragment
553
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., metadata: _Optional[_Union[Fragment, _Mapping]] = ..., config: _Optional[_Union[Fragment, _Mapping]] = ..., status: _Optional[_Union[ThreadStatus, str]] = ..., values: _Optional[_Union[Fragment, _Mapping]] = ..., interrupts: _Optional[_Mapping[str, Interrupts]] = ..., error: _Optional[_Union[Fragment, _Mapping]] = ...) -> None: ...
485
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., metadata: _Optional[_Union[Fragment, _Mapping]] = ..., config: _Optional[_Union[Fragment, _Mapping]] = ..., status: _Optional[_Union[_enum_thread_status_pb2.ThreadStatus, str]] = ..., values: _Optional[_Union[Fragment, _Mapping]] = ..., interrupts: _Optional[_Mapping[str, Interrupts]] = ..., error: _Optional[_Union[Fragment, _Mapping]] = ...) -> None: ...
554
486
 
555
487
  class CreateThreadRequest(_message.Message):
556
- __slots__ = ("thread_id", "filters", "if_exists", "metadata", "ttl")
557
- class FiltersEntry(_message.Message):
558
- __slots__ = ("key", "value")
559
- KEY_FIELD_NUMBER: _ClassVar[int]
560
- VALUE_FIELD_NUMBER: _ClassVar[int]
561
- key: str
562
- value: AuthFilter
563
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
488
+ __slots__ = ("thread_id", "filters", "if_exists", "metadata_json", "ttl")
564
489
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
565
490
  FILTERS_FIELD_NUMBER: _ClassVar[int]
566
491
  IF_EXISTS_FIELD_NUMBER: _ClassVar[int]
567
- METADATA_FIELD_NUMBER: _ClassVar[int]
492
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
568
493
  TTL_FIELD_NUMBER: _ClassVar[int]
569
494
  thread_id: UUID
570
- filters: _containers.MessageMap[str, AuthFilter]
495
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
571
496
  if_exists: OnConflictBehavior
572
- metadata: _struct_pb2.Struct
497
+ metadata_json: bytes
573
498
  ttl: ThreadTTLConfig
574
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ..., if_exists: _Optional[_Union[OnConflictBehavior, str]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., ttl: _Optional[_Union[ThreadTTLConfig, _Mapping]] = ...) -> None: ...
499
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., if_exists: _Optional[_Union[OnConflictBehavior, str]] = ..., metadata_json: _Optional[bytes] = ..., ttl: _Optional[_Union[ThreadTTLConfig, _Mapping]] = ...) -> None: ...
575
500
 
576
501
  class GetThreadRequest(_message.Message):
577
502
  __slots__ = ("thread_id", "filters")
578
- class FiltersEntry(_message.Message):
579
- __slots__ = ("key", "value")
580
- KEY_FIELD_NUMBER: _ClassVar[int]
581
- VALUE_FIELD_NUMBER: _ClassVar[int]
582
- key: str
583
- value: AuthFilter
584
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
585
503
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
586
504
  FILTERS_FIELD_NUMBER: _ClassVar[int]
587
505
  thread_id: UUID
588
- filters: _containers.MessageMap[str, AuthFilter]
589
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
506
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
507
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
590
508
 
591
509
  class PatchThreadRequest(_message.Message):
592
- __slots__ = ("thread_id", "filters", "metadata", "ttl")
593
- class FiltersEntry(_message.Message):
594
- __slots__ = ("key", "value")
595
- KEY_FIELD_NUMBER: _ClassVar[int]
596
- VALUE_FIELD_NUMBER: _ClassVar[int]
597
- key: str
598
- value: AuthFilter
599
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
510
+ __slots__ = ("thread_id", "filters", "metadata_json", "ttl")
600
511
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
601
512
  FILTERS_FIELD_NUMBER: _ClassVar[int]
602
- METADATA_FIELD_NUMBER: _ClassVar[int]
513
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
603
514
  TTL_FIELD_NUMBER: _ClassVar[int]
604
515
  thread_id: UUID
605
- filters: _containers.MessageMap[str, AuthFilter]
606
- metadata: _struct_pb2.Struct
516
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
517
+ metadata_json: bytes
607
518
  ttl: ThreadTTLConfig
608
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., ttl: _Optional[_Union[ThreadTTLConfig, _Mapping]] = ...) -> None: ...
519
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., metadata_json: _Optional[bytes] = ..., ttl: _Optional[_Union[ThreadTTLConfig, _Mapping]] = ...) -> None: ...
609
520
 
610
521
  class DeleteThreadRequest(_message.Message):
611
522
  __slots__ = ("thread_id", "filters")
612
- class FiltersEntry(_message.Message):
613
- __slots__ = ("key", "value")
614
- KEY_FIELD_NUMBER: _ClassVar[int]
615
- VALUE_FIELD_NUMBER: _ClassVar[int]
616
- key: str
617
- value: AuthFilter
618
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
619
523
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
620
524
  FILTERS_FIELD_NUMBER: _ClassVar[int]
621
525
  thread_id: UUID
622
- filters: _containers.MessageMap[str, AuthFilter]
623
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
526
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
527
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
624
528
 
625
529
  class CopyThreadRequest(_message.Message):
626
530
  __slots__ = ("thread_id", "filters")
627
- class FiltersEntry(_message.Message):
628
- __slots__ = ("key", "value")
629
- KEY_FIELD_NUMBER: _ClassVar[int]
630
- VALUE_FIELD_NUMBER: _ClassVar[int]
631
- key: str
632
- value: AuthFilter
633
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
634
531
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
635
532
  FILTERS_FIELD_NUMBER: _ClassVar[int]
636
533
  thread_id: UUID
637
- filters: _containers.MessageMap[str, AuthFilter]
638
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
534
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
535
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
639
536
 
640
537
  class SearchThreadsRequest(_message.Message):
641
- __slots__ = ("filters", "metadata", "values", "status", "limit", "offset", "sort_by", "sort_order", "select")
642
- class FiltersEntry(_message.Message):
643
- __slots__ = ("key", "value")
644
- KEY_FIELD_NUMBER: _ClassVar[int]
645
- VALUE_FIELD_NUMBER: _ClassVar[int]
646
- key: str
647
- value: AuthFilter
648
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
538
+ __slots__ = ("filters", "metadata_json", "values_json", "status", "limit", "offset", "sort_by", "sort_order", "select")
649
539
  FILTERS_FIELD_NUMBER: _ClassVar[int]
650
- METADATA_FIELD_NUMBER: _ClassVar[int]
651
- VALUES_FIELD_NUMBER: _ClassVar[int]
540
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
541
+ VALUES_JSON_FIELD_NUMBER: _ClassVar[int]
652
542
  STATUS_FIELD_NUMBER: _ClassVar[int]
653
543
  LIMIT_FIELD_NUMBER: _ClassVar[int]
654
544
  OFFSET_FIELD_NUMBER: _ClassVar[int]
655
545
  SORT_BY_FIELD_NUMBER: _ClassVar[int]
656
546
  SORT_ORDER_FIELD_NUMBER: _ClassVar[int]
657
547
  SELECT_FIELD_NUMBER: _ClassVar[int]
658
- filters: _containers.MessageMap[str, AuthFilter]
659
- metadata: _struct_pb2.Struct
660
- values: _struct_pb2.Struct
661
- status: ThreadStatus
548
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
549
+ metadata_json: bytes
550
+ values_json: bytes
551
+ status: _enum_thread_status_pb2.ThreadStatus
662
552
  limit: int
663
553
  offset: int
664
554
  sort_by: ThreadsSortBy
665
555
  sort_order: SortOrder
666
556
  select: _containers.RepeatedScalarFieldContainer[str]
667
- def __init__(self, filters: _Optional[_Mapping[str, AuthFilter]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., values: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., status: _Optional[_Union[ThreadStatus, str]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., sort_by: _Optional[_Union[ThreadsSortBy, str]] = ..., sort_order: _Optional[_Union[SortOrder, str]] = ..., select: _Optional[_Iterable[str]] = ...) -> None: ...
557
+ def __init__(self, filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., metadata_json: _Optional[bytes] = ..., values_json: _Optional[bytes] = ..., status: _Optional[_Union[_enum_thread_status_pb2.ThreadStatus, str]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., sort_by: _Optional[_Union[ThreadsSortBy, str]] = ..., sort_order: _Optional[_Union[SortOrder, str]] = ..., select: _Optional[_Iterable[str]] = ...) -> None: ...
668
558
 
669
559
  class SearchThreadsResponse(_message.Message):
670
560
  __slots__ = ("threads",)
@@ -673,23 +563,16 @@ class SearchThreadsResponse(_message.Message):
673
563
  def __init__(self, threads: _Optional[_Iterable[_Union[Thread, _Mapping]]] = ...) -> None: ...
674
564
 
675
565
  class CountThreadsRequest(_message.Message):
676
- __slots__ = ("filters", "metadata", "values", "status")
677
- class FiltersEntry(_message.Message):
678
- __slots__ = ("key", "value")
679
- KEY_FIELD_NUMBER: _ClassVar[int]
680
- VALUE_FIELD_NUMBER: _ClassVar[int]
681
- key: str
682
- value: AuthFilter
683
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
566
+ __slots__ = ("filters", "metadata_json", "values_json", "status")
684
567
  FILTERS_FIELD_NUMBER: _ClassVar[int]
685
- METADATA_FIELD_NUMBER: _ClassVar[int]
686
- VALUES_FIELD_NUMBER: _ClassVar[int]
568
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
569
+ VALUES_JSON_FIELD_NUMBER: _ClassVar[int]
687
570
  STATUS_FIELD_NUMBER: _ClassVar[int]
688
- filters: _containers.MessageMap[str, AuthFilter]
689
- metadata: _struct_pb2.Struct
690
- values: _struct_pb2.Struct
691
- status: ThreadStatus
692
- def __init__(self, filters: _Optional[_Mapping[str, AuthFilter]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., values: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., status: _Optional[_Union[ThreadStatus, str]] = ...) -> None: ...
571
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
572
+ metadata_json: bytes
573
+ values_json: bytes
574
+ status: _enum_thread_status_pb2.ThreadStatus
575
+ def __init__(self, filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., metadata_json: _Optional[bytes] = ..., values_json: _Optional[bytes] = ..., status: _Optional[_Union[_enum_thread_status_pb2.ThreadStatus, str]] = ...) -> None: ...
693
576
 
694
577
  class SweepThreadsTTLResponse(_message.Message):
695
578
  __slots__ = ("expired", "deleted")
@@ -708,55 +591,51 @@ class SweepThreadsTTLRequest(_message.Message):
708
591
  def __init__(self, batch_size: _Optional[int] = ..., limit: _Optional[int] = ...) -> None: ...
709
592
 
710
593
  class SetThreadStatusRequest(_message.Message):
711
- __slots__ = ("thread_id", "status", "checkpoint", "exception", "expected_status")
594
+ __slots__ = ("thread_id", "checkpoint", "exception_json", "expected_status")
712
595
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
713
- STATUS_FIELD_NUMBER: _ClassVar[int]
714
596
  CHECKPOINT_FIELD_NUMBER: _ClassVar[int]
715
- EXCEPTION_FIELD_NUMBER: _ClassVar[int]
597
+ EXCEPTION_JSON_FIELD_NUMBER: _ClassVar[int]
716
598
  EXPECTED_STATUS_FIELD_NUMBER: _ClassVar[int]
717
599
  thread_id: UUID
718
- status: ThreadStatus
719
- checkpoint: CheckpointPayload
720
- exception: _struct_pb2.Struct
721
- expected_status: _containers.RepeatedScalarFieldContainer[ThreadStatus]
722
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., status: _Optional[_Union[ThreadStatus, str]] = ..., checkpoint: _Optional[_Union[CheckpointPayload, _Mapping]] = ..., exception: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., expected_status: _Optional[_Iterable[_Union[ThreadStatus, str]]] = ...) -> None: ...
600
+ checkpoint: ThreadStatusCheckpoint
601
+ exception_json: bytes
602
+ expected_status: _containers.RepeatedScalarFieldContainer[_enum_thread_status_pb2.ThreadStatus]
603
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., checkpoint: _Optional[_Union[ThreadStatusCheckpoint, _Mapping]] = ..., exception_json: _Optional[bytes] = ..., expected_status: _Optional[_Iterable[_Union[_enum_thread_status_pb2.ThreadStatus, str]]] = ...) -> None: ...
723
604
 
724
605
  class SetThreadJointStatusRequest(_message.Message):
725
- __slots__ = ("thread_id", "run_id", "run_status", "graph_id", "checkpoint", "exception")
606
+ __slots__ = ("thread_id", "run_id", "run_status", "graph_id", "checkpoint", "exception_json")
726
607
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
727
608
  RUN_ID_FIELD_NUMBER: _ClassVar[int]
728
609
  RUN_STATUS_FIELD_NUMBER: _ClassVar[int]
729
610
  GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
730
611
  CHECKPOINT_FIELD_NUMBER: _ClassVar[int]
731
- EXCEPTION_FIELD_NUMBER: _ClassVar[int]
612
+ EXCEPTION_JSON_FIELD_NUMBER: _ClassVar[int]
732
613
  thread_id: UUID
733
614
  run_id: UUID
734
615
  run_status: str
735
616
  graph_id: str
736
617
  checkpoint: CheckpointPayload
737
- exception: _struct_pb2.Struct
738
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., run_id: _Optional[_Union[UUID, _Mapping]] = ..., run_status: _Optional[str] = ..., graph_id: _Optional[str] = ..., checkpoint: _Optional[_Union[CheckpointPayload, _Mapping]] = ..., exception: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
618
+ exception_json: bytes
619
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., run_id: _Optional[_Union[UUID, _Mapping]] = ..., run_status: _Optional[str] = ..., graph_id: _Optional[str] = ..., checkpoint: _Optional[_Union[CheckpointPayload, _Mapping]] = ..., exception_json: _Optional[bytes] = ...) -> None: ...
739
620
 
740
- class JointRollbackRequest(_message.Message):
741
- __slots__ = ("thread_id", "run_id", "graph_id", "checkpoint", "exception")
621
+ class StreamThreadRequest(_message.Message):
622
+ __slots__ = ("thread_id", "filters", "last_event_id", "stream_modes")
742
623
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
743
- RUN_ID_FIELD_NUMBER: _ClassVar[int]
744
- GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
745
- CHECKPOINT_FIELD_NUMBER: _ClassVar[int]
746
- EXCEPTION_FIELD_NUMBER: _ClassVar[int]
624
+ FILTERS_FIELD_NUMBER: _ClassVar[int]
625
+ LAST_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
626
+ STREAM_MODES_FIELD_NUMBER: _ClassVar[int]
747
627
  thread_id: UUID
748
- run_id: UUID
749
- graph_id: str
750
- checkpoint: CheckpointPayload
751
- exception: _struct_pb2.Struct
752
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., run_id: _Optional[_Union[UUID, _Mapping]] = ..., graph_id: _Optional[str] = ..., checkpoint: _Optional[_Union[CheckpointPayload, _Mapping]] = ..., exception: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
628
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
629
+ last_event_id: str
630
+ stream_modes: _containers.RepeatedScalarFieldContainer[_enum_thread_stream_mode_pb2.ThreadStreamMode]
631
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., last_event_id: _Optional[str] = ..., stream_modes: _Optional[_Iterable[_Union[_enum_thread_stream_mode_pb2.ThreadStreamMode, str]]] = ...) -> None: ...
753
632
 
754
633
  class RunKwargs(_message.Message):
755
- __slots__ = ("config", "context", "input", "command", "stream_mode", "interrupt_before", "interrupt_after", "webhook", "feedback_keys", "temporary", "subgraphs", "resumable", "checkpoint_during", "durability")
634
+ __slots__ = ("config", "context_json", "input_json", "command_json", "stream_mode", "interrupt_before", "interrupt_after", "webhook", "feedback_keys", "temporary", "subgraphs", "resumable", "checkpoint_during", "durability")
756
635
  CONFIG_FIELD_NUMBER: _ClassVar[int]
757
- CONTEXT_FIELD_NUMBER: _ClassVar[int]
758
- INPUT_FIELD_NUMBER: _ClassVar[int]
759
- COMMAND_FIELD_NUMBER: _ClassVar[int]
636
+ CONTEXT_JSON_FIELD_NUMBER: _ClassVar[int]
637
+ INPUT_JSON_FIELD_NUMBER: _ClassVar[int]
638
+ COMMAND_JSON_FIELD_NUMBER: _ClassVar[int]
760
639
  STREAM_MODE_FIELD_NUMBER: _ClassVar[int]
761
640
  INTERRUPT_BEFORE_FIELD_NUMBER: _ClassVar[int]
762
641
  INTERRUPT_AFTER_FIELD_NUMBER: _ClassVar[int]
@@ -768,12 +647,12 @@ class RunKwargs(_message.Message):
768
647
  CHECKPOINT_DURING_FIELD_NUMBER: _ClassVar[int]
769
648
  DURABILITY_FIELD_NUMBER: _ClassVar[int]
770
649
  config: _engine_common_pb2.EngineRunnableConfig
771
- context: _struct_pb2.Struct
772
- input: _struct_pb2.Struct
773
- command: _struct_pb2.Struct
774
- stream_mode: StreamMode
775
- interrupt_before: _containers.RepeatedScalarFieldContainer[str]
776
- interrupt_after: _containers.RepeatedScalarFieldContainer[str]
650
+ context_json: bytes
651
+ input_json: bytes
652
+ command_json: bytes
653
+ stream_mode: _enum_stream_mode_pb2.StreamMode
654
+ interrupt_before: _engine_common_pb2.StaticInterruptConfig
655
+ interrupt_after: _engine_common_pb2.StaticInterruptConfig
777
656
  webhook: str
778
657
  feedback_keys: _containers.RepeatedScalarFieldContainer[str]
779
658
  temporary: bool
@@ -781,7 +660,7 @@ class RunKwargs(_message.Message):
781
660
  resumable: bool
782
661
  checkpoint_during: bool
783
662
  durability: str
784
- def __init__(self, config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., input: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., command: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., stream_mode: _Optional[_Union[StreamMode, str]] = ..., interrupt_before: _Optional[_Iterable[str]] = ..., interrupt_after: _Optional[_Iterable[str]] = ..., webhook: _Optional[str] = ..., feedback_keys: _Optional[_Iterable[str]] = ..., temporary: bool = ..., subgraphs: bool = ..., resumable: bool = ..., checkpoint_during: bool = ..., durability: _Optional[str] = ...) -> None: ...
663
+ def __init__(self, config: _Optional[_Union[_engine_common_pb2.EngineRunnableConfig, _Mapping]] = ..., context_json: _Optional[bytes] = ..., input_json: _Optional[bytes] = ..., command_json: _Optional[bytes] = ..., stream_mode: _Optional[_Union[_enum_stream_mode_pb2.StreamMode, str]] = ..., interrupt_before: _Optional[_Union[_engine_common_pb2.StaticInterruptConfig, _Mapping]] = ..., interrupt_after: _Optional[_Union[_engine_common_pb2.StaticInterruptConfig, _Mapping]] = ..., webhook: _Optional[str] = ..., feedback_keys: _Optional[_Iterable[str]] = ..., temporary: bool = ..., subgraphs: bool = ..., resumable: bool = ..., checkpoint_during: bool = ..., durability: _Optional[str] = ...) -> None: ...
785
664
 
786
665
  class Run(_message.Message):
787
666
  __slots__ = ("run_id", "thread_id", "assistant_id", "created_at", "updated_at", "status", "metadata", "kwargs", "multitask_strategy")
@@ -799,23 +678,25 @@ class Run(_message.Message):
799
678
  assistant_id: UUID
800
679
  created_at: _timestamp_pb2.Timestamp
801
680
  updated_at: _timestamp_pb2.Timestamp
802
- status: RunStatus
681
+ status: _enum_run_status_pb2.RunStatus
803
682
  metadata: Fragment
804
683
  kwargs: RunKwargs
805
- multitask_strategy: MultitaskStrategy
806
- def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., assistant_id: _Optional[_Union[UUID, _Mapping]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., status: _Optional[_Union[RunStatus, str]] = ..., metadata: _Optional[_Union[Fragment, _Mapping]] = ..., kwargs: _Optional[_Union[RunKwargs, _Mapping]] = ..., multitask_strategy: _Optional[_Union[MultitaskStrategy, str]] = ...) -> None: ...
684
+ multitask_strategy: _enum_multitask_strategy_pb2.MultitaskStrategy
685
+ def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., assistant_id: _Optional[_Union[UUID, _Mapping]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., status: _Optional[_Union[_enum_run_status_pb2.RunStatus, str]] = ..., metadata: _Optional[_Union[Fragment, _Mapping]] = ..., kwargs: _Optional[_Union[RunKwargs, _Mapping]] = ..., multitask_strategy: _Optional[_Union[_enum_multitask_strategy_pb2.MultitaskStrategy, str]] = ...) -> None: ...
807
686
 
808
- class QueueStats(_message.Message):
809
- __slots__ = ("n_pending", "n_running", "max_age_secs", "med_age_secs")
687
+ class RunStats(_message.Message):
688
+ __slots__ = ("n_pending", "n_running", "pending_runs_wait_time_max_secs", "pending_runs_wait_time_med_secs", "pending_unblocked_runs_wait_time_max_secs")
810
689
  N_PENDING_FIELD_NUMBER: _ClassVar[int]
811
690
  N_RUNNING_FIELD_NUMBER: _ClassVar[int]
812
- MAX_AGE_SECS_FIELD_NUMBER: _ClassVar[int]
813
- MED_AGE_SECS_FIELD_NUMBER: _ClassVar[int]
691
+ PENDING_RUNS_WAIT_TIME_MAX_SECS_FIELD_NUMBER: _ClassVar[int]
692
+ PENDING_RUNS_WAIT_TIME_MED_SECS_FIELD_NUMBER: _ClassVar[int]
693
+ PENDING_UNBLOCKED_RUNS_WAIT_TIME_MAX_SECS_FIELD_NUMBER: _ClassVar[int]
814
694
  n_pending: int
815
695
  n_running: int
816
- max_age_secs: float
817
- med_age_secs: float
818
- def __init__(self, n_pending: _Optional[int] = ..., n_running: _Optional[int] = ..., max_age_secs: _Optional[float] = ..., med_age_secs: _Optional[float] = ...) -> None: ...
696
+ pending_runs_wait_time_max_secs: float
697
+ pending_runs_wait_time_med_secs: float
698
+ pending_unblocked_runs_wait_time_max_secs: float
699
+ def __init__(self, n_pending: _Optional[int] = ..., n_running: _Optional[int] = ..., pending_runs_wait_time_max_secs: _Optional[float] = ..., pending_runs_wait_time_med_secs: _Optional[float] = ..., pending_unblocked_runs_wait_time_max_secs: _Optional[float] = ...) -> None: ...
819
700
 
820
701
  class NextRunRequest(_message.Message):
821
702
  __slots__ = ("wait", "limit")
@@ -840,73 +721,56 @@ class NextRunResponse(_message.Message):
840
721
  def __init__(self, runs: _Optional[_Iterable[_Union[RunWithAttempt, _Mapping]]] = ...) -> None: ...
841
722
 
842
723
  class CreateRunRequest(_message.Message):
843
- __slots__ = ("assistant_id", "kwargs", "filters", "thread_id", "user_id", "run_id", "status", "metadata", "prevent_insert_if_inflight", "multitask_strategy", "if_not_exists", "after_seconds")
844
- class FiltersEntry(_message.Message):
845
- __slots__ = ("key", "value")
846
- KEY_FIELD_NUMBER: _ClassVar[int]
847
- VALUE_FIELD_NUMBER: _ClassVar[int]
848
- key: str
849
- value: AuthFilter
850
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
724
+ __slots__ = ("assistant_id", "kwargs_json", "thread_filters", "assistant_filters", "thread_id", "user_id", "run_id", "status", "metadata_json", "prevent_insert_if_inflight", "multitask_strategy", "if_not_exists", "after_seconds", "thread_ttl")
851
725
  ASSISTANT_ID_FIELD_NUMBER: _ClassVar[int]
852
- KWARGS_FIELD_NUMBER: _ClassVar[int]
853
- FILTERS_FIELD_NUMBER: _ClassVar[int]
726
+ KWARGS_JSON_FIELD_NUMBER: _ClassVar[int]
727
+ THREAD_FILTERS_FIELD_NUMBER: _ClassVar[int]
728
+ ASSISTANT_FILTERS_FIELD_NUMBER: _ClassVar[int]
854
729
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
855
730
  USER_ID_FIELD_NUMBER: _ClassVar[int]
856
731
  RUN_ID_FIELD_NUMBER: _ClassVar[int]
857
732
  STATUS_FIELD_NUMBER: _ClassVar[int]
858
- METADATA_FIELD_NUMBER: _ClassVar[int]
733
+ METADATA_JSON_FIELD_NUMBER: _ClassVar[int]
859
734
  PREVENT_INSERT_IF_INFLIGHT_FIELD_NUMBER: _ClassVar[int]
860
735
  MULTITASK_STRATEGY_FIELD_NUMBER: _ClassVar[int]
861
736
  IF_NOT_EXISTS_FIELD_NUMBER: _ClassVar[int]
862
737
  AFTER_SECONDS_FIELD_NUMBER: _ClassVar[int]
738
+ THREAD_TTL_FIELD_NUMBER: _ClassVar[int]
863
739
  assistant_id: UUID
864
- kwargs: _struct_pb2.Struct
865
- filters: _containers.MessageMap[str, AuthFilter]
740
+ kwargs_json: bytes
741
+ thread_filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
742
+ assistant_filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
866
743
  thread_id: UUID
867
744
  user_id: str
868
745
  run_id: UUID
869
- status: RunStatus
870
- metadata: _struct_pb2.Struct
746
+ status: _enum_run_status_pb2.RunStatus
747
+ metadata_json: bytes
871
748
  prevent_insert_if_inflight: bool
872
- multitask_strategy: MultitaskStrategy
749
+ multitask_strategy: _enum_multitask_strategy_pb2.MultitaskStrategy
873
750
  if_not_exists: CreateRunBehavior
874
751
  after_seconds: int
875
- def __init__(self, assistant_id: _Optional[_Union[UUID, _Mapping]] = ..., kwargs: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., user_id: _Optional[str] = ..., run_id: _Optional[_Union[UUID, _Mapping]] = ..., status: _Optional[_Union[RunStatus, str]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., prevent_insert_if_inflight: bool = ..., multitask_strategy: _Optional[_Union[MultitaskStrategy, str]] = ..., if_not_exists: _Optional[_Union[CreateRunBehavior, str]] = ..., after_seconds: _Optional[int] = ...) -> None: ...
752
+ thread_ttl: ThreadTTLConfig
753
+ def __init__(self, assistant_id: _Optional[_Union[UUID, _Mapping]] = ..., kwargs_json: _Optional[bytes] = ..., thread_filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., assistant_filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., user_id: _Optional[str] = ..., run_id: _Optional[_Union[UUID, _Mapping]] = ..., status: _Optional[_Union[_enum_run_status_pb2.RunStatus, str]] = ..., metadata_json: _Optional[bytes] = ..., prevent_insert_if_inflight: bool = ..., multitask_strategy: _Optional[_Union[_enum_multitask_strategy_pb2.MultitaskStrategy, str]] = ..., if_not_exists: _Optional[_Union[CreateRunBehavior, str]] = ..., after_seconds: _Optional[int] = ..., thread_ttl: _Optional[_Union[ThreadTTLConfig, _Mapping]] = ...) -> None: ...
876
754
 
877
755
  class GetRunRequest(_message.Message):
878
756
  __slots__ = ("run_id", "thread_id", "filters")
879
- class FiltersEntry(_message.Message):
880
- __slots__ = ("key", "value")
881
- KEY_FIELD_NUMBER: _ClassVar[int]
882
- VALUE_FIELD_NUMBER: _ClassVar[int]
883
- key: str
884
- value: AuthFilter
885
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
886
757
  RUN_ID_FIELD_NUMBER: _ClassVar[int]
887
758
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
888
759
  FILTERS_FIELD_NUMBER: _ClassVar[int]
889
760
  run_id: UUID
890
761
  thread_id: UUID
891
- filters: _containers.MessageMap[str, AuthFilter]
892
- def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
762
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
763
+ def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
893
764
 
894
765
  class DeleteRunRequest(_message.Message):
895
766
  __slots__ = ("run_id", "thread_id", "filters")
896
- class FiltersEntry(_message.Message):
897
- __slots__ = ("key", "value")
898
- KEY_FIELD_NUMBER: _ClassVar[int]
899
- VALUE_FIELD_NUMBER: _ClassVar[int]
900
- key: str
901
- value: AuthFilter
902
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
903
767
  RUN_ID_FIELD_NUMBER: _ClassVar[int]
904
768
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
905
769
  FILTERS_FIELD_NUMBER: _ClassVar[int]
906
770
  run_id: UUID
907
771
  thread_id: UUID
908
- filters: _containers.MessageMap[str, AuthFilter]
909
- def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ...) -> None: ...
772
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
773
+ def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ...) -> None: ...
910
774
 
911
775
  class CancelRunIdsTarget(_message.Message):
912
776
  __slots__ = ("thread_id", "run_ids")
@@ -924,32 +788,18 @@ class CancelStatusTarget(_message.Message):
924
788
 
925
789
  class CancelRunRequest(_message.Message):
926
790
  __slots__ = ("filters", "run_ids", "status", "action")
927
- class FiltersEntry(_message.Message):
928
- __slots__ = ("key", "value")
929
- KEY_FIELD_NUMBER: _ClassVar[int]
930
- VALUE_FIELD_NUMBER: _ClassVar[int]
931
- key: str
932
- value: AuthFilter
933
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
934
791
  FILTERS_FIELD_NUMBER: _ClassVar[int]
935
792
  RUN_IDS_FIELD_NUMBER: _ClassVar[int]
936
793
  STATUS_FIELD_NUMBER: _ClassVar[int]
937
794
  ACTION_FIELD_NUMBER: _ClassVar[int]
938
- filters: _containers.MessageMap[str, AuthFilter]
795
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
939
796
  run_ids: CancelRunIdsTarget
940
797
  status: CancelStatusTarget
941
- action: CancelRunAction
942
- def __init__(self, filters: _Optional[_Mapping[str, AuthFilter]] = ..., run_ids: _Optional[_Union[CancelRunIdsTarget, _Mapping]] = ..., status: _Optional[_Union[CancelStatusTarget, _Mapping]] = ..., action: _Optional[_Union[CancelRunAction, str]] = ...) -> None: ...
798
+ action: _enum_cancel_run_action_pb2.CancelRunAction
799
+ def __init__(self, filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., run_ids: _Optional[_Union[CancelRunIdsTarget, _Mapping]] = ..., status: _Optional[_Union[CancelStatusTarget, _Mapping]] = ..., action: _Optional[_Union[_enum_cancel_run_action_pb2.CancelRunAction, str]] = ...) -> None: ...
943
800
 
944
801
  class SearchRunsRequest(_message.Message):
945
802
  __slots__ = ("thread_id", "filters", "limit", "offset", "status", "select")
946
- class FiltersEntry(_message.Message):
947
- __slots__ = ("key", "value")
948
- KEY_FIELD_NUMBER: _ClassVar[int]
949
- VALUE_FIELD_NUMBER: _ClassVar[int]
950
- key: str
951
- value: AuthFilter
952
- def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AuthFilter, _Mapping]] = ...) -> None: ...
953
803
  THREAD_ID_FIELD_NUMBER: _ClassVar[int]
954
804
  FILTERS_FIELD_NUMBER: _ClassVar[int]
955
805
  LIMIT_FIELD_NUMBER: _ClassVar[int]
@@ -957,12 +807,12 @@ class SearchRunsRequest(_message.Message):
957
807
  STATUS_FIELD_NUMBER: _ClassVar[int]
958
808
  SELECT_FIELD_NUMBER: _ClassVar[int]
959
809
  thread_id: UUID
960
- filters: _containers.MessageMap[str, AuthFilter]
810
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
961
811
  limit: int
962
812
  offset: int
963
- status: RunStatus
813
+ status: _enum_run_status_pb2.RunStatus
964
814
  select: _containers.RepeatedScalarFieldContainer[str]
965
- def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Mapping[str, AuthFilter]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., status: _Optional[_Union[RunStatus, str]] = ..., select: _Optional[_Iterable[str]] = ...) -> None: ...
815
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., status: _Optional[_Union[_enum_run_status_pb2.RunStatus, str]] = ..., select: _Optional[_Iterable[str]] = ...) -> None: ...
966
816
 
967
817
  class SearchRunsResponse(_message.Message):
968
818
  __slots__ = ("runs",)
@@ -975,11 +825,81 @@ class SetRunStatusRequest(_message.Message):
975
825
  RUN_ID_FIELD_NUMBER: _ClassVar[int]
976
826
  STATUS_FIELD_NUMBER: _ClassVar[int]
977
827
  run_id: UUID
978
- status: RunStatus
979
- def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., status: _Optional[_Union[RunStatus, str]] = ...) -> None: ...
828
+ status: _enum_run_status_pb2.RunStatus
829
+ def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., status: _Optional[_Union[_enum_run_status_pb2.RunStatus, str]] = ...) -> None: ...
980
830
 
981
831
  class SweepRunsResponse(_message.Message):
982
832
  __slots__ = ("run_ids",)
983
833
  RUN_IDS_FIELD_NUMBER: _ClassVar[int]
984
834
  run_ids: _containers.RepeatedCompositeFieldContainer[UUID]
985
835
  def __init__(self, run_ids: _Optional[_Iterable[_Union[UUID, _Mapping]]] = ...) -> None: ...
836
+
837
+ class CountRunsRequest(_message.Message):
838
+ __slots__ = ("thread_id", "statuses")
839
+ THREAD_ID_FIELD_NUMBER: _ClassVar[int]
840
+ STATUSES_FIELD_NUMBER: _ClassVar[int]
841
+ thread_id: UUID
842
+ statuses: _containers.RepeatedScalarFieldContainer[str]
843
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., statuses: _Optional[_Iterable[str]] = ...) -> None: ...
844
+
845
+ class StreamRunRequest(_message.Message):
846
+ __slots__ = ("thread_id", "run_id", "filters", "last_event_id", "stream_modes", "ignore_run_not_found", "cancel_on_disconnect")
847
+ THREAD_ID_FIELD_NUMBER: _ClassVar[int]
848
+ RUN_ID_FIELD_NUMBER: _ClassVar[int]
849
+ FILTERS_FIELD_NUMBER: _ClassVar[int]
850
+ LAST_EVENT_ID_FIELD_NUMBER: _ClassVar[int]
851
+ STREAM_MODES_FIELD_NUMBER: _ClassVar[int]
852
+ IGNORE_RUN_NOT_FOUND_FIELD_NUMBER: _ClassVar[int]
853
+ CANCEL_ON_DISCONNECT_FIELD_NUMBER: _ClassVar[int]
854
+ thread_id: UUID
855
+ run_id: UUID
856
+ filters: _containers.RepeatedCompositeFieldContainer[AuthFilter]
857
+ last_event_id: str
858
+ stream_modes: _containers.RepeatedScalarFieldContainer[_enum_stream_mode_pb2.StreamMode]
859
+ ignore_run_not_found: bool
860
+ cancel_on_disconnect: bool
861
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ..., run_id: _Optional[_Union[UUID, _Mapping]] = ..., filters: _Optional[_Iterable[_Union[AuthFilter, _Mapping]]] = ..., last_event_id: _Optional[str] = ..., stream_modes: _Optional[_Iterable[_Union[_enum_stream_mode_pb2.StreamMode, str]]] = ..., ignore_run_not_found: bool = ..., cancel_on_disconnect: bool = ...) -> None: ...
862
+
863
+ class EnterRunRequest(_message.Message):
864
+ __slots__ = ("run_id", "thread_id", "resumable")
865
+ RUN_ID_FIELD_NUMBER: _ClassVar[int]
866
+ THREAD_ID_FIELD_NUMBER: _ClassVar[int]
867
+ RESUMABLE_FIELD_NUMBER: _ClassVar[int]
868
+ run_id: UUID
869
+ thread_id: UUID
870
+ resumable: bool
871
+ def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., resumable: bool = ...) -> None: ...
872
+
873
+ class MarkRunDoneRequest(_message.Message):
874
+ __slots__ = ("run_id", "thread_id", "resumable")
875
+ RUN_ID_FIELD_NUMBER: _ClassVar[int]
876
+ THREAD_ID_FIELD_NUMBER: _ClassVar[int]
877
+ RESUMABLE_FIELD_NUMBER: _ClassVar[int]
878
+ run_id: UUID
879
+ thread_id: UUID
880
+ resumable: bool
881
+ def __init__(self, run_id: _Optional[_Union[UUID, _Mapping]] = ..., thread_id: _Optional[_Union[UUID, _Mapping]] = ..., resumable: bool = ...) -> None: ...
882
+
883
+ class GetGraphIDRequest(_message.Message):
884
+ __slots__ = ("thread_id",)
885
+ THREAD_ID_FIELD_NUMBER: _ClassVar[int]
886
+ thread_id: UUID
887
+ def __init__(self, thread_id: _Optional[_Union[UUID, _Mapping]] = ...) -> None: ...
888
+
889
+ class GetGraphIDResponse(_message.Message):
890
+ __slots__ = ("graph_id",)
891
+ GRAPH_ID_FIELD_NUMBER: _ClassVar[int]
892
+ graph_id: str
893
+ def __init__(self, graph_id: _Optional[str] = ...) -> None: ...
894
+
895
+ class CreateRunResponse(_message.Message):
896
+ __slots__ = ("runs",)
897
+ RUNS_FIELD_NUMBER: _ClassVar[int]
898
+ runs: _containers.RepeatedCompositeFieldContainer[Run]
899
+ def __init__(self, runs: _Optional[_Iterable[_Union[Run, _Mapping]]] = ...) -> None: ...
900
+
901
+ class ControlEvent(_message.Message):
902
+ __slots__ = ("action",)
903
+ ACTION_FIELD_NUMBER: _ClassVar[int]
904
+ action: _enum_control_signal_pb2.ControlSignal
905
+ def __init__(self, action: _Optional[_Union[_enum_control_signal_pb2.ControlSignal, str]] = ...) -> None: ...