langchain-agentx-python 2.1.7__py3-none-any.whl → 2.1.8__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.
- langchain_agentx/__init__.py +1 -1
- langchain_agentx/loop/config/loop_config.py +5 -0
- langchain_agentx/loop/config/loop_runtime_overlay.py +6 -1
- langchain_agentx/loop/graph/factory.py +22 -2
- langchain_agentx/loop/runtime/context_factory.py +1 -0
- langchain_agentx/loop/subagent/context.py +3 -0
- langchain_agentx/loop/subagent/graph.py +1 -0
- langchain_agentx/observability/trace/__init__.py +8 -0
- langchain_agentx/observability/trace/persist_policy.py +40 -0
- langchain_agentx/session/agent_session.py +4 -0
- langchain_agentx/session/factory.py +1 -0
- langchain_agentx/workspace/capabilities.py +18 -2
- {langchain_agentx_python-2.1.7.dist-info → langchain_agentx_python-2.1.8.dist-info}/METADATA +1 -1
- {langchain_agentx_python-2.1.7.dist-info → langchain_agentx_python-2.1.8.dist-info}/RECORD +17 -16
- {langchain_agentx_python-2.1.7.dist-info → langchain_agentx_python-2.1.8.dist-info}/LICENSE +0 -0
- {langchain_agentx_python-2.1.7.dist-info → langchain_agentx_python-2.1.8.dist-info}/WHEEL +0 -0
- {langchain_agentx_python-2.1.7.dist-info → langchain_agentx_python-2.1.8.dist-info}/top_level.txt +0 -0
langchain_agentx/__init__.py
CHANGED
|
@@ -81,8 +81,13 @@ class TraceConfig:
|
|
|
81
81
|
"""观测追踪配置。
|
|
82
82
|
|
|
83
83
|
CC 对照:options.debug / queryTracking 等。
|
|
84
|
+
|
|
85
|
+
- ``enabled``:是否挂 TraceCollector 埋点(lifecycle / callback)。
|
|
86
|
+
- ``persist``:是否挂 ``SqliteTraceStore`` 写 traces.db;默认 False,避免盘胀。
|
|
87
|
+
亦可经环境变量 ``LANGCHAIN_AGENTX_TRACE_PERSIST=1`` 打开(见 persist_policy)。
|
|
84
88
|
"""
|
|
85
89
|
enabled: bool = True
|
|
90
|
+
persist: bool = False
|
|
86
91
|
visibility: str | None = None
|
|
87
92
|
parent_run_id: str | None = None
|
|
88
93
|
parent_tool_call_id: str | None = None
|
|
@@ -9,7 +9,8 @@ loop_runtime_overlay.py — L4 graph_factory 运行期 overlay(IF-G6)
|
|
|
9
9
|
→ graph_factory(overlay) → apply_to(AgentLoopConfig) → create_loop_agent
|
|
10
10
|
|
|
11
11
|
当前裁剪范围:
|
|
12
|
-
仅 session_id、trace 父链、subagent 标记、capabilities、enable_trace
|
|
12
|
+
仅 session_id、trace 父链、subagent 标记、capabilities、enable_trace / trace_persist;
|
|
13
|
+
不含 container_type。
|
|
13
14
|
"""
|
|
14
15
|
|
|
15
16
|
from __future__ import annotations
|
|
@@ -26,6 +27,7 @@ class LoopRuntimeOverlay:
|
|
|
26
27
|
|
|
27
28
|
session_id: str | None = None
|
|
28
29
|
enable_trace: bool | None = None
|
|
30
|
+
trace_persist: bool | None = None
|
|
29
31
|
capabilities: Any = None
|
|
30
32
|
parent_conversation_session_id: str | None = None
|
|
31
33
|
is_subagent: bool | None = None
|
|
@@ -41,6 +43,9 @@ class LoopRuntimeOverlay:
|
|
|
41
43
|
if self.enable_trace is not None:
|
|
42
44
|
trace = replace(trace, enabled=self.enable_trace)
|
|
43
45
|
trace_changed = True
|
|
46
|
+
if self.trace_persist is not None:
|
|
47
|
+
trace = replace(trace, persist=self.trace_persist)
|
|
48
|
+
trace_changed = True
|
|
44
49
|
if self.parent_conversation_session_id is not None:
|
|
45
50
|
trace = replace(trace, parent_conversation_session_id=self.parent_conversation_session_id)
|
|
46
51
|
trace_changed = True
|
|
@@ -305,6 +305,7 @@ def _flatten_config_for_runtime(config: AgentLoopConfig) -> _FlatLoopConfig:
|
|
|
305
305
|
agent_depth=config.agent_depth,
|
|
306
306
|
subagent_type=config.subagent.subagent_type,
|
|
307
307
|
trace_enabled=config.trace.enabled,
|
|
308
|
+
trace_persist=config.trace.persist,
|
|
308
309
|
headless=config.headless,
|
|
309
310
|
model_profile=config.model_profile,
|
|
310
311
|
model_profile_registry=config.model_profile_registry,
|
|
@@ -1143,9 +1144,28 @@ class LoopGraphBuilder:
|
|
|
1143
1144
|
if not self._config.trace.enabled:
|
|
1144
1145
|
return None
|
|
1145
1146
|
if self._services.trace_collector is not None:
|
|
1147
|
+
# 显式注入:调用方自管 store 生命周期(测试 / 宿主)
|
|
1146
1148
|
return self._services.trace_collector
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
+
|
|
1150
|
+
from ...observability.trace.persist_policy import resolve_trace_persist
|
|
1151
|
+
|
|
1152
|
+
persist = resolve_trace_persist(configured=bool(self._config.trace.persist))
|
|
1153
|
+
caps = self._services.capabilities
|
|
1154
|
+
caps_collector = (
|
|
1155
|
+
caps.trace_collector
|
|
1156
|
+
if caps is not None and getattr(caps, "trace_collector", None) is not None
|
|
1157
|
+
else None
|
|
1158
|
+
)
|
|
1159
|
+
|
|
1160
|
+
if not persist:
|
|
1161
|
+
# 不落盘:复用 caps 上无 store 的 collector;若 caps 误带 store 则改用内存 collector,避免写库。
|
|
1162
|
+
if caps_collector is not None and getattr(caps_collector, "_store", None) is None:
|
|
1163
|
+
return caps_collector
|
|
1164
|
+
return TraceCollector(store=None)
|
|
1165
|
+
|
|
1166
|
+
# persist=True:必须挂有 store 的 collector;caps 无 store 时兜底 from_env,避免「开了 persist 仍不落盘」。
|
|
1167
|
+
if caps_collector is not None and getattr(caps_collector, "_store", None) is not None:
|
|
1168
|
+
return caps_collector
|
|
1149
1169
|
return TraceCollector(SqliteTraceStore.from_env())
|
|
1150
1170
|
|
|
1151
1171
|
def _resolve_response_format_setup(
|
|
@@ -91,6 +91,7 @@ class SubagentContext:
|
|
|
91
91
|
parent_tool_call_id: str | None = None # 触发本子 Agent 的 tool_call_id
|
|
92
92
|
parent_conversation_session_id: str | None = None
|
|
93
93
|
enable_trace: bool = True
|
|
94
|
+
trace_persist: bool = False
|
|
94
95
|
runnable_config: Any = None # 父 runnable_config:仅供 tool_progress custom event 回调链;非子 raw 合并
|
|
95
96
|
isolation: str = "none"
|
|
96
97
|
worktree_dir: str | None = None
|
|
@@ -324,6 +325,7 @@ def create_subagent_context(
|
|
|
324
325
|
parent_tool_call_id=parent_tool_call_id,
|
|
325
326
|
parent_conversation_session_id=parent_conversation_id,
|
|
326
327
|
enable_trace=bool(getattr(parent_ctx, "trace_enabled", True)),
|
|
328
|
+
trace_persist=bool(getattr(parent_ctx, "trace_persist", False)),
|
|
327
329
|
isolation=isolation,
|
|
328
330
|
worktree_dir=worktree_dir,
|
|
329
331
|
workspace_root=str(parent_workspace_root),
|
|
@@ -476,6 +478,7 @@ class SubagentContextFactory:
|
|
|
476
478
|
parent_run_id=parent_runtime.parent_run_id,
|
|
477
479
|
parent_conversation_session_id=parent_runtime.parent_conversation_session_id,
|
|
478
480
|
enable_trace=not skip_transcript,
|
|
481
|
+
trace_persist=bool(getattr(parent_runtime, "trace_persist", False)),
|
|
479
482
|
workspace_root=workspace_root,
|
|
480
483
|
agent_home_segment=agent_home_segment,
|
|
481
484
|
cwd=effective_cwd,
|
|
@@ -13,6 +13,11 @@ from .sqlite_store import SqliteTraceStore
|
|
|
13
13
|
from .trace_lifecycle_collector import TraceLifecycleCollector
|
|
14
14
|
from .trace_callback import TraceCallbackHandler
|
|
15
15
|
from .hook_event_emitter import HookEventEmitter
|
|
16
|
+
from .persist_policy import (
|
|
17
|
+
ENV_TRACE_PERSIST,
|
|
18
|
+
env_trace_persist_enabled,
|
|
19
|
+
resolve_trace_persist,
|
|
20
|
+
)
|
|
16
21
|
|
|
17
22
|
__all__ = [
|
|
18
23
|
"TraceSession",
|
|
@@ -22,4 +27,7 @@ __all__ = [
|
|
|
22
27
|
"TraceLifecycleCollector",
|
|
23
28
|
"TraceCallbackHandler",
|
|
24
29
|
"HookEventEmitter",
|
|
30
|
+
"ENV_TRACE_PERSIST",
|
|
31
|
+
"env_trace_persist_enabled",
|
|
32
|
+
"resolve_trace_persist",
|
|
25
33
|
]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""
|
|
2
|
+
persist_policy.py — Trace SQLite 落盘开关解析
|
|
3
|
+
|
|
4
|
+
职责:
|
|
5
|
+
统一 ``TraceConfig.persist`` 与环境变量的合成规则;默认不落盘。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
RuntimeCapabilities / Loop factory / AgentSession → resolve_trace_persist
|
|
9
|
+
|
|
10
|
+
当前裁剪范围:
|
|
11
|
+
仅布尔开关;不负责 db 路径(路径仍由 SqliteTraceStore / AGENTX_TRACE_DB_PATH)。
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import os
|
|
17
|
+
|
|
18
|
+
ENV_TRACE_PERSIST = "LANGCHAIN_AGENTX_TRACE_PERSIST"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def env_trace_persist_enabled() -> bool:
|
|
22
|
+
"""环境变量是否打开落盘(``1`` / ``true`` / ``yes`` / ``on``)。"""
|
|
23
|
+
val = os.getenv(ENV_TRACE_PERSIST, "").strip().lower()
|
|
24
|
+
return val in ("1", "true", "yes", "on")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def resolve_trace_persist(*, configured: bool = False) -> bool:
|
|
28
|
+
"""合成是否挂 SqliteTraceStore。
|
|
29
|
+
|
|
30
|
+
规则:``configured`` OR env;默认 False。
|
|
31
|
+
单独设置 ``AGENTX_TRACE_DB_PATH`` **不会**自动打开 persist。
|
|
32
|
+
"""
|
|
33
|
+
return bool(configured) or env_trace_persist_enabled()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
__all__ = [
|
|
37
|
+
"ENV_TRACE_PERSIST",
|
|
38
|
+
"env_trace_persist_enabled",
|
|
39
|
+
"resolve_trace_persist",
|
|
40
|
+
]
|
|
@@ -82,6 +82,7 @@ class AgentSession:
|
|
|
82
82
|
transcript_writer: SubagentTranscriptStore | None = None,
|
|
83
83
|
container_type: str = "interactive",
|
|
84
84
|
enable_trace: bool = True,
|
|
85
|
+
trace_persist: bool = False,
|
|
85
86
|
capabilities: RuntimeCapabilities | None = None,
|
|
86
87
|
) -> None:
|
|
87
88
|
self._graph = graph
|
|
@@ -93,6 +94,7 @@ class AgentSession:
|
|
|
93
94
|
self._messages: list[Any] = []
|
|
94
95
|
self._container_type = container_type
|
|
95
96
|
self._enable_trace = enable_trace
|
|
97
|
+
self._trace_persist = trace_persist
|
|
96
98
|
self._transcript_writer = transcript_writer
|
|
97
99
|
self._last_transcript_uuid: str | None = None
|
|
98
100
|
self._last_finish_outcome: dict[str, Any] | None = None
|
|
@@ -100,6 +102,7 @@ class AgentSession:
|
|
|
100
102
|
self._capabilities = capabilities or RuntimeCapabilities.build(
|
|
101
103
|
resource_root=workspace_cfg.workspace_root,
|
|
102
104
|
agent_home_segment=workspace_cfg.agent_home_segment,
|
|
105
|
+
trace_persist=trace_persist,
|
|
103
106
|
)
|
|
104
107
|
self._skill_registry = SkillRegistry(workspace_root=workspace_cfg.workspace_root)
|
|
105
108
|
self._command_registry = PluginCommandRegistry()
|
|
@@ -544,6 +547,7 @@ class AgentSession:
|
|
|
544
547
|
return self._graph_factory(
|
|
545
548
|
LoopRuntimeOverlay(
|
|
546
549
|
enable_trace=self._enable_trace,
|
|
550
|
+
trace_persist=self._trace_persist,
|
|
547
551
|
capabilities=self._capabilities,
|
|
548
552
|
),
|
|
549
553
|
active_files_getter=getter,
|
|
@@ -18,7 +18,8 @@ workspace/capabilities.py — RuntimeCapabilities 单例与分档协作者
|
|
|
18
18
|
- B 档:WorkspaceDefaults(default_skills_dir / default_agents_dir)
|
|
19
19
|
- Overrides:NodeWorkspaceOverrides(skills_dir / agents_dir + validate)
|
|
20
20
|
- provider 凭证管理暂沿用原 provider 模块,后续另迁
|
|
21
|
-
- 不承载目录副作用创建;trace_collector
|
|
21
|
+
- 不承载目录副作用创建;trace_collector 默认不挂 Sqlite(persist=False);
|
|
22
|
+
失败降级不写磁盘,仅发 hook 告警
|
|
22
23
|
"""
|
|
23
24
|
|
|
24
25
|
from __future__ import annotations
|
|
@@ -145,7 +146,8 @@ class _TraceCollectorFactory:
|
|
|
145
146
|
"""trace_collector 构造 + 失败降级的小协作者。
|
|
146
147
|
|
|
147
148
|
将"构造 / retry / 降级 / hook 告警"聚合为一个职责,避免 capabilities.build
|
|
148
|
-
|
|
149
|
+
变成过程式堆叠。``persist=False`` 时直接 ``TraceCollector(store=None)``,
|
|
150
|
+
不建库;失败降级同样为 store=None(内存空操作)。
|
|
149
151
|
"""
|
|
150
152
|
|
|
151
153
|
_RETRYABLE_ERRORS: tuple[type[BaseException], ...] = (ConnectionError, TimeoutError)
|
|
@@ -154,16 +156,21 @@ class _TraceCollectorFactory:
|
|
|
154
156
|
self,
|
|
155
157
|
*,
|
|
156
158
|
primary_home_dir: Path,
|
|
159
|
+
persist: bool = False,
|
|
157
160
|
hook_registry: Any | None = None,
|
|
158
161
|
store_builder: Optional[Callable[[Path], Any]] = None,
|
|
159
162
|
) -> None:
|
|
160
163
|
self._primary_home_dir = primary_home_dir
|
|
164
|
+
self._persist = persist
|
|
161
165
|
self._hook_registry = hook_registry
|
|
162
166
|
self._store_builder = store_builder
|
|
163
167
|
|
|
164
168
|
def build(self) -> Any:
|
|
165
169
|
from langchain_agentx.observability.trace import TraceCollector
|
|
166
170
|
|
|
171
|
+
if not self._persist:
|
|
172
|
+
return TraceCollector(store=None)
|
|
173
|
+
|
|
167
174
|
try:
|
|
168
175
|
return self._build_once()
|
|
169
176
|
except self._RETRYABLE_ERRORS as e:
|
|
@@ -237,6 +244,7 @@ class RuntimeCapabilities:
|
|
|
237
244
|
hook_registry: Any | None = None,
|
|
238
245
|
profile_registry_loader: Optional[Callable[[Path], ModelProfileRegistry]] = None,
|
|
239
246
|
trace_store_builder: Optional[Callable[[Path], Any]] = None,
|
|
247
|
+
trace_persist: bool | None = None,
|
|
240
248
|
) -> "RuntimeCapabilities":
|
|
241
249
|
"""构造 RuntimeCapabilities 单例。
|
|
242
250
|
|
|
@@ -248,7 +256,10 @@ class RuntimeCapabilities:
|
|
|
248
256
|
hook_registry: 可选 hook 注册表,用于 trace_collector 失败告警。
|
|
249
257
|
profile_registry_loader: 注入点,便于测试 mock ``ModelProfileRegistry.from_files``。
|
|
250
258
|
trace_store_builder: 注入点,便于测试替换 store 构造。
|
|
259
|
+
trace_persist: 是否挂 SqliteTraceStore;``None`` 时仅看环境变量,默认不落盘。
|
|
251
260
|
"""
|
|
261
|
+
from langchain_agentx.observability.trace.persist_policy import resolve_trace_persist
|
|
262
|
+
|
|
252
263
|
from .resolver import resolve_agent_home_string, resolve_workspace_root_path
|
|
253
264
|
|
|
254
265
|
resolved_root = resolve_workspace_root_path(resource_root)
|
|
@@ -258,8 +269,10 @@ class RuntimeCapabilities:
|
|
|
258
269
|
lambda home: ModelProfileRegistry.from_files(agent_home_dir=home)
|
|
259
270
|
)
|
|
260
271
|
registry = loader(primary_home_dir)
|
|
272
|
+
persist = resolve_trace_persist(configured=bool(trace_persist))
|
|
261
273
|
collector = _TraceCollectorFactory(
|
|
262
274
|
primary_home_dir=primary_home_dir,
|
|
275
|
+
persist=persist,
|
|
263
276
|
hook_registry=hook_registry,
|
|
264
277
|
store_builder=trace_store_builder,
|
|
265
278
|
).build()
|
|
@@ -286,6 +299,7 @@ class RuntimeCapabilities:
|
|
|
286
299
|
hook_registry: Any | None = None,
|
|
287
300
|
profile_registry_loader: Optional[Callable[[Path], ModelProfileRegistry]] = None,
|
|
288
301
|
trace_store_builder: Optional[Callable[[Path], Any]] = None,
|
|
302
|
+
trace_persist: bool | None = None,
|
|
289
303
|
) -> "RuntimeCapabilities":
|
|
290
304
|
"""从 ResolvedAgentStateConfig 构造 RuntimeCapabilities 的便捷入口。
|
|
291
305
|
|
|
@@ -296,6 +310,7 @@ class RuntimeCapabilities:
|
|
|
296
310
|
hook_registry: 可选 hook 注册表,用于 trace_collector 失败告警
|
|
297
311
|
profile_registry_loader: 注入点,便于测试 mock ModelProfileRegistry.from_files
|
|
298
312
|
trace_store_builder: 注入点,便于测试替换 store 构造
|
|
313
|
+
trace_persist: 是否挂 SqliteTraceStore;默认不落盘(见 ``resolve_trace_persist``)
|
|
299
314
|
|
|
300
315
|
Returns:
|
|
301
316
|
构造好的 RuntimeCapabilities 实例
|
|
@@ -319,6 +334,7 @@ class RuntimeCapabilities:
|
|
|
319
334
|
hook_registry=hook_registry,
|
|
320
335
|
profile_registry_loader=profile_registry_loader,
|
|
321
336
|
trace_store_builder=trace_store_builder,
|
|
337
|
+
trace_persist=trace_persist,
|
|
322
338
|
)
|
|
323
339
|
|
|
324
340
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
langchain_agentx/__init__.py,sha256=
|
|
1
|
+
langchain_agentx/__init__.py,sha256=iaK-DqPxtzz5knw2dgWAe35lnhEew_tnIYPGYiYgpFc,1614
|
|
2
2
|
langchain_agentx/command/__init__.py,sha256=Ej260S5uFQcmEtGZQG_NH7BYjHoStrpBLtGUsBTxyZk,631
|
|
3
3
|
langchain_agentx/command/allowed_tools.py,sha256=TVA0VM8rm98H-QbLK_GRiX5RhEAZFxKawliMi4kk96A,3359
|
|
4
4
|
langchain_agentx/command/context.py,sha256=DIGOGPBw5UGDBm0WNNJlKx1h_9rCRmcdROv4DT61Qug,731
|
|
@@ -32,8 +32,8 @@ langchain_agentx/loop/run_context.py,sha256=dhNiLhvqD_QYacGMA0B5P3wWpSe3O6wU_XcV
|
|
|
32
32
|
langchain_agentx/loop/config/__init__.py,sha256=WdRQVXuvGU4myaGOZ8guFFvUb66jfsAIp9DLANJGieg,1083
|
|
33
33
|
langchain_agentx/loop/config/agent_config.py,sha256=tOnAHFor6dkle3FvUOVx0YsmiYVTH11UrWSyTmOLV0c,3100
|
|
34
34
|
langchain_agentx/loop/config/interaction_profile.py,sha256=UWrlI3aTWjYRq1mDeXL-xL-iCrQU-bXDXhETP6q9icY,10020
|
|
35
|
-
langchain_agentx/loop/config/loop_config.py,sha256=
|
|
36
|
-
langchain_agentx/loop/config/loop_runtime_overlay.py,sha256=
|
|
35
|
+
langchain_agentx/loop/config/loop_config.py,sha256=f_McUyP8xJAhBka3bPOkk7dkPCe1ZLRX0HI5gsEb370,15680
|
|
36
|
+
langchain_agentx/loop/config/loop_runtime_overlay.py,sha256=PuB4vFdqCHXRbAFhAJIrtwq9pUIrHafyn0ApD4s06KU,2440
|
|
37
37
|
langchain_agentx/loop/config/model_context_resolver.py,sha256=o9RR0Vnu07TD4Y3V8jk5V1NfkMcPcLjE8uaaLOe22Qo,4067
|
|
38
38
|
langchain_agentx/loop/config/model_retry_config.py,sha256=bakCbGeNRO-_SXMT_LLE3nu3m9scZe1MSxPdyEGO99w,8178
|
|
39
39
|
langchain_agentx/loop/config/runtime_settings.py,sha256=uKkwyxgx5u34qbjP1DFrIRt0EygRCtsH8tMN0kWA0Yo,1551
|
|
@@ -68,7 +68,7 @@ langchain_agentx/loop/exit/terminal.py,sha256=_DAZk-kS4Xd0nxMlayLo60-uj1Y5ozgBjL
|
|
|
68
68
|
langchain_agentx/loop/exit/withheld_error.py,sha256=LfX3j7Rgd9VoMzlz7GOs9TPuRe7RXr_Gxweyotx3tqQ,1846
|
|
69
69
|
langchain_agentx/loop/graph/__init__.py,sha256=9pUUqn7G87n3lV45iYIU24j0wcTHyCD--SSdtv3urh4,136
|
|
70
70
|
langchain_agentx/loop/graph/builtin_loop_control.py,sha256=QpiHe8b_yp4fyLlZ8nSXlW19cTrWGvYUkOGQZrXE9Ow,8722
|
|
71
|
-
langchain_agentx/loop/graph/factory.py,sha256=
|
|
71
|
+
langchain_agentx/loop/graph/factory.py,sha256=TthwQtNiOeT5K-bgBhuW89yrkdP6iyYXCcL4tn-puJk,103958
|
|
72
72
|
langchain_agentx/loop/graph/graph_edges.py,sha256=kW6Npx-nMIPzcaisCxVPkTwf5Y9GOKy1NWCNkJWeJBQ,47370
|
|
73
73
|
langchain_agentx/loop/graph/reactive_compact_node.py,sha256=633b5hTnR3BK8GBEKWhzOwGB0BQrVRKozNxDomWFjLo,8762
|
|
74
74
|
langchain_agentx/loop/graph/runtime_tools_node.py,sha256=Elppfi83hgSy_9_st4-eZ4sX_usBm2l5dlJyLDqwFjw,7062
|
|
@@ -128,7 +128,7 @@ langchain_agentx/loop/prompt/tool_aware_sections.py,sha256=vST7Z5y2eoITTTcsBo9ol
|
|
|
128
128
|
langchain_agentx/loop/prompt/using_your_tools.py,sha256=NVLscfx2jzCHOx5R1jcoTwcOMsFkPx2Y9p_XD0Von3U,5251
|
|
129
129
|
langchain_agentx/loop/runtime/__init__.py,sha256=7FEIC1nvNHIbe2azfJzg5AWH9GWYfCQopQWx8a5OMqM,555
|
|
130
130
|
langchain_agentx/loop/runtime/context.py,sha256=dJHQvhs79c6xJZMrkB6-aUNFVax2R7V20Oj48nFePJs,1242
|
|
131
|
-
langchain_agentx/loop/runtime/context_factory.py,sha256=
|
|
131
|
+
langchain_agentx/loop/runtime/context_factory.py,sha256=m3ics_dOTqEKNlf6ETIOnVj6LxVLTayuE8NIMoEl0kY,7744
|
|
132
132
|
langchain_agentx/loop/runtime/subagent_execution_paths.py,sha256=Bgyiom48uta1FZcnIE7fIxyrD-VFCRsw7s8IxIxmLb4,4033
|
|
133
133
|
langchain_agentx/loop/stream/graph_driver.py,sha256=qMZHEw3wJ19Tfbz31-VPLy8Mt6e90xKougIjAoaEFCE,3935
|
|
134
134
|
langchain_agentx/loop/stream/helpers.py,sha256=b2sqtwrAa5ic5B5AzNqItU8pmDHw13iGs3hBiShSIZk,1390
|
|
@@ -141,13 +141,13 @@ langchain_agentx/loop/subagent/active_run_registry.py,sha256=KurhAMDTBnRkdxNidaM
|
|
|
141
141
|
langchain_agentx/loop/subagent/async_runner.py,sha256=gGx8UMZbsnxUMPzc_7-XkWgd1EiuRcFAoOVUfjhFltE,13740
|
|
142
142
|
langchain_agentx/loop/subagent/boundary_snapshot.py,sha256=9cQuqN29nJDRnHnx9c8b09KRmODE2zv15Z06QyjVJps,10008
|
|
143
143
|
langchain_agentx/loop/subagent/cache_safe_params.py,sha256=-qcgdazEYRy6s4ILQuttpxraE3gsxq17Ro7LYBnuv3E,4460
|
|
144
|
-
langchain_agentx/loop/subagent/context.py,sha256=
|
|
144
|
+
langchain_agentx/loop/subagent/context.py,sha256=tjUKMOCdgrWXdQokCoA0IHI2WR8Q73pWaDGFfR_rxTs,22483
|
|
145
145
|
langchain_agentx/loop/subagent/display_projector.py,sha256=AKsGWS1c9reH0kuD5u4oQ24KsBgyt7X10iZM3ere6Fs,3504
|
|
146
146
|
langchain_agentx/loop/subagent/fork_boilerplate.py,sha256=2Uh3cwegL7V-DvtLIxjX7ik5uW5mXfY2NBzP-biREso,5005
|
|
147
147
|
langchain_agentx/loop/subagent/fork_ports.py,sha256=hZATCvlYOxNVZtR3PoOVbI1GkA0KhHEyux6lUIjG5_4,1323
|
|
148
148
|
langchain_agentx/loop/subagent/fork_worktree_notice.py,sha256=WKAJVxvRMJfbzRe_07Mgrm_zQIQCYx4RwsUnWSSOnkg,1389
|
|
149
149
|
langchain_agentx/loop/subagent/forked_runner.py,sha256=ZEwkNlbwp1-PlJB5COHMKUu_w8EnSMLRc8s0umZ4NuM,6667
|
|
150
|
-
langchain_agentx/loop/subagent/graph.py,sha256=
|
|
150
|
+
langchain_agentx/loop/subagent/graph.py,sha256=2UnkvIFzwtYAERJ7mTpK-YeQOsotPZyayMyV85SFRjw,5254
|
|
151
151
|
langchain_agentx/loop/subagent/orchestrator.py,sha256=jO4312_4ReCja3Lvv0PZ6WniWtrVqwGURYtewiwLQb0,34338
|
|
152
152
|
langchain_agentx/loop/subagent/progress.py,sha256=_4YCDnVDH8sBiwXhCQVB8OHaUQwsCOGdUTP_Z_yOdsU,6522
|
|
153
153
|
langchain_agentx/loop/subagent/progress_dispatcher.py,sha256=e1Kd16WRUOAJSeAjupukrlxHoyCR_JO84SHqntMCzdQ,3831
|
|
@@ -241,11 +241,12 @@ langchain_agentx/observability/replay/cli.py,sha256=qqF6zY0I8PHl59C5MvgXBHfcNub0
|
|
|
241
241
|
langchain_agentx/observability/replay/service.py,sha256=1sogs2sepaapj2pi6Uf1dW2GjuzRngZHBbdM9Ptdc1A,2706
|
|
242
242
|
langchain_agentx/observability/replay/store.py,sha256=R7_v2mXb1lRSmIdN--tV2TVzuQRjsTsoSvJ0r5XvhrQ,9539
|
|
243
243
|
langchain_agentx/observability/replay/ui.py,sha256=EE8Hk9IPSudMHD6pYIqn4MTmU99-Cr1Yf8P1LH3Kh8I,1456
|
|
244
|
-
langchain_agentx/observability/trace/__init__.py,sha256=
|
|
244
|
+
langchain_agentx/observability/trace/__init__.py,sha256=nFg9C3WPbhQxP61niPiFmPn7XZL26V8bfDOXJIk1nUg,885
|
|
245
245
|
langchain_agentx/observability/trace/collector.py,sha256=ySah82wEU1CRCsSvk317wsK1PVBEoDoekWGXHtXmLtA,25103
|
|
246
246
|
langchain_agentx/observability/trace/event_emitter.py,sha256=gElYR4VSpGvJWznDmFAFXVD07qOo2m-rPEBEEdB7Wdc,5054
|
|
247
247
|
langchain_agentx/observability/trace/hook_event_emitter.py,sha256=B9errn3PjRjk6JKCYvmRUMAwGdq5HVrmqYcT8ib4E4o,3536
|
|
248
248
|
langchain_agentx/observability/trace/models.py,sha256=COcD-_8rNx0TYQOrlYfR2TizkzlFolEZc2VI3xsGJy0,5010
|
|
249
|
+
langchain_agentx/observability/trace/persist_policy.py,sha256=Q-IaQkIGPc2FDsTYZc-ip-tDOYtSs8YvWArvJAI8b2A,1125
|
|
249
250
|
langchain_agentx/observability/trace/sqlite_store.py,sha256=Ix9GkAgS8LDJK0jGtHqpN3hhrXjuz_DecnxOJGlGBDw,36316
|
|
250
251
|
langchain_agentx/observability/trace/trace_callback.py,sha256=K3tFiS_i5FruZbQlWIwrqYQKbkmFbETaQr0RHoZHRd4,12551
|
|
251
252
|
langchain_agentx/observability/trace/trace_lifecycle_collector.py,sha256=b5QN2LPr45ifBHg8VmuLIoZJ7FY8RpGXp28W0vOBtvk,4309
|
|
@@ -293,12 +294,12 @@ langchain_agentx/provider/semantics/families/openai_finish_reason.py,sha256=t5eb
|
|
|
293
294
|
langchain_agentx/provider/semantics/families/openai_interpreter.py,sha256=zT7EFfHJ5fmYZ_F59vDfyrYdEwcMJANxkoW1Pt3iocI,1915
|
|
294
295
|
langchain_agentx/provider/semantics/families/openai_normalizer.py,sha256=oaf2Riz8EY6VQpc6SNKtsb-naMELw3gYV3IsnZoRBYU,2155
|
|
295
296
|
langchain_agentx/session/__init__.py,sha256=uXxjBzhW1FtvSfDTTaGZPbyeSFRzRQb2MfxDumKViug,1234
|
|
296
|
-
langchain_agentx/session/agent_session.py,sha256=
|
|
297
|
+
langchain_agentx/session/agent_session.py,sha256=u2tyI82FTZVbH8MoRSxja_6Ggor1rkQDSqJllExEphw,24790
|
|
297
298
|
langchain_agentx/session/cleanup_registry.py,sha256=aaPUn9psCwgZ27fB1qW7lzc1TeKaBvQAxhcHDiNs2Rs,4137
|
|
298
299
|
langchain_agentx/session/conversation_factory.py,sha256=zsGBx9OwAOW21sqFsjK4d9mYLRRyxC5Bp1R9OCijxzI,5911
|
|
299
300
|
langchain_agentx/session/conversation_recovery.py,sha256=OXzaxywRmqRwNA2Q1UNOpUvMlIjBzgdbsNPxPGHwoaA,5803
|
|
300
301
|
langchain_agentx/session/conversation_session.py,sha256=aQJBZlQsgg2-q_it4qvRwhPkvKNODDZ1TDsrMXMwvCE,17563
|
|
301
|
-
langchain_agentx/session/factory.py,sha256=
|
|
302
|
+
langchain_agentx/session/factory.py,sha256=9sRKDXTPe1LYphCK3qpUKUdfracv0ckKV4Es2BQdhe4,6213
|
|
302
303
|
langchain_agentx/session/plan_mode.py,sha256=GjPLBG6eVrTB7M-CeMwLqkHCQDdD93cCgwIAvOF0wRM,4710
|
|
303
304
|
langchain_agentx/session/plan_mode_attachments.py,sha256=byIJC2F3RTJ9BTWVhpbE1e1rRwahAH5anPKsMXFvUE8,13861
|
|
304
305
|
langchain_agentx/session/protocol.py,sha256=uNkNiQ2MD9ReJgPaYe5bF0x6JzVqv2TL-hAG8ME1Obs,622
|
|
@@ -742,7 +743,7 @@ langchain_agentx/workflow/patterns/routing.py,sha256=jsMcFEbV7T3bU5O1MpQXuA8Ygdl
|
|
|
742
743
|
langchain_agentx/workflow/patterns/specs.py,sha256=nR_TPOxO7qNEpaj-hYvDkpjLz3dgG4HDHGa8trlljNw,1696
|
|
743
744
|
langchain_agentx/workspace/__init__.py,sha256=QhrN4zcq4vX9Sh2td632-nyFiBDXCGl_AUGU1wcJ4-U,2821
|
|
744
745
|
langchain_agentx/workspace/boundary.py,sha256=5XyWXXLyshc1Nl3cSMKGwcy0QayDZVIdz7aMl7Y1JpM,4102
|
|
745
|
-
langchain_agentx/workspace/capabilities.py,sha256=
|
|
746
|
+
langchain_agentx/workspace/capabilities.py,sha256=KQxGsnB8RtNi_wtXgTo4K6bDLDfwnouYnL78CAlsp3c,14129
|
|
746
747
|
langchain_agentx/workspace/config.py,sha256=w3p2usd9LNJ6_alZ_VTZw3Vpm9ceITLW-gvTFvt9DqM,9537
|
|
747
748
|
langchain_agentx/workspace/errors.py,sha256=qeqf4LdhnroC867aKRXkrGsUxFN-HdnFiyzG3_2ghKo,1481
|
|
748
749
|
langchain_agentx/workspace/grant.py,sha256=bhqmrHx_iH1UuXINdGswZ4q3VnQOS8ltzgVG2V0fZag,911
|
|
@@ -757,8 +758,8 @@ langchain_agentx/workspace/root_grant_manager.py,sha256=W3gy8HTevbERbXqIgRcjzOXO
|
|
|
757
758
|
langchain_agentx/workspace/tool_boundary.py,sha256=UDwX6swpSLsx9HNkYuuRRiV5o7ZZG_Bru2Yn0c5kNX8,5724
|
|
758
759
|
langchain_agentx/workspace/validators.py,sha256=tQt-6TOcL8Fw7Ig5ebA9S7vGWh1rby920eFW6x8Tk9E,1439
|
|
759
760
|
langchain_agentx/workspace/view.py,sha256=PGasqTaqhlD03SXXazHuw4RHfV681AIdlsYqL70pEjc,4774
|
|
760
|
-
langchain_agentx_python-2.1.
|
|
761
|
-
langchain_agentx_python-2.1.
|
|
762
|
-
langchain_agentx_python-2.1.
|
|
763
|
-
langchain_agentx_python-2.1.
|
|
764
|
-
langchain_agentx_python-2.1.
|
|
761
|
+
langchain_agentx_python-2.1.8.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
762
|
+
langchain_agentx_python-2.1.8.dist-info/METADATA,sha256=chtimG16eeuexFZekvTk3_0LzlcYUQjBgcvD1VHMr3Y,24250
|
|
763
|
+
langchain_agentx_python-2.1.8.dist-info/WHEEL,sha256=51RkbunBAw4BWsgaQWTpPhg4Diwp3c9P5iaLk67Hdtg,92
|
|
764
|
+
langchain_agentx_python-2.1.8.dist-info/top_level.txt,sha256=Ge284pniNt8xea0OLk2o9o32GqVpDhOYk20fwE-0xxA,17
|
|
765
|
+
langchain_agentx_python-2.1.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{langchain_agentx_python-2.1.7.dist-info → langchain_agentx_python-2.1.8.dist-info}/top_level.txt
RENAMED
|
File without changes
|