agent-lab-sdk 0.1.40__tar.gz → 0.1.41__tar.gz
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.
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/PKG-INFO +1 -1
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/langgraph/checkpoint/agw_saver.py +21 -22
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk.egg-info/PKG-INFO +1 -1
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/pyproject.toml +1 -1
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/LICENSE +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/README.md +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/__init__.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/langgraph/checkpoint/__init__.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/langgraph/checkpoint/serde.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/llm/__init__.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/llm/agw_token_manager.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/llm/gigachat_token_manager.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/llm/llm.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/llm/throttled.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/metrics/__init__.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/metrics/metrics.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/schema/__init__.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/schema/input_types.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/schema/log_message.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/storage/__init__.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/storage/storage.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/storage/storage_v2.py +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk.egg-info/SOURCES.txt +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk.egg-info/dependency_links.txt +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk.egg-info/requires.txt +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk.egg-info/top_level.txt +0 -0
- {agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/setup.cfg +0 -0
{agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/langgraph/checkpoint/agw_saver.py
RENAMED
|
@@ -220,24 +220,33 @@ class AsyncAGWCheckpointSaver(BaseCheckpointSaver):
|
|
|
220
220
|
self._client = None
|
|
221
221
|
|
|
222
222
|
# ----------------------- universal dump/load ---------------------
|
|
223
|
-
# def _safe_dump(self, obj: Any) -> Any:
|
|
224
|
-
# """self.serde.dump → гарантированная JSON-строка."""
|
|
225
|
-
# dumped = self.serde.dumps(obj)
|
|
226
|
-
# if isinstance(dumped, (bytes, bytearray)):
|
|
227
|
-
# return base64.b64encode(dumped).decode() # str
|
|
228
|
-
# return dumped # уже json-совместимо
|
|
229
|
-
|
|
230
223
|
def _safe_dump(self, obj: Any) -> Any:
|
|
231
|
-
"""
|
|
232
|
-
|
|
224
|
+
"""
|
|
225
|
+
JSON-first сериализация:
|
|
226
|
+
1) Пытаемся через self.serde.dumps(obj).
|
|
227
|
+
- Если вернул bytes: пробуем декодировать в JSON-строку и распарсить.
|
|
228
|
+
- Если не JSON/не UTF-8 — заворачиваем как base64-строку.
|
|
229
|
+
- Если вернул dict/list/scalar — они уже JSON-совместимы.
|
|
230
|
+
2) Если self.serde.dumps(obj) бросает исключение (например, для Send),
|
|
231
|
+
делаем типизированный фолбэк {"type": str, "blob": base64 | None}.
|
|
232
|
+
"""
|
|
233
|
+
try:
|
|
234
|
+
dumped = self.serde.dumps(obj)
|
|
235
|
+
except Exception:
|
|
236
|
+
# typed fallback (как рекомендуют в LangGraph для нетривиальных типов)
|
|
237
|
+
# https://langchain-ai.github.io/langgraph/reference/checkpoints/
|
|
238
|
+
try:
|
|
239
|
+
t, b = self.serde.dumps_typed(obj)
|
|
240
|
+
except Exception:
|
|
241
|
+
# крайний случай: строковое представление
|
|
242
|
+
t, b = type(obj).__name__, str(obj).encode()
|
|
243
|
+
return {"type": t, "blob": base64.b64encode(b).decode() if b is not None else None}
|
|
244
|
+
|
|
233
245
|
if isinstance(dumped, (bytes, bytearray)):
|
|
234
246
|
try:
|
|
235
|
-
# 1) bytes → str
|
|
236
247
|
s = dumped.decode()
|
|
237
|
-
# 2) str JSON → python (list/dict/scalar)
|
|
238
248
|
return orjson.loads(s)
|
|
239
249
|
except (UnicodeDecodeError, orjson.JSONDecodeError):
|
|
240
|
-
# не UTF-8 или не JSON → base64
|
|
241
250
|
return base64.b64encode(dumped).decode()
|
|
242
251
|
return dumped
|
|
243
252
|
|
|
@@ -308,16 +317,6 @@ class AsyncAGWCheckpointSaver(BaseCheckpointSaver):
|
|
|
308
317
|
except Exception:
|
|
309
318
|
return obj
|
|
310
319
|
|
|
311
|
-
# def _safe_load(self, obj: Any) -> Any:
|
|
312
|
-
# """Обратная операция к _safe_dump."""
|
|
313
|
-
# if isinstance(obj, str):
|
|
314
|
-
# try:
|
|
315
|
-
# return self.serde.load(base64.b64decode(obj))
|
|
316
|
-
# except Exception:
|
|
317
|
-
# # не base64 — обычная строка
|
|
318
|
-
# return self.serde.load(obj)
|
|
319
|
-
# return self.serde.load(obj)
|
|
320
|
-
|
|
321
320
|
# ----------------------- config <-> api --------------------------
|
|
322
321
|
def _to_api_config(self, cfg: RunnableConfig | None) -> Dict[str, Any]:
|
|
323
322
|
if not cfg:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_lab_sdk-0.1.40 → agent_lab_sdk-0.1.41}/agent_lab_sdk/langgraph/checkpoint/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|