langchain-agentx-python 1.9.4__tar.gz → 1.9.5__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.4/langchain_agentx_python.egg-info → langchain-agentx-python-1.9.5}/PKG-INFO +1 -1
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/__init__.py +1 -1
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/loop_config.py +6 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/model_retry_config.py +81 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/graph/factory.py +130 -33
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/graph/graph_edges.py +129 -2
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/model_node.py +370 -14
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/retrier.py +25 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/retry_classifier.py +3 -2
- langchain-agentx-python-1.9.5/langchain_agentx/loop/model/streaming_fallback.py +158 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/stream/loop_driver.py +22 -1
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/stream/result.py +1 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/runner.py +7 -4
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/agent_event_projector.py +42 -13
- langchain-agentx-python-1.9.5/langchain_agentx/observability/events/api_retry_projection.py +67 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/anthropic.py +11 -1
- langchain-agentx-python-1.9.5/langchain_agentx/provider/stream_idle_watchdog.py +188 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/loop_adapter.py +10 -5
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx_python.egg-info/SOURCES.txt +3 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/pyproject.toml +1 -1
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/LICENSE +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/README.md +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/allowed_tools.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/clear.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/commit.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/commit_push_pr.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/compact.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/git_prompt_common.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/memory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/dispatcher.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/fork_executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/git_settings.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/prompt_shell.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/result.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/command/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/config/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/config/model_profiles.yaml +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/config/model_profiles.yaml.example +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/health/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/health/checks.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/health/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/health/preflight.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/agent_config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/interaction_profile.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/loop_runtime_overlay.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/runtime_settings.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/thinking_config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/token_estimator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/config/ui_display_context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/blocking_guard.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/compaction_service.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/message_utils.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/pipeline.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/query_source.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/recovery_mode.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/settings.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/base.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/collapse.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/noop.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/snip.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/context/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/exit/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/exit/exit_logic.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/exit/query_source.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/exit/reason_codes.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/exit/resolution.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/exit/terminal.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/exit/withheld_error.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/graph/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/engine.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/executors/agent.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/executors/command.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/executors/http.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/hook_projection.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/progress_payload.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/trust.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/hook/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/injection/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/injection/dedup.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/loop_abort.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/message_contract.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/contract.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/engine_protocol.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/langgraph_adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/transcript_codec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/messages/validate.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/model_nodes.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/retry_bridge.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/retry_events.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/retry_exceptions.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/retry_policy.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/retry_progress.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/schema_and_format.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/permissions/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/permissions/auto_mode_hook_sync.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/permissions/policy_roots_sync.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/builder.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/builtin.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/compact.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/sections.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/session_context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/session_guidance.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/static_system_prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/tool_aware_sections.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/prompt/using_your_tools.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/run_context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/runtime/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/runtime/context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/runtime/context_factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/stream/graph_driver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/stream/helpers.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/active_run_registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/async_runner.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/boundary_snapshot.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/cache_safe_params.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/display_projector.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/fork_boilerplate.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/fork_ports.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/forked_runner.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/graph.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/progress.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/progress_dispatcher.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/reasoning_extractor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/transcript.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/loop/subagent/transcript_message_builder.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/exclusion.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/external_includes.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/read_state_seeder.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/runtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/sections.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/instruction/worktree_skip.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/_deprecated/agent_memory/agent_memory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/age.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/attachments.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/entrypoint_context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/extractor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/gate.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/memory_saved.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/metrics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/prefetch.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/prompts/select_memories.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/recall.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/recall_service.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/runtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/scan.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/side_query.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/tunables.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/memdir/written_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/migrate_layout.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/session/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/session/compact_bridge.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/session/extractor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/session/prompts.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/session/session_memory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/memory/session/tool_scope.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/service.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/state.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/evaluation/store.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/finish_event_payload_composer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/finish_outcome.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/model_end_text_backfill.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/subagent_event_mapper.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/subagent_window_text_guard.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/tool_outcome_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/workflow_aware_event_adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/workflow_container_projector.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/events/workflow_event_mapper.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/logging/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/logging/debug_burst.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/logging/logging_config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/logging/logging_contract.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/replay/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/replay/cli.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/replay/service.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/replay/store.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/replay/ui.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/collector.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/event_emitter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/trace_callback.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/plugin/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/plugin/builtin.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/plugin/config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/plugin/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/plugin/manifest.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/plugin/registries.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/plugin/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/env.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/model_profile.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/openai.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/contracts.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/openai.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/profile.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/request_codec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/runtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/thinking_capability.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/agent_session.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/cleanup_registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/conversation_factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/conversation_recovery.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/conversation_session.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/plan_mode.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/plan_mode_attachments.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/protocol.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/session/recovery.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/core/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/core/ids.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/core/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/output/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/output/sink.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/store/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/store/file_store.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/config_home_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/accept_edits_fast_path.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/agent_home_bypass.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/base.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/capabilities.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/denial_tracking.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/denial_tracking_bridge.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/errors.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/inner_permission_chain.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/messages.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/outer_permission_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/override.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/path_safety.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_orchestrator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_rule_matcher.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_rules.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_settings_loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_settings_sync.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/permission_snapshot.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/pipeline.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/policy.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/process_loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/progress/event.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/prompt_context.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/read_permission.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/session_hints.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/session_store.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/shell_error.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/tool_name_constants.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tool_runtime/tool_schema_cache.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/built_in/general.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/memory_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/memory_prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/memory_snapshot.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/prompt_scope.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/registry/config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/registry/registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/scope.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/agent/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ask_user_question/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/ast_security.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/boundary_check.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/command_allow_rules.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/events.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/l1_decision_reason.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/mode_validation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/observability.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/output_tracker.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/output_utils.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/path_security.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/result_presenter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/security.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/sed_validation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/semantic_matrix.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/semantics.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/shell_locator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/task_runtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/diff_generator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/display_builder.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/quote_match.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/settings_validator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/staleness.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/edit/validator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/glob/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/glob/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/glob/pagination.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/glob/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/glob/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/grep/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/grep/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/grep/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/grep/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/grep/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/plan_mode/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/plan_mode/constants.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/plan_mode/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/plan_mode/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/plan_mode/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/read/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/read/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/read/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/read/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/read/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/read/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/registry_names.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/shared/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/shared/read_state_guard.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/shared/staleness.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/bundled/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/bundled/prompts.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/bundled/registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/catalog.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/dynamic_catalog.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/dynamic_discoverer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/file_discovery.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/fork.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/guards.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/hook_registration.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/multi_source_repository.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/paths_matcher.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/plugin_loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/policy.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/repository_factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/source_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/skill/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_create/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_create/hooks.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_create/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_create/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_create/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_create/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_get/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_get/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_get/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_get/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_list/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_list/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_list/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_list/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_update/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_update/hooks.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_update/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_update/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/task_update/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/summary.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/webfetch/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/events.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/loader.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/websearch/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/backend.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/display_builder.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/limits.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/prompt.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/read_state_validator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/tool.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/tools/write/validator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/agent_settings.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/claude_temp_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/cwd.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/display_models.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/file_mtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/git/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/git/gitignore.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/git_roots.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/git_settings.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/host_platform.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/path.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/path_hierarchy.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/path_user_input.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/permissions/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/permissions/filesystem.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/rg_executable.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/settings/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/settings/managed_path.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/structured_diff.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/subprocess_text.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/temp_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/tool_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/tool_result_storage.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/unc_path.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/win_reserved_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/utils/windows_paths.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/base.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/batch.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/catalog_registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/dag.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/display_enricher.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/display_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/handlers/display_support.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/scope_resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/session_router.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/structure_lifecycle_guard.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/structure_utils.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/event_adapter/types.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/execution.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/loop_factory.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/memory_drain_registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/memory_session_policy.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/node.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/node_adapter.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/patterns/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/patterns/chaining.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/patterns/routing.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/patterns/specs.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/r8_event_stream_benchmark.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/runtime.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/runtime_scope_path.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/runtime_scope_registry.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/state.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/structure_collector.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/structure_errors.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/structure_validation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/task_key_domains.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/ui_catalog.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workflow/validation.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/__init__.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/boundary.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/capabilities.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/config.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/errors.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/grant.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/l3_root_grant.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/path_canonical.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/plans.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/project_key.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/project_memory_layout.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/resolver.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/root_grant_manager.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/tool_boundary.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/validators.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx/workspace/view.py +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx_python.egg-info/requires.txt +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/langchain_agentx_python.egg-info/top_level.txt +0 -0
- {langchain-agentx-python-1.9.4 → langchain-agentx-python-1.9.5}/setup.cfg +0 -0
|
@@ -97,10 +97,16 @@ class ModelRetrySettings:
|
|
|
97
97
|
- query_source → CC QuerySource(决定 background overload 是否重试,Phase 3)
|
|
98
98
|
- emit_progress_events → yield api_error / api_retry 进度
|
|
99
99
|
- persistent_retry → CLAUDE_CODE_UNATTENDED_RETRY(Phase 5;默认 False,仅 unattended/CI)
|
|
100
|
+
- nonstreaming_fallback_enabled → CC executeNonStreamingRequest 主路径(默认 True;
|
|
101
|
+
LANGCHAIN_AGENTX_DISABLE_NONSTREAMING_FALLBACK=1 可关)
|
|
100
102
|
"""
|
|
101
103
|
query_source: str | None = None
|
|
102
104
|
emit_progress_events: bool | None = None
|
|
103
105
|
persistent_retry: bool | None = None
|
|
106
|
+
nonstreaming_fallback_enabled: bool | None = None
|
|
107
|
+
nonstreaming_fallback_max_retries: int | None = None
|
|
108
|
+
stream_idle_watchdog_enabled: bool | None = None
|
|
109
|
+
stream_idle_timeout_ms: int | None = None
|
|
104
110
|
|
|
105
111
|
|
|
106
112
|
@dataclass(frozen=True)
|
|
@@ -9,12 +9,15 @@ model_retry_config.py — 从 AgentLoopConfig 装配 ModelRetryConfig。
|
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
11
|
import os
|
|
12
|
+
from dataclasses import dataclass
|
|
12
13
|
from typing import TYPE_CHECKING, Any
|
|
13
14
|
|
|
14
15
|
from langchain_agentx.loop.exit.query_source import QuerySource
|
|
15
16
|
|
|
16
17
|
from ..model.retrier import ModelRetryConfig
|
|
17
18
|
|
|
19
|
+
_DEFAULT_NONSTREAMING_FALLBACK_MAX_RETRIES = 2
|
|
20
|
+
|
|
18
21
|
if TYPE_CHECKING:
|
|
19
22
|
from .loop_config import AgentLoopConfig, ModelRetrySettings
|
|
20
23
|
|
|
@@ -121,6 +124,80 @@ def resolve_emit_progress_events(
|
|
|
121
124
|
return True
|
|
122
125
|
|
|
123
126
|
|
|
127
|
+
@dataclass(frozen=True, slots=True)
|
|
128
|
+
class NonstreamingFallbackSettings:
|
|
129
|
+
enabled: bool = True
|
|
130
|
+
max_retries: int = _DEFAULT_NONSTREAMING_FALLBACK_MAX_RETRIES
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def resolve_nonstreaming_fallback_settings(
|
|
134
|
+
settings: ModelRetrySettings | None = None,
|
|
135
|
+
) -> NonstreamingFallbackSettings:
|
|
136
|
+
from ..model.streaming_fallback import is_nonstreaming_fallback_disabled_by_env
|
|
137
|
+
|
|
138
|
+
if is_nonstreaming_fallback_disabled_by_env():
|
|
139
|
+
return NonstreamingFallbackSettings(enabled=False)
|
|
140
|
+
enabled = True
|
|
141
|
+
if settings is not None and settings.nonstreaming_fallback_enabled is not None:
|
|
142
|
+
enabled = settings.nonstreaming_fallback_enabled
|
|
143
|
+
max_retries = _DEFAULT_NONSTREAMING_FALLBACK_MAX_RETRIES
|
|
144
|
+
if settings is not None and settings.nonstreaming_fallback_max_retries is not None:
|
|
145
|
+
max_retries = settings.nonstreaming_fallback_max_retries
|
|
146
|
+
return NonstreamingFallbackSettings(enabled=enabled, max_retries=max_retries)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def resolve_stream_idle_watchdog_settings(
|
|
150
|
+
settings: ModelRetrySettings | None = None,
|
|
151
|
+
):
|
|
152
|
+
from langchain_agentx.provider.stream_idle_watchdog import (
|
|
153
|
+
StreamIdleWatchdogSettings,
|
|
154
|
+
env_stream_idle_watchdog_enabled,
|
|
155
|
+
resolve_stream_idle_timeout_ms,
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
enabled = False
|
|
159
|
+
if settings is not None and settings.stream_idle_watchdog_enabled is not None:
|
|
160
|
+
enabled = settings.stream_idle_watchdog_enabled
|
|
161
|
+
elif env_stream_idle_watchdog_enabled():
|
|
162
|
+
enabled = True
|
|
163
|
+
timeout_ms = resolve_stream_idle_timeout_ms(
|
|
164
|
+
settings_timeout_ms=(
|
|
165
|
+
settings.stream_idle_timeout_ms if settings is not None else None
|
|
166
|
+
),
|
|
167
|
+
)
|
|
168
|
+
return StreamIdleWatchdogSettings(enabled=enabled, timeout_ms=timeout_ms)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def build_nonstreaming_retry_config(
|
|
172
|
+
config: AgentLoopConfig,
|
|
173
|
+
*,
|
|
174
|
+
fallback_model: Any | None = None,
|
|
175
|
+
) -> ModelRetryConfig:
|
|
176
|
+
"""非流式兜底专用 retrier 配置(max_retries 低于主流式 retrier)。"""
|
|
177
|
+
base = build_model_retry_config(config, fallback_model=fallback_model)
|
|
178
|
+
ns_settings = resolve_nonstreaming_fallback_settings(config.model_retry)
|
|
179
|
+
return ModelRetryConfig(
|
|
180
|
+
max_retries=ns_settings.max_retries,
|
|
181
|
+
initial_delay=base.initial_delay,
|
|
182
|
+
backoff_factor=base.backoff_factor,
|
|
183
|
+
max_delay=base.max_delay,
|
|
184
|
+
jitter=base.jitter,
|
|
185
|
+
heartbeat_threshold_seconds=base.heartbeat_threshold_seconds,
|
|
186
|
+
heartbeat_interval_seconds=base.heartbeat_interval_seconds,
|
|
187
|
+
retry_on=base.retry_on,
|
|
188
|
+
allow_background_529_retry=base.allow_background_529_retry,
|
|
189
|
+
auth_recovery_handler=base.auth_recovery_handler,
|
|
190
|
+
max_consecutive_rate_limit=base.max_consecutive_rate_limit,
|
|
191
|
+
fallback_model=base.fallback_model,
|
|
192
|
+
query_source=base.query_source,
|
|
193
|
+
emit_progress_events=base.emit_progress_events,
|
|
194
|
+
emit_progress_custom_events=base.emit_progress_custom_events,
|
|
195
|
+
persistent_retry=False,
|
|
196
|
+
persistent_max_delay=base.persistent_max_delay,
|
|
197
|
+
persistent_reset_cap_seconds=base.persistent_reset_cap_seconds,
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
|
|
124
201
|
def build_model_retry_config(
|
|
125
202
|
config: AgentLoopConfig,
|
|
126
203
|
*,
|
|
@@ -152,9 +229,13 @@ def build_model_retry_config(
|
|
|
152
229
|
|
|
153
230
|
|
|
154
231
|
__all__ = [
|
|
232
|
+
"NonstreamingFallbackSettings",
|
|
155
233
|
"build_model_retry_config",
|
|
234
|
+
"build_nonstreaming_retry_config",
|
|
156
235
|
"resolve_emit_progress_events",
|
|
157
236
|
"resolve_model_retry_query_source",
|
|
237
|
+
"resolve_nonstreaming_fallback_settings",
|
|
158
238
|
"resolve_persistent_retry",
|
|
239
|
+
"resolve_stream_idle_watchdog_settings",
|
|
159
240
|
"should_retry_overload_for_source",
|
|
160
241
|
]
|
|
@@ -52,7 +52,12 @@ from ..exit.exit_logic import (
|
|
|
52
52
|
)
|
|
53
53
|
from ..exit.reason_codes import TERMINAL_REASON_GRAPH_RUNTIME_ERROR
|
|
54
54
|
from ..exit.terminal import read_terminal_reason
|
|
55
|
-
from .graph_edges import
|
|
55
|
+
from .graph_edges import (
|
|
56
|
+
_make_model_to_model_edge,
|
|
57
|
+
_make_tools_to_model_edge,
|
|
58
|
+
_make_loop_controller_node,
|
|
59
|
+
_select_loop_controller_destination,
|
|
60
|
+
)
|
|
56
61
|
from .reactive_compact_node import ReactiveCompactNode
|
|
57
62
|
from ..model.schema_and_format import (
|
|
58
63
|
STRUCTURED_OUTPUT_ERROR_TEMPLATE,
|
|
@@ -564,9 +569,7 @@ class LoopGraphBuilder:
|
|
|
564
569
|
self._tool_strategy_for_setup = tool_strategy_for_setup
|
|
565
570
|
self._structured_output_tools = structured_output_tools
|
|
566
571
|
self._is_subagent = self._config.subagent.is_subagent
|
|
567
|
-
self._task_runtime = self.
|
|
568
|
-
if self._task_runtime is None and self._services.capabilities is not None:
|
|
569
|
-
self._task_runtime = self._services.capabilities.task_runtime
|
|
572
|
+
self._task_runtime = self._resolve_task_runtime()
|
|
570
573
|
self._queued_command_providers = list(self._services.queued_command_providers)
|
|
571
574
|
self._override_system_prompt = self._config.prompt.override_system
|
|
572
575
|
self._append_system_prompt = append_system_prompt
|
|
@@ -1216,6 +1219,17 @@ class LoopGraphBuilder:
|
|
|
1216
1219
|
else:
|
|
1217
1220
|
default_tools = list(self._built_in_tools)
|
|
1218
1221
|
model = self._model
|
|
1222
|
+
from ...provider.semantics.profile import get_default_profile_resolver
|
|
1223
|
+
from ...provider.stream_idle_watchdog import apply_stream_idle_watchdog
|
|
1224
|
+
from ..config.model_retry_config import resolve_stream_idle_watchdog_settings
|
|
1225
|
+
|
|
1226
|
+
profile = get_default_profile_resolver().resolve_from_model_instance(model)
|
|
1227
|
+
watchdog_settings = resolve_stream_idle_watchdog_settings(self._config.model_retry)
|
|
1228
|
+
model = apply_stream_idle_watchdog(
|
|
1229
|
+
model,
|
|
1230
|
+
family=profile.family,
|
|
1231
|
+
settings=watchdog_settings,
|
|
1232
|
+
)
|
|
1219
1233
|
if self._config.enable_tool_call_degradation_fix and not isinstance(model, ToolCallDegradationCorrector):
|
|
1220
1234
|
allowed_tool_names = _build_allowed_tool_names_for_degradation_correction(
|
|
1221
1235
|
enabled_tool_names=set(self._enabled_tool_names),
|
|
@@ -1229,11 +1243,20 @@ class LoopGraphBuilder:
|
|
|
1229
1243
|
)
|
|
1230
1244
|
self._default_tools = default_tools
|
|
1231
1245
|
self._model = model
|
|
1232
|
-
from ..config.model_retry_config import
|
|
1233
|
-
|
|
1234
|
-
|
|
1246
|
+
from ..config.model_retry_config import (
|
|
1247
|
+
build_model_retry_config,
|
|
1248
|
+
build_nonstreaming_retry_config,
|
|
1249
|
+
resolve_nonstreaming_fallback_settings,
|
|
1250
|
+
)
|
|
1251
|
+
from ..model.streaming_fallback import clone_model_nonstreaming
|
|
1235
1252
|
|
|
1236
|
-
self._model_retrier =
|
|
1253
|
+
self._model_retrier = ModelCallRetrier(build_model_retry_config(self._config))
|
|
1254
|
+
self._nonstreaming_model = clone_model_nonstreaming(model)
|
|
1255
|
+
self._nonstreaming_fallback_model = clone_model_nonstreaming(self._config.fallback_model)
|
|
1256
|
+
self._nonstreaming_retry_config = build_nonstreaming_retry_config(self._config)
|
|
1257
|
+
self._nonstreaming_fallback_settings = resolve_nonstreaming_fallback_settings(
|
|
1258
|
+
self._config.model_retry
|
|
1259
|
+
)
|
|
1237
1260
|
|
|
1238
1261
|
def _build_model_nodes(self, tool_node: Any) -> ModelNode:
|
|
1239
1262
|
"""构建 model 节点,返回 ModelNode(Runnable) 实例,供 LangGraph 直接注册。"""
|
|
@@ -1262,6 +1285,10 @@ class LoopGraphBuilder:
|
|
|
1262
1285
|
dynamic_tool_error_template=DYNAMIC_TOOL_ERROR_TEMPLATE,
|
|
1263
1286
|
fallback_model=self._config.fallback_model,
|
|
1264
1287
|
llm_callback_handler=self._trace_callback_handler,
|
|
1288
|
+
nonstreaming_model=self._nonstreaming_model,
|
|
1289
|
+
nonstreaming_fallback_model=self._nonstreaming_fallback_model,
|
|
1290
|
+
nonstreaming_retry_config=self._nonstreaming_retry_config,
|
|
1291
|
+
nonstreaming_fallback_settings=self._nonstreaming_fallback_settings,
|
|
1265
1292
|
dynamic_sections=self._dynamic_sections if self._has_dynamic_prompt else None,
|
|
1266
1293
|
base_prompt=self._base_prompt,
|
|
1267
1294
|
override_prompt=self._override_system_prompt,
|
|
@@ -1510,7 +1537,6 @@ class LoopGraphBuilder:
|
|
|
1510
1537
|
entry_node=entry_node,
|
|
1511
1538
|
)
|
|
1512
1539
|
graph_inner.add_edge("hook_before_model", "model")
|
|
1513
|
-
graph_inner.add_node("loop_controller", lambda state: state)
|
|
1514
1540
|
return {
|
|
1515
1541
|
"entry_node": entry_node,
|
|
1516
1542
|
"loop_entry_node": loop_entry_node,
|
|
@@ -1521,6 +1547,25 @@ class LoopGraphBuilder:
|
|
|
1521
1547
|
"wire_task_event_nodes": wire_task_event_nodes,
|
|
1522
1548
|
}
|
|
1523
1549
|
|
|
1550
|
+
def _resolve_task_runtime(self) -> Any | None:
|
|
1551
|
+
"""从 services / capabilities 解析 TaskRuntime;忽略 unittest.mock 等伪对象。"""
|
|
1552
|
+
if self._services.task_runtime is not None:
|
|
1553
|
+
return self._services.task_runtime
|
|
1554
|
+
capabilities = self._services.capabilities
|
|
1555
|
+
if capabilities is None:
|
|
1556
|
+
return None
|
|
1557
|
+
candidate = getattr(capabilities, "task_runtime", None)
|
|
1558
|
+
if candidate is None:
|
|
1559
|
+
return None
|
|
1560
|
+
if type(candidate).__name__ in {"MagicMock", "Mock", "AsyncMock", "NonCallableMagicMock"}:
|
|
1561
|
+
logger.warning(
|
|
1562
|
+
"Ignoring capabilities.task_runtime type=%s (mock or invalid); "
|
|
1563
|
+
"task notification wiring disabled",
|
|
1564
|
+
type(candidate).__name__,
|
|
1565
|
+
)
|
|
1566
|
+
return None
|
|
1567
|
+
return candidate
|
|
1568
|
+
|
|
1524
1569
|
def _build_provider_chain(self, tool_node: Any) -> tuple[list[QueuedCommandProvider], bool]:
|
|
1525
1570
|
from .runtime_tools_node import resolve_runtime_tools_node
|
|
1526
1571
|
|
|
@@ -1909,11 +1954,18 @@ class LoopGraphBuilder:
|
|
|
1909
1954
|
graph_inner=graph_inner,
|
|
1910
1955
|
loop_entry_node=loop_entry_node,
|
|
1911
1956
|
loop_exit_node=loop_exit_node,
|
|
1957
|
+
exit_node=exit_node,
|
|
1958
|
+
provider_chain=provider_chain,
|
|
1959
|
+
wire_task_event_nodes=wire_task_event_nodes,
|
|
1912
1960
|
)
|
|
1913
1961
|
return
|
|
1914
1962
|
self._wire_main_edges_without_tools(
|
|
1915
1963
|
graph_inner=graph_inner,
|
|
1964
|
+
loop_entry_node=loop_entry_node,
|
|
1916
1965
|
loop_exit_node=loop_exit_node,
|
|
1966
|
+
exit_node=exit_node,
|
|
1967
|
+
provider_chain=provider_chain,
|
|
1968
|
+
wire_task_event_nodes=wire_task_event_nodes,
|
|
1917
1969
|
)
|
|
1918
1970
|
|
|
1919
1971
|
def _wire_main_edges_with_tools(
|
|
@@ -1951,9 +2003,50 @@ class LoopGraphBuilder:
|
|
|
1951
2003
|
graph_inner.add_edge("prune_and_compress", loop_entry_node)
|
|
1952
2004
|
graph_inner.add_edge(loop_exit_node, "hook_after_model")
|
|
1953
2005
|
graph_inner.add_edge("hook_after_model", "hook_stop")
|
|
2006
|
+
self._wire_loop_controller(
|
|
2007
|
+
graph_inner=graph_inner,
|
|
2008
|
+
loop_entry_node=loop_entry_node,
|
|
2009
|
+
exit_node=exit_node,
|
|
2010
|
+
provider_chain=provider_chain,
|
|
2011
|
+
wire_task_event_nodes=wire_task_event_nodes,
|
|
2012
|
+
tools_destination="tools",
|
|
2013
|
+
)
|
|
2014
|
+
|
|
2015
|
+
def _wire_loop_controller(
|
|
2016
|
+
self,
|
|
2017
|
+
*,
|
|
2018
|
+
graph_inner: Any,
|
|
2019
|
+
loop_entry_node: str,
|
|
2020
|
+
exit_node: str,
|
|
2021
|
+
provider_chain: list[QueuedCommandProvider],
|
|
2022
|
+
wire_task_event_nodes: bool,
|
|
2023
|
+
tools_destination: str | None = None,
|
|
2024
|
+
) -> None:
|
|
2025
|
+
graph_inner.add_node(
|
|
2026
|
+
"loop_controller",
|
|
2027
|
+
RunnableCallable(
|
|
2028
|
+
_make_loop_controller_node(
|
|
2029
|
+
model_destination=loop_entry_node,
|
|
2030
|
+
tools_destination=tools_destination or loop_entry_node,
|
|
2031
|
+
structured_output_tools=self._structured_output_tools,
|
|
2032
|
+
end_destination=exit_node,
|
|
2033
|
+
max_output_tokens_cap=self._model_context_resolver.resolve_max_output_tokens(
|
|
2034
|
+
self._config
|
|
2035
|
+
),
|
|
2036
|
+
token_budget_max_continuations=self._config.token_budget_max_continuations,
|
|
2037
|
+
task_reconcile_destination=(
|
|
2038
|
+
"task_event_commit_ack" if provider_chain else None
|
|
2039
|
+
),
|
|
2040
|
+
has_pending_task_notifications=self._build_pending_task_notifications_checker(
|
|
2041
|
+
provider_chain
|
|
2042
|
+
),
|
|
2043
|
+
),
|
|
2044
|
+
None,
|
|
2045
|
+
trace=False,
|
|
2046
|
+
),
|
|
2047
|
+
)
|
|
1954
2048
|
graph_inner.add_edge("hook_stop", "loop_controller")
|
|
1955
2049
|
|
|
1956
|
-
# 添加 reactive_compact 节点(上下文窗口溢出恢复专用节点)
|
|
1957
2050
|
def _reactive_compact_node(state, runtime):
|
|
1958
2051
|
node = ReactiveCompactNode(
|
|
1959
2052
|
compaction_service=default_loop_context_compaction(),
|
|
@@ -1966,37 +2059,20 @@ class LoopGraphBuilder:
|
|
|
1966
2059
|
"reactive_compact",
|
|
1967
2060
|
RunnableCallable(_reactive_compact_node, None, trace=False),
|
|
1968
2061
|
)
|
|
1969
|
-
# reactive_compact 成功路径 → loop_entry_node
|
|
1970
2062
|
graph_inner.add_conditional_edges(
|
|
1971
2063
|
"reactive_compact",
|
|
1972
2064
|
lambda state: state.get("destination", loop_entry_node),
|
|
1973
2065
|
[loop_entry_node, exit_node],
|
|
1974
2066
|
)
|
|
1975
2067
|
|
|
1976
|
-
loop_controller_destinations = [
|
|
2068
|
+
loop_controller_destinations = [loop_entry_node, exit_node, "reactive_compact"]
|
|
2069
|
+
if tools_destination is not None:
|
|
2070
|
+
loop_controller_destinations.insert(0, tools_destination)
|
|
1977
2071
|
if wire_task_event_nodes and "task_event_commit_ack" not in loop_controller_destinations:
|
|
1978
2072
|
loop_controller_destinations.append("task_event_commit_ack")
|
|
1979
2073
|
graph_inner.add_conditional_edges(
|
|
1980
2074
|
"loop_controller",
|
|
1981
|
-
RunnableCallable(
|
|
1982
|
-
_make_loop_controller_edge(
|
|
1983
|
-
model_destination=loop_entry_node,
|
|
1984
|
-
tools_destination="tools",
|
|
1985
|
-
structured_output_tools=self._structured_output_tools,
|
|
1986
|
-
end_destination=exit_node,
|
|
1987
|
-
max_output_tokens_cap=self._model_context_resolver.resolve_max_output_tokens(
|
|
1988
|
-
self._config
|
|
1989
|
-
),
|
|
1990
|
-
token_budget_max_continuations=self._config.token_budget_max_continuations,
|
|
1991
|
-
task_reconcile_destination=(
|
|
1992
|
-
"task_event_commit_ack" if provider_chain else None
|
|
1993
|
-
),
|
|
1994
|
-
has_pending_task_notifications=self._build_pending_task_notifications_checker(
|
|
1995
|
-
provider_chain
|
|
1996
|
-
),
|
|
1997
|
-
),
|
|
1998
|
-
trace=False,
|
|
1999
|
-
),
|
|
2075
|
+
RunnableCallable(_select_loop_controller_destination, None, trace=False),
|
|
2000
2076
|
loop_controller_destinations,
|
|
2001
2077
|
)
|
|
2002
2078
|
|
|
@@ -2006,6 +2082,9 @@ class LoopGraphBuilder:
|
|
|
2006
2082
|
graph_inner: Any,
|
|
2007
2083
|
loop_entry_node: str,
|
|
2008
2084
|
loop_exit_node: str,
|
|
2085
|
+
exit_node: str,
|
|
2086
|
+
provider_chain: list[QueuedCommandProvider],
|
|
2087
|
+
wire_task_event_nodes: bool,
|
|
2009
2088
|
) -> None:
|
|
2010
2089
|
graph_inner.add_edge(loop_exit_node, "hook_after_model")
|
|
2011
2090
|
graph_inner.add_conditional_edges(
|
|
@@ -2019,17 +2098,35 @@ class LoopGraphBuilder:
|
|
|
2019
2098
|
),
|
|
2020
2099
|
[loop_entry_node, "hook_stop"],
|
|
2021
2100
|
)
|
|
2022
|
-
|
|
2101
|
+
self._wire_loop_controller(
|
|
2102
|
+
graph_inner=graph_inner,
|
|
2103
|
+
loop_entry_node=loop_entry_node,
|
|
2104
|
+
exit_node=exit_node,
|
|
2105
|
+
provider_chain=provider_chain,
|
|
2106
|
+
wire_task_event_nodes=wire_task_event_nodes,
|
|
2107
|
+
tools_destination=None,
|
|
2108
|
+
)
|
|
2023
2109
|
|
|
2024
2110
|
def _wire_main_edges_without_tools(
|
|
2025
2111
|
self,
|
|
2026
2112
|
*,
|
|
2027
2113
|
graph_inner: Any,
|
|
2114
|
+
loop_entry_node: str,
|
|
2028
2115
|
loop_exit_node: str,
|
|
2116
|
+
exit_node: str,
|
|
2117
|
+
provider_chain: list[QueuedCommandProvider],
|
|
2118
|
+
wire_task_event_nodes: bool,
|
|
2029
2119
|
) -> None:
|
|
2030
2120
|
graph_inner.add_edge(loop_exit_node, "hook_after_model")
|
|
2031
2121
|
graph_inner.add_edge("hook_after_model", "hook_stop")
|
|
2032
|
-
|
|
2122
|
+
self._wire_loop_controller(
|
|
2123
|
+
graph_inner=graph_inner,
|
|
2124
|
+
loop_entry_node=loop_entry_node,
|
|
2125
|
+
exit_node=exit_node,
|
|
2126
|
+
provider_chain=provider_chain,
|
|
2127
|
+
wire_task_event_nodes=wire_task_event_nodes,
|
|
2128
|
+
tools_destination=None,
|
|
2129
|
+
)
|
|
2033
2130
|
|
|
2034
2131
|
def _build_pending_task_notifications_checker(
|
|
2035
2132
|
self,
|
|
@@ -39,6 +39,10 @@ from ..hook.types import HookContext, HookEvent
|
|
|
39
39
|
# 导入事件发射器(CLI Phase 1A 骨架)
|
|
40
40
|
from ...observability.trace.event_emitter import emit_loop_decision_event
|
|
41
41
|
|
|
42
|
+
import logging
|
|
43
|
+
|
|
44
|
+
logger = logging.getLogger(__name__)
|
|
45
|
+
|
|
42
46
|
from ..exit.exit_logic import (
|
|
43
47
|
ESCALATED_MAX_OUTPUT_TOKENS,
|
|
44
48
|
MAX_OUTPUT_TOKENS_RECOVERY_LIMIT,
|
|
@@ -1001,6 +1005,54 @@ def _patch_last_ai_tool_calls(
|
|
|
1001
1005
|
return
|
|
1002
1006
|
|
|
1003
1007
|
|
|
1008
|
+
def _build_loop_controller_edge(
|
|
1009
|
+
*,
|
|
1010
|
+
model_destination: str,
|
|
1011
|
+
tools_destination: str,
|
|
1012
|
+
structured_output_tools: dict[str, OutputToolBinding[Any]],
|
|
1013
|
+
end_destination: str,
|
|
1014
|
+
max_output_tokens_cap: int | None = None,
|
|
1015
|
+
task_reconcile_destination: str | None = None,
|
|
1016
|
+
has_pending_task_notifications: Callable[[dict[str, Any]], bool] | None = None,
|
|
1017
|
+
token_budget_max_continuations: int | None = None,
|
|
1018
|
+
) -> LoopControllerEdge:
|
|
1019
|
+
return LoopControllerEdge(
|
|
1020
|
+
model_destination=model_destination,
|
|
1021
|
+
tools_destination=tools_destination,
|
|
1022
|
+
structured_output_tools=structured_output_tools,
|
|
1023
|
+
end_destination=end_destination,
|
|
1024
|
+
max_output_tokens_cap=max_output_tokens_cap,
|
|
1025
|
+
task_reconcile_destination=task_reconcile_destination,
|
|
1026
|
+
has_pending_task_notifications=has_pending_task_notifications,
|
|
1027
|
+
token_budget_max_continuations=token_budget_max_continuations,
|
|
1028
|
+
)
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
_LOOP_CONTROLLER_PATCH_KEYS: tuple[str, ...] = (
|
|
1032
|
+
"terminal",
|
|
1033
|
+
"terminal_reason",
|
|
1034
|
+
"transition",
|
|
1035
|
+
"resolution",
|
|
1036
|
+
"__hook_result__",
|
|
1037
|
+
"messages",
|
|
1038
|
+
"withheld_error",
|
|
1039
|
+
"max_output_tokens_override",
|
|
1040
|
+
"max_output_tokens_recovery_count",
|
|
1041
|
+
"collapse_retry_available",
|
|
1042
|
+
"has_attempted_reactive_compact",
|
|
1043
|
+
"force_text_exit",
|
|
1044
|
+
"token_budget_continue_requested",
|
|
1045
|
+
"token_budget_continuation_count",
|
|
1046
|
+
"abort_terminal_reason",
|
|
1047
|
+
"turn_count",
|
|
1048
|
+
"_hook_ui_events",
|
|
1049
|
+
)
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
def _extract_loop_controller_patch(state: dict[str, Any]) -> dict[str, Any]:
|
|
1053
|
+
return {key: state[key] for key in _LOOP_CONTROLLER_PATCH_KEYS if key in state}
|
|
1054
|
+
|
|
1055
|
+
|
|
1004
1056
|
def _make_loop_controller_edge(
|
|
1005
1057
|
*,
|
|
1006
1058
|
model_destination: str,
|
|
@@ -1012,8 +1064,32 @@ def _make_loop_controller_edge(
|
|
|
1012
1064
|
has_pending_task_notifications: Callable[[dict[str, Any]], bool] | None = None,
|
|
1013
1065
|
token_budget_max_continuations: int | None = None,
|
|
1014
1066
|
) -> Callable[[dict[str, Any]], str | None]:
|
|
1015
|
-
"""LangChain AgentX 的 loop_controller
|
|
1016
|
-
return
|
|
1067
|
+
"""LangChain AgentX 的 loop_controller 条件边工厂(单测 / 手工投影用)。"""
|
|
1068
|
+
return _build_loop_controller_edge(
|
|
1069
|
+
model_destination=model_destination,
|
|
1070
|
+
tools_destination=tools_destination,
|
|
1071
|
+
structured_output_tools=structured_output_tools,
|
|
1072
|
+
end_destination=end_destination,
|
|
1073
|
+
max_output_tokens_cap=max_output_tokens_cap,
|
|
1074
|
+
task_reconcile_destination=task_reconcile_destination,
|
|
1075
|
+
has_pending_task_notifications=has_pending_task_notifications,
|
|
1076
|
+
token_budget_max_continuations=token_budget_max_continuations,
|
|
1077
|
+
)
|
|
1078
|
+
|
|
1079
|
+
|
|
1080
|
+
def _make_loop_controller_node(
|
|
1081
|
+
*,
|
|
1082
|
+
model_destination: str,
|
|
1083
|
+
tools_destination: str,
|
|
1084
|
+
structured_output_tools: dict[str, OutputToolBinding[Any]],
|
|
1085
|
+
end_destination: str,
|
|
1086
|
+
max_output_tokens_cap: int | None = None,
|
|
1087
|
+
task_reconcile_destination: str | None = None,
|
|
1088
|
+
has_pending_task_notifications: Callable[[dict[str, Any]], bool] | None = None,
|
|
1089
|
+
token_budget_max_continuations: int | None = None,
|
|
1090
|
+
) -> Callable[[dict[str, Any]], dict[str, Any]]:
|
|
1091
|
+
"""loop_controller 图节点:执行路由逻辑并将 state patch 持久化到 LangGraph。"""
|
|
1092
|
+
edge = _build_loop_controller_edge(
|
|
1017
1093
|
model_destination=model_destination,
|
|
1018
1094
|
tools_destination=tools_destination,
|
|
1019
1095
|
structured_output_tools=structured_output_tools,
|
|
@@ -1024,6 +1100,55 @@ def _make_loop_controller_edge(
|
|
|
1024
1100
|
token_budget_max_continuations=token_budget_max_continuations,
|
|
1025
1101
|
)
|
|
1026
1102
|
|
|
1103
|
+
def loop_controller_node(state: dict[str, Any]) -> dict[str, Any]:
|
|
1104
|
+
destination = edge(state)
|
|
1105
|
+
patch = _extract_loop_controller_patch(state)
|
|
1106
|
+
if destination is not None:
|
|
1107
|
+
patch["_loop_controller_destination"] = destination
|
|
1108
|
+
terminal_patch = patch.get("terminal")
|
|
1109
|
+
if isinstance(terminal_patch, dict) and terminal_patch.get("error_kind") == "api_error":
|
|
1110
|
+
logger.info(
|
|
1111
|
+
"loop_controller applied api_error terminal projection: step=%s destination=%s transition=%s",
|
|
1112
|
+
state.get("step"),
|
|
1113
|
+
destination,
|
|
1114
|
+
(state.get("transition") or {}).get("reason"),
|
|
1115
|
+
)
|
|
1116
|
+
if (
|
|
1117
|
+
task_reconcile_destination
|
|
1118
|
+
and destination == task_reconcile_destination
|
|
1119
|
+
):
|
|
1120
|
+
step = state.get("step", 0)
|
|
1121
|
+
logger.info(
|
|
1122
|
+
"loop_controller routing to task reconcile %s: step=%s transition=%s terminal_reason=%s",
|
|
1123
|
+
destination,
|
|
1124
|
+
step,
|
|
1125
|
+
(state.get("transition") or {}).get("reason"),
|
|
1126
|
+
read_terminal_reason(state.get("terminal")),
|
|
1127
|
+
)
|
|
1128
|
+
if isinstance(step, int) and step >= 20:
|
|
1129
|
+
logger.warning(
|
|
1130
|
+
"loop_controller task reconcile at high step=%s; "
|
|
1131
|
+
"check has_pending strict bool and task_runtime wiring",
|
|
1132
|
+
step,
|
|
1133
|
+
)
|
|
1134
|
+
return patch
|
|
1135
|
+
|
|
1136
|
+
return loop_controller_node
|
|
1137
|
+
|
|
1138
|
+
|
|
1139
|
+
def _select_loop_controller_destination(state: dict[str, Any]) -> str:
|
|
1140
|
+
destination = state.get("_loop_controller_destination")
|
|
1141
|
+
if not isinstance(destination, str) or not destination:
|
|
1142
|
+
logger.error(
|
|
1143
|
+
"loop_controller missing _loop_controller_destination after node run: "
|
|
1144
|
+
"step=%s transition=%s resolution=%s",
|
|
1145
|
+
state.get("step"),
|
|
1146
|
+
(state.get("transition") or {}).get("reason"),
|
|
1147
|
+
(state.get("resolution") or {}).get("kind"),
|
|
1148
|
+
)
|
|
1149
|
+
raise ValueError("loop_controller node must set _loop_controller_destination")
|
|
1150
|
+
return destination
|
|
1151
|
+
|
|
1027
1152
|
|
|
1028
1153
|
def _make_model_to_model_edge(
|
|
1029
1154
|
*,
|
|
@@ -1107,5 +1232,7 @@ __all__ = [
|
|
|
1107
1232
|
"_make_model_to_model_edge",
|
|
1108
1233
|
"_make_tools_to_model_edge",
|
|
1109
1234
|
"_make_loop_controller_edge",
|
|
1235
|
+
"_make_loop_controller_node",
|
|
1236
|
+
"_select_loop_controller_destination",
|
|
1110
1237
|
]
|
|
1111
1238
|
|