langchain-agentx-python 1.9.5__tar.gz → 1.9.7__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.9.5/langchain_agentx_python.egg-info → langchain-agentx-python-1.9.7}/PKG-INFO +1 -1
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/__init__.py +1 -1
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/workflow_aware_event_adapter.py +87 -24
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/base.py +87 -47
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/catalog_registry.py +1 -1
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/depth_resolver.py +24 -5
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/scope_resolver.py +51 -11
- langchain-agentx-python-1.9.7/langchain_agentx/workflow/projection_isolation.py +26 -0
- langchain-agentx-python-1.9.7/langchain_agentx/workflow/run_handle.py +49 -0
- langchain-agentx-python-1.9.7/langchain_agentx/workflow/run_outcome.py +59 -0
- langchain-agentx-python-1.9.7/langchain_agentx/workflow/run_session.py +160 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/structure_validation.py +1 -1
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx_python.egg-info/SOURCES.txt +4 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/pyproject.toml +1 -1
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/LICENSE +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/README.md +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/allowed_tools.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/clear.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/commit.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/commit_push_pr.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/compact.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/git_prompt_common.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/memory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/dispatcher.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/fork_executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/git_settings.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/prompt_shell.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/result.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/command/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/config/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/config/model_profiles.yaml +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/config/model_profiles.yaml.example +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/health/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/health/checks.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/health/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/health/preflight.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/agent_config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/interaction_profile.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/loop_config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/loop_runtime_overlay.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/model_retry_config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/runtime_settings.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/thinking_config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/token_estimator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/config/ui_display_context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/blocking_guard.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/compaction_service.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/message_utils.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/pipeline.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/query_source.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/recovery_mode.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/settings.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/base.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/collapse.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/noop.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/snip.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/context/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/exit/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/exit/exit_logic.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/exit/query_source.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/exit/reason_codes.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/exit/resolution.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/exit/terminal.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/exit/withheld_error.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/graph/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/graph/factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/graph/graph_edges.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/engine.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/executors/agent.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/executors/command.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/executors/http.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/hook_projection.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/progress_payload.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/trust.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/hook/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/injection/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/injection/dedup.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/loop_abort.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/message_contract.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/contract.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/engine_protocol.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/langgraph_adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/transcript_codec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/messages/validate.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/model_node.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/model_nodes.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/retrier.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/retry_bridge.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/retry_classifier.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/retry_events.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/retry_exceptions.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/retry_policy.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/retry_progress.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/schema_and_format.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/streaming_fallback.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/permissions/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/permissions/auto_mode_hook_sync.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/permissions/policy_roots_sync.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/builder.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/builtin.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/compact.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/sections.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/session_context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/session_guidance.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/static_system_prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/tool_aware_sections.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/prompt/using_your_tools.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/run_context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/runtime/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/runtime/context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/runtime/context_factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/stream/graph_driver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/stream/helpers.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/stream/loop_driver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/stream/result.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/active_run_registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/async_runner.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/boundary_snapshot.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/cache_safe_params.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/display_projector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/fork_boilerplate.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/fork_ports.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/forked_runner.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/graph.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/progress.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/progress_dispatcher.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/reasoning_extractor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/runner.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/transcript.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/loop/subagent/transcript_message_builder.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/exclusion.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/external_includes.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/read_state_seeder.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/runtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/sections.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/instruction/worktree_skip.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/_deprecated/agent_memory/agent_memory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/age.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/attachments.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/entrypoint_context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/extractor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/gate.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/memory_saved.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/metrics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/prefetch.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/prompts/select_memories.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/recall.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/recall_service.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/runtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/scan.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/side_query.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/tunables.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/memdir/written_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/migrate_layout.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/session/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/session/compact_bridge.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/session/extractor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/session/prompts.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/session/session_memory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/memory/session/tool_scope.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/service.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/state.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/evaluation/store.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/agent_event_projector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/api_retry_projection.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/finish_event_payload_composer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/finish_outcome.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/model_end_text_backfill.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/subagent_event_mapper.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/subagent_window_text_guard.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/tool_outcome_resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/workflow_container_projector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/events/workflow_event_mapper.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/logging/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/logging/debug_burst.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/logging/logging_config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/logging/logging_contract.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/replay/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/replay/cli.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/replay/service.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/replay/store.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/replay/ui.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/collector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/event_emitter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/trace_callback.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/plugin/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/plugin/builtin.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/plugin/config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/plugin/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/plugin/manifest.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/plugin/registries.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/plugin/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/anthropic.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/env.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/model_profile.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/openai.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/contracts.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/openai.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/profile.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/request_codec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/runtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/thinking_capability.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/provider/stream_idle_watchdog.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/agent_session.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/cleanup_registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/conversation_factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/conversation_recovery.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/conversation_session.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/plan_mode.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/plan_mode_attachments.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/protocol.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/session/recovery.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/core/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/core/ids.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/core/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/output/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/output/sink.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/store/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/store/file_store.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/config_home_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/accept_edits_fast_path.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/agent_home_bypass.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/base.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/capabilities.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/denial_tracking.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/denial_tracking_bridge.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/errors.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/inner_permission_chain.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/messages.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/outer_permission_resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/override.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/path_safety.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_orchestrator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_rule_matcher.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_rules.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_settings_loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_settings_sync.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/permission_snapshot.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/pipeline.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/policy.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/process_loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/progress/event.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/prompt_context.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/read_permission.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/session_hints.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/session_store.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/shell_error.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/tool_name_constants.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tool_runtime/tool_schema_cache.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/built_in/general.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/memory_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/memory_prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/memory_snapshot.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/prompt_scope.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/registry/config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/registry/registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/scope.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/agent/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ask_user_question/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/ast_security.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/boundary_check.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/command_allow_rules.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/events.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/l1_decision_reason.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/mode_validation.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/observability.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/output_tracker.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/output_utils.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/path_security.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/result_presenter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/security.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/sed_validation.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/semantic_matrix.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/semantics.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/shell_locator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/task_runtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/diff_generator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/display_builder.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/quote_match.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/settings_validator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/staleness.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/edit/validator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/glob/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/glob/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/glob/pagination.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/glob/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/glob/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/grep/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/grep/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/grep/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/grep/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/grep/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/plan_mode/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/plan_mode/constants.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/plan_mode/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/plan_mode/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/plan_mode/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/read/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/read/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/read/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/read/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/read/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/read/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/registry_names.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/shared/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/shared/read_state_guard.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/shared/staleness.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/bundled/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/bundled/prompts.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/bundled/registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/catalog.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/dynamic_catalog.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/dynamic_discoverer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/file_discovery.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/fork.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/guards.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/hook_registration.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/multi_source_repository.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/paths_matcher.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/plugin_loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/policy.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/repository_factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/source_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/skill/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_create/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_create/hooks.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_create/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_create/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_create/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_create/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_get/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_get/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_get/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_get/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_list/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_list/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_list/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_list/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_update/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_update/hooks.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_update/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_update/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/task_update/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/summary.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/webfetch/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/events.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/loader.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/websearch/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/backend.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/display_builder.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/limits.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/prompt.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/read_state_validator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/tool.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/tools/write/validator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/agent_settings.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/claude_temp_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/cwd.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/display_models.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/file_mtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/git/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/git/gitignore.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/git_roots.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/git_settings.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/host_platform.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/path.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/path_hierarchy.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/path_user_input.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/permissions/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/permissions/filesystem.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/rg_executable.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/settings/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/settings/managed_path.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/structured_diff.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/subprocess_text.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/temp_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/tool_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/tool_result_storage.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/unc_path.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/win_reserved_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/utils/windows_paths.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/batch.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/dag.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/display_enricher.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/display_resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/handlers/display_support.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/session_router.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/structure_lifecycle_guard.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/structure_utils.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/event_adapter/types.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/execution.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/loop_factory.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/memory_drain_registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/memory_session_policy.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/node.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/node_adapter.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/patterns/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/patterns/chaining.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/patterns/routing.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/patterns/specs.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/r8_event_stream_benchmark.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/runtime.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/runtime_scope_path.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/runtime_scope_registry.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/state.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/structure_collector.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/structure_errors.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/task_key_domains.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/ui_catalog.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/validation.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/__init__.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/boundary.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/capabilities.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/config.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/errors.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/grant.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/l3_root_grant.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/path_canonical.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/plans.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/project_key.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/project_memory_layout.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/resolver.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/root_grant_manager.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/tool_boundary.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/validators.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workspace/view.py +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx_python.egg-info/requires.txt +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx_python.egg-info/top_level.txt +0 -0
- {langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/setup.cfg +0 -0
|
@@ -12,14 +12,15 @@ workflow_aware_event_adapter.py — Workflow 场景下的统一公共事件适
|
|
|
12
12
|
|
|
13
13
|
当前裁剪范围:
|
|
14
14
|
- 只桥接 workflow + agent 事件到统一公共流
|
|
15
|
+
- adapt():单轨兼容,raw 流级异常仍 re-raise
|
|
16
|
+
- adapt_isolated():Phase 2 真双轨 L1,逐事件投影异常 swallow
|
|
15
17
|
- outward finalize:正常耗尽 + 内层流异常(显示层补丁);aclose/GeneratorExit/早退不 yield
|
|
16
|
-
- finalize() 仍为同步 bookkeeping;是否 outward 由 emit_finalize 门控
|
|
17
|
-
- 不引入工厂入口;工厂在后续 Phase 处理
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
20
|
from __future__ import annotations
|
|
21
21
|
|
|
22
22
|
import asyncio
|
|
23
|
+
import logging
|
|
23
24
|
from typing import Any, AsyncIterator, Dict, Optional
|
|
24
25
|
|
|
25
26
|
from langchain_agentx.observability.events.agent_event_projector import (
|
|
@@ -31,6 +32,10 @@ from langchain_agentx.observability.events.workflow_event_mapper import (
|
|
|
31
32
|
WorkflowEventMapper,
|
|
32
33
|
)
|
|
33
34
|
from langchain_agentx.workflow.event_adapter.adapter import WorkflowEventAdapter
|
|
35
|
+
from langchain_agentx.workflow.projection_isolation import ProjectionIsolationState
|
|
36
|
+
from langchain_agentx.workflow.structure_errors import WorkflowScopeResolutionError
|
|
37
|
+
|
|
38
|
+
logger = logging.getLogger(__name__)
|
|
34
39
|
|
|
35
40
|
|
|
36
41
|
class WorkflowAwareLangGraphEventAdapter:
|
|
@@ -57,35 +62,93 @@ class WorkflowAwareLangGraphEventAdapter:
|
|
|
57
62
|
async def adapt(
|
|
58
63
|
self, events: AsyncIterator[Dict[str, Any]]
|
|
59
64
|
) -> AsyncIterator[LangchainAgentEvent]:
|
|
65
|
+
"""单轨兼容:raw 流级异常仍 re-raise(显示层 finalize 补丁)。"""
|
|
66
|
+
async for event in self._adapt_legacy_raise(events):
|
|
67
|
+
yield event
|
|
68
|
+
|
|
69
|
+
async def adapt_isolated(
|
|
70
|
+
self,
|
|
71
|
+
events: AsyncIterator[Dict[str, Any]],
|
|
72
|
+
*,
|
|
73
|
+
projection_state: ProjectionIsolationState | None = None,
|
|
74
|
+
) -> AsyncIterator[LangchainAgentEvent]:
|
|
75
|
+
"""L1 观测:投影异常 swallow(白名单),不 re-raise 掐 raw 消费循环。"""
|
|
76
|
+
state = projection_state or ProjectionIsolationState()
|
|
77
|
+
emit_finalize = False
|
|
78
|
+
try:
|
|
79
|
+
async for raw_event in events:
|
|
80
|
+
try:
|
|
81
|
+
async for mapped in self._project_raw_event(raw_event):
|
|
82
|
+
yield mapped
|
|
83
|
+
except (GeneratorExit, asyncio.CancelledError):
|
|
84
|
+
raise
|
|
85
|
+
except (WorkflowScopeResolutionError, ValueError) as exc:
|
|
86
|
+
state.record(exc)
|
|
87
|
+
logger.warning(
|
|
88
|
+
"workflow projection degraded (isolated): %s",
|
|
89
|
+
exc,
|
|
90
|
+
exc_info=True,
|
|
91
|
+
)
|
|
92
|
+
continue
|
|
93
|
+
except BaseException as exc:
|
|
94
|
+
if isinstance(exc, (KeyboardInterrupt, SystemExit)):
|
|
95
|
+
raise
|
|
96
|
+
state.record(exc)
|
|
97
|
+
logger.warning(
|
|
98
|
+
"workflow projection degraded (isolated): %s",
|
|
99
|
+
exc,
|
|
100
|
+
exc_info=True,
|
|
101
|
+
)
|
|
102
|
+
continue
|
|
103
|
+
emit_finalize = True
|
|
104
|
+
finally:
|
|
105
|
+
finalized = self._workflow_adapter.finalize()
|
|
106
|
+
if emit_finalize:
|
|
107
|
+
for workflow_event in finalized:
|
|
108
|
+
mapped = self._workflow_mapper.map(workflow_event)
|
|
109
|
+
if mapped is not None:
|
|
110
|
+
yield mapped
|
|
111
|
+
|
|
112
|
+
async def _project_raw_event(
|
|
113
|
+
self, raw_event: Dict[str, Any]
|
|
114
|
+
) -> AsyncIterator[LangchainAgentEvent]:
|
|
115
|
+
root_session_id = self._extract_session_id(raw_event)
|
|
116
|
+
if root_session_id and self._should_update_root_fallback(
|
|
117
|
+
root_session_id,
|
|
118
|
+
self.graph_name,
|
|
119
|
+
):
|
|
120
|
+
self._workflow_adapter.set_root_fallback_session_id(root_session_id)
|
|
121
|
+
|
|
122
|
+
for workflow_event in self._workflow_adapter.consume(raw_event):
|
|
123
|
+
mapped = self._workflow_mapper.map(workflow_event)
|
|
124
|
+
if mapped is not None:
|
|
125
|
+
yield mapped
|
|
126
|
+
|
|
127
|
+
loop_session_id = self._workflow_adapter.resolve_loop_session_id_for_event(
|
|
128
|
+
raw_event
|
|
129
|
+
)
|
|
130
|
+
if loop_session_id:
|
|
131
|
+
self._agent_projector.state.session_id = loop_session_id
|
|
132
|
+
elif root_session_id:
|
|
133
|
+
self._agent_projector.state.session_id = root_session_id
|
|
134
|
+
|
|
135
|
+
async for agent_event in self._agent_projector.consume(raw_event):
|
|
136
|
+
yield agent_event
|
|
137
|
+
|
|
138
|
+
async def _adapt_legacy_raise(
|
|
139
|
+
self, events: AsyncIterator[Dict[str, Any]]
|
|
140
|
+
) -> AsyncIterator[LangchainAgentEvent]:
|
|
141
|
+
"""Legacy adapt 路径:内层流异常仍 re-raise(单轨兼容)。"""
|
|
60
142
|
emit_finalize = False
|
|
61
143
|
try:
|
|
62
144
|
try:
|
|
63
145
|
async for raw_event in events:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
root_session_id,
|
|
67
|
-
self.graph_name,
|
|
68
|
-
):
|
|
69
|
-
self._workflow_adapter.set_root_fallback_session_id(root_session_id)
|
|
70
|
-
|
|
71
|
-
for workflow_event in self._workflow_adapter.consume(raw_event):
|
|
72
|
-
mapped = self._workflow_mapper.map(workflow_event)
|
|
73
|
-
if mapped is not None:
|
|
74
|
-
yield mapped
|
|
75
|
-
|
|
76
|
-
loop_session_id = self._workflow_adapter.resolve_loop_session_id_for_event(raw_event)
|
|
77
|
-
if loop_session_id:
|
|
78
|
-
self._agent_projector.state.session_id = loop_session_id
|
|
79
|
-
elif root_session_id:
|
|
80
|
-
self._agent_projector.state.session_id = root_session_id
|
|
81
|
-
|
|
82
|
-
async for agent_event in self._agent_projector.consume(raw_event):
|
|
83
|
-
yield agent_event
|
|
146
|
+
async for mapped in self._project_raw_event(raw_event):
|
|
147
|
+
yield mapped
|
|
84
148
|
emit_finalize = True
|
|
85
149
|
except (GeneratorExit, asyncio.CancelledError):
|
|
86
150
|
raise
|
|
87
151
|
except BaseException:
|
|
88
|
-
# 显示层补丁:内层流异常仍 outward 补 workflow-end(非终态权威)
|
|
89
152
|
emit_finalize = True
|
|
90
153
|
raise
|
|
91
154
|
finally:
|
|
@@ -97,7 +160,7 @@ class WorkflowAwareLangGraphEventAdapter:
|
|
|
97
160
|
yield mapped
|
|
98
161
|
|
|
99
162
|
def _sync_workflow_session_id(self, raw_event: Dict[str, Any]) -> None:
|
|
100
|
-
"""Deprecated: session 同步已内联至
|
|
163
|
+
"""Deprecated: session 同步已内联至 _project_raw_event()。"""
|
|
101
164
|
root_session_id = self._extract_session_id(raw_event)
|
|
102
165
|
if root_session_id:
|
|
103
166
|
self._workflow_adapter.set_root_fallback_session_id(root_session_id)
|
{langchain-agentx-python-1.9.5 → langchain-agentx-python-1.9.7}/langchain_agentx/workflow/base.py
RENAMED
|
@@ -32,9 +32,8 @@ import logging
|
|
|
32
32
|
import warnings
|
|
33
33
|
from abc import ABC, abstractmethod
|
|
34
34
|
from pathlib import Path
|
|
35
|
-
from collections.abc import Iterable
|
|
36
|
-
from
|
|
37
|
-
from typing import Any, AsyncIterator
|
|
35
|
+
from collections.abc import AsyncIterator, Iterable
|
|
36
|
+
from typing import Any
|
|
38
37
|
|
|
39
38
|
from .display_resolver import (
|
|
40
39
|
CatalogBackedWorkflowDisplayResolver,
|
|
@@ -331,8 +330,7 @@ class BaseWorkflow(ABC):
|
|
|
331
330
|
) -> dict:
|
|
332
331
|
"""合并 derived scoped structure + caller override,并对 Structured Workflow 做 fail-fast 校验。
|
|
333
332
|
|
|
334
|
-
内部委托 ``collect_effective_structure_contract()
|
|
335
|
-
``astream_langchain_events()`` 与既有测试调用。
|
|
333
|
+
内部委托 ``collect_effective_structure_contract()``;供 ``run_observe()`` 等入口调用。
|
|
336
334
|
"""
|
|
337
335
|
from .structure_collector import collect_effective_structure_contract
|
|
338
336
|
|
|
@@ -585,7 +583,8 @@ class BaseWorkflow(ABC):
|
|
|
585
583
|
parent_workflow=parent_workflow,
|
|
586
584
|
)
|
|
587
585
|
self._active_run_config = effective_config
|
|
588
|
-
|
|
586
|
+
capture_driver = kwargs.pop("_capture_driver", None)
|
|
587
|
+
driver = capture_driver if capture_driver is not None else GraphStreamDriver()
|
|
589
588
|
|
|
590
589
|
async for event in driver.run(
|
|
591
590
|
graph,
|
|
@@ -608,44 +607,22 @@ class BaseWorkflow(ABC):
|
|
|
608
607
|
finally:
|
|
609
608
|
self._active_run_config = previous_active
|
|
610
609
|
|
|
611
|
-
|
|
610
|
+
def _build_langgraph_adapter_config(
|
|
612
611
|
self,
|
|
613
|
-
initial_state: dict,
|
|
614
612
|
*,
|
|
615
|
-
parent_workflow: "BaseWorkflow | None" = None,
|
|
616
613
|
adapter_config: dict | None = None,
|
|
617
614
|
workflow_structure: dict | None = None,
|
|
618
615
|
ui_catalog: WorkflowUiCatalog | None = None,
|
|
619
616
|
display_resolver: WorkflowDisplayResolver | None = None,
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
) -> AsyncIterator[Any]:
|
|
623
|
-
"""流式执行 Workflow,返回统一的 LangchainAgentEvent 公共事件流。
|
|
624
|
-
|
|
625
|
-
这是 Workflow 对外唯一的结构化事件流入口。
|
|
626
|
-
|
|
627
|
-
Args:
|
|
628
|
-
initial_state: 初始状态
|
|
629
|
-
parent_workflow: 父 Workflow
|
|
630
|
-
adapter_config: workflow-aware adapter 配置(workflow_adapter 命名空间)
|
|
631
|
-
workflow_structure: 结构信息(如 total_stages)
|
|
632
|
-
ui_catalog: 本次调用覆盖的 Workflow UI 目录(缺省时使用实例级 catalog)
|
|
633
|
-
display_resolver: 本次调用覆盖的 display 解析器(缺省时使用实例级 resolver)
|
|
634
|
-
run_config: LangGraph 运行配置,透传至 astream_events
|
|
635
|
-
**kwargs: 传递给 astream_events 的其他参数
|
|
636
|
-
|
|
637
|
-
Yields:
|
|
638
|
-
LangchainAgentEvent: workflow 与 agent 统一的公共事件协议
|
|
639
|
-
"""
|
|
640
|
-
from langchain_agentx.observability.events.factory import (
|
|
641
|
-
create_langgraph_event_adapter,
|
|
642
|
-
)
|
|
643
|
-
|
|
617
|
+
) -> dict[str, Any]:
|
|
618
|
+
"""构建 workflow-aware LangGraph adapter 配置(run_observe 共用)。"""
|
|
644
619
|
config = dict(adapter_config or {})
|
|
645
620
|
workflow_adapter_config = config.get("workflow_adapter")
|
|
646
621
|
if not isinstance(workflow_adapter_config, dict):
|
|
647
622
|
workflow_adapter_config = {}
|
|
648
|
-
effective_structure = self._build_effective_event_adapter_structure(
|
|
623
|
+
effective_structure = self._build_effective_event_adapter_structure(
|
|
624
|
+
workflow_structure
|
|
625
|
+
)
|
|
649
626
|
if effective_structure:
|
|
650
627
|
workflow_adapter_config = {
|
|
651
628
|
**workflow_adapter_config,
|
|
@@ -662,23 +639,86 @@ class BaseWorkflow(ABC):
|
|
|
662
639
|
if effective_display_resolver is not None:
|
|
663
640
|
workflow_adapter_config["display_resolver"] = effective_display_resolver
|
|
664
641
|
config["workflow_adapter"] = workflow_adapter_config
|
|
642
|
+
return config
|
|
643
|
+
|
|
644
|
+
def run_observe(
|
|
645
|
+
self,
|
|
646
|
+
initial_state: dict,
|
|
647
|
+
*,
|
|
648
|
+
parent_workflow: "BaseWorkflow | None" = None,
|
|
649
|
+
adapter_config: dict | None = None,
|
|
650
|
+
workflow_structure: dict | None = None,
|
|
651
|
+
ui_catalog: WorkflowUiCatalog | None = None,
|
|
652
|
+
display_resolver: WorkflowDisplayResolver | None = None,
|
|
653
|
+
run_config: RunnableConfig | None = None,
|
|
654
|
+
**kwargs: Any,
|
|
655
|
+
):
|
|
656
|
+
"""Phase 2 真双轨入口:返回 L0 outcome Task + L1 观测流(F4 producer-consumer)。
|
|
657
|
+
|
|
658
|
+
消费契约:
|
|
659
|
+
- L1:``async for event in handle.events``(SSE / 缓冲投影)
|
|
660
|
+
- L0:``await handle.outcome``(execution authority)
|
|
661
|
+
- 须**并发或顺序消费 events** 以排空 raw queue;仅 ``await outcome`` 且不读
|
|
662
|
+
events 会在有界队列上阻塞 L0 drain。
|
|
663
|
+
- 仅需程序化 L0 结果时用 ``run_with_outcome()``(内部会 drain events)。
|
|
664
|
+
|
|
665
|
+
structure fail-fast 在启动 L0 drain 之前执行(``_build_langgraph_adapter_config``)。
|
|
666
|
+
"""
|
|
667
|
+
from langchain_agentx.workflow.run_session import WorkflowRunSession
|
|
665
668
|
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
669
|
+
self._build_langgraph_adapter_config(
|
|
670
|
+
adapter_config=adapter_config,
|
|
671
|
+
workflow_structure=workflow_structure,
|
|
672
|
+
ui_catalog=ui_catalog,
|
|
673
|
+
display_resolver=display_resolver,
|
|
670
674
|
)
|
|
671
675
|
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
676
|
+
astream_kwargs = {
|
|
677
|
+
key: value
|
|
678
|
+
for key, value in kwargs.items()
|
|
679
|
+
if key not in {"adapter_config", "workflow_structure", "ui_catalog", "display_resolver", "run_config"}
|
|
680
|
+
}
|
|
681
|
+
session = WorkflowRunSession(
|
|
682
|
+
self,
|
|
683
|
+
initial_state,
|
|
684
|
+
parent_workflow=parent_workflow,
|
|
685
|
+
adapter_config=adapter_config,
|
|
686
|
+
workflow_structure=workflow_structure,
|
|
687
|
+
ui_catalog=ui_catalog,
|
|
688
|
+
display_resolver=display_resolver,
|
|
689
|
+
run_config=run_config,
|
|
690
|
+
astream_kwargs=astream_kwargs,
|
|
691
|
+
)
|
|
692
|
+
return session.start()
|
|
693
|
+
|
|
694
|
+
async def run_with_outcome(
|
|
695
|
+
self,
|
|
696
|
+
initial_state: dict,
|
|
697
|
+
*,
|
|
698
|
+
parent_workflow: "BaseWorkflow | None" = None,
|
|
699
|
+
adapter_config: dict | None = None,
|
|
700
|
+
workflow_structure: dict | None = None,
|
|
701
|
+
ui_catalog: WorkflowUiCatalog | None = None,
|
|
702
|
+
display_resolver: WorkflowDisplayResolver | None = None,
|
|
703
|
+
run_config: RunnableConfig | None = None,
|
|
704
|
+
**kwargs: Any,
|
|
705
|
+
):
|
|
706
|
+
"""程序化 L0 authority: drain 完毕并消费观测轨以释放 raw queue。"""
|
|
707
|
+
from langchain_agentx.workflow.run_outcome import WorkflowRunOutcome
|
|
681
708
|
|
|
709
|
+
handle = self.run_observe(
|
|
710
|
+
initial_state,
|
|
711
|
+
parent_workflow=parent_workflow,
|
|
712
|
+
adapter_config=adapter_config,
|
|
713
|
+
workflow_structure=workflow_structure,
|
|
714
|
+
ui_catalog=ui_catalog,
|
|
715
|
+
display_resolver=display_resolver,
|
|
716
|
+
run_config=run_config,
|
|
717
|
+
**kwargs,
|
|
718
|
+
)
|
|
719
|
+
async for _ in handle.events:
|
|
720
|
+
pass
|
|
721
|
+
return await handle.outcome
|
|
682
722
|
|
|
683
723
|
async def _emit_workflow_end_best_effort(self, ctx: dict) -> None:
|
|
684
724
|
"""WORKFLOW_END 降级为 best-effort:失败不阻断 drain / config 恢复。"""
|
|
@@ -8,7 +8,7 @@ catalog_registry.py — Workflow UI catalog 注册表
|
|
|
8
8
|
|
|
9
9
|
链路位置:
|
|
10
10
|
- Layer 3: workflow 领域 UI 语义层
|
|
11
|
-
- BaseWorkflow.compile /
|
|
11
|
+
- BaseWorkflow.compile / run_observe 前收集 → display resolver 按 ctx.workflow_id 路由
|
|
12
12
|
|
|
13
13
|
当前裁剪范围:
|
|
14
14
|
- 仅静态 catalog 收集与只读 lookup,不负责运行期 display 计算
|
|
@@ -4,7 +4,7 @@ depth_resolver.py — LangGraph 嵌套深度解析器(纯推断,不改栈)
|
|
|
4
4
|
职责:
|
|
5
5
|
- 从 LangGraph 事件 metadata 推导栈对齐目标(depth + segment_ids)
|
|
6
6
|
- 禁止改 WorkflowStack;栈变更唯一入口为 WorkflowStack.reconcile_to_depth
|
|
7
|
-
- 过滤 Agent loop 内部 technical
|
|
7
|
+
- 过滤 Agent loop 内部 technical / hook 节点,不抬升为 public scope path
|
|
8
8
|
|
|
9
9
|
链路位置:
|
|
10
10
|
- Layer 3: Workflow 事件适配器
|
|
@@ -13,7 +13,7 @@ depth_resolver.py — LangGraph 嵌套深度解析器(纯推断,不改栈)
|
|
|
13
13
|
当前裁剪范围:
|
|
14
14
|
- 仅支持 LangGraph v2 事件格式(langgraph_checkpoint_ns | 分段)
|
|
15
15
|
- 不支持 configurable.workflow_path(经验证不存在于事件 metadata)
|
|
16
|
-
- internal
|
|
16
|
+
- internal 集合对齐 F2(hook_node_names ∪ loop_end_nodes 默认 ∪ tools/model)
|
|
17
17
|
|
|
18
18
|
契约表与 snapshot 见 test_depth_resolver.py(LangGraph 事件变样时只改本模块 + 测试表)。
|
|
19
19
|
"""
|
|
@@ -23,8 +23,27 @@ from __future__ import annotations
|
|
|
23
23
|
from dataclasses import dataclass
|
|
24
24
|
from typing import Any
|
|
25
25
|
|
|
26
|
-
#
|
|
27
|
-
|
|
26
|
+
# F2 冻结:与 agent_event_projector 默认 hook_node_names ∪ loop_end_nodes ∪ {tools, model}
|
|
27
|
+
_LANGGRAPH_INTERNAL_HOOK_NODE_NAMES = frozenset(
|
|
28
|
+
{
|
|
29
|
+
"hook_loop_start",
|
|
30
|
+
"hook_before_model",
|
|
31
|
+
"hook_after_model",
|
|
32
|
+
"hook_stop",
|
|
33
|
+
"hook_loop_end",
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
_LANGGRAPH_INTERNAL_LOOP_END_NODE_NAMES = frozenset(
|
|
37
|
+
{
|
|
38
|
+
"loop_controller",
|
|
39
|
+
"prune_and_compress",
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
LANGGRAPH_INTERNAL_LOOP_NODE_NAMES = (
|
|
43
|
+
frozenset({"tools", "model"})
|
|
44
|
+
| _LANGGRAPH_INTERNAL_HOOK_NODE_NAMES
|
|
45
|
+
| _LANGGRAPH_INTERNAL_LOOP_END_NODE_NAMES
|
|
46
|
+
)
|
|
28
47
|
|
|
29
48
|
|
|
30
49
|
@dataclass(frozen=True)
|
|
@@ -56,7 +75,7 @@ class DepthResolver:
|
|
|
56
75
|
|
|
57
76
|
与真实 LangGraph 嵌套 compiled 子图对齐:内层 parallel item 事件
|
|
58
77
|
通常没有 node=="" 的子图启动事件,需靠 ns 分段 + node 联合推断。
|
|
59
|
-
Agent loop 内
|
|
78
|
+
Agent loop 内 internal 节点对齐到最近 public scope,不额外 push 栈帧。
|
|
60
79
|
"""
|
|
61
80
|
metadata = event.get("metadata", {})
|
|
62
81
|
node = metadata.get("langgraph_node", "")
|
|
@@ -3,7 +3,8 @@ scope_resolver.py — Workflow event adapter active scope 解析
|
|
|
3
3
|
|
|
4
4
|
职责:
|
|
5
5
|
- 根据 WorkflowStack.build_path() 从 flat scopes[path] registry 解析当前 active scope
|
|
6
|
-
-
|
|
6
|
+
- public orphan path miss 时 hard-fail
|
|
7
|
+
- internal 尾段 path miss 时 warn + registered ancestor 回退(A00 P-LOSSY / P-EXEC)
|
|
7
8
|
|
|
8
9
|
链路位置:
|
|
9
10
|
- Layer 3: Workflow 事件适配器
|
|
@@ -13,6 +14,7 @@ scope_resolver.py — Workflow event adapter active scope 解析
|
|
|
13
14
|
- 仅 dict lookup,不扫描 workflow 实例或 graph
|
|
14
15
|
- scope key 与 WorkflowStack.build_path() / RuntimeScopePath.key() 一致
|
|
15
16
|
- legacy config 无 scopes 时由 root 字段合成仅含 root 的 registry
|
|
17
|
+
- 禁止 blanket root 兜底;无 registered 祖先时仍 raise
|
|
16
18
|
"""
|
|
17
19
|
|
|
18
20
|
from __future__ import annotations
|
|
@@ -23,6 +25,7 @@ from typing import Any
|
|
|
23
25
|
from langchain_agentx.workflow.runtime_scope_registry import resolve_effective_scopes
|
|
24
26
|
from langchain_agentx.workflow.structure_errors import WorkflowScopeResolutionError
|
|
25
27
|
|
|
28
|
+
from .depth_resolver import LANGGRAPH_INTERNAL_LOOP_NODE_NAMES
|
|
26
29
|
from .stack import WorkflowStack
|
|
27
30
|
|
|
28
31
|
logger = logging.getLogger(__name__)
|
|
@@ -32,6 +35,10 @@ _SCOPE_METADATA_FIELDS = frozenset(
|
|
|
32
35
|
)
|
|
33
36
|
|
|
34
37
|
|
|
38
|
+
def _path_tail_segment(scope_key: str) -> str:
|
|
39
|
+
return scope_key.rsplit(">", 1)[-1]
|
|
40
|
+
|
|
41
|
+
|
|
35
42
|
class WorkflowScopeResolver:
|
|
36
43
|
"""按当前 workflow 栈路径从 flat scopes registry 解析 active structure scope。"""
|
|
37
44
|
|
|
@@ -73,16 +80,20 @@ class WorkflowScopeResolver:
|
|
|
73
80
|
return entry
|
|
74
81
|
|
|
75
82
|
self._record_scope_miss(scope_key)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
|
|
84
|
+
if not self._is_internal_path_miss(scope_key):
|
|
85
|
+
raise self._build_scope_resolution_error(scope_key)
|
|
86
|
+
|
|
87
|
+
ancestor = self._nearest_registered_ancestor_entry()
|
|
88
|
+
if ancestor is not None:
|
|
89
|
+
logger.warning(
|
|
90
|
+
"workflow scope miss degraded to ancestor: path=%r ancestor=%r",
|
|
91
|
+
scope_key,
|
|
92
|
+
ancestor.get("scope_key"),
|
|
93
|
+
)
|
|
94
|
+
return ancestor
|
|
95
|
+
|
|
96
|
+
raise self._build_scope_resolution_error(scope_key)
|
|
86
97
|
|
|
87
98
|
@staticmethod
|
|
88
99
|
def _strip_scope_metadata(scope: dict[str, Any]) -> dict[str, Any]:
|
|
@@ -92,6 +103,35 @@ class WorkflowScopeResolver:
|
|
|
92
103
|
if key not in _SCOPE_METADATA_FIELDS
|
|
93
104
|
}
|
|
94
105
|
|
|
106
|
+
def _is_internal_path_miss(self, scope_key: str) -> bool:
|
|
107
|
+
"""miss path 末段为 internal loop 节点 → 视为 internal 误抬,可降级。"""
|
|
108
|
+
if ">" not in scope_key:
|
|
109
|
+
return False
|
|
110
|
+
return _path_tail_segment(scope_key) in LANGGRAPH_INTERNAL_LOOP_NODE_NAMES
|
|
111
|
+
|
|
112
|
+
def _nearest_registered_ancestor_entry(self) -> dict[str, Any] | None:
|
|
113
|
+
"""沿 build_path() 的 '>' 分段前缀向上 walk,返回首个 scope_entry_at 命中。"""
|
|
114
|
+
scope_key = self.current_scope_key()
|
|
115
|
+
parts = scope_key.split(">")
|
|
116
|
+
for depth in range(len(parts) - 1, 0, -1):
|
|
117
|
+
prefix = ">".join(parts[:depth])
|
|
118
|
+
entry = self.scope_entry_at(prefix)
|
|
119
|
+
if entry is not None:
|
|
120
|
+
return entry
|
|
121
|
+
return None
|
|
122
|
+
|
|
123
|
+
def _build_scope_resolution_error(self, scope_key: str) -> WorkflowScopeResolutionError:
|
|
124
|
+
detail_parts = [
|
|
125
|
+
f"path={scope_key!r}",
|
|
126
|
+
f"depth={self._stack.current_depth}",
|
|
127
|
+
f"available_keys={sorted(self._scopes)!r}",
|
|
128
|
+
]
|
|
129
|
+
return WorkflowScopeResolutionError(
|
|
130
|
+
"workflow scope miss: "
|
|
131
|
+
+ " ".join(detail_parts)
|
|
132
|
+
+ "; scopes registry has no entry for this runtime path"
|
|
133
|
+
)
|
|
134
|
+
|
|
95
135
|
def _record_scope_miss(self, scope_key: str) -> None:
|
|
96
136
|
if scope_key in self._scope_misses:
|
|
97
137
|
return
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""
|
|
2
|
+
projection_isolation.py — L1 投影隔离状态(Phase 2 adapt_isolated)
|
|
3
|
+
|
|
4
|
+
职责:
|
|
5
|
+
记录投影层降级与诊断;不参与 L0 authority 判定。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
WorkflowAwareLangGraphEventAdapter.adapt_isolated → WorkflowRunOutcome.projection_*
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
from dataclasses import dataclass, field
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@dataclass
|
|
17
|
+
class ProjectionIsolationState:
|
|
18
|
+
degraded: bool = False
|
|
19
|
+
errors: list[str] = field(default_factory=list)
|
|
20
|
+
|
|
21
|
+
def record(self, exc: BaseException) -> None:
|
|
22
|
+
self.degraded = True
|
|
23
|
+
self.errors.append(str(exc))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
__all__ = ["ProjectionIsolationState"]
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""
|
|
2
|
+
run_handle.py — Workflow 真双轨对外句柄(Phase 2)
|
|
3
|
+
|
|
4
|
+
职责:
|
|
5
|
+
暴露 L0 outcome Task 与 L1 观测流;类型 SSOT 在 SDK,宿主薄封装转发。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
BaseWorkflow.run_observe() → stream_ui wrap_workflow_run / new_agent registry(Step 2+)
|
|
9
|
+
|
|
10
|
+
当前裁剪范围:
|
|
11
|
+
F6:观测方 early break 不 cancel L0 drain;outcome Task 独立完成。
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from collections.abc import AsyncIterator
|
|
17
|
+
from dataclasses import dataclass
|
|
18
|
+
from typing import TYPE_CHECKING
|
|
19
|
+
|
|
20
|
+
import asyncio
|
|
21
|
+
|
|
22
|
+
if TYPE_CHECKING:
|
|
23
|
+
from langchain_agentx.observability.events.agent_event_projector import (
|
|
24
|
+
LangchainAgentEvent,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
from .run_outcome import WorkflowRunOutcome
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@dataclass
|
|
31
|
+
class WorkflowRunHandle:
|
|
32
|
+
"""真双轨句柄:authority 读 outcome;SSE/缓冲读 events。
|
|
33
|
+
|
|
34
|
+
消费契约(F4 producer-consumer):
|
|
35
|
+
- ``events`` 与 ``outcome`` 由 ``WorkflowRunSession`` 的 L0/L1 双 task 驱动。
|
|
36
|
+
- 宿主须消费 ``events``(全量 drain 或投影边读边写),否则 L0 可能在有界
|
|
37
|
+
raw queue 上阻塞,``outcome`` 无法完成。
|
|
38
|
+
- F6:观测方 early break / aclose 不 cancel L0;仍应 ``await outcome`` 取 authority。
|
|
39
|
+
- 仅要 L0 结果时用 ``BaseWorkflow.run_with_outcome()``。
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
outcome: asyncio.Task[WorkflowRunOutcome]
|
|
43
|
+
events: AsyncIterator[LangchainAgentEvent]
|
|
44
|
+
|
|
45
|
+
async def await_outcome(self) -> WorkflowRunOutcome:
|
|
46
|
+
return await self.outcome
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
__all__ = ["WorkflowRunHandle"]
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""
|
|
2
|
+
run_outcome.py — Workflow L0 execution authority outcome (Phase 2 SSOT)
|
|
3
|
+
|
|
4
|
+
职责:
|
|
5
|
+
承载 GraphStreamDriver drain 后的 authority 字段;供 run_observe / run_with_outcome 返回。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
WorkflowRunSession L0 task finalize → 宿主 authority(stream_ui / new_agent Step 2+)
|
|
9
|
+
|
|
10
|
+
当前裁剪范围:
|
|
11
|
+
F5 映射:execution_error = driver.result.final_error;graph_completed 不受 L1 degraded 改写。
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from dataclasses import dataclass, field
|
|
17
|
+
from typing import Any
|
|
18
|
+
|
|
19
|
+
from langchain_agentx.loop.stream.graph_driver import GraphStreamDriver
|
|
20
|
+
from langchain_agentx.loop.stream.result import StreamDriverResult
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@dataclass
|
|
24
|
+
class WorkflowRunOutcome:
|
|
25
|
+
"""L0 authority SSOT — graph drain 结果,非 L1 投影流推断。"""
|
|
26
|
+
|
|
27
|
+
graph_completed: bool = False
|
|
28
|
+
graph_output: dict[str, Any] | None = None
|
|
29
|
+
execution_error: BaseException | None = None
|
|
30
|
+
projection_degraded: bool = False
|
|
31
|
+
projection_errors: list[str] = field(default_factory=list)
|
|
32
|
+
driver_result: StreamDriverResult | None = None
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def build_workflow_run_outcome(
|
|
36
|
+
driver: GraphStreamDriver,
|
|
37
|
+
*,
|
|
38
|
+
projection_degraded: bool = False,
|
|
39
|
+
projection_errors: list[str] | None = None,
|
|
40
|
+
l0_exc: BaseException | None = None,
|
|
41
|
+
) -> WorkflowRunOutcome:
|
|
42
|
+
"""F5:从 GraphStreamDriver.result 构建 authority outcome。"""
|
|
43
|
+
result = driver.result
|
|
44
|
+
execution_error = result.final_error
|
|
45
|
+
if execution_error is None and l0_exc is not None:
|
|
46
|
+
execution_error = l0_exc
|
|
47
|
+
return WorkflowRunOutcome(
|
|
48
|
+
graph_completed=result.graph_completed,
|
|
49
|
+
graph_output=(
|
|
50
|
+
dict(result.graph_output) if isinstance(result.graph_output, dict) else None
|
|
51
|
+
),
|
|
52
|
+
execution_error=execution_error,
|
|
53
|
+
projection_degraded=projection_degraded,
|
|
54
|
+
projection_errors=list(projection_errors or []),
|
|
55
|
+
driver_result=result,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
__all__ = ["WorkflowRunOutcome", "build_workflow_run_outcome"]
|