langgraph-api 0.17.0.dev5__py3-none-any.whl → 0.18.0.dev1__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.
langgraph_api/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.17.0.dev5"
1
+ __version__ = "0.18.0.dev1"
@@ -96,6 +96,16 @@ async def create_thread(
96
96
  return ApiResponse(thread)
97
97
 
98
98
 
99
+ def _exclude_metadata_kwargs(payload: dict) -> dict:
100
+ """Normalize `exclude_metadata` (object or list of objects) into ops kwargs."""
101
+ exclude_metadata = payload.get("exclude_metadata")
102
+ if exclude_metadata is None:
103
+ return {}
104
+ if isinstance(exclude_metadata, dict):
105
+ exclude_metadata = [exclude_metadata]
106
+ return {"exclude_metadata": exclude_metadata}
107
+
108
+
99
109
  @retry_db
100
110
  async def search_threads(
101
111
  request: ApiRequest,
@@ -133,6 +143,7 @@ async def search_threads(
133
143
  # it would extract from ciphertext (wrong) and we'll redo it anyway.
134
144
  storage_extract = None if needs_python_extract else extract
135
145
 
146
+ exclude_kwargs = _exclude_metadata_kwargs(payload)
136
147
  async with connect() as conn:
137
148
  threads_iter, next_offset = await Threads.search(
138
149
  conn,
@@ -146,6 +157,7 @@ async def search_threads(
146
157
  sort_order=payload.get("sort_order"),
147
158
  select=storage_select,
148
159
  extract=storage_extract,
160
+ **exclude_kwargs,
149
161
  )
150
162
  threads, response_headers = await get_pagination_headers(
151
163
  threads_iter, next_offset, offset
@@ -180,6 +192,7 @@ async def count_threads(
180
192
  status=payload.get("status"),
181
193
  values=payload.get("values"),
182
194
  metadata=payload.get("metadata"),
195
+ **_exclude_metadata_kwargs(payload),
183
196
  )
184
197
  return ApiResponse(count)
185
198
 
langgraph_api/asyncio.py CHANGED
@@ -1,11 +1,17 @@
1
1
  import asyncio
2
2
  import concurrent.futures
3
- from collections.abc import AsyncIterator, Coroutine
4
- from contextlib import AbstractAsyncContextManager, asynccontextmanager, suppress
3
+ from collections.abc import AsyncIterator, Coroutine, Generator
4
+ from contextlib import (
5
+ AbstractAsyncContextManager,
6
+ asynccontextmanager,
7
+ contextmanager,
8
+ suppress,
9
+ )
5
10
  from functools import partial
6
11
  from typing import Any, Generic, TypeVar
7
12
 
8
13
  import structlog
14
+ import uvicorn
9
15
 
10
16
  T = TypeVar("T")
11
17
 
@@ -343,3 +349,24 @@ class AsyncQueue(Generic[T], asyncio.Queue[T]):
343
349
  # the call. Wake up the next in line.
344
350
  self._wakeup_next(self._getters)
345
351
  raise
352
+
353
+
354
+ class NoSignalServer(uvicorn.Server):
355
+ """uvicorn server that leaves the process signal handlers alone.
356
+
357
+ uvicorn's own SIGTERM handler exits on the first signal, which would
358
+ short-circuit the queue's graceful shutdown. This server runs until the
359
+ task awaiting ``serve()`` is cancelled.
360
+ """
361
+
362
+ @contextmanager
363
+ def capture_signals(self) -> Generator[None, None, None]:
364
+ yield
365
+
366
+ async def serve(self, sockets: list | None = None) -> None:
367
+ try:
368
+ await super().serve(sockets)
369
+ except asyncio.CancelledError:
370
+ if self.started:
371
+ await self.shutdown(sockets)
372
+ raise
langgraph_api/graph.py CHANGED
@@ -676,6 +676,9 @@ async def collect_graphs_from_env(
676
676
 
677
677
 
678
678
  def _handle_exception(task: asyncio.Task) -> None:
679
+ if task.cancelled():
680
+ # Intentional stop (stop_remote_graphs); let lifespan teardown finish.
681
+ return
679
682
  try:
680
683
  task.result()
681
684
  except (asyncio.CancelledError, SystemExit):
@@ -334,6 +334,7 @@ class Threads(Authenticated):
334
334
  sort_order: str | None = None,
335
335
  select: list[ThreadSelectField] | None = None,
336
336
  extract: dict[str, str] | None = None,
337
+ exclude_metadata: list[dict[str, Any]] | None = None,
337
338
  ctx: Any = None,
338
339
  ) -> tuple[AsyncIterator[Thread], int | None]:
339
340
  metadata = metadata or {}
@@ -360,6 +361,8 @@ class Threads(Authenticated):
360
361
  "sort_by": _map_threads_sort_by(sort_by),
361
362
  "sort_order": _map_sort_order(sort_order),
362
363
  }
364
+ if exclude_metadata:
365
+ request_kwargs["exclude_metadata_json"] = json_dumpb(exclude_metadata)
363
366
 
364
367
  if status:
365
368
  mapped_status = _map_thread_status(status)
@@ -402,6 +405,7 @@ class Threads(Authenticated):
402
405
  metadata: MetadataInput,
403
406
  values: MetadataInput,
404
407
  status: ThreadStatus | None,
408
+ exclude_metadata: list[dict[str, Any]] | None = None,
405
409
  ctx: Any = None,
406
410
  ) -> int:
407
411
  metadata = metadata or {}
@@ -422,6 +426,8 @@ class Threads(Authenticated):
422
426
  "metadata_json": json_dumpb_optional(metadata),
423
427
  "values_json": json_dumpb_optional(values),
424
428
  }
429
+ if exclude_metadata:
430
+ request_kwargs["exclude_metadata_json"] = json_dumpb(exclude_metadata)
425
431
  if status:
426
432
  mapped_status = _map_thread_status(status)
427
433
  if mapped_status is None:
@@ -475,11 +475,13 @@ class RemoteCheckpointer extends BaseCheckpointSaver<number | string> {
475
475
  config: RunnableConfig,
476
476
  writes: [string, unknown][],
477
477
  taskId: string,
478
+ taskPath?: string,
478
479
  ): Promise<void> {
479
480
  await sendRecv("checkpointer_put_writes", {
480
481
  config: stripConfigCallbacks(config),
481
482
  writes,
482
483
  taskId,
484
+ taskPath,
483
485
  });
484
486
  }
485
487
 
@@ -8,6 +8,7 @@ import shutil
8
8
  import ssl
9
9
  from collections import deque
10
10
  from collections.abc import AsyncIterator, Callable
11
+ from inspect import signature
11
12
  from typing import Any, Literal, Self, cast
12
13
 
13
14
  import certifi
@@ -42,6 +43,7 @@ from starlette.routing import Route
42
43
 
43
44
  from langgraph_api import config as lg_config
44
45
  from langgraph_api import store as api_store
46
+ from langgraph_api.asyncio import NoSignalServer
45
47
  from langgraph_api.auth.custom import DotDict, ProxyUser, connection_method
46
48
  from langgraph_api.config import LANGGRAPH_AUTH, LANGGRAPH_AUTH_TYPE
47
49
  from langgraph_api.js.base import BaseRemotePregel, RemoteInterrupt
@@ -727,6 +729,19 @@ async def _get_passthrough_store():
727
729
  return await api_store.get_store()
728
730
 
729
731
 
732
+ async def _put_writes(checkpointer: Any, payload: dict) -> None:
733
+ task_path = payload.get("taskPath")
734
+ # A saver written before `task_path` existed doesn't take it.
735
+ if task_path and "task_path" in signature(checkpointer.aput_writes).parameters:
736
+ await checkpointer.aput_writes(
737
+ payload["config"], payload["writes"], payload["taskId"], task_path=task_path
738
+ )
739
+ else:
740
+ await checkpointer.aput_writes(
741
+ payload["config"], payload["writes"], payload["taskId"]
742
+ )
743
+
744
+
730
745
  # Setup a HTTP server on top of CHECKPOINTER_SOCKET unix socket
731
746
  # used by `client.mts` to communicate with the Python checkpointer
732
747
  async def run_remote_checkpointer():
@@ -764,12 +779,7 @@ async def run_remote_checkpointer():
764
779
  async def checkpointer_put_writes(payload: dict):
765
780
  """Put actual checkpoint values (writes)"""
766
781
 
767
- checkpointer = await _get_passthrough_checkpointer()
768
- return await checkpointer.aput_writes(
769
- payload["config"],
770
- payload["writes"],
771
- payload["taskId"],
772
- )
782
+ await _put_writes(await _get_passthrough_checkpointer(), payload)
773
783
 
774
784
  async def store_batch(payload: dict):
775
785
  """Batch operations on the store"""
@@ -965,7 +975,7 @@ async def run_remote_checkpointer():
965
975
  ]
966
976
  )
967
977
 
