langchain-agentx-python 1.2.2__tar.gz → 1.2.3__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.2.2/langchain_agentx_python.egg-info → langchain-agentx-python-1.2.3}/PKG-INFO +1 -1
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/__init__.py +1 -1
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/loop_config.py +2 -0
- langchain-agentx-python-1.2.3/langchain_agentx/loop/config/thinking_config.py +105 -0
- langchain-agentx-python-1.2.3/langchain_agentx/loop/config/ui_display_context.py +58 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/graph/factory.py +1 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/model_node.py +36 -2
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/context.py +11 -1
- langchain-agentx-python-1.2.3/langchain_agentx/loop/subagent/display_projector.py +45 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/graph.py +4 -1
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/orchestrator.py +49 -1
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/progress.py +64 -5
- langchain-agentx-python-1.2.3/langchain_agentx/loop/subagent/reasoning_extractor.py +42 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/runner.py +20 -1
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/compatible_chat_openai.py +3 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/profile.py +46 -2
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/adapter.py +22 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/models.py +7 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/tool.py +20 -4
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx_python.egg-info/SOURCES.txt +4 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/pyproject.toml +1 -1
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/LICENSE +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/README.md +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/allowed_tools.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/clear.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/commit.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/commit_push_pr.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/compact.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/git_prompt_common.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/memory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/context.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/dispatcher.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/fork_executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/git_settings.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/prompt_shell.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/result.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/command/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/config/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/config/model_profiles.yaml +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/config/model_profiles.yaml.example +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/health/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/health/checks.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/health/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/health/preflight.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/agent_config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/interaction_profile.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/loop_runtime_overlay.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/runtime_settings.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/token_estimator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/blocking_guard.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/compaction_service.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/message_utils.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/pipeline.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/query_source.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/recovery_mode.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/settings.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/base.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/collapse.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/noop.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/snip.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/context/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/exit/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/exit/exit_logic.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/exit/query_source.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/exit/reason_codes.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/exit/resolution.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/exit/terminal.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/exit/withheld_error.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/graph/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/graph/graph_edges.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/engine.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/executors/agent.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/executors/command.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/executors/http.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/hook_projection.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/progress_payload.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/trust.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/hook/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/injection/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/injection/dedup.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/loop_abort.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/model_nodes.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/retrier.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/retry_bridge.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/retry_events.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/retry_policy.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/retry_progress.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/schema_and_format.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/builder.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/builtin.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/compact.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/sections.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/session_context.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/session_guidance.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/static_system_prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/tool_aware_sections.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/prompt/using_your_tools.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/runtime/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/runtime/context.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/runtime/context_factory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/stream/graph_driver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/stream/helpers.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/stream/loop_driver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/stream/result.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/active_run_registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/async_runner.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/fork_boilerplate.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/fork_ports.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/forked_runner.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/loop/subagent/transcript.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/exclusion.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/external_includes.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/runtime.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/sections.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/instruction/worktree_skip.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/_deprecated/agent_memory/agent_memory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/age.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/attachments.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/entrypoint_context.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/extractor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/gate.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/memory_saved.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/metrics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/prefetch.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/prompts/select_memories.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/recall.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/recall_service.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/runtime.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/scan.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/side_query.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/memdir/written_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/migrate_layout.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/session/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/session/compact_bridge.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/session/extractor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/session/prompts.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/session/session_memory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/memory/session/tool_scope.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/service.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/state.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/evaluation/store.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/events/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/events/finish_event_payload_composer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/events/finish_outcome.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/events/subagent_event_mapper.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/logging/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/logging/debug_burst.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/logging/logging_config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/logging/logging_contract.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/replay/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/replay/cli.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/replay/service.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/replay/store.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/replay/ui.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/collector.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/event_emitter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/trace_callback.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/plugin/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/plugin/builtin.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/plugin/config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/plugin/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/plugin/manifest.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/plugin/registries.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/plugin/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/anthropic.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/env.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/model_profile.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/openai.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/contracts.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/openai.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/request_codec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/runtime.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/agent_session.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/conversation_factory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/conversation_recovery.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/conversation_session.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/factory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/plan_mode.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/protocol.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/session/recovery.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/core/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/core/ids.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/core/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/output/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/output/sink.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/store/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/store/file_store.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/config_home_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/accept_edits_fast_path.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/base.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/capabilities.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/denial_tracking.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/denial_tracking_bridge.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/errors.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/inner_permission_chain.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/messages.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/outer_permission_resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/override.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/path_safety.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_context.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_orchestrator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_rule_matcher.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_rules.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_settings_loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_settings_sync.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/permission_snapshot.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/pipeline.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/policy.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/process_loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/progress/event.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/prompt_context.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/read_permission.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/session_hints.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/session_store.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/shell_error.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/tool_name_constants.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tool_runtime/tool_schema_cache.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/built_in/general.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/memory_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/memory_prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/memory_snapshot.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/prompt_scope.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/registry/config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/registry/registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/agent/scope.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ask_user_question/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/ast_security.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/boundary_check.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/command_allow_rules.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/events.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/l1_decision_reason.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/mode_validation.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/observability.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/output_tracker.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/output_utils.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/path_security.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/result_presenter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/security.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/sed_validation.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/semantic_matrix.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/semantics.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/shell_locator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/task_runtime.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/diff_generator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/quote_match.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/settings_validator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/staleness.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/edit/validator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/glob/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/glob/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/glob/pagination.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/glob/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/glob/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/grep/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/grep/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/grep/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/grep/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/grep/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/plan_mode/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/plan_mode/constants.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/plan_mode/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/plan_mode/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/plan_mode/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/read/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/read/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/read/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/read/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/read/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/read/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/registry_names.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/fork.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/policy.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/skill/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_create/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_create/hooks.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_create/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_create/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_create/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_create/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_get/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_get/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_get/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_get/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_list/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_list/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_list/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_list/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_update/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_update/hooks.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_update/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_update/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/task_update/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/summary.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/webfetch/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/events.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/loader.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/websearch/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/write/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/write/backend.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/write/limits.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/write/models.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/write/prompt.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/write/tool.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/tools/write/validator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/agent_settings.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/claude_temp_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/cwd.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/git_roots.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/git_settings.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/host_platform.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/path.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/path_hierarchy.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/path_user_input.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/rg_executable.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/subprocess_text.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/temp_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/tool_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/tool_result_storage.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/unc_path.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/win_reserved_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/utils/windows_paths.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/base.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/batch.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/dag.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/event_adapter/types.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/memory_drain_registry.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/memory_session_policy.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/node.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/patterns/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/patterns/chaining.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/patterns/routing.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/runtime.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workflow/state.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/__init__.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/boundary.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/capabilities.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/config.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/errors.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/grant.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/l3_root_grant.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/project_key.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/project_memory_layout.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/resolver.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/root_grant_manager.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/tool_boundary.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/validators.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx/workspace/view.py +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx_python.egg-info/requires.txt +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/langchain_agentx_python.egg-info/top_level.txt +0 -0
- {langchain-agentx-python-1.2.2 → langchain-agentx-python-1.2.3}/setup.cfg +0 -0
|
@@ -43,11 +43,13 @@ class PromptConfig:
|
|
|
43
43
|
- QueryParams.systemPrompt → system
|
|
44
44
|
- options.customSystemPrompt → override_system
|
|
45
45
|
- options.appendSystemPrompt → append_system
|
|
46
|
+
- options.thinkingConfig → thinking_enabled
|
|
46
47
|
"""
|
|
47
48
|
system: str | SystemMessage | None = None
|
|
48
49
|
override_system: str | None = None
|
|
49
50
|
append_system: str | None = None
|
|
50
51
|
dynamic_sections: tuple[SystemPromptSection, ...] = ()
|
|
52
|
+
thinking_enabled: bool = True # 是否启用 thinking(对齐 CC thinkingConfig)
|
|
51
53
|
|
|
52
54
|
|
|
53
55
|
@dataclass(frozen=True)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""loop/config/thinking_config.py — Thinking 生成配置
|
|
2
|
+
|
|
3
|
+
职责:
|
|
4
|
+
定义 ThinkingConfig 数据类,根据 subagent mode (plain/fork/coordinate)
|
|
5
|
+
决定是否启用 thinking 功能。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
SubagentOrchestrator → ThinkingConfig.from_subagent_mode() →
|
|
9
|
+
SubagentContext.thinking_enabled → AgentLoopConfig
|
|
10
|
+
|
|
11
|
+
当前裁剪范围:
|
|
12
|
+
v1 基础实现:mode 驱动启用/禁用;预留父配置覆盖路径。
|
|
13
|
+
|
|
14
|
+
CC 对齐:
|
|
15
|
+
- runAgent.ts:682-683: plain mode 默认 { type: 'disabled' }
|
|
16
|
+
- fork mode 继承父配置或默认启用
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
from __future__ import annotations
|
|
20
|
+
|
|
21
|
+
from dataclasses import dataclass
|
|
22
|
+
from typing import Any, Literal
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@dataclass(frozen=True)
|
|
26
|
+
class ThinkingConfig:
|
|
27
|
+
"""Thinking 生成配置(对齐 CC thinkingConfig)。
|
|
28
|
+
|
|
29
|
+
Attributes:
|
|
30
|
+
enabled: 是否启用 thinking
|
|
31
|
+
type: Thinking 类型(预留,对齐 CC { type: 'enabled' | 'disabled' })
|
|
32
|
+
budget_tokens: Thinking token 预算(预留)
|
|
33
|
+
"""
|
|
34
|
+
enabled: bool = True
|
|
35
|
+
type: Literal["enabled", "disabled", "auto"] = "auto"
|
|
36
|
+
budget_tokens: int | None = None
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def disabled(cls) -> "ThinkingConfig":
|
|
40
|
+
"""返回禁用配置(对齐 CC { type: 'disabled' })。"""
|
|
41
|
+
return cls(enabled=False, type="disabled")
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def enabled_config(cls) -> "ThinkingConfig":
|
|
45
|
+
"""返回启用配置(对齐 CC { type: 'enabled' })。"""
|
|
46
|
+
return cls(enabled=True, type="enabled")
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def from_subagent_mode(
|
|
50
|
+
cls,
|
|
51
|
+
mode: str,
|
|
52
|
+
parent_thinking_config: Any | None = None,
|
|
53
|
+
*,
|
|
54
|
+
parent_thinking_enabled: bool | None = None,
|
|
55
|
+
) -> "ThinkingConfig":
|
|
56
|
+
"""根据 subagent mode 决定是否启用 thinking。
|
|
57
|
+
|
|
58
|
+
CC 对齐规则:
|
|
59
|
+
- plain mode: 禁用 thinking(除非父配置显式启用)
|
|
60
|
+
- fork mode: 继承父 thinking_enabled / thinkingConfig(对齐 runAgent useExactTools)
|
|
61
|
+
- coordinate mode: 同 fork,继承父配置
|
|
62
|
+
|
|
63
|
+
Args:
|
|
64
|
+
mode: Subagent 模式 ("plain" | "fork" | "coordinate")
|
|
65
|
+
parent_thinking_config: 父 ThinkingConfig 或 dict(优先于 mode 规则)
|
|
66
|
+
parent_thinking_enabled: 父 ToolExecutionContext.thinking_enabled(fork/coordinate 继承)
|
|
67
|
+
|
|
68
|
+
Returns:
|
|
69
|
+
ThinkingConfig 实例
|
|
70
|
+
"""
|
|
71
|
+
# 优先级 1:父显式 thinkingConfig
|
|
72
|
+
if parent_thinking_config is not None:
|
|
73
|
+
if isinstance(parent_thinking_config, dict):
|
|
74
|
+
parent_enabled = parent_thinking_config.get("enabled", True)
|
|
75
|
+
parent_type = parent_thinking_config.get("type", "auto")
|
|
76
|
+
return cls(
|
|
77
|
+
enabled=parent_enabled,
|
|
78
|
+
type=parent_type if parent_type in ("enabled", "disabled", "auto") else "auto",
|
|
79
|
+
)
|
|
80
|
+
elif isinstance(parent_thinking_config, ThinkingConfig):
|
|
81
|
+
return parent_thinking_config
|
|
82
|
+
|
|
83
|
+
# 优先级 2:mode 规则
|
|
84
|
+
if mode == "plain":
|
|
85
|
+
return cls.disabled()
|
|
86
|
+
|
|
87
|
+
# fork / coordinate:继承父 loop thinking_enabled(CC fork inherit)
|
|
88
|
+
if parent_thinking_enabled is not None:
|
|
89
|
+
enabled = bool(parent_thinking_enabled)
|
|
90
|
+
return cls(
|
|
91
|
+
enabled=enabled,
|
|
92
|
+
type="enabled" if enabled else "disabled",
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
return cls.enabled_config()
|
|
96
|
+
|
|
97
|
+
def to_dict(self) -> dict[str, Any]:
|
|
98
|
+
"""转换为字典(传递给 Provider)。"""
|
|
99
|
+
return {
|
|
100
|
+
"enabled": self.enabled,
|
|
101
|
+
"type": self.type,
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
__all__ = ["ThinkingConfig"]
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""loop/config/ui_display_context.py — UI 展示意图(CLI → SDK seam)
|
|
2
|
+
|
|
3
|
+
职责:
|
|
4
|
+
定义宿主(CLI)注入的 transcript / verbose / thinking 展示意图;
|
|
5
|
+
供 ToolExecutionContext 与 SubagentOrchestrator 读取。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
RunnableConfig.configurable["ui_display_context"] → LangChainAdapter → ToolExecutionContext
|
|
9
|
+
|
|
10
|
+
当前裁剪范围:
|
|
11
|
+
仅数据契约与解析;不做 TUI 渲染(langchain_agentx_cli 职责)。
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from dataclasses import dataclass
|
|
17
|
+
from typing import Any, Mapping
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass(frozen=True)
|
|
21
|
+
class UiDisplayContext:
|
|
22
|
+
"""宿主 UI 展示意图(对齐 CC verbose + isTranscriptMode)。"""
|
|
23
|
+
|
|
24
|
+
is_transcript_mode: bool = False
|
|
25
|
+
verbose: bool = False
|
|
26
|
+
thinking_enabled: bool | None = None
|
|
27
|
+
|
|
28
|
+
@classmethod
|
|
29
|
+
def from_mapping(cls, raw: Mapping[str, Any] | None) -> UiDisplayContext | None:
|
|
30
|
+
if not raw or not isinstance(raw, Mapping):
|
|
31
|
+
return None
|
|
32
|
+
is_transcript = bool(raw.get("is_transcript_mode", False))
|
|
33
|
+
verbose = bool(raw.get("verbose", False))
|
|
34
|
+
thinking_raw = raw.get("thinking_enabled")
|
|
35
|
+
thinking_enabled = None if thinking_raw is None else bool(thinking_raw)
|
|
36
|
+
return cls(
|
|
37
|
+
is_transcript_mode=is_transcript,
|
|
38
|
+
verbose=verbose,
|
|
39
|
+
thinking_enabled=thinking_enabled,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
@classmethod
|
|
43
|
+
def from_configurable(cls, configurable: Mapping[str, Any] | None) -> UiDisplayContext | None:
|
|
44
|
+
if not configurable:
|
|
45
|
+
return None
|
|
46
|
+
raw = configurable.get("ui_display_context")
|
|
47
|
+
if isinstance(raw, UiDisplayContext):
|
|
48
|
+
return raw
|
|
49
|
+
if isinstance(raw, Mapping):
|
|
50
|
+
return cls.from_mapping(raw)
|
|
51
|
+
return None
|
|
52
|
+
|
|
53
|
+
def should_show_thinking_full(self) -> bool:
|
|
54
|
+
"""对齐 CC Message.tsx:verbose || isTranscriptMode 时展示完整 thinking。"""
|
|
55
|
+
return self.verbose or self.is_transcript_mode
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
__all__ = ["UiDisplayContext"]
|
|
@@ -302,6 +302,7 @@ def _flatten_config_for_runtime(config: AgentLoopConfig) -> _FlatLoopConfig:
|
|
|
302
302
|
model_profile_registry=config.model_profile_registry,
|
|
303
303
|
compact_buffer_tokens=config.compact_buffer_tokens,
|
|
304
304
|
max_output_tokens_reserved=config.max_output_tokens_reserved,
|
|
305
|
+
thinking_enabled=config.prompt.thinking_enabled,
|
|
305
306
|
)
|
|
306
307
|
|
|
307
308
|
|
|
@@ -447,6 +447,38 @@ class ModelNode(Runnable):
|
|
|
447
447
|
store = (config.get("configurable", {}) or {}).get("session_store")
|
|
448
448
|
return get_effort_override(store)
|
|
449
449
|
|
|
450
|
+
@staticmethod
|
|
451
|
+
def _get_thinking_enabled_from_config(config: RunnableConfig | None) -> bool | None:
|
|
452
|
+
"""从 runtime config 读取 thinking_enabled intent(bool,非 vendor kwargs)。"""
|
|
453
|
+
if not isinstance(config, dict):
|
|
454
|
+
return None
|
|
455
|
+
configurable = config.get("configurable", {}) or {}
|
|
456
|
+
loop_config = configurable.get("loop_config")
|
|
457
|
+
if loop_config is not None and hasattr(loop_config, "get"):
|
|
458
|
+
return bool(loop_config.get("thinking_enabled", True))
|
|
459
|
+
return None
|
|
460
|
+
|
|
461
|
+
@staticmethod
|
|
462
|
+
def _thinking_invoke_kwargs(model: Any, config: RunnableConfig | None) -> dict[str, Any]:
|
|
463
|
+
"""按 provider family 决定是否在 invoke 时传入 Claude thinking kwargs。
|
|
464
|
+
|
|
465
|
+
对实际 invoke 目标做 unwrap(Corrector / RunnableBinding),避免外层 wrapper
|
|
466
|
+
导致 family 误判从而跳过 thinking。
|
|
467
|
+
"""
|
|
468
|
+
thinking_enabled = ModelNode._get_thinking_enabled_from_config(config)
|
|
469
|
+
if thinking_enabled is None:
|
|
470
|
+
return {}
|
|
471
|
+
from langchain_agentx.provider.semantics.profile import (
|
|
472
|
+
get_default_profile_resolver,
|
|
473
|
+
unwrap_chat_model_for_profile,
|
|
474
|
+
)
|
|
475
|
+
|
|
476
|
+
chat_model = unwrap_chat_model_for_profile(model)
|
|
477
|
+
profile = get_default_profile_resolver().resolve_from_model_instance(chat_model)
|
|
478
|
+
if profile.family != "anthropic":
|
|
479
|
+
return {}
|
|
480
|
+
return {"thinking": {"type": "enabled" if thinking_enabled else "disabled"}}
|
|
481
|
+
|
|
450
482
|
# ===== 模型调用 =====
|
|
451
483
|
|
|
452
484
|
def _invoke_bound(self, req: Any, *, config: RunnableConfig | None = None) -> Any:
|
|
@@ -465,7 +497,8 @@ class ModelNode(Runnable):
|
|
|
465
497
|
)
|
|
466
498
|
model_ = self._bind_llm_callback_handler(model_, config)
|
|
467
499
|
messages = _messages_for_model_invoke(req)
|
|
468
|
-
|
|
500
|
+
thinking_kwargs = self._thinking_invoke_kwargs(model_, config)
|
|
501
|
+
output = model_.invoke(messages, config=config, **thinking_kwargs)
|
|
469
502
|
if self._name:
|
|
470
503
|
output.name = self._name
|
|
471
504
|
handled_output = handle_model_output(
|
|
@@ -496,7 +529,8 @@ class ModelNode(Runnable):
|
|
|
496
529
|
)
|
|
497
530
|
model_ = self._bind_llm_callback_handler(model_, config)
|
|
498
531
|
messages = _messages_for_model_invoke(req)
|
|
499
|
-
|
|
532
|
+
thinking_kwargs = self._thinking_invoke_kwargs(model_, config)
|
|
533
|
+
output = await model_.ainvoke(messages, config=config, **thinking_kwargs)
|
|
500
534
|
if self._name:
|
|
501
535
|
output.name = self._name
|
|
502
536
|
handled_output = handle_model_output(
|
|
@@ -27,7 +27,7 @@ import shutil
|
|
|
27
27
|
import uuid
|
|
28
28
|
from collections.abc import Callable
|
|
29
29
|
from dataclasses import dataclass, field
|
|
30
|
-
from typing import Any
|
|
30
|
+
from typing import Any, Literal
|
|
31
31
|
|
|
32
32
|
from langchain_agentx.loop.context.query_source import LoopCompilationContext, QuerySource
|
|
33
33
|
from langchain_agentx.loop.runtime.subagent_execution_paths import (
|
|
@@ -97,6 +97,10 @@ class SubagentContext:
|
|
|
97
97
|
can_use_tool: Callable[[str, dict[str, Any]], bool] | None = None
|
|
98
98
|
register_transcript: bool = True
|
|
99
99
|
|
|
100
|
+
# Thinking 与显示控制字段(对齐 CC thinkingConfig + isTranscriptMode)
|
|
101
|
+
thinking_enabled: bool = True # 是否启用 thinking(默认启用,plain mode 会被禁用)
|
|
102
|
+
display_mode: Literal["default", "transcript"] = "default" # 显示模式(transcript 显示详细内容)
|
|
103
|
+
|
|
100
104
|
|
|
101
105
|
@dataclass
|
|
102
106
|
class SubagentResult:
|
|
@@ -137,6 +141,8 @@ def create_subagent_context(
|
|
|
137
141
|
fork_worktree_parent_cwd: str | None = None,
|
|
138
142
|
fork_worktree_path: str | None = None,
|
|
139
143
|
available_tools: list[Any] | None = None,
|
|
144
|
+
thinking_enabled: bool = True,
|
|
145
|
+
display_mode: Literal["default", "transcript"] = "default",
|
|
140
146
|
) -> SubagentContext:
|
|
141
147
|
"""工厂函数:从父上下文创建子 Agent 上下文
|
|
142
148
|
|
|
@@ -158,6 +164,8 @@ def create_subagent_context(
|
|
|
158
164
|
在最终任务 user 消息前插入 CC 等价 worktree 提示(父 cwd 由 ``fork_worktree_parent_cwd`` 提供)。
|
|
159
165
|
fork_worktree_parent_cwd: 父 Agent 工作目录(须在 ``run_with_cwd_override`` 子 cwd 生效前由编排层捕获)。
|
|
160
166
|
fork_worktree_path: 子 Agent 的 worktree 根路径(通常即 ``path_prep.worktree_dir``)。
|
|
167
|
+
thinking_enabled: 是否启用 thinking(由 SubagentOrchestrator 根据 mode 决定)
|
|
168
|
+
display_mode: 显示模式("default" | "transcript")
|
|
161
169
|
|
|
162
170
|
Returns:
|
|
163
171
|
SubagentContext 实例
|
|
@@ -291,6 +299,8 @@ def create_subagent_context(
|
|
|
291
299
|
capabilities=getattr(parent_ctx, "capabilities", None),
|
|
292
300
|
runnable_config=getattr(parent_ctx, "runnable_config", None),
|
|
293
301
|
available_tools=list(available_tools or []),
|
|
302
|
+
thinking_enabled=thinking_enabled,
|
|
303
|
+
display_mode=display_mode,
|
|
294
304
|
)
|
|
295
305
|
|
|
296
306
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""loop/subagent/display_projector.py — Subagent execution_trace → UI 投影
|
|
2
|
+
|
|
3
|
+
职责:
|
|
4
|
+
将 SubagentExecutionTrace 投影为 present_for_display 的 tool_calls 列表;
|
|
5
|
+
default 摘要 / transcript 全量由 display_mode 决定(trace 对象内仍全量)。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
AgentRuntimeTool.present_for_display → SubagentDisplayProjector
|
|
9
|
+
|
|
10
|
+
当前裁剪范围:
|
|
11
|
+
仅 dict 投影;不渲染 TUI。
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from typing import Any, Literal
|
|
17
|
+
|
|
18
|
+
from langchain_agentx.loop.subagent.progress import SubagentExecutionTrace
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SubagentDisplayProjector:
|
|
22
|
+
"""execution_trace → present_for_display 字段投影。"""
|
|
23
|
+
|
|
24
|
+
@staticmethod
|
|
25
|
+
def project_tool_calls(
|
|
26
|
+
trace: SubagentExecutionTrace,
|
|
27
|
+
*,
|
|
28
|
+
display_mode: Literal["default", "transcript"] | None = None,
|
|
29
|
+
) -> list[dict[str, Any]]:
|
|
30
|
+
mode = display_mode if display_mode is not None else trace.display_mode
|
|
31
|
+
return trace.to_dict_list(display_mode=mode)
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def resolve_display_mode(
|
|
35
|
+
trace: SubagentExecutionTrace | None,
|
|
36
|
+
ctx_display_mode: Literal["default", "transcript"] | None = None,
|
|
37
|
+
) -> Literal["default", "transcript"]:
|
|
38
|
+
if ctx_display_mode in ("default", "transcript"):
|
|
39
|
+
return ctx_display_mode
|
|
40
|
+
if trace is not None:
|
|
41
|
+
return trace.display_mode
|
|
42
|
+
return "default"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
__all__ = ["SubagentDisplayProjector"]
|
|
@@ -65,7 +65,10 @@ def create_subagent_graph(
|
|
|
65
65
|
# Phase 3: config-first 模式
|
|
66
66
|
config = AgentLoopConfig(
|
|
67
67
|
session_id=session_id,
|
|
68
|
-
prompt=PromptConfig(
|
|
68
|
+
prompt=PromptConfig(
|
|
69
|
+
system=ctx.system_prompt or None,
|
|
70
|
+
thinking_enabled=ctx.thinking_enabled,
|
|
71
|
+
),
|
|
69
72
|
workspace=AgentStateConfig(
|
|
70
73
|
workspace_root=ctx.workspace_root or None,
|
|
71
74
|
agent_home_segment=ctx.agent_home_segment,
|
|
@@ -14,7 +14,7 @@ from __future__ import annotations
|
|
|
14
14
|
import logging
|
|
15
15
|
import os
|
|
16
16
|
import uuid
|
|
17
|
-
from typing import TYPE_CHECKING, Any
|
|
17
|
+
from typing import TYPE_CHECKING, Any, Literal
|
|
18
18
|
|
|
19
19
|
from langchain_agentx.loop.runtime import RuntimeContextFactory, SubagentContextOverrides
|
|
20
20
|
from langchain_agentx.loop.runtime.subagent_execution_paths import (
|
|
@@ -41,6 +41,7 @@ from langchain_agentx.loop.subagent.runner import (
|
|
|
41
41
|
from langchain_agentx.loop.subagent.async_runner import register_background_agent
|
|
42
42
|
from langchain_agentx.observability.logging import ObservabilityLoggerAdapter, build_log_context
|
|
43
43
|
from langchain_agentx.workspace import resolve_agent_state_config
|
|
44
|
+
from langchain_agentx.loop.config.thinking_config import ThinkingConfig
|
|
44
45
|
|
|
45
46
|
if TYPE_CHECKING:
|
|
46
47
|
from langchain_agentx.loop.runtime import AgentLoopConfig
|
|
@@ -71,6 +72,39 @@ class SubagentOrchestrator:
|
|
|
71
72
|
self._mode = mode
|
|
72
73
|
self._background_output_dir = background_output_dir
|
|
73
74
|
|
|
75
|
+
def _resolve_thinking_enabled(
|
|
76
|
+
self,
|
|
77
|
+
parent_ctx: "ToolExecutionContext",
|
|
78
|
+
) -> bool:
|
|
79
|
+
"""解析 subagent 的 thinking 启用状态(对齐 CC thinkingConfig)。
|
|
80
|
+
|
|
81
|
+
CC 对齐规则:
|
|
82
|
+
- plain mode: 禁用 thinking({ type: 'disabled' })
|
|
83
|
+
- fork mode: 继承父配置或默认启用
|
|
84
|
+
- coordinate mode: 继承父配置或默认启用
|
|
85
|
+
"""
|
|
86
|
+
# 从父上下文获取 thinking 配置(如果有)
|
|
87
|
+
parent_thinking_config = getattr(parent_ctx, "thinking_config", None)
|
|
88
|
+
parent_thinking_enabled = getattr(parent_ctx, "thinking_enabled", None)
|
|
89
|
+
config = ThinkingConfig.from_subagent_mode(
|
|
90
|
+
self._mode,
|
|
91
|
+
parent_thinking_config,
|
|
92
|
+
parent_thinking_enabled=parent_thinking_enabled,
|
|
93
|
+
)
|
|
94
|
+
return config.enabled
|
|
95
|
+
|
|
96
|
+
def _resolve_display_mode(
|
|
97
|
+
self,
|
|
98
|
+
parent_ctx: "ToolExecutionContext",
|
|
99
|
+
) -> Literal["default", "transcript"]:
|
|
100
|
+
"""解析显示模式(对齐 CC isTranscriptMode)。
|
|
101
|
+
|
|
102
|
+
从父上下文读取 transcript 模式标志;默认为 default。
|
|
103
|
+
"""
|
|
104
|
+
if getattr(parent_ctx, "is_transcript_mode", False):
|
|
105
|
+
return "transcript"
|
|
106
|
+
return "default"
|
|
107
|
+
|
|
74
108
|
def invoke_subagent(
|
|
75
109
|
self,
|
|
76
110
|
inp: "AgentToolInput",
|
|
@@ -166,6 +200,11 @@ class SubagentOrchestrator:
|
|
|
166
200
|
inject_fork_wt = self._mode == "fork" and prepared.worktree_dir is not None
|
|
167
201
|
with run_with_cwd_override(effective_cwd):
|
|
168
202
|
output_dir = self._resolve_background_output_dir(runtime_ctx)
|
|
203
|
+
|
|
204
|
+
# 解析 thinking_enabled 和 display_mode
|
|
205
|
+
thinking_enabled = self._resolve_thinking_enabled(ctx)
|
|
206
|
+
display_mode = self._resolve_display_mode(ctx)
|
|
207
|
+
|
|
169
208
|
subagent_ctx = create_subagent_context(
|
|
170
209
|
parent_ctx=ctx,
|
|
171
210
|
task=subagent_task,
|
|
@@ -183,6 +222,8 @@ class SubagentOrchestrator:
|
|
|
183
222
|
fork_worktree_parent_cwd=parent_notice_cwd,
|
|
184
223
|
fork_worktree_path=prepared.worktree_dir,
|
|
185
224
|
available_tools=runtime_tools,
|
|
225
|
+
thinking_enabled=thinking_enabled,
|
|
226
|
+
display_mode=display_mode,
|
|
186
227
|
)
|
|
187
228
|
scope = propagate_subagent_tool_scope(
|
|
188
229
|
parent_ctx=ctx,
|
|
@@ -359,6 +400,11 @@ class SubagentOrchestrator:
|
|
|
359
400
|
inject_fork_wt = self._mode == "fork" and prepared.worktree_dir is not None
|
|
360
401
|
with run_with_cwd_override(effective_cwd):
|
|
361
402
|
output_dir = self._resolve_background_output_dir(runtime_ctx)
|
|
403
|
+
|
|
404
|
+
# 解析 thinking_enabled 和 display_mode
|
|
405
|
+
thinking_enabled = self._resolve_thinking_enabled(ctx)
|
|
406
|
+
display_mode = self._resolve_display_mode(ctx)
|
|
407
|
+
|
|
362
408
|
subagent_ctx = create_subagent_context(
|
|
363
409
|
parent_ctx=ctx,
|
|
364
410
|
task=subagent_task,
|
|
@@ -376,6 +422,8 @@ class SubagentOrchestrator:
|
|
|
376
422
|
fork_worktree_parent_cwd=parent_notice_cwd,
|
|
377
423
|
fork_worktree_path=prepared.worktree_dir,
|
|
378
424
|
available_tools=runtime_tools,
|
|
425
|
+
thinking_enabled=thinking_enabled,
|
|
426
|
+
display_mode=display_mode,
|
|
379
427
|
)
|
|
380
428
|
scope = propagate_subagent_tool_scope(
|
|
381
429
|
parent_ctx=ctx,
|
|
@@ -21,6 +21,9 @@ class SubagentToolCall:
|
|
|
21
21
|
error_message: str | None = None
|
|
22
22
|
payload: str | None = None
|
|
23
23
|
meta: dict[str, Any] = field(default_factory=dict)
|
|
24
|
+
# Phase 8: thinking 内容(对齐 CC reasoning_content)
|
|
25
|
+
thinking_content: str | None = None
|
|
26
|
+
display_mode: Literal["default", "transcript"] = "default"
|
|
24
27
|
|
|
25
28
|
|
|
26
29
|
@dataclass
|
|
@@ -33,11 +36,47 @@ class SubagentExecutionTrace:
|
|
|
33
36
|
tool_calls: list[SubagentToolCall] = field(default_factory=list)
|
|
34
37
|
total_steps: int = 0
|
|
35
38
|
terminal_reason: str | None = None
|
|
39
|
+
display_mode: Literal["default", "transcript"] = "default" # Phase 8: 显示模式
|
|
40
|
+
_pending_thinking_content: str | None = field(default=None, repr=False)
|
|
36
41
|
|
|
37
42
|
def add_tool_call(self, call: SubagentToolCall) -> None:
|
|
38
43
|
"""添加工具调用记录。"""
|
|
39
44
|
self.tool_calls.append(call)
|
|
40
45
|
self.total_steps = max(self.total_steps, call.step)
|
|
46
|
+
self.apply_pending_thinking(step=call.step)
|
|
47
|
+
|
|
48
|
+
def stage_thinking_content(self, thinking_content: str) -> None:
|
|
49
|
+
"""暂存 model 步 reasoning,待下一 tool_call 或 flush 时写入。"""
|
|
50
|
+
if not thinking_content:
|
|
51
|
+
return
|
|
52
|
+
self._pending_thinking_content = thinking_content
|
|
53
|
+
|
|
54
|
+
def apply_pending_thinking(self, *, step: int) -> None:
|
|
55
|
+
"""将暂存 reasoning 写入指定 step 的 tool_call。"""
|
|
56
|
+
if not self._pending_thinking_content:
|
|
57
|
+
return
|
|
58
|
+
self.add_thinking_content(step=step, thinking_content=self._pending_thinking_content)
|
|
59
|
+
self._pending_thinking_content = None
|
|
60
|
+
|
|
61
|
+
def attach_thinking_to_last_call(self, thinking_content: str) -> None:
|
|
62
|
+
"""将 reasoning 挂到最后一个 tool_call(无后续 tool 的最终 model 步)。"""
|
|
63
|
+
if not thinking_content or not self.tool_calls:
|
|
64
|
+
return
|
|
65
|
+
last = self.tool_calls[-1]
|
|
66
|
+
last.thinking_content = thinking_content
|
|
67
|
+
|
|
68
|
+
def add_thinking_content(self, step: int, thinking_content: str) -> None:
|
|
69
|
+
"""添加 thinking 内容到最近的工具调用(Phase 8)。
|
|
70
|
+
|
|
71
|
+
用于记录模型的 reasoning_content,在 transcript 模式下展示。
|
|
72
|
+
"""
|
|
73
|
+
if not thinking_content:
|
|
74
|
+
return
|
|
75
|
+
# 查找对应的工具调用
|
|
76
|
+
for call in self.tool_calls:
|
|
77
|
+
if call.step == step:
|
|
78
|
+
call.thinking_content = thinking_content
|
|
79
|
+
break
|
|
41
80
|
|
|
42
81
|
def update_last_status(
|
|
43
82
|
self,
|
|
@@ -57,17 +96,37 @@ class SubagentExecutionTrace:
|
|
|
57
96
|
if error_message:
|
|
58
97
|
last.error_message = error_message
|
|
59
98
|
|
|
60
|
-
def to_dict_list(self) -> list[dict[str, Any]]:
|
|
61
|
-
"""转换为字典列表,用于 JSON 序列化。
|
|
99
|
+
def to_dict_list(self, *, display_mode: Literal["default", "transcript"] | None = None) -> list[dict[str, Any]]:
|
|
100
|
+
"""转换为字典列表,用于 JSON 序列化。
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
display_mode: 显示模式
|
|
104
|
+
- None: 使用 trace.display_mode(默认)
|
|
105
|
+
- "default": 仅返回摘要(step, tool_name, summary, status)
|
|
106
|
+
- "transcript": 返回完整信息(含 tool_input, payload, thinking_content)
|
|
107
|
+
"""
|
|
108
|
+
effective_mode = display_mode if display_mode is not None else self.display_mode
|
|
109
|
+
if effective_mode == "transcript":
|
|
110
|
+
return [
|
|
111
|
+
{
|
|
112
|
+
"step": c.step,
|
|
113
|
+
"tool_name": c.tool_name,
|
|
114
|
+
"tool_input": c.tool_input,
|
|
115
|
+
"summary": c.summary,
|
|
116
|
+
"status": c.status,
|
|
117
|
+
"error_message": c.error_message,
|
|
118
|
+
"payload": c.payload,
|
|
119
|
+
"thinking_content": c.thinking_content,
|
|
120
|
+
}
|
|
121
|
+
for c in self.tool_calls
|
|
122
|
+
]
|
|
123
|
+
# default 模式:仅返回摘要
|
|
62
124
|
return [
|
|
63
125
|
{
|
|
64
126
|
"step": c.step,
|
|
65
127
|
"tool_name": c.tool_name,
|
|
66
|
-
"tool_input": c.tool_input,
|
|
67
128
|
"summary": c.summary,
|
|
68
129
|
"status": c.status,
|
|
69
|
-
"error_message": c.error_message,
|
|
70
|
-
"payload": c.payload,
|
|
71
130
|
}
|
|
72
131
|
for c in self.tool_calls
|
|
73
132
|
]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""loop/subagent/reasoning_extractor.py — 子 Agent 模型响应 reasoning 抽取
|
|
2
|
+
|
|
3
|
+
职责:
|
|
4
|
+
从 AIMessage 按 provider family 抽取 reasoning_text(Claude thinking / OpenAI reasoning_content)。
|
|
5
|
+
|
|
6
|
+
链路位置:
|
|
7
|
+
runner._handle_chat_model_end_event → SubagentReasoningExtractor → execution_trace
|
|
8
|
+
|
|
9
|
+
当前裁剪范围:
|
|
10
|
+
仅 subagent runner 使用;不做 UI 渲染或 trace 持久化。
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
from typing import Any
|
|
16
|
+
|
|
17
|
+
from langchain_agentx.provider.semantics.runtime import (
|
|
18
|
+
create_runtime_from_messages,
|
|
19
|
+
create_runtime_from_model,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class SubagentReasoningExtractor:
|
|
24
|
+
"""从 model 响应抽取 reasoning 文本(委托 ProviderSemanticsRuntime)。"""
|
|
25
|
+
|
|
26
|
+
def __init__(self, model: Any | None = None) -> None:
|
|
27
|
+
self._model = model
|
|
28
|
+
|
|
29
|
+
def extract(self, message: Any) -> str:
|
|
30
|
+
if message is None:
|
|
31
|
+
return ""
|
|
32
|
+
if self._model is not None and not isinstance(self._model, str):
|
|
33
|
+
runtime = create_runtime_from_model(self._model)
|
|
34
|
+
else:
|
|
35
|
+
runtime = create_runtime_from_messages([message])
|
|
36
|
+
turn = runtime.normalize_model_end(message)
|
|
37
|
+
if turn is None or not turn.reasoning_text:
|
|
38
|
+
return ""
|
|
39
|
+
return str(turn.reasoning_text).strip()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
__all__ = ["SubagentReasoningExtractor"]
|
|
@@ -382,10 +382,26 @@ async def _handle_chat_model_end_event(
|
|
|
382
382
|
data: dict[str, Any],
|
|
383
383
|
collected_assistant_messages: list[Any],
|
|
384
384
|
total_steps: int,
|
|
385
|
+
trace: SubagentExecutionTrace | None = None,
|
|
386
|
+
model: Any | None = None,
|
|
385
387
|
) -> int:
|
|
386
388
|
output = data.get("output")
|
|
387
389
|
if output is not None:
|
|
388
390
|
collected_assistant_messages.append(output)
|
|
391
|
+
if trace is not None:
|
|
392
|
+
from langchain_agentx.loop.subagent.reasoning_extractor import (
|
|
393
|
+
SubagentReasoningExtractor,
|
|
394
|
+
)
|
|
395
|
+
|
|
396
|
+
reasoning = SubagentReasoningExtractor(model=model).extract(output)
|
|
397
|
+
if reasoning:
|
|
398
|
+
has_tool_calls = bool(getattr(output, "tool_calls", None))
|
|
399
|
+
if has_tool_calls:
|
|
400
|
+
trace.stage_thinking_content(reasoning)
|
|
401
|
+
elif trace.tool_calls:
|
|
402
|
+
trace.attach_thinking_to_last_call(reasoning)
|
|
403
|
+
else:
|
|
404
|
+
trace.stage_thinking_content(reasoning)
|
|
389
405
|
has_tool_calls = bool(output is not None and getattr(output, "tool_calls", None))
|
|
390
406
|
if not has_tool_calls:
|
|
391
407
|
total_steps += 1
|
|
@@ -491,6 +507,8 @@ async def _collect_subagent_events(
|
|
|
491
507
|
data=data,
|
|
492
508
|
collected_assistant_messages=collected_assistant_messages,
|
|
493
509
|
total_steps=total_steps,
|
|
510
|
+
trace=trace,
|
|
511
|
+
model=getattr(ctx, "model", None),
|
|
494
512
|
)
|
|
495
513
|
elif event_name == "on_chain_end" and event.get("name") == "LangGraph":
|
|
496
514
|
terminal_reason, child_run_id, loop_snapshot = _handle_langgraph_end_event(
|
|
@@ -621,7 +639,8 @@ async def run_subagent(
|
|
|
621
639
|
)
|
|
622
640
|
else:
|
|
623
641
|
transcript = NoOpTranscriptManager()
|
|
624
|
-
trace
|
|
642
|
+
# Phase 8: 使用 ctx.display_mode 设置 trace 的显示模式
|
|
643
|
+
trace = SubagentExecutionTrace(display_mode=ctx.display_mode)
|
|
625
644
|
|
|
626
645
|
try:
|
|
627
646
|
graph = create_subagent_graph(ctx=ctx, loader=loader, model=resolved_model)
|
|
@@ -58,8 +58,11 @@ class CompatibleChatOpenAI(ChatOpenAI):
|
|
|
58
58
|
**kwargs: Any,
|
|
59
59
|
) -> dict[str, Any]:
|
|
60
60
|
"""与基类一致,并为 chat/completions 的 assistant 历史补上 ``reasoning_content``。"""
|
|
61
|
+
kwargs.pop("thinking_enabled", None)
|
|
62
|
+
kwargs.pop("thinking", None)
|
|
61
63
|
lc_messages = self._convert_input(input_).to_messages()
|
|
62
64
|
payload = super()._get_request_payload(input_, stop=stop, **kwargs)
|
|
65
|
+
payload.pop("thinking", None)
|
|
63
66
|
serialized = payload.get("messages")
|
|
64
67
|
if not isinstance(serialized, list) or len(serialized) != len(lc_messages):
|
|
65
68
|
return payload
|