langchain-agentx-python 1.7.0__tar.gz → 1.8.0__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.
- {langchain-agentx-python-1.7.0/langchain_agentx_python.egg-info → langchain-agentx-python-1.8.0}/PKG-INFO +1 -1
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/__init__.py +1 -1
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/base.py +68 -9
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/adapter.py +24 -1
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/structure_lifecycle_guard.py +76 -18
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/execution.py +100 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/node_adapter.py +2 -2
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/pyproject.toml +1 -1
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/LICENSE +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/README.md +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/allowed_tools.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/clear.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/commit.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/commit_push_pr.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/compact.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/git_prompt_common.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/memory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/dispatcher.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/fork_executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/git_settings.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/prompt_shell.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/result.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/config/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/config/model_profiles.yaml +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/config/model_profiles.yaml.example +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/health/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/health/checks.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/health/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/health/preflight.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/agent_config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/interaction_profile.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/loop_config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/loop_runtime_overlay.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/model_retry_config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/runtime_settings.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/thinking_config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/token_estimator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/config/ui_display_context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/blocking_guard.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/compaction_service.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/message_utils.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/pipeline.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/query_source.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/recovery_mode.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/settings.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/base.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/collapse.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/noop.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/snip.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/context/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/exit/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/exit/exit_logic.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/exit/query_source.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/exit/reason_codes.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/exit/resolution.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/exit/terminal.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/exit/withheld_error.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/graph/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/graph/factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/graph/graph_edges.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/engine.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/executors/agent.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/executors/command.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/executors/http.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/hook_projection.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/progress_payload.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/trust.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/hook/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/injection/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/injection/dedup.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/loop_abort.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/message_contract.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/contract.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/engine_protocol.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/langgraph_adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/transcript_codec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/messages/validate.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/model_node.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/model_nodes.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/retrier.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/retry_bridge.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/retry_classifier.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/retry_events.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/retry_exceptions.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/retry_policy.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/retry_progress.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/schema_and_format.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/permissions/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/permissions/auto_mode_hook_sync.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/permissions/policy_roots_sync.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/builder.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/builtin.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/compact.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/sections.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/session_context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/session_guidance.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/static_system_prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/tool_aware_sections.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/prompt/using_your_tools.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/runtime/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/runtime/context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/runtime/context_factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/stream/graph_driver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/stream/helpers.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/stream/loop_driver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/stream/result.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/active_run_registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/async_runner.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/boundary_snapshot.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/cache_safe_params.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/display_projector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/fork_boilerplate.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/fork_ports.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/forked_runner.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/graph.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/progress.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/progress_dispatcher.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/reasoning_extractor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/runner.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/transcript.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/loop/subagent/transcript_message_builder.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/exclusion.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/external_includes.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/read_state_seeder.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/runtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/sections.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/instruction/worktree_skip.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/_deprecated/agent_memory/agent_memory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/age.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/attachments.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/entrypoint_context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/extractor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/gate.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/memory_saved.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/metrics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/prefetch.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/prompts/select_memories.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/recall.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/recall_service.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/runtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/scan.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/side_query.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/tunables.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/memdir/written_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/migrate_layout.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/session/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/session/compact_bridge.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/session/extractor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/session/prompts.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/session/session_memory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/memory/session/tool_scope.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/service.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/state.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/evaluation/store.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/agent_event_projector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/finish_event_payload_composer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/finish_outcome.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/model_end_text_backfill.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/subagent_event_mapper.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/subagent_window_text_guard.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/tool_outcome_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/workflow_aware_event_adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/workflow_container_projector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/events/workflow_event_mapper.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/logging/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/logging/debug_burst.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/logging/logging_config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/logging/logging_contract.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/replay/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/replay/cli.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/replay/service.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/replay/store.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/replay/ui.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/collector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/event_emitter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/trace_callback.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/plugin/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/plugin/builtin.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/plugin/config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/plugin/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/plugin/manifest.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/plugin/registries.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/plugin/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/anthropic.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/env.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/model_profile.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/openai.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/contracts.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/openai.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/profile.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/request_codec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/runtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/thinking_capability.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/agent_session.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/conversation_factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/conversation_recovery.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/conversation_session.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/plan_mode.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/plan_mode_attachments.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/protocol.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/session/recovery.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/core/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/core/ids.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/core/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/output/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/output/sink.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/store/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/store/file_store.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/config_home_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/accept_edits_fast_path.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/agent_home_bypass.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/base.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/capabilities.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/denial_tracking.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/denial_tracking_bridge.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/errors.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/inner_permission_chain.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/messages.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/outer_permission_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/override.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/path_safety.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_orchestrator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_rule_matcher.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_rules.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_settings_loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_settings_sync.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/permission_snapshot.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/pipeline.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/policy.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/process_loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/progress/event.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/prompt_context.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/read_permission.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/session_hints.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/session_store.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/shell_error.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/tool_name_constants.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tool_runtime/tool_schema_cache.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/built_in/general.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/memory_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/memory_prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/memory_snapshot.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/prompt_scope.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/registry/config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/registry/registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/scope.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/agent/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ask_user_question/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/ast_security.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/boundary_check.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/command_allow_rules.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/events.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/l1_decision_reason.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/mode_validation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/observability.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/output_tracker.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/output_utils.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/path_security.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/result_presenter.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/security.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/sed_validation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/semantic_matrix.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/semantics.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/shell_locator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/task_runtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/diff_generator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/display_builder.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/quote_match.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/settings_validator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/staleness.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/edit/validator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/glob/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/glob/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/glob/pagination.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/glob/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/glob/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/grep/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/grep/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/grep/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/grep/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/grep/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/plan_mode/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/plan_mode/constants.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/plan_mode/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/plan_mode/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/plan_mode/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/read/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/read/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/read/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/read/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/read/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/read/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/registry_names.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/shared/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/shared/read_state_guard.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/shared/staleness.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/bundled/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/bundled/prompts.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/bundled/registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/catalog.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/dynamic_catalog.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/dynamic_discoverer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/file_discovery.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/fork.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/guards.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/hook_registration.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/multi_source_repository.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/paths_matcher.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/plugin_loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/policy.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/repository_factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/source_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/skill/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_create/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_create/hooks.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_create/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_create/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_create/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_create/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_get/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_get/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_get/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_get/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_list/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_list/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_list/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_list/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_update/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_update/hooks.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_update/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_update/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/task_update/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/summary.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/webfetch/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/events.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/loader.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/websearch/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/backend.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/display_builder.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/limits.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/prompt.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/read_state_validator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/tool.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/tools/write/validator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/agent_settings.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/claude_temp_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/cwd.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/display_models.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/file_mtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/git/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/git/gitignore.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/git_roots.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/git_settings.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/host_platform.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/path.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/path_hierarchy.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/path_user_input.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/permissions/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/permissions/filesystem.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/rg_executable.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/settings/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/settings/managed_path.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/structured_diff.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/subprocess_text.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/temp_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/tool_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/tool_result_storage.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/unc_path.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/win_reserved_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/utils/windows_paths.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/batch.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/catalog_registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/dag.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/display_enricher.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/display_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/handlers/display_support.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/scope_resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/session_router.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/structure_utils.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/event_adapter/types.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/loop_factory.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/memory_drain_registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/memory_session_policy.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/node.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/patterns/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/patterns/chaining.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/patterns/routing.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/patterns/specs.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/runtime.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/runtime_scope_path.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/runtime_scope_registry.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/state.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/structure_collector.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/structure_errors.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/structure_validation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/task_key_domains.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/ui_catalog.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/validation.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/__init__.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/boundary.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/capabilities.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/config.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/errors.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/grant.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/l3_root_grant.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/path_canonical.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/plans.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/project_key.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/project_memory_layout.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/resolver.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/root_grant_manager.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/tool_boundary.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/validators.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workspace/view.py +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx_python.egg-info/SOURCES.txt +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx_python.egg-info/requires.txt +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx_python.egg-info/top_level.txt +0 -0
- {langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/setup.cfg +0 -0
{langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/workflow/base.py
RENAMED
|
@@ -47,6 +47,7 @@ from uuid import uuid4
|
|
|
47
47
|
from langgraph.graph import StateGraph
|
|
48
48
|
from langchain_core.runnables import RunnableConfig
|
|
49
49
|
|
|
50
|
+
from ..loop.config.agent_config import merge_run_config
|
|
50
51
|
from ..loop.hook.types import HookContext, HookEvent
|
|
51
52
|
from ..loop.hook.registry import HookRegistry
|
|
52
53
|
from ..loop.hook.engine import HookEngine
|
|
@@ -159,6 +160,13 @@ class BaseWorkflow(ABC):
|
|
|
159
160
|
# 初始化 _workflow_path(在 run() 中会更新)
|
|
160
161
|
self._workflow_path = workflow_id
|
|
161
162
|
self._workflow_session_id = None
|
|
163
|
+
# 当前 run/stream 生效的 run_config(nested as_node 默认继承 SSOT)。
|
|
164
|
+
# 仅作父→子单向继承快照源;as_node 在 node_fn 入口即读入局部变量(快照)。
|
|
165
|
+
# 不支持同一 BaseWorkflow 实例并发 run()/astream_events()(set/restore 会互踩)。
|
|
166
|
+
# 现网拓扑:嵌套子 workflow 经 Chaining stage 顺序触发;Parallelization 并行的是
|
|
167
|
+
# AgentNode/LoopTaskNode,非同一 inner 实例并发 run()。若 parallel item 挂载同一
|
|
168
|
+
# BaseWorkflow 实例且并发执行,须改用 contextvars。
|
|
169
|
+
self._active_run_config: dict[str, Any] | None = None
|
|
162
170
|
|
|
163
171
|
# === Executor 依赖:Dag/Batch/LoopTaskNode 经 _get_workflow_loop_executor() 使用 ===
|
|
164
172
|
self._graph_factory = graph_factory
|
|
@@ -329,17 +337,32 @@ class BaseWorkflow(ABC):
|
|
|
329
337
|
|
|
330
338
|
return collect_effective_structure_contract(self, workflow_structure)
|
|
331
339
|
|
|
340
|
+
def _resolve_effective_run_config(
|
|
341
|
+
self,
|
|
342
|
+
graph: Any,
|
|
343
|
+
run_config: RunnableConfig | None = None,
|
|
344
|
+
*,
|
|
345
|
+
parent_workflow: BaseWorkflow | None = None,
|
|
346
|
+
) -> dict[str, Any]:
|
|
347
|
+
"""合并 graph 绑定与 caller config;nested 默认继承 parent ``_active_run_config``。"""
|
|
348
|
+
caller = run_config
|
|
349
|
+
if caller is None and parent_workflow is not None:
|
|
350
|
+
caller = getattr(parent_workflow, "_active_run_config", None)
|
|
351
|
+
return merge_run_config(graph, caller)
|
|
352
|
+
|
|
332
353
|
async def run(
|
|
333
354
|
self,
|
|
334
355
|
initial_state: dict,
|
|
335
356
|
*,
|
|
336
357
|
parent_workflow: "BaseWorkflow | None" = None,
|
|
358
|
+
run_config: RunnableConfig | None = None,
|
|
337
359
|
) -> dict:
|
|
338
360
|
"""执行 Workflow(对外 API,用于顶层调用)。
|
|
339
361
|
|
|
340
362
|
Args:
|
|
341
363
|
initial_state: 初始状态
|
|
342
364
|
parent_workflow: 父 Workflow(用于构建层级关系,问题 20)
|
|
365
|
+
run_config: LangGraph 运行配置;缺省时继承 parent ``_active_run_config``
|
|
343
366
|
|
|
344
367
|
Returns:
|
|
345
368
|
完整的 WorkflowState,包含所有字段的状态
|
|
@@ -377,9 +400,18 @@ class BaseWorkflow(ABC):
|
|
|
377
400
|
})
|
|
378
401
|
|
|
379
402
|
graph = self.compile()
|
|
403
|
+
effective_config = self._resolve_effective_run_config(
|
|
404
|
+
graph,
|
|
405
|
+
run_config,
|
|
406
|
+
parent_workflow=parent_workflow,
|
|
407
|
+
)
|
|
408
|
+
# 写入 _active_run_config 供 nested as_node 继承;finally 恢复 previous_active。
|
|
409
|
+
# 见 __init__ 字段注释:同实例并发 run() 不在当前拓扑支持范围内。
|
|
410
|
+
previous_active = self._active_run_config
|
|
411
|
+
self._active_run_config = effective_config
|
|
380
412
|
|
|
381
413
|
try:
|
|
382
|
-
result = await graph.ainvoke(initial_state)
|
|
414
|
+
result = await graph.ainvoke(initial_state, config=effective_config)
|
|
383
415
|
|
|
384
416
|
await self._emit_hook(HookEvent.WORKFLOW_END, {
|
|
385
417
|
"workflow_id": self._workflow_id,
|
|
@@ -390,6 +422,7 @@ class BaseWorkflow(ABC):
|
|
|
390
422
|
return result
|
|
391
423
|
|
|
392
424
|
finally:
|
|
425
|
+
self._active_run_config = previous_active
|
|
393
426
|
# === 内存提取清理(问题 16)===
|
|
394
427
|
# 确保无论成功或失败都清理 pending 的 memory extraction
|
|
395
428
|
# 注意:drain 与 trace_collector 无关,memory extraction 的清理永远执行
|
|
@@ -426,12 +459,21 @@ class BaseWorkflow(ABC):
|
|
|
426
459
|
- ❌ 旧设计(错误):手算 diff,硬编码字段名,假设 reducer 是 list append
|
|
427
460
|
"""
|
|
428
461
|
async def node_fn(state: dict) -> dict:
|
|
462
|
+
# 入口即快照父 _active_run_config,避免 run() 内 set/restore 与父并发时读漂移。
|
|
463
|
+
inherited_run_config = getattr(parent_workflow, "_active_run_config", None)
|
|
429
464
|
# === 并发控制(问题 19)===
|
|
430
465
|
if outer_semaphore is not None:
|
|
431
466
|
async with outer_semaphore:
|
|
432
|
-
return await self.run(
|
|
433
|
-
|
|
434
|
-
|
|
467
|
+
return await self.run(
|
|
468
|
+
state,
|
|
469
|
+
parent_workflow=parent_workflow,
|
|
470
|
+
run_config=inherited_run_config,
|
|
471
|
+
)
|
|
472
|
+
return await self.run(
|
|
473
|
+
state,
|
|
474
|
+
parent_workflow=parent_workflow,
|
|
475
|
+
run_config=inherited_run_config,
|
|
476
|
+
)
|
|
435
477
|
|
|
436
478
|
return node_fn
|
|
437
479
|
|
|
@@ -453,8 +495,8 @@ class BaseWorkflow(ABC):
|
|
|
453
495
|
"invocation-first nodes must build LoopInvocation and use "
|
|
454
496
|
"WorkflowAgentLoopExecutor.run_invocation instead."
|
|
455
497
|
)
|
|
456
|
-
context = WorkflowNodeContext(
|
|
457
|
-
|
|
498
|
+
context = WorkflowNodeContext.bound_to_owner(
|
|
499
|
+
owner_workflow_id=self._workflow_id,
|
|
458
500
|
task_key=task_key,
|
|
459
501
|
parent_session_id=parent_session_id,
|
|
460
502
|
)
|
|
@@ -472,6 +514,7 @@ class BaseWorkflow(ABC):
|
|
|
472
514
|
parent_workflow: "BaseWorkflow | None" = None,
|
|
473
515
|
subgraphs: bool = True,
|
|
474
516
|
version: str = "v2",
|
|
517
|
+
run_config: RunnableConfig | None = None,
|
|
475
518
|
**kwargs
|
|
476
519
|
) -> AsyncIterator[dict]:
|
|
477
520
|
"""流式执行 Workflow,返回所有事件(包括嵌套子图)。
|
|
@@ -481,6 +524,7 @@ class BaseWorkflow(ABC):
|
|
|
481
524
|
parent_workflow: 父 Workflow(用于构建层级关系)
|
|
482
525
|
subgraphs: 是否包含嵌套子图事件,默认 True
|
|
483
526
|
version: 事件格式版本,"v1" 或 "v2"
|
|
527
|
+
run_config: LangGraph 运行配置;缺省时 merge 为 SDK 默认 recursion_limit
|
|
484
528
|
**kwargs: 传递给 LangGraph astream_events 的其他参数
|
|
485
529
|
|
|
486
530
|
Yields:
|
|
@@ -521,19 +565,26 @@ class BaseWorkflow(ABC):
|
|
|
521
565
|
"workflow_path": workflow_path,
|
|
522
566
|
})
|
|
523
567
|
|
|
568
|
+
previous_active = self._active_run_config
|
|
524
569
|
try:
|
|
525
570
|
# === 流式执行,传递 subgraphs 参数 ===
|
|
526
571
|
graph = self.compile()
|
|
527
572
|
|
|
528
573
|
# 注意:不注入 workflow_path 到 configurable(经验证不会透传到事件 metadata)
|
|
529
574
|
# workflow_path 由 WorkflowEventAdapter 通过 langgraph_checkpoint_ns 维护
|
|
530
|
-
|
|
575
|
+
effective_config = self._resolve_effective_run_config(
|
|
576
|
+
graph,
|
|
577
|
+
run_config,
|
|
578
|
+
parent_workflow=parent_workflow,
|
|
579
|
+
)
|
|
580
|
+
# 供 nested as_node 继承;finally 恢复。同实例并发 streaming 见 _active_run_config 字段注释。
|
|
581
|
+
self._active_run_config = effective_config
|
|
531
582
|
driver = GraphStreamDriver()
|
|
532
583
|
|
|
533
584
|
async for event in driver.run(
|
|
534
585
|
graph,
|
|
535
586
|
initial_state,
|
|
536
|
-
config=
|
|
587
|
+
config=effective_config,
|
|
537
588
|
subgraphs=subgraphs,
|
|
538
589
|
version=version,
|
|
539
590
|
**kwargs,
|
|
@@ -548,6 +599,7 @@ class BaseWorkflow(ABC):
|
|
|
548
599
|
})
|
|
549
600
|
|
|
550
601
|
finally:
|
|
602
|
+
self._active_run_config = previous_active
|
|
551
603
|
# === 内存提取清理 ===
|
|
552
604
|
await self._drain_pending_memory_extractions()
|
|
553
605
|
|
|
@@ -560,6 +612,7 @@ class BaseWorkflow(ABC):
|
|
|
560
612
|
workflow_structure: dict | None = None,
|
|
561
613
|
ui_catalog: WorkflowUiCatalog | None = None,
|
|
562
614
|
display_resolver: WorkflowDisplayResolver | None = None,
|
|
615
|
+
run_config: RunnableConfig | None = None,
|
|
563
616
|
**kwargs,
|
|
564
617
|
) -> AsyncIterator[Any]:
|
|
565
618
|
"""流式执行 Workflow,返回统一的 LangchainAgentEvent 公共事件流。
|
|
@@ -573,6 +626,7 @@ class BaseWorkflow(ABC):
|
|
|
573
626
|
workflow_structure: 结构信息(如 total_stages)
|
|
574
627
|
ui_catalog: 本次调用覆盖的 Workflow UI 目录(缺省时使用实例级 catalog)
|
|
575
628
|
display_resolver: 本次调用覆盖的 display 解析器(缺省时使用实例级 resolver)
|
|
629
|
+
run_config: LangGraph 运行配置,透传至 astream_events
|
|
576
630
|
**kwargs: 传递给 astream_events 的其他参数
|
|
577
631
|
|
|
578
632
|
Yields:
|
|
@@ -611,7 +665,12 @@ class BaseWorkflow(ABC):
|
|
|
611
665
|
)
|
|
612
666
|
|
|
613
667
|
async for event in adapter.adapt(
|
|
614
|
-
self.astream_events(
|
|
668
|
+
self.astream_events(
|
|
669
|
+
initial_state,
|
|
670
|
+
parent_workflow=parent_workflow,
|
|
671
|
+
run_config=run_config,
|
|
672
|
+
**kwargs,
|
|
673
|
+
)
|
|
615
674
|
):
|
|
616
675
|
yield event
|
|
617
676
|
|
|
@@ -165,7 +165,11 @@ class WorkflowEventAdapter:
|
|
|
165
165
|
|
|
166
166
|
elif event_type == "on_chain_end" and not node and self._stack.current_depth == 0:
|
|
167
167
|
event_name = event.get("name", "")
|
|
168
|
-
if
|
|
168
|
+
if (
|
|
169
|
+
event_name
|
|
170
|
+
and self.state.pending_starts.get("workflow")
|
|
171
|
+
and self._can_emit_root_workflow_end()
|
|
172
|
+
):
|
|
169
173
|
events.append(self._build_event(
|
|
170
174
|
WorkflowEventType.WORKFLOW_END,
|
|
171
175
|
{"workflow_id": self.workflow_id}
|
|
@@ -308,9 +312,28 @@ class WorkflowEventAdapter:
|
|
|
308
312
|
previous_depth = self._stack.current_depth
|
|
309
313
|
if previous_depth <= 0:
|
|
310
314
|
return False
|
|
315
|
+
# 只跳过无 checkpoint_ns 的内层事件(防抖栈退出 nested scope)。
|
|
316
|
+
# 带 ns 的合法 scope-exit(aggregate / 子图 / stage 的 on_chain_end)必须放行,
|
|
317
|
+
# 否则 aggregate 永不 close、栈回不到 depth 0,WORKFLOW_END 等终态事件全部发不出。
|
|
318
|
+
metadata = event.get("metadata") if isinstance(event, dict) else None
|
|
319
|
+
ckpt_ns = metadata.get("langgraph_checkpoint_ns") if isinstance(metadata, dict) else None
|
|
320
|
+
if ckpt_ns:
|
|
321
|
+
return False
|
|
311
322
|
alignment = self._depth_resolver.derive_stack_alignment(event)
|
|
312
323
|
return alignment.target_depth < previous_depth
|
|
313
324
|
|
|
325
|
+
def _can_emit_root_workflow_end(self) -> bool:
|
|
326
|
+
"""根 workflow-end 须待全部 child structure 容器 close(防空 ns 塌栈 premature end)。"""
|
|
327
|
+
for identity in self._lifecycle_guard.open_identities:
|
|
328
|
+
if "|scope:" not in identity:
|
|
329
|
+
continue
|
|
330
|
+
owner_path, scope_key = identity.rsplit("|scope:", 1)
|
|
331
|
+
# 仅 workflow 根容器:path 与 scope_key 均为 workflow_id
|
|
332
|
+
if owner_path == self.workflow_id and scope_key == self.workflow_id:
|
|
333
|
+
continue
|
|
334
|
+
return False
|
|
335
|
+
return True
|
|
336
|
+
|
|
314
337
|
def _should_emit_subworkflow_lifecycle(self, scope_path: str) -> bool:
|
|
315
338
|
"""仅 scope_origin=nested_workflow 时发 subworkflow-* 结构事件。"""
|
|
316
339
|
from langchain_agentx.workflow.structure_collector import (
|
|
@@ -4,6 +4,7 @@ structure_lifecycle_guard.py — 结构生命周期事件 open/close 幂等保
|
|
|
4
4
|
职责:
|
|
5
5
|
- 维护 open-set,同一 identity 未 close 前 suppress 重复 OPEN
|
|
6
6
|
- 已 close 后 suppress 重复 CLOSE;完整 close 后允许合法 reopen
|
|
7
|
+
- CLOSE 按 scope_key 解析 open identity,容忍 START/DONE 间 workflow_path 失同步
|
|
7
8
|
|
|
8
9
|
链路位置:
|
|
9
10
|
- Layer 3: Workflow 事件适配器
|
|
@@ -12,7 +13,7 @@ structure_lifecycle_guard.py — 结构生命周期事件 open/close 幂等保
|
|
|
12
13
|
当前裁剪范围:
|
|
13
14
|
- 仅结构生命周期容器事件(workflow / stage / item / aggregate / branch / subworkflow)
|
|
14
15
|
- 不覆盖 graph-node 等内容/调试事件
|
|
15
|
-
- identity = workflow_path|scope:scope_key
|
|
16
|
+
- OPEN identity = workflow_path|scope:scope_key;CLOSE 可匹配同 scope_key 的 open 项
|
|
16
17
|
"""
|
|
17
18
|
|
|
18
19
|
from __future__ import annotations
|
|
@@ -46,14 +47,12 @@ _CLOSE_EVENTS = frozenset(
|
|
|
46
47
|
)
|
|
47
48
|
|
|
48
49
|
|
|
49
|
-
def
|
|
50
|
-
"""
|
|
50
|
+
def extract_lifecycle_scope_key(event: WorkflowEvent) -> str | None:
|
|
51
|
+
"""从结构生命周期事件提取 scope_key(与 handler payload 字段一致)。"""
|
|
51
52
|
if event.event_type not in _OPEN_EVENTS and event.event_type not in _CLOSE_EVENTS:
|
|
52
53
|
return None
|
|
53
54
|
|
|
54
|
-
path = event.workflow_path or ""
|
|
55
55
|
data = event.data if isinstance(event.data, dict) else {}
|
|
56
|
-
scope_key: str | None = None
|
|
57
56
|
|
|
58
57
|
if event.event_type in (
|
|
59
58
|
WorkflowEventType.WORKFLOW_START,
|
|
@@ -61,47 +60,70 @@ def build_lifecycle_identity(event: WorkflowEvent) -> str | None:
|
|
|
61
60
|
WorkflowEventType.WORKFLOW_FAILED,
|
|
62
61
|
):
|
|
63
62
|
raw = data.get("workflow_id") or event.workflow_id
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
return str(raw) if raw else None
|
|
64
|
+
|
|
65
|
+
if event.event_type in (
|
|
66
66
|
WorkflowEventType.SUBWORKFLOW_START,
|
|
67
67
|
WorkflowEventType.SUBWORKFLOW_END,
|
|
68
68
|
):
|
|
69
69
|
raw = data.get("child_workflow_id")
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
return str(raw) if raw else None
|
|
71
|
+
|
|
72
|
+
if event.event_type in (
|
|
72
73
|
WorkflowEventType.STAGE_START,
|
|
73
74
|
WorkflowEventType.STAGE_DONE,
|
|
74
75
|
WorkflowEventType.STAGE_FAILED,
|
|
75
76
|
):
|
|
76
77
|
raw = data.get("stage_key")
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
return str(raw) if raw else None
|
|
79
|
+
|
|
80
|
+
if event.event_type in (
|
|
79
81
|
WorkflowEventType.PARALLEL_ITEM_START,
|
|
80
82
|
WorkflowEventType.PARALLEL_ITEM_DONE,
|
|
81
83
|
WorkflowEventType.PARALLEL_ITEM_FAILED,
|
|
82
84
|
):
|
|
83
85
|
raw = data.get("item_key")
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
return str(raw) if raw else None
|
|
87
|
+
|
|
88
|
+
if event.event_type in (
|
|
86
89
|
WorkflowEventType.PARALLEL_AGGREGATE_START,
|
|
87
90
|
WorkflowEventType.PARALLEL_AGGREGATE_DONE,
|
|
88
91
|
WorkflowEventType.PARALLEL_AGGREGATE_FAILED,
|
|
89
92
|
):
|
|
90
93
|
raw = data.get("aggregate_key")
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
return str(raw) if raw else None
|
|
95
|
+
|
|
96
|
+
if event.event_type in (
|
|
93
97
|
WorkflowEventType.ROUTE_BRANCH_START,
|
|
94
98
|
WorkflowEventType.ROUTE_BRANCH_DONE,
|
|
95
99
|
WorkflowEventType.ROUTE_BRANCH_FAILED,
|
|
96
100
|
):
|
|
97
101
|
raw = data.get("branch_key")
|
|
98
|
-
|
|
102
|
+
return str(raw) if raw else None
|
|
99
103
|
|
|
104
|
+
return None
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def build_lifecycle_identity(event: WorkflowEvent) -> str | None:
|
|
108
|
+
"""构建结构容器 identity(OPEN 登记用);非生命周期事件返回 None。"""
|
|
109
|
+
scope_key = extract_lifecycle_scope_key(event)
|
|
100
110
|
if not scope_key:
|
|
101
111
|
return None
|
|
112
|
+
path = event.workflow_path or ""
|
|
102
113
|
return f"{path}|scope:{scope_key}"
|
|
103
114
|
|
|
104
115
|
|
|
116
|
+
def paths_compatible_for_lifecycle_close(open_path: str, close_path: str) -> bool:
|
|
117
|
+
"""OPEN/DONE 的 workflow_path 互为前缀或相等时,视为同一 scope 容器。"""
|
|
118
|
+
if open_path == close_path:
|
|
119
|
+
return True
|
|
120
|
+
if close_path.startswith(f"{open_path}>"):
|
|
121
|
+
return True
|
|
122
|
+
if open_path.startswith(f"{close_path}>"):
|
|
123
|
+
return True
|
|
124
|
+
return False
|
|
125
|
+
|
|
126
|
+
|
|
105
127
|
class StructureLifecycleGuard:
|
|
106
128
|
"""结构生命周期 open-set 幂等守卫(per-adapter 实例,不跨 execution 永久 dedupe)。"""
|
|
107
129
|
|
|
@@ -113,6 +135,39 @@ class StructureLifecycleGuard:
|
|
|
113
135
|
"""当前仍 open 的 identity 集合(测试/诊断)。"""
|
|
114
136
|
return frozenset(self._open_identities)
|
|
115
137
|
|
|
138
|
+
def _resolve_close_identity(
|
|
139
|
+
self,
|
|
140
|
+
event: WorkflowEvent,
|
|
141
|
+
identity: str,
|
|
142
|
+
) -> str | None:
|
|
143
|
+
"""解析 CLOSE 应对应的 open identity;容忍 path 与 OPEN 时不一致。"""
|
|
144
|
+
if identity in self._open_identities:
|
|
145
|
+
return identity
|
|
146
|
+
|
|
147
|
+
scope_key = extract_lifecycle_scope_key(event)
|
|
148
|
+
if not scope_key:
|
|
149
|
+
return None
|
|
150
|
+
|
|
151
|
+
suffix = f"|scope:{scope_key}"
|
|
152
|
+
candidates = [oid for oid in self._open_identities if oid.endswith(suffix)]
|
|
153
|
+
if not candidates:
|
|
154
|
+
return None
|
|
155
|
+
if len(candidates) == 1:
|
|
156
|
+
return candidates[0]
|
|
157
|
+
|
|
158
|
+
close_path = event.workflow_path or ""
|
|
159
|
+
prefix_matches = [
|
|
160
|
+
oid
|
|
161
|
+
for oid in candidates
|
|
162
|
+
if paths_compatible_for_lifecycle_close(
|
|
163
|
+
oid.rsplit("|scope:", 1)[0],
|
|
164
|
+
close_path,
|
|
165
|
+
)
|
|
166
|
+
]
|
|
167
|
+
if len(prefix_matches) == 1:
|
|
168
|
+
return prefix_matches[0]
|
|
169
|
+
return None
|
|
170
|
+
|
|
116
171
|
def should_emit(self, event: WorkflowEvent) -> bool:
|
|
117
172
|
"""返回是否应向外发射该结构生命周期事件。"""
|
|
118
173
|
identity = build_lifecycle_identity(event)
|
|
@@ -126,9 +181,10 @@ class StructureLifecycleGuard:
|
|
|
126
181
|
return True
|
|
127
182
|
|
|
128
183
|
if event.event_type in _CLOSE_EVENTS:
|
|
129
|
-
|
|
184
|
+
resolved = self._resolve_close_identity(event, identity)
|
|
185
|
+
if resolved is None:
|
|
130
186
|
return False
|
|
131
|
-
self._open_identities.discard(
|
|
187
|
+
self._open_identities.discard(resolved)
|
|
132
188
|
return True
|
|
133
189
|
|
|
134
190
|
return True
|
|
@@ -141,4 +197,6 @@ class StructureLifecycleGuard:
|
|
|
141
197
|
__all__ = [
|
|
142
198
|
"StructureLifecycleGuard",
|
|
143
199
|
"build_lifecycle_identity",
|
|
200
|
+
"extract_lifecycle_scope_key",
|
|
201
|
+
"paths_compatible_for_lifecycle_close",
|
|
144
202
|
]
|
|
@@ -60,11 +60,33 @@ class WorkflowNodeContext:
|
|
|
60
60
|
task_key: str
|
|
61
61
|
parent_session_id: str | None = None
|
|
62
62
|
node_name: str | None = None
|
|
63
|
+
expected_owner_workflow_id: str | None = None
|
|
63
64
|
|
|
64
65
|
@property
|
|
65
66
|
def loop_session_id(self) -> str:
|
|
66
67
|
return WorkflowSessionIdPolicy.build_session_id(self)
|
|
67
68
|
|
|
69
|
+
@classmethod
|
|
70
|
+
def bound_to_owner(
|
|
71
|
+
cls,
|
|
72
|
+
*,
|
|
73
|
+
owner_workflow_id: str,
|
|
74
|
+
task_key: str,
|
|
75
|
+
parent_session_id: str | None = None,
|
|
76
|
+
node_name: str | None = None,
|
|
77
|
+
) -> WorkflowNodeContext:
|
|
78
|
+
"""将 loop context 绑定到 Pattern leaf 所属 workflow 实例 id。"""
|
|
79
|
+
owner = owner_workflow_id.strip()
|
|
80
|
+
if not owner:
|
|
81
|
+
raise ValueError("owner_workflow_id must not be empty")
|
|
82
|
+
return cls(
|
|
83
|
+
workflow_id=owner,
|
|
84
|
+
task_key=task_key,
|
|
85
|
+
parent_session_id=parent_session_id,
|
|
86
|
+
node_name=node_name,
|
|
87
|
+
expected_owner_workflow_id=owner,
|
|
88
|
+
)
|
|
89
|
+
|
|
68
90
|
|
|
69
91
|
class WorkflowSessionIdPolicy:
|
|
70
92
|
"""Workflow loop session_id 运行时 SSOT。"""
|
|
@@ -158,6 +180,53 @@ class WorkflowSessionIdPolicy:
|
|
|
158
180
|
seen[task_key] = str(label)
|
|
159
181
|
|
|
160
182
|
|
|
183
|
+
class LoopOwnerMismatchError(ValueError):
|
|
184
|
+
"""invocation-first loop 缺少 owner binding 或与 expected owner 不一致。"""
|
|
185
|
+
|
|
186
|
+
def __init__(
|
|
187
|
+
self,
|
|
188
|
+
*,
|
|
189
|
+
task_key: str,
|
|
190
|
+
actual_workflow_id: str,
|
|
191
|
+
expected_owner_workflow_id: str | None = None,
|
|
192
|
+
) -> None:
|
|
193
|
+
self.task_key = task_key
|
|
194
|
+
self.actual_workflow_id = actual_workflow_id
|
|
195
|
+
expected_owner = (
|
|
196
|
+
expected_owner_workflow_id.strip()
|
|
197
|
+
if isinstance(expected_owner_workflow_id, str)
|
|
198
|
+
else ""
|
|
199
|
+
)
|
|
200
|
+
self.missing_expected_owner = not expected_owner
|
|
201
|
+
actual_session_id = WorkflowSessionIdPolicy.build_session_id(
|
|
202
|
+
WorkflowNodeContext(workflow_id=actual_workflow_id, task_key=task_key)
|
|
203
|
+
)
|
|
204
|
+
self.actual_session_id = actual_session_id
|
|
205
|
+
if self.missing_expected_owner:
|
|
206
|
+
self.expected_owner_workflow_id = None
|
|
207
|
+
self.expected_session_id = None
|
|
208
|
+
super().__init__(
|
|
209
|
+
f"Loop owner binding required for task_key {task_key!r}: "
|
|
210
|
+
f"expected_owner_workflow_id is missing; "
|
|
211
|
+
f"got workflow_id {actual_workflow_id!r} "
|
|
212
|
+
f"(session_id {actual_session_id!r}). "
|
|
213
|
+
f"Use WorkflowNodeContext.bound_to_owner(...)."
|
|
214
|
+
)
|
|
215
|
+
return
|
|
216
|
+
self.expected_owner_workflow_id = expected_owner
|
|
217
|
+
expected_session_id = WorkflowSessionIdPolicy.build_session_id(
|
|
218
|
+
WorkflowNodeContext(workflow_id=expected_owner, task_key=task_key)
|
|
219
|
+
)
|
|
220
|
+
self.expected_session_id = expected_session_id
|
|
221
|
+
super().__init__(
|
|
222
|
+
f"Loop owner mismatch for task_key {task_key!r}: "
|
|
223
|
+
f"expected owner workflow_id {expected_owner!r} "
|
|
224
|
+
f"(session_id {expected_session_id!r}), "
|
|
225
|
+
f"got workflow_id {actual_workflow_id!r} "
|
|
226
|
+
f"(session_id {actual_session_id!r})"
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
|
|
161
230
|
@dataclass(frozen=True)
|
|
162
231
|
class LoopInvocation:
|
|
163
232
|
"""单次 loop graph 调用的显式描述对象。"""
|
|
@@ -264,6 +333,7 @@ class WorkflowAgentLoopExecutor:
|
|
|
264
333
|
context: WorkflowNodeContext,
|
|
265
334
|
) -> dict[str, Any]:
|
|
266
335
|
"""执行已构造好的 LoopInvocation(trace / semaphore / normalize 统一入口)。"""
|
|
336
|
+
assert_loop_owner_binding(context)
|
|
267
337
|
self._link_trace(invocation.session_id, context.workflow_id)
|
|
268
338
|
driver = LoopStreamDriver()
|
|
269
339
|
await self._drain_loop_driver(
|
|
@@ -281,6 +351,7 @@ class WorkflowAgentLoopExecutor:
|
|
|
281
351
|
version: str = "v2",
|
|
282
352
|
) -> AsyncIterator[dict[str, Any]]:
|
|
283
353
|
"""流式执行 loop graph,经 LoopStreamDriver 统一 closeout 后 yield 原始事件。"""
|
|
354
|
+
assert_loop_owner_binding(context)
|
|
284
355
|
self._link_trace(invocation.session_id, context.workflow_id)
|
|
285
356
|
driver = LoopStreamDriver()
|
|
286
357
|
async for event in self._iter_loop_driver_events(
|
|
@@ -347,6 +418,32 @@ class WorkflowAgentLoopExecutor:
|
|
|
347
418
|
return dict(output) if isinstance(output, dict) else {"result": output}
|
|
348
419
|
|
|
349
420
|
|
|
421
|
+
def loop_session_id_for_owner(*, owner_workflow_id: str, task_key: str) -> str:
|
|
422
|
+
"""从 owner workflow_id + task_key 推导 loop session_id(含 owner binding 语义)。"""
|
|
423
|
+
return WorkflowNodeContext.bound_to_owner(
|
|
424
|
+
owner_workflow_id=owner_workflow_id,
|
|
425
|
+
task_key=task_key,
|
|
426
|
+
).loop_session_id
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
def assert_loop_owner_binding(context: WorkflowNodeContext) -> None:
|
|
430
|
+
"""run_invocation / stream_invocation 入口:owner binding 必经校验。"""
|
|
431
|
+
actual_workflow_id = context.workflow_id.strip()
|
|
432
|
+
expected_owner = context.expected_owner_workflow_id
|
|
433
|
+
if expected_owner is None or not expected_owner.strip():
|
|
434
|
+
raise LoopOwnerMismatchError(
|
|
435
|
+
task_key=context.task_key,
|
|
436
|
+
actual_workflow_id=actual_workflow_id,
|
|
437
|
+
)
|
|
438
|
+
expected_owner_workflow_id = expected_owner.strip()
|
|
439
|
+
if actual_workflow_id != expected_owner_workflow_id:
|
|
440
|
+
raise LoopOwnerMismatchError(
|
|
441
|
+
task_key=context.task_key,
|
|
442
|
+
expected_owner_workflow_id=expected_owner_workflow_id,
|
|
443
|
+
actual_workflow_id=actual_workflow_id,
|
|
444
|
+
)
|
|
445
|
+
|
|
446
|
+
|
|
350
447
|
def loop_session_id_conflict_reason(
|
|
351
448
|
session_id: str,
|
|
352
449
|
*,
|
|
@@ -370,8 +467,11 @@ def loop_session_id_conflict_reason(
|
|
|
370
467
|
__all__ = [
|
|
371
468
|
"DuplicateSpecTaskKeyError",
|
|
372
469
|
"LoopInvocation",
|
|
470
|
+
"LoopOwnerMismatchError",
|
|
373
471
|
"WorkflowAgentLoopExecutor",
|
|
374
472
|
"WorkflowNodeContext",
|
|
375
473
|
"WorkflowSessionIdPolicy",
|
|
474
|
+
"assert_loop_owner_binding",
|
|
376
475
|
"loop_session_id_conflict_reason",
|
|
476
|
+
"loop_session_id_for_owner",
|
|
377
477
|
]
|
|
@@ -123,8 +123,8 @@ class WorkflowNodeAdapter:
|
|
|
123
123
|
) -> Callable[..., Any]:
|
|
124
124
|
async def node_fn(state: dict[str, Any]) -> dict[str, Any]:
|
|
125
125
|
effective_task_key = task_key or node.task_key()
|
|
126
|
-
ctx = WorkflowNodeContext(
|
|
127
|
-
|
|
126
|
+
ctx = WorkflowNodeContext.bound_to_owner(
|
|
127
|
+
owner_workflow_id=owner._workflow_id,
|
|
128
128
|
task_key=effective_task_key,
|
|
129
129
|
node_name=getattr(node, "name", None),
|
|
130
130
|
)
|
|
File without changes
|
|
File without changes
|
{langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/__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
|
{langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/registry.py
RENAMED
|
File without changes
|
{langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/result.py
RENAMED
|
File without changes
|
{langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/command/types.py
RENAMED
|
File without changes
|
{langchain-agentx-python-1.7.0 → langchain-agentx-python-1.8.0}/langchain_agentx/config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|