968
- server = uvicorn.Server(
978
+ server = NoSignalServer(
969
979
  uvicorn.Config(
970
980
  remote,
971
981
  port=REMOTE_PORT,
@@ -334,6 +334,15 @@ COUNTER_DELTA_CHANNEL_READ = def_counter(
334
334
  "missing (chain exhausted or seed blob absent)"
335
335
  ),
336
336
  )
337
+ COUNTER_DELTA_CHANNEL_WALK_PAST_BOUND = def_counter(
338
+ "delta_channel_walk_past_bound_counter",
339
+ METRIC_TIER_INFO,
340
+ description=(
341
+ "DeltaChannel history reads that walked past the snapshot counters' "
342
+ "bound, because a checkpoint was saved without counters "
343
+ "(langgraph before 1.2.13)"
344
+ ),
345
+ )
337
346
  HISTOGRAM_DELTA_CHANNEL_REPLAY_DEPTH = def_histogram(
338
347
  "delta_channel_replay_depth",
339
348
  METRIC_TIER_INFO,
@@ -19,6 +19,7 @@ from contextlib import suppress
19
19
 
20
20
  import structlog
21
21
 
22
+ from langgraph_api.asyncio import NoSignalServer
22
23
  from langgraph_api.utils.errors import GraphLoadError, HealthServerStartupError
23
24
  from langgraph_api.utils.network import format_hostport, normalize_host
24
25
  from langgraph_runtime import lifespan
@@ -137,15 +138,13 @@ async def health_and_metrics_server():
137
138
  access_log=False,
138
139
  )
139
140
  # Server will run indefinitely until the process is terminated
140
- server = uvicorn.Server(config)
141
+ server = NoSignalServer(config)
141
142
 
142
143
  logger.info(
143
144
  f"Health and metrics server started at http://{format_hostport(host, port)}"
144
145
  )
145
146
  try:
146
- # Use the internal serve to skip capturing signals, otherwise there's a race condition
147
- # where uvicorn captures the signal and will exit early before the queue can gracefully shutdown
148
- await server._serve()
147
+ await server.serve()
149
148
  except SystemExit as exc:
150
149
  if exc.code == 0:
151
150
  return
@@ -171,9 +170,7 @@ async def health_and_metrics_server():
171
170
  )
172
171
  raise error from exc
173
172
  except asyncio.CancelledError:
174
- # Close the health server cleanly once we've exited the lifespan to make sure we respect graceful shutdown
175
173
  logger.info("Shutting down health and metrics server")
176
- await server.shutdown()
177
174
 
178
175
 
179
176
  async def entrypoint(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-api
3
- Version: 0.17.0.dev5
3
+ Version: 0.18.0.dev1
4
4
  Author-email: Will Fu-Hinthorn <will@langchain.dev>, Josh Rogers <josh@langchain.dev>, Parker Rule <parker@langchain.dev>
5
5
  License: Elastic-2.0
6
6
  License-File: LICENSE
@@ -17,7 +17,7 @@ Requires-Dist: jsonschema-rs<0.45,>=0.20.0
17
17
  Requires-Dist: langchain-core>=0.3.64
18
18
  Requires-Dist: langchain-protocol<0.1,>=0.0.18
19
19
  Requires-Dist: langgraph-checkpoint<5,>=3.0.1
20
- Requires-Dist: langgraph-runtime-inmem<0.38.0.dev0,>=0.37.0.dev0
20
+ Requires-Dist: langgraph-runtime-inmem<0.39.0.dev0,>=0.38.0.dev0
21
21
  Requires-Dist: langgraph-sdk>=0.4.4
22
22
  Requires-Dist: langgraph<2,>=0.4.10
23
23
  Requires-Dist: langsmith[otel]>=0.6.3
@@ -35,7 +35,7 @@ Requires-Dist: structlog<26,>=24.1.0
35
35
  Requires-Dist: tenacity>=8.0.0
36
36
  Requires-Dist: truststore>=0.1
37
37
  Requires-Dist: uuid-utils>=0.16.2
38
- Requires-Dist: uvicorn>=0.26.0
38
+ Requires-Dist: uvicorn>=0.29.0
39
39
  Requires-Dist: uvloop>=0.18.0; platform_system != 'Windows'
40
40
  Requires-Dist: watchfiles>=0.13
41
41
  Requires-Dist: websockets>=13.0
@@ -1,7 +1,7 @@
1
- langgraph_api/__init__.py,sha256=GKjvmyTz9n8JonnfRRFxgEvT6Bv4AtHLmoXoSMELxjw,28
1
+ langgraph_api/__init__.py,sha256=cHR33PgypGiR0eT5yS5NXQrlaoEqi-zfwtiroYwNh8w,28
2
2
  langgraph_api/_factory_utils.py,sha256=_FqW0olMu2PGLsnRq0ylt3a4jDCe12YIFHExMXI6Nyo,5976
3
3
  langgraph_api/asgi_transport.py,sha256=XApY3lIWBZTMbbsl8dDJzl0cLGirmAGE0SifqZUnXvs,11896
4
- langgraph_api/asyncio.py,sha256=Q131e14VVIh7WajMTtM6i4bJIirYxRQIsjpFN_tn7XE,11723
4
+ langgraph_api/asyncio.py,sha256=-p-Vx89TnErypdPcWb-2EdbsSvhdIdHfriCFG7UP7ls,12444
5
5
  langgraph_api/beacon_data_plane_jwt_auth.py,sha256=SoX2M-_u7oas6zWyss2LBs83E6ynBCFOoD5vVJEHRSU,2297
6
6
  langgraph_api/cache.py,sha256=xtBTkEQOP0GJ0wb9EH_BdIvaDfRxPG5DPNnEh2Zmcmg,16198
7
7
  langgraph_api/cli.py,sha256=ATtS9s9Cx7QNiGPJceKnMCko29A25ZA-xz39fdxmgfg,22389
@@ -9,17 +9,17 @@ langgraph_api/command.py,sha256=d-k8h6H4ix1n7fSZ-Zb01NbSkEyqrD6cMKfDFXEIYEw,821
9
9
  langgraph_api/cron_scheduler.py,sha256=E7R9Rnvqvl4LSs5b9pGiNjWnV-Ndg_GqHNeFAOH7iRY,5589
10
10
  langgraph_api/errors.py,sha256=QJSriNZn3VMnMzcxbTNmUgT8u1a0GddpMXamJ4A_a6o,2583
11
11
  langgraph_api/feature_flags.py,sha256=Grs06CgKvcCpsDcsUvK9m2VUfaeP1S4C_cGaJiLe3pk,3633
12
- langgraph_api/graph.py,sha256=1pwOJpuOEPrA81FC8a5HbyXwuu52J6sMcBwvQdN6TYU,40002
12
+ langgraph_api/graph.py,sha256=d4_HJ3hnK3QGLCEJIeFwArEoGcScBlSQdMeZxlhqxfY,40121
13
13
  langgraph_api/http.py,sha256=7hPxKbj-xoAKcm7iucBpT5nM_hXOgGVCPbBsCD693Cw,6977
14
14
  langgraph_api/http_metrics.py,sha256=etxbZNmYxdb58DVLNkHP7S-N6njXPTiQh2OWKMaIZi8,5336
15
15
  langgraph_api/http_metrics_utils.py,sha256=sjxF7SYGTzY0Wz_G0dzatsYNnWr31S6ujej4JmBG2yo,866
16
16
  langgraph_api/logging.py,sha256=V1RCnqVLuMvJtrBiyMMLfaEdbS3k5A2M8Unhr4FUUdQ,6801
17
17
  langgraph_api/metadata.py,sha256=CPFftSAGV5_0wCJrIsI2Jcw_5a6lN93A5DVlY59vIdk,11472
18
18
  langgraph_api/metrics_collector.py,sha256=ALUyirKew3uqtXVrCwpBc7wCM_viNhT13wZVMUVyva0,8495
19
- langgraph_api/metrics_otlp.py,sha256=f64EqY_AWYmNsW1j_40OdseZjxQMJ8qLVRn4wSf3Ib4,30215
19
+ langgraph_api/metrics_otlp.py,sha256=g-H8iVCy_txQ8u1LgbYgh_prm5wjgY4dC4n0gsbCxaI,30542
20
20
  langgraph_api/otel_context.py,sha256=DWFwW4Yu88QY4W2J0IRcURR450Th9J2DupvDDkSkMBA,7166
21
21
  langgraph_api/patch.py,sha256=ViUknYvyQWS6y0f5XuaEoci2qB_mQv8vZl-oaUxsI6M,1448
22
- langgraph_api/queue_entrypoint.py,sha256=KUCy7yGNTA538uTbJVaRFXpG2P72GJPVUe4su5ArBhQ,11653
22
+ langgraph_api/queue_entrypoint.py,sha256=HRrFZ__ZO9qlZLQyoirUd7QldLYi8HXllmDID5iC0lk,11354
23
23
  langgraph_api/release_tags.py,sha256=XOiX829Bi8eVpKGWg8TiHyidjGfz1p3Pqj0elrAsj8w,10377
24
24
  langgraph_api/route.py,sha256=_KE8A8Q-J-QfqjGlyM2Kc6n5cirmgt8xmI5-pI8kVEE,8837
25
25
  langgraph_api/schema.py,sha256=OSYEHVHJB0C9wBPX7y4zlbR179IVgiVPbDKdddV0x3E,10845
@@ -51,7 +51,7 @@ langgraph_api/api/openapi.py,sha256=Zkdlb9mjrQyHro1TtrDIWVuaBDovxx-uGWJ1fZMOg54,
51
51
  langgraph_api/api/profile.py,sha256=CA1ZkHALOuP8orYTICnEhcG_JnnA2wnyjbWyeb117jA,3455
52
52
  langgraph_api/api/runs.py,sha256=0ogQnEQyKeVTuEUY6UD4KMShUA6Qq7_Zyp0Z70zGSzs,32577
53
53
  langgraph_api/api/store.py,sha256=5d1GOxsVDK-8PPngYG2rjYF_B2qNevDvPos-nB8YPCI,7710
54
- langgraph_api/api/threads.py,sha256=Is1pp7gZJvOGthktG8gWgA6C1oB49ZBG68sTI55TR9Y,18517
54
+ langgraph_api/api/threads.py,sha256=kUQ29EHADVyNaWhMjiuIVe1mjjCWu5KZHYToRwrsKX0,19035
55
55
  langgraph_api/api/ui.py,sha256=A1cRxaMK_4pb192mrZ_LMxLSFb8NriYwwvjeDdNDD7k,2803
56
56
  langgraph_api/api/a2ui_schemas/README.md,sha256=fZCc9rSK-qeUHsbJ17EYxMZjS3yUrYQdoQLX7ltgP8M,298
57
57
  langgraph_api/api/a2ui_schemas/client_capabilities.json,sha256=3YAHlRfeOn9dUH6uAek1loCL4caeSUuQzhrtWKWW9nU,1906
@@ -100,7 +100,7 @@ langgraph_api/grpc/ops/assistants.py,sha256=hLDZrAahpGSjzWNzr8nQidTW_4MoCR6sZy5V
100
100
  langgraph_api/grpc/ops/cache.py,sha256=MoPAmSuOwbt2Cud1YZJm_YJeaDHPFy1IiV4m0PDImgg,1399
101
101
  langgraph_api/grpc/ops/crons.py,sha256=aDlvNVYIfSP8gtr5NptLiAj-bfMtJOuMWYIA2NifWm0,19713
102
102
  langgraph_api/grpc/ops/runs.py,sha256=0c6EuJ6J3CQMwmw0aruWu7XST6pBuExl4FUXKjqMSWM,42516
103
- langgraph_api/grpc/ops/threads.py,sha256=CZ-lm4u1Frhe48cbOUdb8wY11W8Q_bTbRaU_gmrzMUQ,48542
103
+ langgraph_api/grpc/ops/threads.py,sha256=8c6ivd5XS2EReXBz6SVDU_waSh5WGwFWKIrHln3kHlQ,48890
104
104
  langgraph_api/grpc/servicers/__init__.py,sha256=l8yqTA_gMbIj0xHw5-RZYo0JbjL-EpFD8RxPMgW_-bA,422
105
105
  langgraph_api/grpc/servicers/checkpointer.py,sha256=kn9J3HQEmqggtOGiDxpEAeBVkVi4qDCJikj2bXo5k4g,10543
106
106
  langgraph_api/grpc/servicers/encryption.py,sha256=ddAjRZ9btWBf4MPa7yd793japdCEi-DfEPi1Ynt8gzk,10563
@@ -111,11 +111,11 @@ langgraph_api/js/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
111
111
  langgraph_api/js/base.py,sha256=CJihwc51MwOVkis80f8zudRa1fQz_5jrom4rY8trww8,1133
112
112
  langgraph_api/js/build.mts,sha256=--Kfm4NKDhMljmv8fVvRR0VeUsBKiWch6qXpBoKmrvU,3445
113
113
  langgraph_api/js/client.http.mts,sha256=ARlTJURLJamgvyaPlBCYEAHFnXQnPpzzUXWKwXiebnw,6011
114
- langgraph_api/js/client.mts,sha256=sodfJNuV16uMOeM8NvJxszv2-v_tK4FYtZvFRDzR81Q,40059
114
+ langgraph_api/js/client.mts,sha256=UwUK7MVT8gE-kG2seq--rhKALFifcNqY6cIYv0lXmxI,40098
115
115
  langgraph_api/js/errors.py,sha256=Cm1TKWlUCwZReDC5AQ6SgNIVGD27Qov2xcgHyf8-GXo,361
116
116
  langgraph_api/js/global.d.ts,sha256=j4GhgtQSZ5_cHzjSPcHgMJ8tfBThxrH-pUOrrJGteOU,196
117
117
  langgraph_api/js/package.json,sha256=Anl1QiuJNVyFz86KoplaUO7HhoeRxHRgnRWc_Vl-d4I,1362
118
- langgraph_api/js/remote.py,sha256=rS1U_4S-h96cThaPQhfv_J7TP2p4ePVoDmCUH4kXXuw,53026
118
+ langgraph_api/js/remote.py,sha256=eYYbTmZprmNc5cF_qCrwQZ2LpTWUGAMVn84hS2--w60,53492
119
119
  langgraph_api/js/schema.py,sha256=M4fLtr50O1jck8H1hm_0W4cZOGYGdkrB7riLyCes4oY,438
120
120
  langgraph_api/js/sse.py,sha256=IfcEpknyZeqqjYTOWRdijc6o2EBfatbWCZarGQQ0SQI,4088
121
121
  langgraph_api/js/traceblock.mts,sha256=QtGSN5VpzmGqDfbArrGXkMiONY94pMQ5CgzetT_bKYg,761
@@ -175,7 +175,7 @@ langgraph_runtime/store.py,sha256=7mowndlsIroGHv3NpTSOZDJR0lCuaYMBoTnTrewjslw,11
175
175
  LICENSE,sha256=SCVQGLQfwOllsRFa9-Z3m8IYu4pnR9Vh2oANUCJiKqI,3860
176
176
  hatch_build.py,sha256=Nn9N-EFfVqmH5q3iCUrhqX6zc7qT1jLI3gWSBN2xgYQ,1738
177
177
  logging.json,sha256=sBy8HDDPuucpLbLUD6e8t5fsiQjJoklZsbVHi2qQ7aQ,367
178
- openapi.json,sha256=R7pyJUpuBxz3rarTV4XgpId2XRHzKbGh3BG8jrTKnWU,224839
178
+ openapi.json,sha256=BUlosTZcsL46oTMHVAnPWjVJSaWT6Het3dBBLin0Sn8,226101
179
179
  langgraph_grpc_common/__init__.py,sha256=sO7jFHekQxt6zZPhTPZAWLYLB_S8w7-VuJ7NyWFlFNo,97
180
180
  langgraph_grpc_common/checkpointer.py,sha256=qNUrdS8veKuxy-S4-soCvsiB_P0SpoS5jdJ5q6JAzRg,15620
181
181
  langgraph_grpc_common/serde.py,sha256=8q290nZ6TdxbEhCTzwEs44XGi2b-3pfrUeMYY5WGlTY,6179
@@ -193,10 +193,10 @@ langgraph_grpc_common/proto/checkpointer_pb2.py,sha256=zt24iOYdp1JxkEPedaadztVVe
193
193
  langgraph_grpc_common/proto/checkpointer_pb2.pyi,sha256=98wdF_yAZBbmrzb4iAOB2rnughbjg__RqSgBkzB1Dgw,26648
194
194
  langgraph_grpc_common/proto/checkpointer_pb2_grpc.py,sha256=FQJK-lC8alOkLltA51aq1ABam62rVerTZRZccTFqUjw,20152
195
195
  langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi,sha256=8fPL90WjHnMaREG7l9qYt5fQePeT8YFWQ0qVy56QtYw,10210
196
- langgraph_grpc_common/proto/core_api_pb2.py,sha256=bDn-cZjEvpIUQ6uMzQuiBt1Uzlrk6JzsEAOsy3UzOL0,53149
197
- langgraph_grpc_common/proto/core_api_pb2.pyi,sha256=HLqChxLSsLe-4P9mmyJbcwDE0oql2LNt3N3qCO_yedc,217942
198
- langgraph_grpc_common/proto/core_api_pb2_grpc.py,sha256=R6IfXHGRlD5uBfaa0zAMlaWopG9OJ5Z6dG7z3refdpA,82848
199
- langgraph_grpc_common/proto/core_api_pb2_grpc.pyi,sha256=0RXa42ugGxemKNoBaYgF4C6For94VsQ4LBGbXu3iL-U,30051
196
+ langgraph_grpc_common/proto/core_api_pb2.py,sha256=qMgqf0pN3QHA79qd9EXdozMkEmwkLPdnrhMaVndXUGQ,53720
197
+ langgraph_grpc_common/proto/core_api_pb2.pyi,sha256=EcZoHNECNXCPUk0FQPAitcvX75Jlag_ROfEaF9I06ps,221095
198
+ langgraph_grpc_common/proto/core_api_pb2_grpc.py,sha256=emUFk0saZTEvB7XK4xUJBc3E9OpMzS2QVPNih6BaeMM,84637
199
+ langgraph_grpc_common/proto/core_api_pb2_grpc.pyi,sha256=40Bt-EDzzFyo2R224vDoEQQKs-zFGKzUKE2lgwYbW3U,30984
200
200
  langgraph_grpc_common/proto/encryption_pb2.py,sha256=CEDsn3bJv2e_QzAFsvp2845Nac_lBRPGsb_9pFJthxE,4119
201
201
  langgraph_grpc_common/proto/encryption_pb2.pyi,sha256=YWilpCKKzV9u2BA8i-Pq4gStaxhBgqo_fAxTLnreG40,10647
202
202
  langgraph_grpc_common/proto/encryption_pb2_grpc.py,sha256=H05u5VP1bVgYCtiELRb44DOr0wlmA6w8WtMCuqAyYLk,8681
@@ -253,8 +253,8 @@ langgraph_grpc_common/proto/store_pb2.py,sha256=VWJ7wtzL9pVmZZKbxMzOzCoiFn58bB2g
253
253
  langgraph_grpc_common/proto/store_pb2.pyi,sha256=atXejijuYEb9tE0stGQdZcfA9ucMFj-ytTMwvkxwviM,29322
254
254
  langgraph_grpc_common/proto/store_pb2_grpc.py,sha256=Kyt8eV2NXkjh3be_BYytGdD19kNf74961cruonMvCrw,3300
255
255
  langgraph_grpc_common/proto/store_pb2_grpc.pyi,sha256=oS1h2cDoq2OjyM8xazcmc8LwRDC5oCAD0zto2QUmPQw,2027
256
- langgraph_api-0.17.0.dev5.dist-info/METADATA,sha256=VP_2HhYnqlDq1QeG1xVd8hG11IqwMpcOnriNWtyZnj4,5879
257
- langgraph_api-0.17.0.dev5.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
258
- langgraph_api-0.17.0.dev5.dist-info/entry_points.txt,sha256=hGedv8n7cgi41PypMfinwS_HfCwA7xJIfS0jAp8htV8,78
259
- langgraph_api-0.17.0.dev5.dist-info/licenses/LICENSE,sha256=SCVQGLQfwOllsRFa9-Z3m8IYu4pnR9Vh2oANUCJiKqI,3860
260
- langgraph_api-0.17.0.dev5.dist-info/RECORD,,
256
+ langgraph_api-0.18.0.dev1.dist-info/METADATA,sha256=GiZ2G45JZjxR0dZLSJ75qsTSVp1WSFO93pFxXAMIGLc,5879
257
+ langgraph_api-0.18.0.dev1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
258
+ langgraph_api-0.18.0.dev1.dist-info/entry_points.txt,sha256=hGedv8n7cgi41PypMfinwS_HfCwA7xJIfS0jAp8htV8,78
259
+ langgraph_api-0.18.0.dev1.dist-info/licenses/LICENSE,sha256=SCVQGLQfwOllsRFa9-Z3m8IYu4pnR9Vh2oANUCJiKqI,3860
260
+ langgraph_api-0.18.0.dev1.dist-info/RECORD,,
@@ -39,7 +39,7 @@ from . import enum_control_signal_pb2 as enum__control__signal__pb2
39
39
  from . import enum_cron_on_run_completed_pb2 as enum__cron__on__run__completed__pb2
40
40
 
41
41
 
42
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x63ore-api.proto\x12\x07\x63oreApi\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x10\x65ncryption.proto\x1a\x13\x65ngine-common.proto\x1a\x15\x65num_run_status.proto\x1a\x1d\x65num_multitask_strategy.proto\x1a\x16\x65num_stream_mode.proto\x1a\x1c\x65num_cancel_run_action.proto\x1a\x18\x65num_thread_status.proto\x1a\x1d\x65num_thread_stream_mode.proto\x1a\x19\x65num_control_signal.proto\x1a enum_cron_on_run_completed.proto\"\x16\n\x04Tags\x12\x0e\n\x06values\x18\x01 \x03(\t\"*\n\x0c\x45qAuthFilter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05match\x18\x02 \x01(\t\"2\n\x12\x43ontainsAuthFilter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07matches\x18\x02 \x03(\t\"4\n\x0cOrAuthFilter\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\"5\n\rAndAuthFilter\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xc6\x01\n\nAuthFilter\x12#\n\x02\x65q\x18\x01 \x01(\x0b\x32\x15.coreApi.EqAuthFilterH\x00\x12/\n\x08\x63ontains\x18\x02 \x01(\x0b\x32\x1b.coreApi.ContainsAuthFilterH\x00\x12*\n\tor_filter\x18\x03 \x01(\x0b\x32\x15.coreApi.OrAuthFilterH\x00\x12,\n\nand_filter\x18\x04 \x01(\x0b\x32\x16.coreApi.AndAuthFilterH\x00\x42\x08\n\x06\x66ilter\"\x15\n\x04UUID\x12\r\n\x05value\x18\x01 \x01(\t\"\x1e\n\rCountResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\"x\n\x0bStreamEvent\x12\x12\n\nevent_type\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x16\n\tstream_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06run_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_stream_idB\t\n\x07_run_id\"\xfa\x02\n\tAssistant\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x10\n\x08graph_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x07 \x01(\x0cH\x01\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\t \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\n \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_configB\x0f\n\r_context_jsonB\x10\n\x0e_metadata_jsonB\x0e\n\x0c_description\"\xd1\x02\n\x10\x41ssistantVersion\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x10\n\x08graph_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x07 \x01(\x0cH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\t \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_configB\x0f\n\r_context_jsonB\x10\n\x0e_metadata_jsonB\x0e\n\x0c_description\"\x9d\x03\n\x16\x43reateAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x10\n\x08graph_id\x18\x02 \x01(\t\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\tif_exists\x18\x04 \x01(\x0e\x32\x1b.coreApi.OnConflictBehavior\x12\x32\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\x12\x14\n\x0c\x63ontext_json\x18\x06 \x01(\x0c\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\t \x01(\x0cH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\n \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x10\n\x0e_metadata_jsonB\x15\n\x13_encryption_context\"Q\n\x13GetAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xb2\x03\n\x15PatchAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08graph_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x01\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x05\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\t \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x06\x88\x01\x01\x42\x0b\n\t_graph_idB\t\n\x07_configB\x0f\n\r_context_jsonB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x10\n\x0e_metadata_jsonB\x15\n\x13_encryption_context\"\x84\x01\n\x16\x44\x65leteAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1b\n\x0e\x64\x65lete_threads\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_delete_threads\"1\n\x18\x44\x65leteAssistantsResponse\x12\x15\n\rassistant_ids\x18\x01 \x03(\t\"h\n\x19SetLatestAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x03\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\x90\x03\n\x17SearchAssistantsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08graph_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x13\n\x06offset\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12/\n\x07sort_by\x18\x06 \x01(\x0e\x32\x19.coreApi.AssistantsSortByH\x04\x88\x01\x01\x12+\n\nsort_order\x18\x07 \x01(\x0e\x32\x12.coreApi.SortOrderH\x05\x88\x01\x01\x12\x0e\n\x06select\x18\x08 \x03(\t\x12\x11\n\x04name\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1a\n\x12graph_id_allowlist\x18\n \x03(\tB\x0b\n\t_graph_idB\x10\n\x0e_metadata_jsonB\x08\n\x06_limitB\t\n\x07_offsetB\n\n\x08_sort_byB\r\n\x0b_sort_orderB\x07\n\x05_name\"B\n\x18SearchAssistantsResponse\x12&\n\nassistants\x18\x01 \x03(\x0b\x32\x12.coreApi.Assistant\"\xc5\x01\n\x1bGetAssistantVersionsRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12\x13\n\x06offset\x18\x05 \x01(\x04H\x02\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x08\n\x06_limitB\t\n\x07_offset\"K\n\x1cGetAssistantVersionsResponse\x12+\n\x08versions\x18\x01 \x03(\x0b\x32\x19.coreApi.AssistantVersion\"\xc8\x01\n\x16\x43ountAssistantsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08graph_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\x12graph_id_allowlist\x18\x05 \x03(\tB\x0b\n\t_graph_idB\x10\n\x0e_metadata_jsonB\x07\n\x05_name\"i\n\x0fTruncateRequest\x12\x0c\n\x04runs\x18\x01 \x01(\x08\x12\x0f\n\x07threads\x18\x02 \x01(\x08\x12\x12\n\nassistants\x18\x03 \x01(\x08\x12\x14\n\x0c\x63heckpointer\x18\x04 \x01(\x08\x12\r\n\x05store\x18\x05 \x01(\x08\"\xbb\x01\n\x0fThreadTTLConfig\x12\x31\n\x08strategy\x18\x01 \x01(\x0e\x32\x1a.coreApi.ThreadTTLStrategyH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65\x66\x61ult_ttl\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12#\n\x16sweep_interval_minutes\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x0b\n\t_strategyB\x0e\n\x0c_default_ttlB\x19\n\x17_sweep_interval_minutes\"\x82\x01\n\rThreadTTLInfo\x12,\n\x08strategy\x18\x01 \x01(\x0e\x32\x1a.coreApi.ThreadTTLStrategy\x12\x13\n\x0bttl_minutes\x18\x02 \x01(\x01\x12.\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x19\n\x08\x46ragment\x12\r\n\x05value\x18\x01 \x01(\x0c\"\x89\x01\n\x0e\x43heckpointTask\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x0finterrupts_json\x18\x04 \x03(\x0c\x12\x17\n\nstate_json\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x08\n\x06_errorB\r\n\x0b_state_json\"\xd6\x01\n\x12\x43heckpointMetadata\x12.\n\x06source\x18\x01 \x01(\x0e\x32\x19.coreApi.CheckpointSourceH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x39\n\x07parents\x18\x03 \x03(\x0b\x32(.coreApi.CheckpointMetadata.ParentsEntry\x1a.\n\x0cParentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_sourceB\x07\n\x05_step\"\xa3\x02\n\x11\x43heckpointPayload\x12\x37\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.coreApi.CheckpointMetadata\x12\x13\n\x0bvalues_json\x18\x03 \x01(\x0c\x12\x0c\n\x04next\x18\x04 \x03(\t\x12>\n\rparent_config\x18\x05 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x01\x88\x01\x01\x12&\n\x05tasks\x18\x06 \x03(\x0b\x32\x17.coreApi.CheckpointTaskB\t\n\x07_configB\x10\n\x0e_parent_config\"T\n\x16ThreadStatusCheckpoint\x12\x13\n\x0bvalues_json\x18\x01 \x01(\x0c\x12\x0c\n\x04next\x18\x02 \x03(\t\x12\x17\n\x0finterrupts_json\x18\x03 \x01(\x0c\"\xb2\x01\n\tInterrupt\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x11\n\x04when\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tresumable\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\n\n\x02ns\x18\x05 \x03(\t\x12\x1c\n\x0fresponse_schema\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_whenB\x0c\n\n_resumableB\x12\n\x10_response_schema\"4\n\nInterrupts\x12&\n\ninterrupts\x18\x01 \x03(\x0b\x32\x12.coreApi.Interrupt\"\xdc\x04\n\x06Thread\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\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#\n\x08metadata\x18\x04 \x01(\x0b\x32\x11.coreApi.Fragment\x12!\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\x11.coreApi.Fragment\x12.\n\x06status\x18\x06 \x01(\x0e\x32\x1e.enumThreadStatus.ThreadStatus\x12!\n\x06values\x18\x07 \x01(\x0b\x32\x11.coreApi.Fragment\x12\x33\n\ninterrupts\x18\x08 \x03(\x0b\x32\x1f.coreApi.Thread.InterruptsEntry\x12 \n\x05\x65rror\x18\t \x01(\x0b\x32\x11.coreApi.Fragment\x12\x34\n\x10state_updated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1b\n\x0e\x65xtracted_json\x18\x0b \x01(\x0cH\x00\x88\x01\x01\x12(\n\x03ttl\x18\x0c \x01(\x0b\x32\x16.coreApi.ThreadTTLInfoH\x01\x88\x01\x01\x1a\x46\n\x0fInterruptsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.coreApi.Interrupts:\x02\x38\x01\x42\x11\n\x0f_extracted_jsonB\x06\n\x04_ttl\"\xc6\x02\n\x13\x43reateThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\tif_exists\x18\x03 \x01(\x0e\x32\x1b.coreApi.OnConflictBehavior\x12\x1a\n\rmetadata_json\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12*\n\x03ttl\x18\x05 \x01(\x0b\x32\x18.coreApi.ThreadTTLConfigH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x06 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x06\n\x04_ttlB\x15\n\x13_encryption_context\"\xc6\x01\n\x10GetThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x18\n\x0binclude_ttl\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x32\n\tread_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskH\x01\x88\x01\x01\x42\x0e\n\x0c_include_ttlB\x0c\n\n_read_mask\"\xd7\x02\n\x12PatchThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12*\n\x03ttl\x18\x04 \x01(\x0b\x32\x18.coreApi.ThreadTTLConfigH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x05 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x12\x32\n\tread_mask\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskH\x03\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x06\n\x04_ttlB\x15\n\x13_encryption_contextB\x0c\n\n_read_mask\"]\n\x13\x44\x65leteThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"[\n\x11\x43opyThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xa1\x04\n\x14SearchThreadsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0bvalues_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x33\n\x06status\x18\x04 \x01(\x0e\x32\x1e.enumThreadStatus.ThreadStatusH\x02\x88\x01\x01\x12\x12\n\x05limit\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x13\n\x06offset\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12,\n\x07sort_by\x18\x07 \x01(\x0e\x32\x16.coreApi.ThreadsSortByH\x05\x88\x01\x01\x12+\n\nsort_order\x18\x08 \x01(\x0e\x32\x12.coreApi.SortOrderH\x06\x88\x01\x01\x12\x0e\n\x06select\x18\t \x03(\t\x12\x1a\n\x03ids\x18\n \x03(\x0b\x32\r.coreApi.UUID\x12;\n\x07\x65xtract\x18\x0b \x03(\x0b\x32*.coreApi.SearchThreadsRequest.ExtractEntry\x1a.\n\x0c\x45xtractEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x10\n\x0e_metadata_jsonB\x0e\n\x0c_values_jsonB\t\n\x07_statusB\x08\n\x06_limitB\t\n\x07_offsetB\n\n\x08_sort_byB\r\n\x0b_sort_order\"9\n\x15SearchThreadsResponse\x12 \n\x07threads\x18\x01 \x03(\x0b\x32\x0f.coreApi.Thread\"\xd3\x01\n\x13\x43ountThreadsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0bvalues_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x33\n\x06status\x18\x04 \x01(\x0e\x32\x1e.enumThreadStatus.ThreadStatusH\x02\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x0e\n\x0c_values_jsonB\t\n\x07_status\"\xc3\x02\n\x16SetThreadStatusRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x38\n\ncheckpoint\x18\x02 \x01(\x0b\x32\x1f.coreApi.ThreadStatusCheckpointH\x00\x88\x01\x01\x12\x1b\n\x0e\x65xception_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x37\n\x0f\x65xpected_status\x18\x04 \x03(\x0e\x32\x1e.enumThreadStatus.ThreadStatus\x12>\n\x12\x65ncryption_context\x18\x05 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\r\n\x0b_checkpointB\x11\n\x0f_exception_jsonB\x15\n\x13_encryption_context\"\xd4\x02\n\x1bSetThreadJointStatusRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x1d\n\x06run_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x12\n\nrun_status\x18\x03 \x01(\t\x12\x10\n\x08graph_id\x18\x04 \x01(\t\x12\x38\n\ncheckpoint\x18\x05 \x01(\x0b\x32\x1f.coreApi.ThreadStatusCheckpointH\x00\x88\x01\x01\x12\x1b\n\x0e\x65xception_json\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x07 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\r\n\x0b_checkpointB\x11\n\x0f_exception_jsonB\x15\n\x13_encryption_context\"\xc9\x01\n\x13StreamThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12<\n\x0cstream_modes\x18\x03 \x03(\x0e\x32&.enumThreadStreamMode.ThreadStreamMode\x12\x1a\n\rlast_event_id\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_last_event_id\"a\n\x17GetThreadStorageRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"-\n\rStorageTotals\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\r\n\x05\x62ytes\x18\x02 \x01(\x03\"B\n\x0e\x43hannelStorage\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\t\x12\x10\n\x08versions\x18\x02 \x01(\x03\x12\r\n\x05\x62ytes\x18\x03 \x01(\x03\"a\n\x14\x43hannelValuesStorage\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\r\n\x05\x62ytes\x18\x02 \x01(\x03\x12+\n\nby_channel\x18\x03 \x03(\x0b\x32\x17.coreApi.ChannelStorage\"\xb8\x01\n\rThreadStorage\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x03\x12+\n\x0b\x63heckpoints\x18\x02 \x01(\x0b\x32\x16.coreApi.StorageTotals\x12\x35\n\x0e\x63hannel_values\x18\x03 \x01(\x0b\x32\x1d.coreApi.ChannelValuesStorage\x12.\n\x0epending_writes\x18\x04 \x01(\x0b\x32\x16.coreApi.StorageTotals\"\xb9\x05\n\tRunKwargs\x12\x37\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x17\n\ninput_json\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x19\n\x0c\x63ommand_json\x18\x04 \x01(\x0cH\x03\x88\x01\x01\x12/\n\x0bstream_mode\x18\x05 \x03(\x0e\x32\x1a.enumStreamMode.StreamMode\x12\x42\n\x10interrupt_before\x18\x06 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x04\x88\x01\x01\x12\x41\n\x0finterrupt_after\x18\x07 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x05\x88\x01\x01\x12\x14\n\x07webhook\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x15\n\rfeedback_keys\x18\t \x03(\t\x12\x16\n\ttemporary\x18\n \x01(\x08H\x07\x88\x01\x01\x12\x16\n\tsubgraphs\x18\x0b \x01(\x08H\x08\x88\x01\x01\x12\x16\n\tresumable\x18\x0c \x01(\x08H\t\x88\x01\x01\x12\x1e\n\x11\x63heckpoint_during\x18\r \x01(\x08H\n\x88\x01\x01\x12\x17\n\ndurability\x18\x0e \x01(\tH\x0b\x88\x01\x01\x42\t\n\x07_configB\x0f\n\r_context_jsonB\r\n\x0b_input_jsonB\x0f\n\r_command_jsonB\x13\n\x11_interrupt_beforeB\x12\n\x10_interrupt_afterB\n\n\x08_webhookB\x0c\n\n_temporaryB\x0c\n\n_subgraphsB\x0c\n\n_resumableB\x14\n\x12_checkpoint_duringB\r\n\x0b_durability\"\xf2\x03\n\x03Run\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12#\n\x0c\x61ssistant_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUID\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\x06status\x18\x06 \x01(\x0e\x32\x18.enumRunStatus.RunStatus\x12#\n\x08metadata\x18\x07 \x01(\x0b\x32\x11.coreApi.Fragment\x12\"\n\x06kwargs\x18\x08 \x01(\x0b\x32\x12.coreApi.RunKwargs\x12\x44\n\x12multitask_strategy\x18\t \x01(\x0e\x32(.enumMultitaskStrategy.MultitaskStrategy\x12#\n\x16langsmith_session_name\x18\n \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rcancel_reason\x18\x0b \x01(\tH\x01\x88\x01\x01\x42\x19\n\x17_langsmith_session_nameB\x10\n\x0e_cancel_reason\"\xba\x02\n\x08RunStats\x12\x11\n\tn_pending\x18\x01 \x01(\x04\x12\x11\n\tn_running\x18\x02 \x01(\x04\x12,\n\x1fpending_runs_wait_time_max_secs\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12,\n\x1fpending_runs_wait_time_med_secs\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12\x36\n)pending_unblocked_runs_wait_time_max_secs\x18\x05 \x01(\x01H\x02\x88\x01\x01\x42\"\n _pending_runs_wait_time_max_secsB\"\n _pending_runs_wait_time_med_secsB,\n*_pending_unblocked_runs_wait_time_max_secs\"\x82\x01\n\x11PostgresPoolStats\x12\x10\n\x08pool_max\x18\x01 \x01(\x05\x12\x11\n\tpool_size\x18\x02 \x01(\x05\x12\x16\n\x0epool_available\x18\x03 \x01(\x05\x12\x17\n\x0frequests_queued\x18\x04 \x01(\x03\x12\x17\n\x0frequests_errors\x18\x05 \x01(\x03\"_\n\x0eRedisPoolStats\x12\x18\n\x10idle_connections\x18\x01 \x01(\x05\x12\x1a\n\x12in_use_connections\x18\x02 \x01(\x05\x12\x17\n\x0fmax_connections\x18\x03 \x01(\x05\"\x8c\x01\n\x13\x43onnectionPoolStats\x12\x31\n\x08postgres\x18\x01 \x01(\x0b\x32\x1a.coreApi.PostgresPoolStatsH\x00\x88\x01\x01\x12+\n\x05redis\x18\x02 \x01(\x0b\x32\x17.coreApi.RedisPoolStatsH\x01\x88\x01\x01\x42\x0b\n\t_postgresB\x08\n\x06_redis\"-\n\x0eNextRunRequest\x12\x0c\n\x04wait\x18\x01 \x01(\x08\x12\r\n\x05limit\x18\x02 \x01(\x04\"w\n\x0eRunWithAttempt\x12\x19\n\x03run\x18\x01 \x01(\x0b\x32\x0c.coreApi.Run\x12\x0f\n\x07\x61ttempt\x18\x02 \x01(\x04\x12\x39\n\x12\x65ncryption_context\x18\x03 \x01(\x0b\x32\x1d.encryption.EncryptionContext\"8\n\x0fNextRunResponse\x12%\n\x04runs\x18\x01 \x03(\x0b\x32\x17.coreApi.RunWithAttempt\"\x92\x07\n\x10\x43reateRunRequest\x12#\n\x0c\x61ssistant_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x13\n\x0bkwargs_json\x18\x02 \x01(\x0c\x12+\n\x0ethread_filters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\x11\x61ssistant_filters\x18\x0e \x03(\x0b\x32\x13.coreApi.AuthFilter\x12%\n\tthread_id\x18\x04 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12\x14\n\x07user_id\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\"\n\x06run_id\x18\x06 \x01(\x0b\x32\r.coreApi.UUIDH\x02\x88\x01\x01\x12-\n\x06status\x18\x07 \x01(\x0e\x32\x18.enumRunStatus.RunStatusH\x03\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x04\x88\x01\x01\x12\'\n\x1aprevent_insert_if_inflight\x18\t \x01(\x08H\x05\x88\x01\x01\x12I\n\x12multitask_strategy\x18\n \x01(\x0e\x32(.enumMultitaskStrategy.MultitaskStrategyH\x06\x88\x01\x01\x12\x36\n\rif_not_exists\x18\x0b \x01(\x0e\x32\x1a.coreApi.CreateRunBehaviorH\x07\x88\x01\x01\x12\x1a\n\rafter_seconds\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x31\n\nthread_ttl\x18\r \x01(\x0b\x32\x18.coreApi.ThreadTTLConfigH\t\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x0f \x01(\x0b\x32\x1d.encryption.EncryptionContextH\n\x88\x01\x01\x12#\n\x16langsmith_session_name\x18\x10 \x01(\tH\x0b\x88\x01\x01\x42\x0c\n\n_thread_idB\n\n\x08_user_idB\t\n\x07_run_idB\t\n\x07_statusB\x10\n\x0e_metadata_jsonB\x1d\n\x1b_prevent_insert_if_inflightB\x15\n\x13_multitask_strategyB\x10\n\x0e_if_not_existsB\x10\n\x0e_after_secondsB\r\n\x0b_thread_ttlB\x15\n\x13_encryption_contextB\x19\n\x17_langsmith_session_name\"v\n\rGetRunRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\"y\n\x10\x44\x65leteRunRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\"V\n\x12\x43\x61ncelRunIdsTarget\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x1e\n\x07run_ids\x18\x02 \x03(\x0b\x32\r.coreApi.UUID\">\n\x12\x43\x61ncelStatusTarget\x12(\n\x06status\x18\x01 \x01(\x0e\x32\x18.coreApi.CancelRunStatus\"\x87\x02\n\x10\x43\x61ncelRunRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\x07run_ids\x18\x02 \x01(\x0b\x32\x1b.coreApi.CancelRunIdsTargetH\x00\x12-\n\x06status\x18\x03 \x01(\x0b\x32\x1b.coreApi.CancelStatusTargetH\x00\x12\x39\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32$.enumCancelRunAction.CancelRunActionH\x01\x88\x01\x01\x12\x13\n\x06reason\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06targetB\t\n\x07_actionB\t\n\x07_reason\"\xe3\x01\n\x11SearchRunsRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x12\n\x05limit\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12-\n\x06status\x18\x05 \x01(\x0e\x32\x18.enumRunStatus.RunStatusH\x02\x88\x01\x01\x12\x0e\n\x06select\x18\x06 \x03(\tB\x08\n\x06_limitB\t\n\x07_offsetB\t\n\x07_status\"0\n\x12SearchRunsResponse\x12\x1a\n\x04runs\x18\x01 \x03(\x0b\x32\x0c.coreApi.Run\"^\n\x13SetRunStatusRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12(\n\x06status\x18\x02 \x01(\x0e\x32\x18.enumRunStatus.RunStatus\"3\n\x11SweepRunsResponse\x12\x1e\n\x07run_ids\x18\x01 \x03(\x0b\x32\r.coreApi.UUID\"F\n\x10\x43ountRunsRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x10\n\x08statuses\x18\x02 \x03(\t\"\x7f\n\x16StreamRunClientMessage\x12\x31\n\tsubscribe\x18\x01 \x01(\x0b\x32\x1c.coreApi.SubscribeRunRequestH\x00\x12\'\n\x04join\x18\x02 \x01(\x0b\x32\x17.coreApi.JoinRunRequestH\x00\x42\t\n\x07message\"V\n\x13SubscribeRunRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x1d\n\x06run_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\"\xd2\x01\n\x0eJoinRunRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x30\n\x0cstream_modes\x18\x02 \x03(\x0e\x32\x1a.enumStreamMode.StreamMode\x12\x1c\n\x14ignore_run_not_found\x18\x03 \x01(\x08\x12\x1c\n\x14\x63\x61ncel_on_disconnect\x18\x04 \x01(\x08\x12\x1a\n\rlast_event_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_last_event_id\"e\n\x0f\x45nterRunRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x11\n\tresumable\x18\x03 \x01(\x08\"h\n\x12MarkRunDoneRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x11\n\tresumable\x18\x03 \x01(\x08\"\xa4\x01\n\x19PublishStreamEventRequest\x12\"\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x12\n\nevent_type\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12\x11\n\tresumable\x18\x05 \x01(\x08\x42\t\n\x07_run_id\"5\n\x11GetGraphIDRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\"8\n\x12GetGraphIDResponse\x12\x15\n\x08graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_graph_id\"/\n\x11\x43reateRunResponse\x12\x1a\n\x04runs\x18\x01 \x03(\x0b\x32\x0c.coreApi.Run\"`\n\x0c\x43ontrolEvent\x12\x30\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32 .enumControlSignal.ControlSignal\x12\x13\n\x06reason\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_reason\"\x88\x05\n\x0b\x43ronPayload\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x17\n\ninput_json\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x37\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x01\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x04 \x01(\x0cH\x02\x88\x01\x01\x12\x14\n\x07webhook\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x42\n\x10interrupt_before\x18\x06 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x04\x88\x01\x01\x12\x41\n\x0finterrupt_after\x18\x07 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x05\x88\x01\x01\x12I\n\x12multitask_strategy\x18\x08 \x01(\x0e\x32(.enumMultitaskStrategy.MultitaskStrategyH\x06\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\t \x01(\x0cH\x07\x88\x01\x01\x12\x37\n\nextra_json\x18\n \x03(\x0b\x32#.coreApi.CronPayload.ExtraJsonEntry\x1a\x30\n\x0e\x45xtraJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\r\n\x0b_input_jsonB\t\n\x07_configB\x0f\n\r_context_jsonB\n\n\x08_webhookB\x13\n\x11_interrupt_beforeB\x12\n\x10_interrupt_afterB\x15\n\x13_multitask_strategyB\x10\n\x0e_metadata_json\"\xcb\x04\n\x04\x43ron\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x14\n\x0c\x61ssistant_id\x18\x02 \x01(\t\x12%\n\tthread_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12I\n\x10on_run_completed\x18\x04 \x01(\x0e\x32*.enumCronOnRunCompleted.CronOnRunCompletedH\x01\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x10\n\x08schedule\x18\x06 \x01(\t\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x07user_id\x18\t \x01(\tH\x03\x88\x01\x01\x12%\n\x07payload\x18\n \x01(\x0b\x32\x14.coreApi.CronPayload\x12\x31\n\rnext_run_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rmetadata_json\x18\x0c \x01(\x0c\x12\x0f\n\x07\x65nabled\x18\r \x01(\x08\x12\x15\n\x08timezone\x18\x0e \x01(\tH\x04\x88\x01\x01\x42\x0c\n\n_thread_idB\x13\n\x11_on_run_completedB\x0b\n\t_end_timeB\n\n\x08_user_idB\x0b\n\t_timezone\"\x9a\x05\n\x11\x43reateCronRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x10\n\x08schedule\x18\x02 \x01(\t\x12%\n\x07payload\x18\x03 \x01(\x0b\x32\x14.coreApi.CronPayload\x12\x15\n\rmetadata_json\x18\x04 \x01(\x0c\x12#\n\x07\x63ron_id\x18\x05 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12%\n\tthread_id\x18\x06 \x01(\x0b\x32\r.coreApi.UUIDH\x01\x88\x01\x01\x12I\n\x10on_run_completed\x18\x07 \x01(\x0e\x32*.enumCronOnRunCompleted.CronOnRunCompletedH\x02\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x0f\n\x07\x65nabled\x18\t \x01(\x08\x12.\n\x11\x61ssistant_filters\x18\n \x03(\x0b\x32\x13.coreApi.AuthFilter\x12+\n\x0ethread_filters\x18\x0b \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x14\n\x07user_id\x18\x0c \x01(\tH\x04\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\r \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x05\x88\x01\x01\x12\x15\n\x08timezone\x18\x0e \x01(\tH\x06\x88\x01\x01\x42\n\n\x08_cron_idB\x0c\n\n_thread_idB\x13\n\x11_on_run_completedB\x0b\n\t_end_timeB\n\n\x08_user_idB\x15\n\x13_encryption_contextB\x0b\n\t_timezone\"Y\n\x11\x44\x65leteCronRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"V\n\x0eGetCronRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xe9\x03\n\x12SearchCronsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12+\n\x0ethread_filters\x18\n \x03(\x0b\x32\x13.coreApi.AuthFilter\x12(\n\x0c\x61ssistant_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12%\n\tthread_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUIDH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x13\n\x06offset\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12*\n\x07sort_by\x18\x06 \x01(\x0e\x32\x14.coreApi.CronsSortByH\x04\x88\x01\x01\x12+\n\nsort_order\x18\x07 \x01(\x0e\x32\x12.coreApi.SortOrderH\x05\x88\x01\x01\x12\x0e\n\x06select\x18\x08 \x03(\t\x12\x14\n\x07\x65nabled\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x0b \x01(\x0cH\x07\x88\x01\x01\x42\x0f\n\r_assistant_idB\x0c\n\n_thread_idB\x08\n\x06_limitB\t\n\x07_offsetB\n\n\x08_sort_byB\r\n\x0b_sort_orderB\n\n\x08_enabledB\x10\n\x0e_metadata_json\"3\n\x13SearchCronsResponse\x12\x1c\n\x05\x63rons\x18\x01 \x03(\x0b\x32\r.coreApi.Cron\"\x84\x02\n\x11\x43ountCronsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12+\n\x0ethread_filters\x18\x04 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12(\n\x0c\x61ssistant_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12%\n\tthread_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUIDH\x01\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x42\x0f\n\r_assistant_idB\x0c\n\n_thread_idB\x10\n\x0e_metadata_json\"\xb7\x04\n\x10PatchCronRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08schedule\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x14\n\x07\x65nabled\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12I\n\x10on_run_completed\x18\x06 \x01(\x0e\x32*.enumCronOnRunCompleted.CronOnRunCompletedH\x03\x88\x01\x01\x12*\n\x07payload\x18\x07 \x01(\x0b\x32\x14.coreApi.CronPayloadH\x04\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x05\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\t \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x06\x88\x01\x01\x12\x15\n\x08timezone\x18\n \x01(\tH\x07\x88\x01\x01\x12\x16\n\x0e\x63lear_end_time\x18\x0b \x01(\x08\x42\x0b\n\t_scheduleB\x0b\n\t_end_timeB\n\n\x08_enabledB\x13\n\x11_on_run_completedB\n\n\x08_payloadB\x10\n\x0e_metadata_jsonB\x15\n\x13_encryption_contextB\x0b\n\t_timezone\"\xaa\x01\n\x0b\x43ronWithNow\x12\x1b\n\x04\x63ron\x18\x01 \x01(\x0b\x32\r.coreApi.Cron\x12\'\n\x03now\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x12\x65ncryption_context\x18\x03 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x00\x88\x01\x01\x42\x15\n\x13_encryption_context\"!\n\x10NextCronsRequest\x12\r\n\x05limit\x18\x01 \x01(\x05\"8\n\x11NextCronsResponse\x12#\n\x05\x63rons\x18\x01 \x03(\x0b\x32\x14.coreApi.CronWithNow\"j\n\x15SetNextRunDateRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x31\n\rnext_run_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"b\n\x0f\x43\x61\x63heSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x42\x06\n\x04_ttl\"\x1e\n\x0f\x43\x61\x63heGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"0\n\x10\x43\x61\x63heGetResponse\x12\x12\n\x05value\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value*/\n\x12OnConflictBehavior\x12\t\n\x05RAISE\x10\x00\x12\x0e\n\nDO_NOTHING\x10\x01*\x1e\n\tSortOrder\x12\x08\n\x04\x44\x45SC\x10\x00\x12\x07\n\x03\x41SC\x10\x01*m\n\x10\x41ssistantsSortBy\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x10\n\x0c\x41SSISTANT_ID\x10\x01\x12\x0c\n\x08GRAPH_ID\x10\x02\x12\x08\n\x04NAME\x10\x03\x12\x0e\n\nCREATED_AT\x10\x04\x12\x0e\n\nUPDATED_AT\x10\x05*X\n\x11ThreadTTLStrategy\x12\x1e\n\x1aTHREAD_TTL_STRATEGY_DELETE\x10\x00\x12#\n\x1fTHREAD_TTL_STRATEGY_KEEP_LATEST\x10\x01*\xa8\x01\n\x10\x43heckpointSource\x12!\n\x1d\x43HECKPOINT_SOURCE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x43HECKPOINT_SOURCE_INPUT\x10\x01\x12\x1a\n\x16\x43HECKPOINT_SOURCE_LOOP\x10\x02\x12\x1c\n\x18\x43HECKPOINT_SOURCE_UPDATE\x10\x03\x12\x1a\n\x16\x43HECKPOINT_SOURCE_FORK\x10\x04*\xd1\x01\n\rThreadsSortBy\x12\x1f\n\x1bTHREADS_SORT_BY_UNSPECIFIED\x10\x00\x12\x1d\n\x19THREADS_SORT_BY_THREAD_ID\x10\x01\x12\x1e\n\x1aTHREADS_SORT_BY_CREATED_AT\x10\x02\x12\x1e\n\x1aTHREADS_SORT_BY_UPDATED_AT\x10\x03\x12\x1a\n\x16THREADS_SORT_BY_STATUS\x10\x04\x12$\n THREADS_SORT_BY_STATE_UPDATED_AT\x10\x05*`\n\x11\x43reateRunBehavior\x12#\n\x1fREJECT_RUN_IF_THREAD_NOT_EXISTS\x10\x00\x12&\n\"CREATE_THREAD_IF_THREAD_NOT_EXISTS\x10\x01*j\n\x0f\x43\x61ncelRunStatus\x12\x1d\n\x19\x43\x41NCEL_RUN_STATUS_PENDING\x10\x00\x12\x1d\n\x19\x43\x41NCEL_RUN_STATUS_RUNNING\x10\x01\x12\x19\n\x15\x43\x41NCEL_RUN_STATUS_ALL\x10\x02*\xfd\x01\n\x0b\x43ronsSortBy\x12\x1d\n\x19\x43RONS_SORT_BY_UNSPECIFIED\x10\x00\x12\x19\n\x15\x43RONS_SORT_BY_CRON_ID\x10\x01\x12\x1e\n\x1a\x43RONS_SORT_BY_ASSISTANT_ID\x10\x02\x12\x1b\n\x17\x43RONS_SORT_BY_THREAD_ID\x10\x03\x12\x1f\n\x1b\x43RONS_SORT_BY_NEXT_RUN_DATE\x10\x04\x12\x1a\n\x16\x43RONS_SORT_BY_END_TIME\x10\x05\x12\x1c\n\x18\x43RONS_SORT_BY_CREATED_AT\x10\x06\x12\x1c\n\x18\x43RONS_SORT_BY_UPDATED_AT\x10\x07\x32\xc1\x04\n\nAssistants\x12\x37\n\x03Get\x12\x1c.coreApi.GetAssistantRequest\x1a\x12.coreApi.Assistant\x12=\n\x06\x43reate\x12\x1f.coreApi.CreateAssistantRequest\x1a\x12.coreApi.Assistant\x12;\n\x05Patch\x12\x1e.coreApi.PatchAssistantRequest\x1a\x12.coreApi.Assistant\x12L\n\x06\x44\x65lete\x12\x1f.coreApi.DeleteAssistantRequest\x1a!.coreApi.DeleteAssistantsResponse\x12M\n\x06Search\x12 .coreApi.SearchAssistantsRequest\x1a!.coreApi.SearchAssistantsResponse\x12\x43\n\tSetLatest\x12\".coreApi.SetLatestAssistantRequest\x1a\x12.coreApi.Assistant\x12Z\n\x0bGetVersions\x12$.coreApi.GetAssistantVersionsRequest\x1a%.coreApi.GetAssistantVersionsResponse\x12@\n\x05\x43ount\x12\x1f.coreApi.CountAssistantsRequest\x1a\x16.coreApi.CountResponse2E\n\x05\x41\x64min\x12<\n\x08Truncate\x12\x18.coreApi.TruncateRequest\x1a\x16.google.protobuf.Empty2\x82\x06\n\x07Threads\x12\x37\n\x06\x43reate\x12\x1c.coreApi.CreateThreadRequest\x1a\x0f.coreApi.Thread\x12\x31\n\x03Get\x12\x19.coreApi.GetThreadRequest\x1a\x0f.coreApi.Thread\x12\x35\n\x05Patch\x12\x1b.coreApi.PatchThreadRequest\x1a\x0f.coreApi.Thread\x12\x35\n\x06\x44\x65lete\x12\x1c.coreApi.DeleteThreadRequest\x1a\r.coreApi.UUID\x12G\n\x06Search\x12\x1d.coreApi.SearchThreadsRequest\x1a\x1e.coreApi.SearchThreadsResponse\x12=\n\x05\x43ount\x12\x1c.coreApi.CountThreadsRequest\x1a\x16.coreApi.CountResponse\x12\x33\n\x04\x43opy\x12\x1a.coreApi.CopyThreadRequest\x1a\x0f.coreApi.Thread\x12\x44\n\tSetStatus\x12\x1f.coreApi.SetThreadStatusRequest\x1a\x16.google.protobuf.Empty\x12>\n\x06Stream\x12\x1c.coreApi.StreamThreadRequest\x1a\x14.coreApi.StreamEvent0\x01\x12N\n\x0eSetJointStatus\x12$.coreApi.SetThreadJointStatusRequest\x1a\x16.google.protobuf.Empty\x12\x45\n\nGetGraphID\x12\x1a.coreApi.GetGraphIDRequest\x1a\x1b.coreApi.GetGraphIDResponse\x12\x43\n\x07Storage\x12 .coreApi.GetThreadStorageRequest\x1a\x16.coreApi.ThreadStorage2\x9f\x07\n\x04Runs\x12?\n\x06\x43reate\x12\x19.coreApi.CreateRunRequest\x1a\x1a.coreApi.CreateRunResponse\x12+\n\x03Get\x12\x16.coreApi.GetRunRequest\x1a\x0c.coreApi.Run\x12\x32\n\x06\x44\x65lete\x12\x19.coreApi.DeleteRunRequest\x1a\r.coreApi.UUID\x12\x41\n\x06Search\x12\x1a.coreApi.SearchRunsRequest\x1a\x1b.coreApi.SearchRunsResponse\x12;\n\x06\x43\x61ncel\x12\x19.coreApi.CancelRunRequest\x1a\x16.google.protobuf.Empty\x12\x41\n\tSetStatus\x12\x1c.coreApi.SetRunStatusRequest\x1a\x16.google.protobuf.Empty\x12\x43\n\x06Stream\x12\x1f.coreApi.StreamRunClientMessage\x1a\x14.coreApi.StreamEvent(\x01\x30\x01\x12\x45\n\x07Publish\x12\".coreApi.PublishStreamEventRequest\x1a\x16.google.protobuf.Empty\x12:\n\x05\x45nter\x12\x18.coreApi.EnterRunRequest\x1a\x15.coreApi.ControlEvent0\x01\x12?\n\x08MarkDone\x12\x1b.coreApi.MarkRunDoneRequest\x1a\x16.google.protobuf.Empty\x12\x32\n\x05Stats\x12\x16.google.protobuf.Empty\x1a\x11.coreApi.RunStats\x12\x41\n\tPoolStats\x12\x16.google.protobuf.Empty\x1a\x1c.coreApi.ConnectionPoolStats\x12:\n\x05\x43ount\x12\x19.coreApi.CountRunsRequest\x1a\x16.coreApi.CountResponse\x12\x39\n\x04Next\x12\x17.coreApi.NextRunRequest\x1a\x18.coreApi.NextRunResponse\x12;\n\x05Sweep\x12\x16.google.protobuf.Empty\x1a\x1a.coreApi.SweepRunsResponse2\xe7\x03\n\x05\x43rons\x12\x33\n\x06\x43reate\x12\x1a.coreApi.CreateCronRequest\x1a\r.coreApi.Cron\x12-\n\x03Get\x12\x17.coreApi.GetCronRequest\x1a\r.coreApi.Cron\x12\x31\n\x05Patch\x12\x19.coreApi.PatchCronRequest\x1a\r.coreApi.Cron\x12<\n\x06\x44\x65lete\x12\x1a.coreApi.DeleteCronRequest\x1a\x16.google.protobuf.Empty\x12\x43\n\x06Search\x12\x1b.coreApi.SearchCronsRequest\x1a\x1c.coreApi.SearchCronsResponse\x12;\n\x05\x43ount\x12\x1a.coreApi.CountCronsRequest\x1a\x16.coreApi.CountResponse\x12=\n\x04Next\x12\x19.coreApi.NextCronsRequest\x1a\x1a.coreApi.NextCronsResponse\x12H\n\x0eSetNextRunDate\x12\x1e.coreApi.SetNextRunDateRequest\x1a\x16.google.protobuf.Empty2|\n\x05\x43\x61\x63he\x12\x37\n\x03Set\x12\x18.coreApi.CacheSetRequest\x1a\x16.google.protobuf.Empty\x12:\n\x03Get\x12\x18.coreApi.CacheGetRequest\x1a\x19.coreApi.CacheGetResponseBAZ?github.com/langchain-ai/langgraph-api/core/internal/core-api/pbb\x06proto3')
42
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x63ore-api.proto\x12\x07\x63oreApi\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x10\x65ncryption.proto\x1a\x13\x65ngine-common.proto\x1a\x15\x65num_run_status.proto\x1a\x1d\x65num_multitask_strategy.proto\x1a\x16\x65num_stream_mode.proto\x1a\x1c\x65num_cancel_run_action.proto\x1a\x18\x65num_thread_status.proto\x1a\x1d\x65num_thread_stream_mode.proto\x1a\x19\x65num_control_signal.proto\x1a enum_cron_on_run_completed.proto\"\x16\n\x04Tags\x12\x0e\n\x06values\x18\x01 \x03(\t\"*\n\x0c\x45qAuthFilter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05match\x18\x02 \x01(\t\"2\n\x12\x43ontainsAuthFilter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0f\n\x07matches\x18\x02 \x03(\t\"4\n\x0cOrAuthFilter\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\"5\n\rAndAuthFilter\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xc6\x01\n\nAuthFilter\x12#\n\x02\x65q\x18\x01 \x01(\x0b\x32\x15.coreApi.EqAuthFilterH\x00\x12/\n\x08\x63ontains\x18\x02 \x01(\x0b\x32\x1b.coreApi.ContainsAuthFilterH\x00\x12*\n\tor_filter\x18\x03 \x01(\x0b\x32\x15.coreApi.OrAuthFilterH\x00\x12,\n\nand_filter\x18\x04 \x01(\x0b\x32\x16.coreApi.AndAuthFilterH\x00\x42\x08\n\x06\x66ilter\"\x15\n\x04UUID\x12\r\n\x05value\x18\x01 \x01(\t\"\x1e\n\rCountResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\"x\n\x0bStreamEvent\x12\x12\n\nevent_type\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x16\n\tstream_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06run_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_stream_idB\t\n\x07_run_id\"\xfa\x02\n\tAssistant\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x10\n\x08graph_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x07 \x01(\x0cH\x01\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\t \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\n \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_configB\x0f\n\r_context_jsonB\x10\n\x0e_metadata_jsonB\x0e\n\x0c_description\"\xd1\x02\n\x10\x41ssistantVersion\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x10\n\x08graph_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x07 \x01(\x0cH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\t \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_configB\x0f\n\r_context_jsonB\x10\n\x0e_metadata_jsonB\x0e\n\x0c_description\"\x9d\x03\n\x16\x43reateAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x10\n\x08graph_id\x18\x02 \x01(\t\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\tif_exists\x18\x04 \x01(\x0e\x32\x1b.coreApi.OnConflictBehavior\x12\x32\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\x12\x14\n\x0c\x63ontext_json\x18\x06 \x01(\x0c\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\t \x01(\x0cH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\n \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x10\n\x0e_metadata_jsonB\x15\n\x13_encryption_context\"Q\n\x13GetAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xb2\x03\n\x15PatchAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08graph_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x01\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x05\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\t \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x06\x88\x01\x01\x42\x0b\n\t_graph_idB\t\n\x07_configB\x0f\n\r_context_jsonB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x10\n\x0e_metadata_jsonB\x15\n\x13_encryption_context\"\x84\x01\n\x16\x44\x65leteAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1b\n\x0e\x64\x65lete_threads\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_delete_threads\"1\n\x18\x44\x65leteAssistantsResponse\x12\x15\n\rassistant_ids\x18\x01 \x03(\t\"h\n\x19SetLatestAssistantRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x03\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\x90\x03\n\x17SearchAssistantsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08graph_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x13\n\x06offset\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12/\n\x07sort_by\x18\x06 \x01(\x0e\x32\x19.coreApi.AssistantsSortByH\x04\x88\x01\x01\x12+\n\nsort_order\x18\x07 \x01(\x0e\x32\x12.coreApi.SortOrderH\x05\x88\x01\x01\x12\x0e\n\x06select\x18\x08 \x03(\t\x12\x11\n\x04name\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1a\n\x12graph_id_allowlist\x18\n \x03(\tB\x0b\n\t_graph_idB\x10\n\x0e_metadata_jsonB\x08\n\x06_limitB\t\n\x07_offsetB\n\n\x08_sort_byB\r\n\x0b_sort_orderB\x07\n\x05_name\"B\n\x18SearchAssistantsResponse\x12&\n\nassistants\x18\x01 \x03(\x0b\x32\x12.coreApi.Assistant\"\xc5\x01\n\x1bGetAssistantVersionsRequest\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12\x13\n\x06offset\x18\x05 \x01(\x04H\x02\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x08\n\x06_limitB\t\n\x07_offset\"K\n\x1cGetAssistantVersionsResponse\x12+\n\x08versions\x18\x01 \x03(\x0b\x32\x19.coreApi.AssistantVersion\"\xc8\x01\n\x16\x43ountAssistantsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08graph_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\x12graph_id_allowlist\x18\x05 \x03(\tB\x0b\n\t_graph_idB\x10\n\x0e_metadata_jsonB\x07\n\x05_name\"i\n\x0fTruncateRequest\x12\x0c\n\x04runs\x18\x01 \x01(\x08\x12\x0f\n\x07threads\x18\x02 \x01(\x08\x12\x12\n\nassistants\x18\x03 \x01(\x08\x12\x14\n\x0c\x63heckpointer\x18\x04 \x01(\x08\x12\r\n\x05store\x18\x05 \x01(\x08\"\xbb\x01\n\x0fThreadTTLConfig\x12\x31\n\x08strategy\x18\x01 \x01(\x0e\x32\x1a.coreApi.ThreadTTLStrategyH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65\x66\x61ult_ttl\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12#\n\x16sweep_interval_minutes\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x0b\n\t_strategyB\x0e\n\x0c_default_ttlB\x19\n\x17_sweep_interval_minutes\"\x82\x01\n\rThreadTTLInfo\x12,\n\x08strategy\x18\x01 \x01(\x0e\x32\x1a.coreApi.ThreadTTLStrategy\x12\x13\n\x0bttl_minutes\x18\x02 \x01(\x01\x12.\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x19\n\x08\x46ragment\x12\r\n\x05value\x18\x01 \x01(\x0c\"\x89\x01\n\x0e\x43heckpointTask\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\x05\x65rror\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x0finterrupts_json\x18\x04 \x03(\x0c\x12\x17\n\nstate_json\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x08\n\x06_errorB\r\n\x0b_state_json\"\xd6\x01\n\x12\x43heckpointMetadata\x12.\n\x06source\x18\x01 \x01(\x0e\x32\x19.coreApi.CheckpointSourceH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x39\n\x07parents\x18\x03 \x03(\x0b\x32(.coreApi.CheckpointMetadata.ParentsEntry\x1a.\n\x0cParentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_sourceB\x07\n\x05_step\"\xa3\x02\n\x11\x43heckpointPayload\x12\x37\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.coreApi.CheckpointMetadata\x12\x13\n\x0bvalues_json\x18\x03 \x01(\x0c\x12\x0c\n\x04next\x18\x04 \x03(\t\x12>\n\rparent_config\x18\x05 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x01\x88\x01\x01\x12&\n\x05tasks\x18\x06 \x03(\x0b\x32\x17.coreApi.CheckpointTaskB\t\n\x07_configB\x10\n\x0e_parent_config\"T\n\x16ThreadStatusCheckpoint\x12\x13\n\x0bvalues_json\x18\x01 \x01(\x0c\x12\x0c\n\x04next\x18\x02 \x03(\t\x12\x17\n\x0finterrupts_json\x18\x03 \x01(\x0c\"\xb2\x01\n\tInterrupt\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x11\n\x04when\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tresumable\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\n\n\x02ns\x18\x05 \x03(\t\x12\x1c\n\x0fresponse_schema\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_whenB\x0c\n\n_resumableB\x12\n\x10_response_schema\"4\n\nInterrupts\x12&\n\ninterrupts\x18\x01 \x03(\x0b\x32\x12.coreApi.Interrupt\"\xdc\x04\n\x06Thread\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\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#\n\x08metadata\x18\x04 \x01(\x0b\x32\x11.coreApi.Fragment\x12!\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\x11.coreApi.Fragment\x12.\n\x06status\x18\x06 \x01(\x0e\x32\x1e.enumThreadStatus.ThreadStatus\x12!\n\x06values\x18\x07 \x01(\x0b\x32\x11.coreApi.Fragment\x12\x33\n\ninterrupts\x18\x08 \x03(\x0b\x32\x1f.coreApi.Thread.InterruptsEntry\x12 \n\x05\x65rror\x18\t \x01(\x0b\x32\x11.coreApi.Fragment\x12\x34\n\x10state_updated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1b\n\x0e\x65xtracted_json\x18\x0b \x01(\x0cH\x00\x88\x01\x01\x12(\n\x03ttl\x18\x0c \x01(\x0b\x32\x16.coreApi.ThreadTTLInfoH\x01\x88\x01\x01\x1a\x46\n\x0fInterruptsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.coreApi.Interrupts:\x02\x38\x01\x42\x11\n\x0f_extracted_jsonB\x06\n\x04_ttl\"\xc6\x02\n\x13\x43reateThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\tif_exists\x18\x03 \x01(\x0e\x32\x1b.coreApi.OnConflictBehavior\x12\x1a\n\rmetadata_json\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12*\n\x03ttl\x18\x05 \x01(\x0b\x32\x18.coreApi.ThreadTTLConfigH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x06 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x06\n\x04_ttlB\x15\n\x13_encryption_context\"\xc6\x01\n\x10GetThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x18\n\x0binclude_ttl\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x32\n\tread_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskH\x01\x88\x01\x01\x42\x0e\n\x0c_include_ttlB\x0c\n\n_read_mask\"\xd7\x02\n\x12PatchThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12*\n\x03ttl\x18\x04 \x01(\x0b\x32\x18.coreApi.ThreadTTLConfigH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x05 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x12\x32\n\tread_mask\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskH\x03\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x06\n\x04_ttlB\x15\n\x13_encryption_contextB\x0c\n\n_read_mask\"]\n\x13\x44\x65leteThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"[\n\x11\x43opyThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xdf\x04\n\x14SearchThreadsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0bvalues_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x33\n\x06status\x18\x04 \x01(\x0e\x32\x1e.enumThreadStatus.ThreadStatusH\x02\x88\x01\x01\x12\x12\n\x05limit\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x13\n\x06offset\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12,\n\x07sort_by\x18\x07 \x01(\x0e\x32\x16.coreApi.ThreadsSortByH\x05\x88\x01\x01\x12+\n\nsort_order\x18\x08 \x01(\x0e\x32\x12.coreApi.SortOrderH\x06\x88\x01\x01\x12\x0e\n\x06select\x18\t \x03(\t\x12\x1a\n\x03ids\x18\n \x03(\x0b\x32\r.coreApi.UUID\x12;\n\x07\x65xtract\x18\x0b \x03(\x0b\x32*.coreApi.SearchThreadsRequest.ExtractEntry\x12\"\n\x15\x65xclude_metadata_json\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x1a.\n\x0c\x45xtractEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x10\n\x0e_metadata_jsonB\x0e\n\x0c_values_jsonB\t\n\x07_statusB\x08\n\x06_limitB\t\n\x07_offsetB\n\n\x08_sort_byB\r\n\x0b_sort_orderB\x18\n\x16_exclude_metadata_json\"9\n\x15SearchThreadsResponse\x12 \n\x07threads\x18\x01 \x03(\x0b\x32\x0f.coreApi.Thread\"\x91\x02\n\x13\x43ountThreadsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x1a\n\rmetadata_json\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0bvalues_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x33\n\x06status\x18\x04 \x01(\x0e\x32\x1e.enumThreadStatus.ThreadStatusH\x02\x88\x01\x01\x12\"\n\x15\x65xclude_metadata_json\x18\x05 \x01(\x0cH\x03\x88\x01\x01\x42\x10\n\x0e_metadata_jsonB\x0e\n\x0c_values_jsonB\t\n\x07_statusB\x18\n\x16_exclude_metadata_json\"\xc3\x02\n\x16SetThreadStatusRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x38\n\ncheckpoint\x18\x02 \x01(\x0b\x32\x1f.coreApi.ThreadStatusCheckpointH\x00\x88\x01\x01\x12\x1b\n\x0e\x65xception_json\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x37\n\x0f\x65xpected_status\x18\x04 \x03(\x0e\x32\x1e.enumThreadStatus.ThreadStatus\x12>\n\x12\x65ncryption_context\x18\x05 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\r\n\x0b_checkpointB\x11\n\x0f_exception_jsonB\x15\n\x13_encryption_context\"\xd4\x02\n\x1bSetThreadJointStatusRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x1d\n\x06run_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x12\n\nrun_status\x18\x03 \x01(\t\x12\x10\n\x08graph_id\x18\x04 \x01(\t\x12\x38\n\ncheckpoint\x18\x05 \x01(\x0b\x32\x1f.coreApi.ThreadStatusCheckpointH\x00\x88\x01\x01\x12\x1b\n\x0e\x65xception_json\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x07 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x02\x88\x01\x01\x42\r\n\x0b_checkpointB\x11\n\x0f_exception_jsonB\x15\n\x13_encryption_context\"\xc9\x01\n\x13StreamThreadRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12<\n\x0cstream_modes\x18\x03 \x03(\x0e\x32&.enumThreadStreamMode.ThreadStreamMode\x12\x1a\n\rlast_event_id\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_last_event_id\"a\n\x17GetThreadStorageRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"-\n\rStorageTotals\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\r\n\x05\x62ytes\x18\x02 \x01(\x03\"B\n\x0e\x43hannelStorage\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\t\x12\x10\n\x08versions\x18\x02 \x01(\x03\x12\r\n\x05\x62ytes\x18\x03 \x01(\x03\"a\n\x14\x43hannelValuesStorage\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\r\n\x05\x62ytes\x18\x02 \x01(\x03\x12+\n\nby_channel\x18\x03 \x03(\x0b\x32\x17.coreApi.ChannelStorage\"\xb8\x01\n\rThreadStorage\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x03\x12+\n\x0b\x63heckpoints\x18\x02 \x01(\x0b\x32\x16.coreApi.StorageTotals\x12\x35\n\x0e\x63hannel_values\x18\x03 \x01(\x0b\x32\x1d.coreApi.ChannelValuesStorage\x12.\n\x0epending_writes\x18\x04 \x01(\x0b\x32\x16.coreApi.StorageTotals\"\xb9\x05\n\tRunKwargs\x12\x37\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x00\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x17\n\ninput_json\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x19\n\x0c\x63ommand_json\x18\x04 \x01(\x0cH\x03\x88\x01\x01\x12/\n\x0bstream_mode\x18\x05 \x03(\x0e\x32\x1a.enumStreamMode.StreamMode\x12\x42\n\x10interrupt_before\x18\x06 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x04\x88\x01\x01\x12\x41\n\x0finterrupt_after\x18\x07 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x05\x88\x01\x01\x12\x14\n\x07webhook\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x15\n\rfeedback_keys\x18\t \x03(\t\x12\x16\n\ttemporary\x18\n \x01(\x08H\x07\x88\x01\x01\x12\x16\n\tsubgraphs\x18\x0b \x01(\x08H\x08\x88\x01\x01\x12\x16\n\tresumable\x18\x0c \x01(\x08H\t\x88\x01\x01\x12\x1e\n\x11\x63heckpoint_during\x18\r \x01(\x08H\n\x88\x01\x01\x12\x17\n\ndurability\x18\x0e \x01(\tH\x0b\x88\x01\x01\x42\t\n\x07_configB\x0f\n\r_context_jsonB\r\n\x0b_input_jsonB\x0f\n\r_command_jsonB\x13\n\x11_interrupt_beforeB\x12\n\x10_interrupt_afterB\n\n\x08_webhookB\x0c\n\n_temporaryB\x0c\n\n_subgraphsB\x0c\n\n_resumableB\x14\n\x12_checkpoint_duringB\r\n\x0b_durability\"\xf2\x03\n\x03Run\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12#\n\x0c\x61ssistant_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUID\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\x06status\x18\x06 \x01(\x0e\x32\x18.enumRunStatus.RunStatus\x12#\n\x08metadata\x18\x07 \x01(\x0b\x32\x11.coreApi.Fragment\x12\"\n\x06kwargs\x18\x08 \x01(\x0b\x32\x12.coreApi.RunKwargs\x12\x44\n\x12multitask_strategy\x18\t \x01(\x0e\x32(.enumMultitaskStrategy.MultitaskStrategy\x12#\n\x16langsmith_session_name\x18\n \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rcancel_reason\x18\x0b \x01(\tH\x01\x88\x01\x01\x42\x19\n\x17_langsmith_session_nameB\x10\n\x0e_cancel_reason\"\xba\x02\n\x08RunStats\x12\x11\n\tn_pending\x18\x01 \x01(\x04\x12\x11\n\tn_running\x18\x02 \x01(\x04\x12,\n\x1fpending_runs_wait_time_max_secs\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12,\n\x1fpending_runs_wait_time_med_secs\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12\x36\n)pending_unblocked_runs_wait_time_max_secs\x18\x05 \x01(\x01H\x02\x88\x01\x01\x42\"\n _pending_runs_wait_time_max_secsB\"\n _pending_runs_wait_time_med_secsB,\n*_pending_unblocked_runs_wait_time_max_secs\"\x82\x01\n\x11PostgresPoolStats\x12\x10\n\x08pool_max\x18\x01 \x01(\x05\x12\x11\n\tpool_size\x18\x02 \x01(\x05\x12\x16\n\x0epool_available\x18\x03 \x01(\x05\x12\x17\n\x0frequests_queued\x18\x04 \x01(\x03\x12\x17\n\x0frequests_errors\x18\x05 \x01(\x03\"_\n\x0eRedisPoolStats\x12\x18\n\x10idle_connections\x18\x01 \x01(\x05\x12\x1a\n\x12in_use_connections\x18\x02 \x01(\x05\x12\x17\n\x0fmax_connections\x18\x03 \x01(\x05\"\x8c\x01\n\x13\x43onnectionPoolStats\x12\x31\n\x08postgres\x18\x01 \x01(\x0b\x32\x1a.coreApi.PostgresPoolStatsH\x00\x88\x01\x01\x12+\n\x05redis\x18\x02 \x01(\x0b\x32\x17.coreApi.RedisPoolStatsH\x01\x88\x01\x01\x42\x0b\n\t_postgresB\x08\n\x06_redis\"-\n\x0eNextRunRequest\x12\x0c\n\x04wait\x18\x01 \x01(\x08\x12\r\n\x05limit\x18\x02 \x01(\x04\"\x87\x01\n\x0eRunWithAttempt\x12\x19\n\x03run\x18\x01 \x01(\x0b\x32\x0c.coreApi.Run\x12\x0f\n\x07\x61ttempt\x18\x02 \x01(\x04\x12\x39\n\x12\x65ncryption_context\x18\x03 \x01(\x0b\x32\x1d.encryption.EncryptionContext\x12\x0e\n\x06\x64rains\x18\x04 \x01(\x04\"B\n\x11RequeueRunRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x0e\n\x06reason\x18\x02 \x01(\t\"8\n\x0fNextRunResponse\x12%\n\x04runs\x18\x01 \x03(\x0b\x32\x17.coreApi.RunWithAttempt\"\x92\x07\n\x10\x43reateRunRequest\x12#\n\x0c\x61ssistant_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x13\n\x0bkwargs_json\x18\x02 \x01(\x0c\x12+\n\x0ethread_filters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\x11\x61ssistant_filters\x18\x0e \x03(\x0b\x32\x13.coreApi.AuthFilter\x12%\n\tthread_id\x18\x04 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12\x14\n\x07user_id\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\"\n\x06run_id\x18\x06 \x01(\x0b\x32\r.coreApi.UUIDH\x02\x88\x01\x01\x12-\n\x06status\x18\x07 \x01(\x0e\x32\x18.enumRunStatus.RunStatusH\x03\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x04\x88\x01\x01\x12\'\n\x1aprevent_insert_if_inflight\x18\t \x01(\x08H\x05\x88\x01\x01\x12I\n\x12multitask_strategy\x18\n \x01(\x0e\x32(.enumMultitaskStrategy.MultitaskStrategyH\x06\x88\x01\x01\x12\x36\n\rif_not_exists\x18\x0b \x01(\x0e\x32\x1a.coreApi.CreateRunBehaviorH\x07\x88\x01\x01\x12\x1a\n\rafter_seconds\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x31\n\nthread_ttl\x18\r \x01(\x0b\x32\x18.coreApi.ThreadTTLConfigH\t\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\x0f \x01(\x0b\x32\x1d.encryption.EncryptionContextH\n\x88\x01\x01\x12#\n\x16langsmith_session_name\x18\x10 \x01(\tH\x0b\x88\x01\x01\x42\x0c\n\n_thread_idB\n\n\x08_user_idB\t\n\x07_run_idB\t\n\x07_statusB\x10\n\x0e_metadata_jsonB\x1d\n\x1b_prevent_insert_if_inflightB\x15\n\x13_multitask_strategyB\x10\n\x0e_if_not_existsB\x10\n\x0e_after_secondsB\r\n\x0b_thread_ttlB\x15\n\x13_encryption_contextB\x19\n\x17_langsmith_session_name\"v\n\rGetRunRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\"y\n\x10\x44\x65leteRunRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x03 \x03(\x0b\x32\x13.coreApi.AuthFilter\"V\n\x12\x43\x61ncelRunIdsTarget\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x1e\n\x07run_ids\x18\x02 \x03(\x0b\x32\r.coreApi.UUID\">\n\x12\x43\x61ncelStatusTarget\x12(\n\x06status\x18\x01 \x01(\x0e\x32\x18.coreApi.CancelRunStatus\"\x87\x02\n\x10\x43\x61ncelRunRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12.\n\x07run_ids\x18\x02 \x01(\x0b\x32\x1b.coreApi.CancelRunIdsTargetH\x00\x12-\n\x06status\x18\x03 \x01(\x0b\x32\x1b.coreApi.CancelStatusTargetH\x00\x12\x39\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32$.enumCancelRunAction.CancelRunActionH\x01\x88\x01\x01\x12\x13\n\x06reason\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06targetB\t\n\x07_actionB\t\n\x07_reason\"\xe3\x01\n\x11SearchRunsRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x12\n\x05limit\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x04 \x01(\x04H\x01\x88\x01\x01\x12-\n\x06status\x18\x05 \x01(\x0e\x32\x18.enumRunStatus.RunStatusH\x02\x88\x01\x01\x12\x0e\n\x06select\x18\x06 \x03(\tB\x08\n\x06_limitB\t\n\x07_offsetB\t\n\x07_status\"0\n\x12SearchRunsResponse\x12\x1a\n\x04runs\x18\x01 \x03(\x0b\x32\x0c.coreApi.Run\"^\n\x13SetRunStatusRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12(\n\x06status\x18\x02 \x01(\x0e\x32\x18.enumRunStatus.RunStatus\"3\n\x11SweepRunsResponse\x12\x1e\n\x07run_ids\x18\x01 \x03(\x0b\x32\r.coreApi.UUID\"F\n\x10\x43ountRunsRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x10\n\x08statuses\x18\x02 \x03(\t\"\x7f\n\x16StreamRunClientMessage\x12\x31\n\tsubscribe\x18\x01 \x01(\x0b\x32\x1c.coreApi.SubscribeRunRequestH\x00\x12\'\n\x04join\x18\x02 \x01(\x0b\x32\x17.coreApi.JoinRunRequestH\x00\x42\t\n\x07message\"V\n\x13SubscribeRunRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x1d\n\x06run_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\"\xd2\x01\n\x0eJoinRunRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x30\n\x0cstream_modes\x18\x02 \x03(\x0e\x32\x1a.enumStreamMode.StreamMode\x12\x1c\n\x14ignore_run_not_found\x18\x03 \x01(\x08\x12\x1c\n\x14\x63\x61ncel_on_disconnect\x18\x04 \x01(\x08\x12\x1a\n\rlast_event_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_last_event_id\"e\n\x0f\x45nterRunRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x11\n\tresumable\x18\x03 \x01(\x08\"h\n\x12MarkRunDoneRequest\x12\x1d\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x11\n\tresumable\x18\x03 \x01(\x08\"\xa4\x01\n\x19PublishStreamEventRequest\x12\"\n\x06run_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12 \n\tthread_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUID\x12\x12\n\nevent_type\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12\x11\n\tresumable\x18\x05 \x01(\x08\x42\t\n\x07_run_id\"5\n\x11GetGraphIDRequest\x12 \n\tthread_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\"8\n\x12GetGraphIDResponse\x12\x15\n\x08graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_graph_id\"/\n\x11\x43reateRunResponse\x12\x1a\n\x04runs\x18\x01 \x03(\x0b\x32\x0c.coreApi.Run\"`\n\x0c\x43ontrolEvent\x12\x30\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32 .enumControlSignal.ControlSignal\x12\x13\n\x06reason\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_reason\"\x88\x05\n\x0b\x43ronPayload\x12\x14\n\x0c\x61ssistant_id\x18\x01 \x01(\t\x12\x17\n\ninput_json\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x37\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\".engineCommon.EngineRunnableConfigH\x01\x88\x01\x01\x12\x19\n\x0c\x63ontext_json\x18\x04 \x01(\x0cH\x02\x88\x01\x01\x12\x14\n\x07webhook\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x42\n\x10interrupt_before\x18\x06 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x04\x88\x01\x01\x12\x41\n\x0finterrupt_after\x18\x07 \x01(\x0b\x32#.engineCommon.StaticInterruptConfigH\x05\x88\x01\x01\x12I\n\x12multitask_strategy\x18\x08 \x01(\x0e\x32(.enumMultitaskStrategy.MultitaskStrategyH\x06\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\t \x01(\x0cH\x07\x88\x01\x01\x12\x37\n\nextra_json\x18\n \x03(\x0b\x32#.coreApi.CronPayload.ExtraJsonEntry\x1a\x30\n\x0e\x45xtraJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\r\n\x0b_input_jsonB\t\n\x07_configB\x0f\n\r_context_jsonB\n\n\x08_webhookB\x13\n\x11_interrupt_beforeB\x12\n\x10_interrupt_afterB\x15\n\x13_multitask_strategyB\x10\n\x0e_metadata_json\"\xcb\x04\n\x04\x43ron\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x14\n\x0c\x61ssistant_id\x18\x02 \x01(\t\x12%\n\tthread_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12I\n\x10on_run_completed\x18\x04 \x01(\x0e\x32*.enumCronOnRunCompleted.CronOnRunCompletedH\x01\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x10\n\x08schedule\x18\x06 \x01(\t\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x07user_id\x18\t \x01(\tH\x03\x88\x01\x01\x12%\n\x07payload\x18\n \x01(\x0b\x32\x14.coreApi.CronPayload\x12\x31\n\rnext_run_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rmetadata_json\x18\x0c \x01(\x0c\x12\x0f\n\x07\x65nabled\x18\r \x01(\x08\x12\x15\n\x08timezone\x18\x0e \x01(\tH\x04\x88\x01\x01\x42\x0c\n\n_thread_idB\x13\n\x11_on_run_completedB\x0b\n\t_end_timeB\n\n\x08_user_idB\x0b\n\t_timezone\"\x9a\x05\n\x11\x43reateCronRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x10\n\x08schedule\x18\x02 \x01(\t\x12%\n\x07payload\x18\x03 \x01(\x0b\x32\x14.coreApi.CronPayload\x12\x15\n\rmetadata_json\x18\x04 \x01(\x0c\x12#\n\x07\x63ron_id\x18\x05 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12%\n\tthread_id\x18\x06 \x01(\x0b\x32\r.coreApi.UUIDH\x01\x88\x01\x01\x12I\n\x10on_run_completed\x18\x07 \x01(\x0e\x32*.enumCronOnRunCompleted.CronOnRunCompletedH\x02\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x0f\n\x07\x65nabled\x18\t \x01(\x08\x12.\n\x11\x61ssistant_filters\x18\n \x03(\x0b\x32\x13.coreApi.AuthFilter\x12+\n\x0ethread_filters\x18\x0b \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x14\n\x07user_id\x18\x0c \x01(\tH\x04\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\r \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x05\x88\x01\x01\x12\x15\n\x08timezone\x18\x0e \x01(\tH\x06\x88\x01\x01\x42\n\n\x08_cron_idB\x0c\n\n_thread_idB\x13\n\x11_on_run_completedB\x0b\n\t_end_timeB\n\n\x08_user_idB\x15\n\x13_encryption_contextB\x0b\n\t_timezone\"Y\n\x11\x44\x65leteCronRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"V\n\x0eGetCronRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\"\xe9\x03\n\x12SearchCronsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12+\n\x0ethread_filters\x18\n \x03(\x0b\x32\x13.coreApi.AuthFilter\x12(\n\x0c\x61ssistant_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12%\n\tthread_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUIDH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x13\n\x06offset\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12*\n\x07sort_by\x18\x06 \x01(\x0e\x32\x14.coreApi.CronsSortByH\x04\x88\x01\x01\x12+\n\nsort_order\x18\x07 \x01(\x0e\x32\x12.coreApi.SortOrderH\x05\x88\x01\x01\x12\x0e\n\x06select\x18\x08 \x03(\t\x12\x14\n\x07\x65nabled\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x0b \x01(\x0cH\x07\x88\x01\x01\x42\x0f\n\r_assistant_idB\x0c\n\n_thread_idB\x08\n\x06_limitB\t\n\x07_offsetB\n\n\x08_sort_byB\r\n\x0b_sort_orderB\n\n\x08_enabledB\x10\n\x0e_metadata_json\"3\n\x13SearchCronsResponse\x12\x1c\n\x05\x63rons\x18\x01 \x03(\x0b\x32\r.coreApi.Cron\"\x84\x02\n\x11\x43ountCronsRequest\x12$\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12+\n\x0ethread_filters\x18\x04 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12(\n\x0c\x61ssistant_id\x18\x02 \x01(\x0b\x32\r.coreApi.UUIDH\x00\x88\x01\x01\x12%\n\tthread_id\x18\x03 \x01(\x0b\x32\r.coreApi.UUIDH\x01\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x42\x0f\n\r_assistant_idB\x0c\n\n_thread_idB\x10\n\x0e_metadata_json\"\xb7\x04\n\x10PatchCronRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12$\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x13.coreApi.AuthFilter\x12\x15\n\x08schedule\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x14\n\x07\x65nabled\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12I\n\x10on_run_completed\x18\x06 \x01(\x0e\x32*.enumCronOnRunCompleted.CronOnRunCompletedH\x03\x88\x01\x01\x12*\n\x07payload\x18\x07 \x01(\x0b\x32\x14.coreApi.CronPayloadH\x04\x88\x01\x01\x12\x1a\n\rmetadata_json\x18\x08 \x01(\x0cH\x05\x88\x01\x01\x12>\n\x12\x65ncryption_context\x18\t \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x06\x88\x01\x01\x12\x15\n\x08timezone\x18\n \x01(\tH\x07\x88\x01\x01\x12\x16\n\x0e\x63lear_end_time\x18\x0b \x01(\x08\x42\x0b\n\t_scheduleB\x0b\n\t_end_timeB\n\n\x08_enabledB\x13\n\x11_on_run_completedB\n\n\x08_payloadB\x10\n\x0e_metadata_jsonB\x15\n\x13_encryption_contextB\x0b\n\t_timezone\"\xaa\x01\n\x0b\x43ronWithNow\x12\x1b\n\x04\x63ron\x18\x01 \x01(\x0b\x32\r.coreApi.Cron\x12\'\n\x03now\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x12\x65ncryption_context\x18\x03 \x01(\x0b\x32\x1d.encryption.EncryptionContextH\x00\x88\x01\x01\x42\x15\n\x13_encryption_context\"!\n\x10NextCronsRequest\x12\r\n\x05limit\x18\x01 \x01(\x05\"8\n\x11NextCronsResponse\x12#\n\x05\x63rons\x18\x01 \x03(\x0b\x32\x14.coreApi.CronWithNow\"j\n\x15SetNextRunDateRequest\x12\x1e\n\x07\x63ron_id\x18\x01 \x01(\x0b\x32\r.coreApi.UUID\x12\x31\n\rnext_run_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"b\n\x0f\x43\x61\x63heSetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x42\x06\n\x04_ttl\"\x1e\n\x0f\x43\x61\x63heGetRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\"0\n\x10\x43\x61\x63heGetResponse\x12\x12\n\x05value\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x08\n\x06_value*/\n\x12OnConflictBehavior\x12\t\n\x05RAISE\x10\x00\x12\x0e\n\nDO_NOTHING\x10\x01*\x1e\n\tSortOrder\x12\x08\n\x04\x44\x45SC\x10\x00\x12\x07\n\x03\x41SC\x10\x01*m\n\x10\x41ssistantsSortBy\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x10\n\x0c\x41SSISTANT_ID\x10\x01\x12\x0c\n\x08GRAPH_ID\x10\x02\x12\x08\n\x04NAME\x10\x03\x12\x0e\n\nCREATED_AT\x10\x04\x12\x0e\n\nUPDATED_AT\x10\x05*X\n\x11ThreadTTLStrategy\x12\x1e\n\x1aTHREAD_TTL_STRATEGY_DELETE\x10\x00\x12#\n\x1fTHREAD_TTL_STRATEGY_KEEP_LATEST\x10\x01*\xa8\x01\n\x10\x43heckpointSource\x12!\n\x1d\x43HECKPOINT_SOURCE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x43HECKPOINT_SOURCE_INPUT\x10\x01\x12\x1a\n\x16\x43HECKPOINT_SOURCE_LOOP\x10\x02\x12\x1c\n\x18\x43HECKPOINT_SOURCE_UPDATE\x10\x03\x12\x1a\n\x16\x43HECKPOINT_SOURCE_FORK\x10\x04*\xd1\x01\n\rThreadsSortBy\x12\x1f\n\x1bTHREADS_SORT_BY_UNSPECIFIED\x10\x00\x12\x1d\n\x19THREADS_SORT_BY_THREAD_ID\x10\x01\x12\x1e\n\x1aTHREADS_SORT_BY_CREATED_AT\x10\x02\x12\x1e\n\x1aTHREADS_SORT_BY_UPDATED_AT\x10\x03\x12\x1a\n\x16THREADS_SORT_BY_STATUS\x10\x04\x12$\n THREADS_SORT_BY_STATE_UPDATED_AT\x10\x05*`\n\x11\x43reateRunBehavior\x12#\n\x1fREJECT_RUN_IF_THREAD_NOT_EXISTS\x10\x00\x12&\n\"CREATE_THREAD_IF_THREAD_NOT_EXISTS\x10\x01*j\n\x0f\x43\x61ncelRunStatus\x12\x1d\n\x19\x43\x41NCEL_RUN_STATUS_PENDING\x10\x00\x12\x1d\n\x19\x43\x41NCEL_RUN_STATUS_RUNNING\x10\x01\x12\x19\n\x15\x43\x41NCEL_RUN_STATUS_ALL\x10\x02*\xfd\x01\n\x0b\x43ronsSortBy\x12\x1d\n\x19\x43RONS_SORT_BY_UNSPECIFIED\x10\x00\x12\x19\n\x15\x43RONS_SORT_BY_CRON_ID\x10\x01\x12\x1e\n\x1a\x43RONS_SORT_BY_ASSISTANT_ID\x10\x02\x12\x1b\n\x17\x43RONS_SORT_BY_THREAD_ID\x10\x03\x12\x1f\n\x1b\x43RONS_SORT_BY_NEXT_RUN_DATE\x10\x04\x12\x1a\n\x16\x43RONS_SORT_BY_END_TIME\x10\x05\x12\x1c\n\x18\x43RONS_SORT_BY_CREATED_AT\x10\x06\x12\x1c\n\x18\x43RONS_SORT_BY_UPDATED_AT\x10\x07\x32\xc1\x04\n\nAssistants\x12\x37\n\x03Get\x12\x1c.coreApi.GetAssistantRequest\x1a\x12.coreApi.Assistant\x12=\n\x06\x43reate\x12\x1f.coreApi.CreateAssistantRequest\x1a\x12.coreApi.Assistant\x12;\n\x05Patch\x12\x1e.coreApi.PatchAssistantRequest\x1a\x12.coreApi.Assistant\x12L\n\x06\x44\x65lete\x12\x1f.coreApi.DeleteAssistantRequest\x1a!.coreApi.DeleteAssistantsResponse\x12M\n\x06Search\x12 .coreApi.SearchAssistantsRequest\x1a!.coreApi.SearchAssistantsResponse\x12\x43\n\tSetLatest\x12\".coreApi.SetLatestAssistantRequest\x1a\x12.coreApi.Assistant\x12Z\n\x0bGetVersions\x12$.coreApi.GetAssistantVersionsRequest\x1a%.coreApi.GetAssistantVersionsResponse\x12@\n\x05\x43ount\x12\x1f.coreApi.CountAssistantsRequest\x1a\x16.coreApi.CountResponse2E\n\x05\x41\x64min\x12<\n\x08Truncate\x12\x18.coreApi.TruncateRequest\x1a\x16.google.protobuf.Empty2\x82\x06\n\x07Threads\x12\x37\n\x06\x43reate\x12\x1c.coreApi.CreateThreadRequest\x1a\x0f.coreApi.Thread\x12\x31\n\x03Get\x12\x19.coreApi.GetThreadRequest\x1a\x0f.coreApi.Thread\x12\x35\n\x05Patch\x12\x1b.coreApi.PatchThreadRequest\x1a\x0f.coreApi.Thread\x12\x35\n\x06\x44\x65lete\x12\x1c.coreApi.DeleteThreadRequest\x1a\r.coreApi.UUID\x12G\n\x06Search\x12\x1d.coreApi.SearchThreadsRequest\x1a\x1e.coreApi.SearchThreadsResponse\x12=\n\x05\x43ount\x12\x1c.coreApi.CountThreadsRequest\x1a\x16.coreApi.CountResponse\x12\x33\n\x04\x43opy\x12\x1a.coreApi.CopyThreadRequest\x1a\x0f.coreApi.Thread\x12\x44\n\tSetStatus\x12\x1f.coreApi.SetThreadStatusRequest\x1a\x16.google.protobuf.Empty\x12>\n\x06Stream\x12\x1c.coreApi.StreamThreadRequest\x1a\x14.coreApi.StreamEvent0\x01\x12N\n\x0eSetJointStatus\x12$.coreApi.SetThreadJointStatusRequest\x1a\x16.google.protobuf.Empty\x12\x45\n\nGetGraphID\x12\x1a.coreApi.GetGraphIDRequest\x1a\x1b.coreApi.GetGraphIDResponse\x12\x43\n\x07Storage\x12 .coreApi.GetThreadStorageRequest\x1a\x16.coreApi.ThreadStorage2\xde\x07\n\x04Runs\x12?\n\x06\x43reate\x12\x19.coreApi.CreateRunRequest\x1a\x1a.coreApi.CreateRunResponse\x12+\n\x03Get\x12\x16.coreApi.GetRunRequest\x1a\x0c.coreApi.Run\x12\x32\n\x06\x44\x65lete\x12\x19.coreApi.DeleteRunRequest\x1a\r.coreApi.UUID\x12\x41\n\x06Search\x12\x1a.coreApi.SearchRunsRequest\x1a\x1b.coreApi.SearchRunsResponse\x12;\n\x06\x43\x61ncel\x12\x19.coreApi.CancelRunRequest\x1a\x16.google.protobuf.Empty\x12\x41\n\tSetStatus\x12\x1c.coreApi.SetRunStatusRequest\x1a\x16.google.protobuf.Empty\x12=\n\x07Requeue\x12\x1a.coreApi.RequeueRunRequest\x1a\x16.google.protobuf.Empty\x12\x43\n\x06Stream\x12\x1f.coreApi.StreamRunClientMessage\x1a\x14.coreApi.StreamEvent(\x01\x30\x01\x12\x45\n\x07Publish\x12\".coreApi.PublishStreamEventRequest\x1a\x16.google.protobuf.Empty\x12:\n\x05\x45nter\x12\x18.coreApi.EnterRunRequest\x1a\x15.coreApi.ControlEvent0\x01\x12?\n\x08MarkDone\x12\x1b.coreApi.MarkRunDoneRequest\x1a\x16.google.protobuf.Empty\x12\x32\n\x05Stats\x12\x16.google.protobuf.Empty\x1a\x11.coreApi.RunStats\x12\x41\n\tPoolStats\x12\x16.google.protobuf.Empty\x1a\x1c.coreApi.ConnectionPoolStats\x12:\n\x05\x43ount\x12\x19.coreApi.CountRunsRequest\x1a\x16.coreApi.CountResponse\x12\x39\n\x04Next\x12\x17.coreApi.NextRunRequest\x1a\x18.coreApi.NextRunResponse\x12;\n\x05Sweep\x12\x16.google.protobuf.Empty\x1a\x1a.coreApi.SweepRunsResponse2\xe7\x03\n\x05\x43rons\x12\x33\n\x06\x43reate\x12\x1a.coreApi.CreateCronRequest\x1a\r.coreApi.Cron\x12-\n\x03Get\x12\x17.coreApi.GetCronRequest\x1a\r.coreApi.Cron\x12\x31\n\x05Patch\x12\x19.coreApi.PatchCronRequest\x1a\r.coreApi.Cron\x12<\n\x06\x44\x65lete\x12\x1a.coreApi.DeleteCronRequest\x1a\x16.google.protobuf.Empty\x12\x43\n\x06Search\x12\x1b.coreApi.SearchCronsRequest\x1a\x1c.coreApi.SearchCronsResponse\x12;\n\x05\x43ount\x12\x1a.coreApi.CountCronsRequest\x1a\x16.coreApi.CountResponse\x12=\n\x04Next\x12\x19.coreApi.NextCronsRequest\x1a\x1a.coreApi.NextCronsResponse\x12H\n\x0eSetNextRunDate\x12\x1e.coreApi.SetNextRunDateRequest\x1a\x16.google.protobuf.Empty2|\n\x05\x43\x61\x63he\x12\x37\n\x03Set\x12\x18.coreApi.CacheSetRequest\x1a\x16.google.protobuf.Empty\x12:\n\x03Get\x12\x18.coreApi.CacheGetRequest\x1a\x19.coreApi.CacheGetResponseBAZ?github.com/langchain-ai/langgraph-api/core/internal/core-api/pbb\x06proto3')
43
43
 
44
44
  _globals = globals()
45
45
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -55,24 +55,24 @@ if not _descriptor._USE_C_DESCRIPTORS:
55
55
  _globals['_SEARCHTHREADSREQUEST_EXTRACTENTRY']._serialized_options = b'8\001'
56
56
  _globals['_CRONPAYLOAD_EXTRAJSONENTRY']._loaded_options = None
57
57
  _globals['_CRONPAYLOAD_EXTRAJSONENTRY']._serialized_options = b'8\001'
58
- _globals['_ONCONFLICTBEHAVIOR']._serialized_start=18536
59
- _globals['_ONCONFLICTBEHAVIOR']._serialized_end=18583
60
- _globals['_SORTORDER']._serialized_start=18585
61
- _globals['_SORTORDER']._serialized_end=18615
62
- _globals['_ASSISTANTSSORTBY']._serialized_start=18617
63
- _globals['_ASSISTANTSSORTBY']._serialized_end=18726
64
- _globals['_THREADTTLSTRATEGY']._serialized_start=18728
65
- _globals['_THREADTTLSTRATEGY']._serialized_end=18816
66
- _globals['_CHECKPOINTSOURCE']._serialized_start=18819
67
- _globals['_CHECKPOINTSOURCE']._serialized_end=18987
68
- _globals['_THREADSSORTBY']._serialized_start=18990
69
- _globals['_THREADSSORTBY']._serialized_end=19199
70
- _globals['_CREATERUNBEHAVIOR']._serialized_start=19201
71
- _globals['_CREATERUNBEHAVIOR']._serialized_end=19297
72
- _globals['_CANCELRUNSTATUS']._serialized_start=19299
73
- _globals['_CANCELRUNSTATUS']._serialized_end=19405
74
- _globals['_CRONSSORTBY']._serialized_start=19408
75
- _globals['_CRONSSORTBY']._serialized_end=19661
58
+ _globals['_ONCONFLICTBEHAVIOR']._serialized_start=18745
59
+ _globals['_ONCONFLICTBEHAVIOR']._serialized_end=18792
60
+ _globals['_SORTORDER']._serialized_start=18794
61
+ _globals['_SORTORDER']._serialized_end=18824
62
+ _globals['_ASSISTANTSSORTBY']._serialized_start=18826
63
+ _globals['_ASSISTANTSSORTBY']._serialized_end=18935
64
+ _globals['_THREADTTLSTRATEGY']._serialized_start=18937
65
+ _globals['_THREADTTLSTRATEGY']._serialized_end=19025
66
+ _globals['_CHECKPOINTSOURCE']._serialized_start=19028
67
+ _globals['_CHECKPOINTSOURCE']._serialized_end=19196
68
+ _globals['_THREADSSORTBY']._serialized_start=19199
69
+ _globals['_THREADSSORTBY']._serialized_end=19408
70
+ _globals['_CREATERUNBEHAVIOR']._serialized_start=19410
71
+ _globals['_CREATERUNBEHAVIOR']._serialized_end=19506
72
+ _globals['_CANCELRUNSTATUS']._serialized_start=19508
73
+ _globals['_CANCELRUNSTATUS']._serialized_end=19614
74
+ _globals['_CRONSSORTBY']._serialized_start=19617
75
+ _globals['_CRONSSORTBY']._serialized_end=19870
76
76
  _globals['_TAGS']._serialized_start=450
77
77
  _globals['_TAGS']._serialized_end=472
78
78
  _globals['_EQAUTHFILTER']._serialized_start=474
@@ -154,133 +154,135 @@ if not _descriptor._USE_C_DESCRIPTORS:
154
154
  _globals['_COPYTHREADREQUEST']._serialized_start=6964
155
155
  _globals['_COPYTHREADREQUEST']._serialized_end=7055
156
156
  _globals['_SEARCHTHREADSREQUEST']._serialized_start=7058
157
- _globals['_SEARCHTHREADSREQUEST']._serialized_end=7603
158
- _globals['_SEARCHTHREADSREQUEST_EXTRACTENTRY']._serialized_start=7464
159
- _globals['_SEARCHTHREADSREQUEST_EXTRACTENTRY']._serialized_end=7510
160
- _globals['_SEARCHTHREADSRESPONSE']._serialized_start=7605
161
- _globals['_SEARCHTHREADSRESPONSE']._serialized_end=7662
162
- _globals['_COUNTTHREADSREQUEST']._serialized_start=7665
163
- _globals['_COUNTTHREADSREQUEST']._serialized_end=7876
164
- _globals['_SETTHREADSTATUSREQUEST']._serialized_start=7879
165
- _globals['_SETTHREADSTATUSREQUEST']._serialized_end=8202
166
- _globals['_SETTHREADJOINTSTATUSREQUEST']._serialized_start=8205
167
- _globals['_SETTHREADJOINTSTATUSREQUEST']._serialized_end=8545
168
- _globals['_STREAMTHREADREQUEST']._serialized_start=8548
169
- _globals['_STREAMTHREADREQUEST']._serialized_end=8749
170
- _globals['_GETTHREADSTORAGEREQUEST']._serialized_start=8751
171
- _globals['_GETTHREADSTORAGEREQUEST']._serialized_end=8848
172
- _globals['_STORAGETOTALS']._serialized_start=8850
173
- _globals['_STORAGETOTALS']._serialized_end=8895
174
- _globals['_CHANNELSTORAGE']._serialized_start=8897
175
- _globals['_CHANNELSTORAGE']._serialized_end=8963
176
- _globals['_CHANNELVALUESSTORAGE']._serialized_start=8965
177
- _globals['_CHANNELVALUESSTORAGE']._serialized_end=9062
178
- _globals['_THREADSTORAGE']._serialized_start=9065
179
- _globals['_THREADSTORAGE']._serialized_end=9249
180
- _globals['_RUNKWARGS']._serialized_start=9252
181
- _globals['_RUNKWARGS']._serialized_end=9949
182
- _globals['_RUN']._serialized_start=9952
183
- _globals['_RUN']._serialized_end=10450
184
- _globals['_RUNSTATS']._serialized_start=10453
185
- _globals['_RUNSTATS']._serialized_end=10767
186
- _globals['_POSTGRESPOOLSTATS']._serialized_start=10770
187
- _globals['_POSTGRESPOOLSTATS']._serialized_end=10900
188
- _globals['_REDISPOOLSTATS']._serialized_start=10902
189
- _globals['_REDISPOOLSTATS']._serialized_end=10997
190
- _globals['_CONNECTIONPOOLSTATS']._serialized_start=11000
191
- _globals['_CONNECTIONPOOLSTATS']._serialized_end=11140
192
- _globals['_NEXTRUNREQUEST']._serialized_start=11142
193
- _globals['_NEXTRUNREQUEST']._serialized_end=11187
194
- _globals['_RUNWITHATTEMPT']._serialized_start=11189
195
- _globals['_RUNWITHATTEMPT']._serialized_end=11308
196
- _globals['_NEXTRUNRESPONSE']._serialized_start=11310
197
- _globals['_NEXTRUNRESPONSE']._serialized_end=11366
198
- _globals['_CREATERUNREQUEST']._serialized_start=11369
199
- _globals['_CREATERUNREQUEST']._serialized_end=12283
200
- _globals['_GETRUNREQUEST']._serialized_start=12285
201
- _globals['_GETRUNREQUEST']._serialized_end=12403
202
- _globals['_DELETERUNREQUEST']._serialized_start=12405
203
- _globals['_DELETERUNREQUEST']._serialized_end=12526
204
- _globals['_CANCELRUNIDSTARGET']._serialized_start=12528
205
- _globals['_CANCELRUNIDSTARGET']._serialized_end=12614
206
- _globals['_CANCELSTATUSTARGET']._serialized_start=12616
207
- _globals['_CANCELSTATUSTARGET']._serialized_end=12678
208
- _globals['_CANCELRUNREQUEST']._serialized_start=12681
209
- _globals['_CANCELRUNREQUEST']._serialized_end=12944
210
- _globals['_SEARCHRUNSREQUEST']._serialized_start=12947
211
- _globals['_SEARCHRUNSREQUEST']._serialized_end=13174
212
- _globals['_SEARCHRUNSRESPONSE']._serialized_start=13176
213
- _globals['_SEARCHRUNSRESPONSE']._serialized_end=13224
214
- _globals['_SETRUNSTATUSREQUEST']._serialized_start=13226
215
- _globals['_SETRUNSTATUSREQUEST']._serialized_end=13320
216
- _globals['_SWEEPRUNSRESPONSE']._serialized_start=13322
217
- _globals['_SWEEPRUNSRESPONSE']._serialized_end=13373
218
- _globals['_COUNTRUNSREQUEST']._serialized_start=13375
219
- _globals['_COUNTRUNSREQUEST']._serialized_end=13445
220
- _globals['_STREAMRUNCLIENTMESSAGE']._serialized_start=13447
221
- _globals['_STREAMRUNCLIENTMESSAGE']._serialized_end=13574
222
- _globals['_SUBSCRIBERUNREQUEST']._serialized_start=13576
223
- _globals['_SUBSCRIBERUNREQUEST']._serialized_end=13662
224
- _globals['_JOINRUNREQUEST']._serialized_start=13665
225
- _globals['_JOINRUNREQUEST']._serialized_end=13875
226
- _globals['_ENTERRUNREQUEST']._serialized_start=13877
227
- _globals['_ENTERRUNREQUEST']._serialized_end=13978
228
- _globals['_MARKRUNDONEREQUEST']._serialized_start=13980
229
- _globals['_MARKRUNDONEREQUEST']._serialized_end=14084
230
- _globals['_PUBLISHSTREAMEVENTREQUEST']._serialized_start=14087
231
- _globals['_PUBLISHSTREAMEVENTREQUEST']._serialized_end=14251
232
- _globals['_GETGRAPHIDREQUEST']._serialized_start=14253
233
- _globals['_GETGRAPHIDREQUEST']._serialized_end=14306
234
- _globals['_GETGRAPHIDRESPONSE']._serialized_start=14308
235
- _globals['_GETGRAPHIDRESPONSE']._serialized_end=14364
236
- _globals['_CREATERUNRESPONSE']._serialized_start=14366
237
- _globals['_CREATERUNRESPONSE']._serialized_end=14413
238
- _globals['_CONTROLEVENT']._serialized_start=14415
239
- _globals['_CONTROLEVENT']._serialized_end=14511
240
- _globals['_CRONPAYLOAD']._serialized_start=14514
241
- _globals['_CRONPAYLOAD']._serialized_end=15162
242
- _globals['_CRONPAYLOAD_EXTRAJSONENTRY']._serialized_start=14977
243
- _globals['_CRONPAYLOAD_EXTRAJSONENTRY']._serialized_end=15025
244
- _globals['_CRON']._serialized_start=15165
245
- _globals['_CRON']._serialized_end=15752
246
- _globals['_CREATECRONREQUEST']._serialized_start=15755
247
- _globals['_CREATECRONREQUEST']._serialized_end=16421
248
- _globals['_DELETECRONREQUEST']._serialized_start=16423
249
- _globals['_DELETECRONREQUEST']._serialized_end=16512
250
- _globals['_GETCRONREQUEST']._serialized_start=16514
251
- _globals['_GETCRONREQUEST']._serialized_end=16600
252
- _globals['_SEARCHCRONSREQUEST']._serialized_start=16603
253
- _globals['_SEARCHCRONSREQUEST']._serialized_end=17092
254
- _globals['_SEARCHCRONSRESPONSE']._serialized_start=17094
255
- _globals['_SEARCHCRONSRESPONSE']._serialized_end=17145
256
- _globals['_COUNTCRONSREQUEST']._serialized_start=17148
257
- _globals['_COUNTCRONSREQUEST']._serialized_end=17408
258
- _globals['_PATCHCRONREQUEST']._serialized_start=17411
259
- _globals['_PATCHCRONREQUEST']._serialized_end=17978
260
- _globals['_CRONWITHNOW']._serialized_start=17981
261
- _globals['_CRONWITHNOW']._serialized_end=18151
262
- _globals['_NEXTCRONSREQUEST']._serialized_start=18153
263
- _globals['_NEXTCRONSREQUEST']._serialized_end=18186
264
- _globals['_NEXTCRONSRESPONSE']._serialized_start=18188
265
- _globals['_NEXTCRONSRESPONSE']._serialized_end=18244
266
- _globals['_SETNEXTRUNDATEREQUEST']._serialized_start=18246
267
- _globals['_SETNEXTRUNDATEREQUEST']._serialized_end=18352
268
- _globals['_CACHESETREQUEST']._serialized_start=18354
269
- _globals['_CACHESETREQUEST']._serialized_end=18452
270
- _globals['_CACHEGETREQUEST']._serialized_start=18454
271
- _globals['_CACHEGETREQUEST']._serialized_end=18484
272
- _globals['_CACHEGETRESPONSE']._serialized_start=18486
273
- _globals['_CACHEGETRESPONSE']._serialized_end=18534
274
- _globals['_ASSISTANTS']._serialized_start=19664
275
- _globals['_ASSISTANTS']._serialized_end=20241
276
- _globals['_ADMIN']._serialized_start=20243
277
- _globals['_ADMIN']._serialized_end=20312
278
- _globals['_THREADS']._serialized_start=20315
279
- _globals['_THREADS']._serialized_end=21085
280
- _globals['_RUNS']._serialized_start=21088
281
- _globals['_RUNS']._serialized_end=22015
282
- _globals['_CRONS']._serialized_start=22018
283
- _globals['_CRONS']._serialized_end=22505
284
- _globals['_CACHE']._serialized_start=22507
285
- _globals['_CACHE']._serialized_end=22631
157
+ _globals['_SEARCHTHREADSREQUEST']._serialized_end=7665
158
+ _globals['_SEARCHTHREADSREQUEST_EXTRACTENTRY']._serialized_start=7500
159
+ _globals['_SEARCHTHREADSREQUEST_EXTRACTENTRY']._serialized_end=7546
160
+ _globals['_SEARCHTHREADSRESPONSE']._serialized_start=7667
161
+ _globals['_SEARCHTHREADSRESPONSE']._serialized_end=7724
162
+ _globals['_COUNTTHREADSREQUEST']._serialized_start=7727
163
+ _globals['_COUNTTHREADSREQUEST']._serialized_end=8000
164
+ _globals['_SETTHREADSTATUSREQUEST']._serialized_start=8003
165
+ _globals['_SETTHREADSTATUSREQUEST']._serialized_end=8326
166
+ _globals['_SETTHREADJOINTSTATUSREQUEST']._serialized_start=8329
167
+ _globals['_SETTHREADJOINTSTATUSREQUEST']._serialized_end=8669
168
+ _globals['_STREAMTHREADREQUEST']._serialized_start=8672
169
+ _globals['_STREAMTHREADREQUEST']._serialized_end=8873
170
+ _globals['_GETTHREADSTORAGEREQUEST']._serialized_start=8875
171
+ _globals['_GETTHREADSTORAGEREQUEST']._serialized_end=8972
172
+ _globals['_STORAGETOTALS']._serialized_start=8974
173
+ _globals['_STORAGETOTALS']._serialized_end=9019
174
+ _globals['_CHANNELSTORAGE']._serialized_start=9021
175
+ _globals['_CHANNELSTORAGE']._serialized_end=9087
176
+ _globals['_CHANNELVALUESSTORAGE']._serialized_start=9089
177
+ _globals['_CHANNELVALUESSTORAGE']._serialized_end=9186
178
+ _globals['_THREADSTORAGE']._serialized_start=9189
179
+ _globals['_THREADSTORAGE']._serialized_end=9373
180
+ _globals['_RUNKWARGS']._serialized_start=9376
181
+ _globals['_RUNKWARGS']._serialized_end=10073
182
+ _globals['_RUN']._serialized_start=10076
183
+ _globals['_RUN']._serialized_end=10574
184
+ _globals['_RUNSTATS']._serialized_start=10577
185
+ _globals['_RUNSTATS']._serialized_end=10891
186
+ _globals['_POSTGRESPOOLSTATS']._serialized_start=10894
187
+ _globals['_POSTGRESPOOLSTATS']._serialized_end=11024
188
+ _globals['_REDISPOOLSTATS']._serialized_start=11026
189
+ _globals['_REDISPOOLSTATS']._serialized_end=11121
190
+ _globals['_CONNECTIONPOOLSTATS']._serialized_start=11124
191
+ _globals['_CONNECTIONPOOLSTATS']._serialized_end=11264
192
+ _globals['_NEXTRUNREQUEST']._serialized_start=11266
193
+ _globals['_NEXTRUNREQUEST']._serialized_end=11311
194
+ _globals['_RUNWITHATTEMPT']._serialized_start=11314
195
+ _globals['_RUNWITHATTEMPT']._serialized_end=11449
196
+ _globals['_REQUEUERUNREQUEST']._serialized_start=11451
197
+ _globals['_REQUEUERUNREQUEST']._serialized_end=11517
198
+ _globals['_NEXTRUNRESPONSE']._serialized_start=11519
199
+ _globals['_NEXTRUNRESPONSE']._serialized_end=11575
200
+ _globals['_CREATERUNREQUEST']._serialized_start=11578
201
+ _globals['_CREATERUNREQUEST']._serialized_end=12492
202
+ _globals['_GETRUNREQUEST']._serialized_start=12494
203
+ _globals['_GETRUNREQUEST']._serialized_end=12612
204
+ _globals['_DELETERUNREQUEST']._serialized_start=12614
205
+ _globals['_DELETERUNREQUEST']._serialized_end=12735
206
+ _globals['_CANCELRUNIDSTARGET']._serialized_start=12737
207
+ _globals['_CANCELRUNIDSTARGET']._serialized_end=12823
208
+ _globals['_CANCELSTATUSTARGET']._serialized_start=12825
209
+ _globals['_CANCELSTATUSTARGET']._serialized_end=12887
210
+ _globals['_CANCELRUNREQUEST']._serialized_start=12890
211
+ _globals['_CANCELRUNREQUEST']._serialized_end=13153
212
+ _globals['_SEARCHRUNSREQUEST']._serialized_start=13156
213
+ _globals['_SEARCHRUNSREQUEST']._serialized_end=13383
214
+ _globals['_SEARCHRUNSRESPONSE']._serialized_start=13385
215
+ _globals['_SEARCHRUNSRESPONSE']._serialized_end=13433
216
+ _globals['_SETRUNSTATUSREQUEST']._serialized_start=13435
217
+ _globals['_SETRUNSTATUSREQUEST']._serialized_end=13529
218
+ _globals['_SWEEPRUNSRESPONSE']._serialized_start=13531
219
+ _globals['_SWEEPRUNSRESPONSE']._serialized_end=13582
220
+ _globals['_COUNTRUNSREQUEST']._serialized_start=13584
221
+ _globals['_COUNTRUNSREQUEST']._serialized_end=13654
222
+ _globals['_STREAMRUNCLIENTMESSAGE']._serialized_start=13656
223
+ _globals['_STREAMRUNCLIENTMESSAGE']._serialized_end=13783
224
+ _globals['_SUBSCRIBERUNREQUEST']._serialized_start=13785
225
+ _globals['_SUBSCRIBERUNREQUEST']._serialized_end=13871
226
+ _globals['_JOINRUNREQUEST']._serialized_start=13874
227
+ _globals['_JOINRUNREQUEST']._serialized_end=14084
228
+ _globals['_ENTERRUNREQUEST']._serialized_start=14086
229
+ _globals['_ENTERRUNREQUEST']._serialized_end=14187
230
+ _globals['_MARKRUNDONEREQUEST']._serialized_start=14189
231
+ _globals['_MARKRUNDONEREQUEST']._serialized_end=14293
232
+ _globals['_PUBLISHSTREAMEVENTREQUEST']._serialized_start=14296
233
+ _globals['_PUBLISHSTREAMEVENTREQUEST']._serialized_end=14460
234
+ _globals['_GETGRAPHIDREQUEST']._serialized_start=14462
235
+ _globals['_GETGRAPHIDREQUEST']._serialized_end=14515
236
+ _globals['_GETGRAPHIDRESPONSE']._serialized_start=14517
237
+ _globals['_GETGRAPHIDRESPONSE']._serialized_end=14573
238
+ _globals['_CREATERUNRESPONSE']._serialized_start=14575
239
+ _globals['_CREATERUNRESPONSE']._serialized_end=14622
240
+ _globals['_CONTROLEVENT']._serialized_start=14624
241
+ _globals['_CONTROLEVENT']._serialized_end=14720
242
+ _globals['_CRONPAYLOAD']._serialized_start=14723
243
+ _globals['_CRONPAYLOAD']._serialized_end=15371
244
+ _globals['_CRONPAYLOAD_EXTRAJSONENTRY']._serialized_start=15186
245
+ _globals['_CRONPAYLOAD_EXTRAJSONENTRY']._serialized_end=15234
246
+ _globals['_CRON']._serialized_start=15374
247
+ _globals['_CRON']._serialized_end=15961
248
+ _globals['_CREATECRONREQUEST']._serialized_start=15964
249
+ _globals['_CREATECRONREQUEST']._serialized_end=16630
250
+ _globals['_DELETECRONREQUEST']._serialized_start=16632
251
+ _globals['_DELETECRONREQUEST']._serialized_end=16721
252
+ _globals['_GETCRONREQUEST']._serialized_start=16723
253
+ _globals['_GETCRONREQUEST']._serialized_end=16809
254
+ _globals['_SEARCHCRONSREQUEST']._serialized_start=16812
255
+ _globals['_SEARCHCRONSREQUEST']._serialized_end=17301
256
+ _globals['_SEARCHCRONSRESPONSE']._serialized_start=17303
257
+ _globals['_SEARCHCRONSRESPONSE']._serialized_end=17354
258
+ _globals['_COUNTCRONSREQUEST']._serialized_start=17357
259
+ _globals['_COUNTCRONSREQUEST']._serialized_end=17617
260
+ _globals['_PATCHCRONREQUEST']._serialized_start=17620
261
+ _globals['_PATCHCRONREQUEST']._serialized_end=18187
262
+ _globals['_CRONWITHNOW']._serialized_start=18190
263
+ _globals['_CRONWITHNOW']._serialized_end=18360
264
+ _globals['_NEXTCRONSREQUEST']._serialized_start=18362
265
+ _globals['_NEXTCRONSREQUEST']._serialized_end=18395
266
+ _globals['_NEXTCRONSRESPONSE']._serialized_start=18397
267
+ _globals['_NEXTCRONSRESPONSE']._serialized_end=18453
268
+ _globals['_SETNEXTRUNDATEREQUEST']._serialized_start=18455
269
+ _globals['_SETNEXTRUNDATEREQUEST']._serialized_end=18561
270
+ _globals['_CACHESETREQUEST']._serialized_start=18563
271
+ _globals['_CACHESETREQUEST']._serialized_end=18661
272
+ _globals['_CACHEGETREQUEST']._serialized_start=18663
273
+ _globals['_CACHEGETREQUEST']._serialized_end=18693
274
+ _globals['_CACHEGETRESPONSE']._serialized_start=18695
275
+ _globals['_CACHEGETRESPONSE']._serialized_end=18743
276
+ _globals['_ASSISTANTS']._serialized_start=19873
277
+ _globals['_ASSISTANTS']._serialized_end=20450
278
+ _globals['_ADMIN']._serialized_start=20452
279
+ _globals['_ADMIN']._serialized_end=20521
280
+ _globals['_THREADS']._serialized_start=20524
281
+ _globals['_THREADS']._serialized_end=21294
282
+ _globals['_RUNS']._serialized_start=21297
283
+ _globals['_RUNS']._serialized_end=22287
284
+ _globals['_CRONS']._serialized_start=22290
285
+ _globals['_CRONS']._serialized_end=22777
286
+ _globals['_CACHE']._serialized_start=22779
287
+ _globals['_CACHE']._serialized_end=22903
286
288
  # @@protoc_insertion_point(module_scope)
@@ -1697,6 +1697,7 @@ class SearchThreadsRequest(_message.Message):
1697
1697
  SELECT_FIELD_NUMBER: _builtins.int
1698
1698
  IDS_FIELD_NUMBER: _builtins.int
1699
1699
  EXTRACT_FIELD_NUMBER: _builtins.int
1700
+ EXCLUDE_METADATA_JSON_FIELD_NUMBER: _builtins.int
1700
1701
  metadata_json: _builtins.bytes
1701
1702
  values_json: _builtins.bytes
1702
1703
  status: _enum_thread_status_pb2.ThreadStatus.ValueType
@@ -1704,6 +1705,8 @@ class SearchThreadsRequest(_message.Message):
1704
1705
  offset: _builtins.int
1705
1706
  sort_by: Global___ThreadsSortBy.ValueType
1706
1707
  sort_order: Global___SortOrder.ValueType
1708
+ exclude_metadata_json: _builtins.bytes
1709
+ """Exclude threads whose metadata contains any of these objects (JSON array of objects)."""
1707
1710
  @_builtins.property
1708
1711
  def filters(self) -> _containers.RepeatedCompositeFieldContainer[Global___AuthFilter]: ...
1709
1712
  @_builtins.property
@@ -1732,11 +1735,14 @@ class SearchThreadsRequest(_message.Message):
1732
1735
  select: _abc.Iterable[_builtins.str] | None = ...,
1733
1736
  ids: _abc.Iterable[Global___UUID] | None = ...,
1734
1737
  extract: _abc.Mapping[_builtins.str, _builtins.str] | None = ...,
1738
+ exclude_metadata_json: _builtins.bytes | None = ...,
1735
1739
  ) -> None: ...
1736
- _HasFieldArgType: _TypeAlias = _typing.Literal["_limit", b"_limit", "_metadata_json", b"_metadata_json", "_offset", b"_offset", "_sort_by", b"_sort_by", "_sort_order", b"_sort_order", "_status", b"_status", "_values_json", b"_values_json", "limit", b"limit", "metadata_json", b"metadata_json", "offset", b"offset", "sort_by", b"sort_by", "sort_order", b"sort_order", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1740
+ _HasFieldArgType: _TypeAlias = _typing.Literal["_exclude_metadata_json", b"_exclude_metadata_json", "_limit", b"_limit", "_metadata_json", b"_metadata_json", "_offset", b"_offset", "_sort_by", b"_sort_by", "_sort_order", b"_sort_order", "_status", b"_status", "_values_json", b"_values_json", "exclude_metadata_json", b"exclude_metadata_json", "limit", b"limit", "metadata_json", b"metadata_json", "offset", b"offset", "sort_by", b"sort_by", "sort_order", b"sort_order", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1737
1741
  def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
1738
- _ClearFieldArgType: _TypeAlias = _typing.Literal["_limit", b"_limit", "_metadata_json", b"_metadata_json", "_offset", b"_offset", "_sort_by", b"_sort_by", "_sort_order", b"_sort_order", "_status", b"_status", "_values_json", b"_values_json", "extract", b"extract", "filters", b"filters", "ids", b"ids", "limit", b"limit", "metadata_json", b"metadata_json", "offset", b"offset", "select", b"select", "sort_by", b"sort_by", "sort_order", b"sort_order", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1742
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["_exclude_metadata_json", b"_exclude_metadata_json", "_limit", b"_limit", "_metadata_json", b"_metadata_json", "_offset", b"_offset", "_sort_by", b"_sort_by", "_sort_order", b"_sort_order", "_status", b"_status", "_values_json", b"_values_json", "exclude_metadata_json", b"exclude_metadata_json", "extract", b"extract", "filters", b"filters", "ids", b"ids", "limit", b"limit", "metadata_json", b"metadata_json", "offset", b"offset", "select", b"select", "sort_by", b"sort_by", "sort_order", b"sort_order", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1739
1743
  def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
1744
+ _WhichOneofReturnType__exclude_metadata_json: _TypeAlias = _typing.Literal["exclude_metadata_json"] # noqa: Y015
1745
+ _WhichOneofArgType__exclude_metadata_json: _TypeAlias = _typing.Literal["_exclude_metadata_json", b"_exclude_metadata_json"] # noqa: Y015
1740
1746
  _WhichOneofReturnType__limit: _TypeAlias = _typing.Literal["limit"] # noqa: Y015
1741
1747
  _WhichOneofArgType__limit: _TypeAlias = _typing.Literal["_limit", b"_limit"] # noqa: Y015
1742
1748
  _WhichOneofReturnType__metadata_json: _TypeAlias = _typing.Literal["metadata_json"] # noqa: Y015
@@ -1752,6 +1758,8 @@ class SearchThreadsRequest(_message.Message):
1752
1758
  _WhichOneofReturnType__values_json: _TypeAlias = _typing.Literal["values_json"] # noqa: Y015
1753
1759
  _WhichOneofArgType__values_json: _TypeAlias = _typing.Literal["_values_json", b"_values_json"] # noqa: Y015
1754
1760
  @_typing.overload
1761
+ def WhichOneof(self, oneof_group: _WhichOneofArgType__exclude_metadata_json) -> _WhichOneofReturnType__exclude_metadata_json | None: ...
1762
+ @_typing.overload
1755
1763
  def WhichOneof(self, oneof_group: _WhichOneofArgType__limit) -> _WhichOneofReturnType__limit | None: ...
1756
1764
  @_typing.overload
1757
1765
  def WhichOneof(self, oneof_group: _WhichOneofArgType__metadata_json) -> _WhichOneofReturnType__metadata_json | None: ...
@@ -1796,9 +1804,12 @@ class CountThreadsRequest(_message.Message):
1796
1804
  METADATA_JSON_FIELD_NUMBER: _builtins.int
1797
1805
  VALUES_JSON_FIELD_NUMBER: _builtins.int
1798
1806
  STATUS_FIELD_NUMBER: _builtins.int
1807
+ EXCLUDE_METADATA_JSON_FIELD_NUMBER: _builtins.int
1799
1808
  metadata_json: _builtins.bytes
1800
1809
  values_json: _builtins.bytes
1801
1810
  status: _enum_thread_status_pb2.ThreadStatus.ValueType
1811
+ exclude_metadata_json: _builtins.bytes
1812
+ """Exclude threads whose metadata contains any of these objects (JSON array of objects)."""
1802
1813
  @_builtins.property
1803
1814
  def filters(self) -> _containers.RepeatedCompositeFieldContainer[Global___AuthFilter]: ...
1804
1815
  def __init__(
@@ -1808,11 +1819,14 @@ class CountThreadsRequest(_message.Message):
1808
1819
  metadata_json: _builtins.bytes | None = ...,
1809
1820
  values_json: _builtins.bytes | None = ...,
1810
1821
  status: _enum_thread_status_pb2.ThreadStatus.ValueType | None = ...,
1822
+ exclude_metadata_json: _builtins.bytes | None = ...,
1811
1823
  ) -> None: ...
1812
- _HasFieldArgType: _TypeAlias = _typing.Literal["_metadata_json", b"_metadata_json", "_status", b"_status", "_values_json", b"_values_json", "metadata_json", b"metadata_json", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1824
+ _HasFieldArgType: _TypeAlias = _typing.Literal["_exclude_metadata_json", b"_exclude_metadata_json", "_metadata_json", b"_metadata_json", "_status", b"_status", "_values_json", b"_values_json", "exclude_metadata_json", b"exclude_metadata_json", "metadata_json", b"metadata_json", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1813
1825
  def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
1814
- _ClearFieldArgType: _TypeAlias = _typing.Literal["_metadata_json", b"_metadata_json", "_status", b"_status", "_values_json", b"_values_json", "filters", b"filters", "metadata_json", b"metadata_json", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1826
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["_exclude_metadata_json", b"_exclude_metadata_json", "_metadata_json", b"_metadata_json", "_status", b"_status", "_values_json", b"_values_json", "exclude_metadata_json", b"exclude_metadata_json", "filters", b"filters", "metadata_json", b"metadata_json", "status", b"status", "values_json", b"values_json"] # noqa: Y015
1815
1827
  def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
1828
+ _WhichOneofReturnType__exclude_metadata_json: _TypeAlias = _typing.Literal["exclude_metadata_json"] # noqa: Y015
1829
+ _WhichOneofArgType__exclude_metadata_json: _TypeAlias = _typing.Literal["_exclude_metadata_json", b"_exclude_metadata_json"] # noqa: Y015
1816
1830
  _WhichOneofReturnType__metadata_json: _TypeAlias = _typing.Literal["metadata_json"] # noqa: Y015
1817
1831
  _WhichOneofArgType__metadata_json: _TypeAlias = _typing.Literal["_metadata_json", b"_metadata_json"] # noqa: Y015
1818
1832
  _WhichOneofReturnType__status: _TypeAlias = _typing.Literal["status"] # noqa: Y015
@@ -1820,6 +1834,8 @@ class CountThreadsRequest(_message.Message):
1820
1834
  _WhichOneofReturnType__values_json: _TypeAlias = _typing.Literal["values_json"] # noqa: Y015
1821
1835
  _WhichOneofArgType__values_json: _TypeAlias = _typing.Literal["_values_json", b"_values_json"] # noqa: Y015
1822
1836
  @_typing.overload
1837
+ def WhichOneof(self, oneof_group: _WhichOneofArgType__exclude_metadata_json) -> _WhichOneofReturnType__exclude_metadata_json | None: ...
1838
+ @_typing.overload
1823
1839
  def WhichOneof(self, oneof_group: _WhichOneofArgType__metadata_json) -> _WhichOneofReturnType__metadata_json | None: ...
1824
1840
  @_typing.overload
1825
1841
  def WhichOneof(self, oneof_group: _WhichOneofArgType__status) -> _WhichOneofReturnType__status | None: ...
@@ -2443,7 +2459,13 @@ class RunWithAttempt(_message.Message):
2443
2459
  RUN_FIELD_NUMBER: _builtins.int
2444
2460
  ATTEMPT_FIELD_NUMBER: _builtins.int
2445
2461
  ENCRYPTION_CONTEXT_FIELD_NUMBER: _builtins.int
2462
+ DRAINS_FIELD_NUMBER: _builtins.int
2446
2463
  attempt: _builtins.int
2464
+ drains: _builtins.int
2465
+ """Number of cooperative drains this run has been re-queued for. Drains are
2466
+ handoffs, not failures: the retry limit counts attempts minus drains.
2467
+ Older cores leave this unset, which reads as 0.
2468
+ """
2447
2469
  @_builtins.property
2448
2470
  def run(self) -> Global___Run: ...
2449
2471
  @_builtins.property
@@ -2456,15 +2478,42 @@ class RunWithAttempt(_message.Message):
2456
2478
  run: Global___Run | None = ...,
2457
2479
  attempt: _builtins.int = ...,
2458
2480
  encryption_context: _encryption_pb2.EncryptionContext | None = ...,
2481
+ drains: _builtins.int = ...,
2459
2482
  ) -> None: ...
2460
2483
  _HasFieldArgType: _TypeAlias = _typing.Literal["encryption_context", b"encryption_context", "run", b"run"] # noqa: Y015
2461
2484
  def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
2462
- _ClearFieldArgType: _TypeAlias = _typing.Literal["attempt", b"attempt", "encryption_context", b"encryption_context", "run", b"run"] # noqa: Y015
2485
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["attempt", b"attempt", "drains", b"drains", "encryption_context", b"encryption_context", "run", b"run"] # noqa: Y015
2463
2486
  def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
2464
2487
  def WhichOneof(self, oneof_group: _Never) -> None: ...
2465
2488
 
2466
2489
  Global___RunWithAttempt: _TypeAlias = RunWithAttempt # noqa: Y015
2467
2490
 
2491
+ @_typing.final
2492
+ class RequeueRunRequest(_message.Message):
2493
+ DESCRIPTOR: _descriptor.Descriptor
2494
+
2495
+ RUN_ID_FIELD_NUMBER: _builtins.int
2496
+ REASON_FIELD_NUMBER: _builtins.int
2497
+ reason: _builtins.str
2498
+ """Why the run drained: "server_shutdown" when the server drained it at
2499
+ shutdown, otherwise the reason graph code passed to request_drain().
2500
+ """
2501
+ @_builtins.property
2502
+ def run_id(self) -> Global___UUID: ...
2503
+ def __init__(
2504
+ self,
2505
+ *,
2506
+ run_id: Global___UUID | None = ...,
2507
+ reason: _builtins.str = ...,
2508
+ ) -> None: ...
2509
+ _HasFieldArgType: _TypeAlias = _typing.Literal["run_id", b"run_id"] # noqa: Y015
2510
+ def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
2511
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["reason", b"reason", "run_id", b"run_id"] # noqa: Y015
2512
+ def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
2513
+ def WhichOneof(self, oneof_group: _Never) -> None: ...
2514
+
2515
+ Global___RequeueRunRequest: _TypeAlias = RequeueRunRequest # noqa: Y015
2516
+
2468
2517
  @_typing.final
2469
2518
  class NextRunResponse(_message.Message):
2470
2519
  DESCRIPTOR: _descriptor.Descriptor
@@ -1063,6 +1063,11 @@ class RunsStub:
1063
1063
  request_serializer=core__api__pb2.SetRunStatusRequest.SerializeToString,
1064
1064
  response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
1065
1065
  _registered_method=True)
1066
+ self.Requeue = channel.unary_unary(
1067
+ '/coreApi.Runs/Requeue',
1068
+ request_serializer=core__api__pb2.RequeueRunRequest.SerializeToString,
1069
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
1070
+ _registered_method=True)
1066
1071
  self.Stream = channel.stream_stream(
1067
1072
  '/coreApi.Runs/Stream',
1068
1073
  request_serializer=core__api__pb2.StreamRunClientMessage.SerializeToString,
@@ -1149,6 +1154,14 @@ class RunsServicer:
1149
1154
  context.set_details('Method not implemented!')
1150
1155
  raise NotImplementedError('Method not implemented!')
1151
1156
 
1157
+ def Requeue(self, request, context):
1158
+ """Re-queue a drained run: counts the drain, then makes the run pending so
1159
+ another worker resumes it from its checkpoint (internal worker method)
1160
+ """
1161
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1162
+ context.set_details('Method not implemented!')
1163
+ raise NotImplementedError('Method not implemented!')
1164
+
1152
1165
  def Stream(self, request_iterator, context):
1153
1166
  """Bidirectional stream for run events.
1154
1167
  Client opens stream, then sends JoinRunRequest to start receiving events.
@@ -1250,6 +1263,11 @@ def add_RunsServicer_to_server(servicer, server):
1250
1263
  request_deserializer=core__api__pb2.SetRunStatusRequest.FromString,
1251
1264
  response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
1252
1265
  ),
1266
+ 'Requeue': grpc.unary_unary_rpc_method_handler(
1267
+ servicer.Requeue,
1268
+ request_deserializer=core__api__pb2.RequeueRunRequest.FromString,
1269
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
1270
+ ),
1253
1271
  'Stream': grpc.stream_stream_rpc_method_handler(
1254
1272
  servicer.Stream,
1255
1273
  request_deserializer=core__api__pb2.StreamRunClientMessage.FromString,
@@ -1468,6 +1486,33 @@ class Runs:
1468
1486
  metadata,
1469
1487
  _registered_method=True)
1470
1488
 
1489
+ @staticmethod
1490
+ def Requeue(request,
1491
+ target,
1492
+ options=(),
1493
+ channel_credentials=None,
1494
+ call_credentials=None,
1495
+ insecure=False,
1496
+ compression=None,
1497
+ wait_for_ready=None,
1498
+ timeout=None,
1499
+ metadata=None):
1500
+ return grpc.experimental.unary_unary(
1501
+ request,
1502
+ target,
1503
+ '/coreApi.Runs/Requeue',
1504
+ core__api__pb2.RequeueRunRequest.SerializeToString,
1505
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
1506
+ options,
1507
+ channel_credentials,
1508
+ insecure,
1509
+ call_credentials,
1510
+ compression,
1511
+ wait_for_ready,
1512
+ timeout,
1513
+ metadata,
1514
+ _registered_method=True)
1515
+
1471
1516
  @staticmethod
1472
1517
  def Stream(request_iterator,
1473
1518
  target,
@@ -289,6 +289,10 @@ class RunsStub:
289
289
  Search: _grpc.UnaryUnaryMultiCallable[_core_api_pb2.SearchRunsRequest, _core_api_pb2.SearchRunsResponse]
290
290
  Cancel: _grpc.UnaryUnaryMultiCallable[_core_api_pb2.CancelRunRequest, _empty_pb2.Empty]
291
291
  SetStatus: _grpc.UnaryUnaryMultiCallable[_core_api_pb2.SetRunStatusRequest, _empty_pb2.Empty]
292
+ Requeue: _grpc.UnaryUnaryMultiCallable[_core_api_pb2.RequeueRunRequest, _empty_pb2.Empty]
293
+ """Re-queue a drained run: counts the drain, then makes the run pending so
294
+ another worker resumes it from its checkpoint (internal worker method)
295
+ """
292
296
  Stream: _grpc.StreamStreamMultiCallable[_core_api_pb2.StreamRunClientMessage, _core_api_pb2.StreamEvent]
293
297
  """Bidirectional stream for run events.
294
298
  Client opens stream, then sends JoinRunRequest to start receiving events.
@@ -325,6 +329,10 @@ class RunsAsyncStub(RunsStub):
325
329
  Search: _aio.UnaryUnaryMultiCallable[_core_api_pb2.SearchRunsRequest, _core_api_pb2.SearchRunsResponse] # type: ignore[assignment]
326
330
  Cancel: _aio.UnaryUnaryMultiCallable[_core_api_pb2.CancelRunRequest, _empty_pb2.Empty] # type: ignore[assignment]
327
331
  SetStatus: _aio.UnaryUnaryMultiCallable[_core_api_pb2.SetRunStatusRequest, _empty_pb2.Empty] # type: ignore[assignment]
332
+ Requeue: _aio.UnaryUnaryMultiCallable[_core_api_pb2.RequeueRunRequest, _empty_pb2.Empty] # type: ignore[assignment]
333
+ """Re-queue a drained run: counts the drain, then makes the run pending so
334
+ another worker resumes it from its checkpoint (internal worker method)
335
+ """
328
336
  Stream: _aio.StreamStreamMultiCallable[_core_api_pb2.StreamRunClientMessage, _core_api_pb2.StreamEvent] # type: ignore[assignment]
329
337
  """Bidirectional stream for run events.
330
338
  Client opens stream, then sends JoinRunRequest to start receiving events.
@@ -395,6 +403,16 @@ class RunsServicer(metaclass=_abc_1.ABCMeta):
395
403
  context: _ServicerContext,
396
404
  ) -> _typing.Union[_empty_pb2.Empty, _abc.Awaitable[_empty_pb2.Empty]]: ...
397
405
 
406
+ @_abc_1.abstractmethod
407
+ def Requeue(
408
+ self,
409
+ request: _core_api_pb2.RequeueRunRequest,
410
+ context: _ServicerContext,
411
+ ) -> _typing.Union[_empty_pb2.Empty, _abc.Awaitable[_empty_pb2.Empty]]:
412
+ """Re-queue a drained run: counts the drain, then makes the run pending so
413
+ another worker resumes it from its checkpoint (internal worker method)
414
+ """
415
+
398
416
  @_abc_1.abstractmethod
399
417
  def Stream(
400
418
  self,
openapi.json CHANGED
@@ -5671,6 +5671,24 @@
5671
5671
  "title": "Metadata",
5672
5672
  "description": "Thread metadata to filter on."
5673
5673
  },
5674
+ "exclude_metadata": {
5675
+ "oneOf": [
5676
+ {
5677
+ "type": "object",
5678
+ "minProperties": 1
5679
+ },
5680
+ {
5681
+ "type": "array",
5682
+ "items": {
5683
+ "type": "object",
5684
+ "minProperties": 1
5685
+ },
5686
+ "minItems": 1
5687
+ }
5688
+ ],
5689
+ "title": "Exclude Metadata",
5690
+ "description": "Exclude threads whose metadata contains this object, or any object in this list. Uses the same matching as `metadata`; threads missing the keys are not excluded."
5691
+ },
5674
5692
  "values": {
5675
5693
  "type": "object",
5676
5694
  "title": "Values",
@@ -5755,6 +5773,24 @@
5755
5773
  "title": "Metadata",
5756
5774
  "description": "Thread metadata to filter on."
5757
5775
  },
5776
+ "exclude_metadata": {
5777
+ "oneOf": [
5778
+ {
5779
+ "type": "object",
5780
+ "minProperties": 1
5781
+ },
5782
+ {
5783
+ "type": "array",
5784
+ "items": {
5785
+ "type": "object",
5786
+ "minProperties": 1
5787
+ },
5788
+ "minItems": 1
5789
+ }
5790
+ ],
5791
+ "title": "Exclude Metadata",
5792
+ "description": "Exclude threads whose metadata contains this object, or any object in this list. Uses the same matching as `metadata`; threads missing the keys are not excluded."
5793
+ },
5758
5794
  "values": {
5759
5795
  "type": "object",
5760
5796
  "title": "Values",