langchain-agentx-python 1.0.5__tar.gz → 1.0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/PKG-INFO +1 -1
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/__init__.py +1 -1
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/loop_config.py +1 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/query_source.py +14 -38
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/exit_logic.py +4 -0
- langchain-agentx-python-1.0.7/langchain_agentx/loop/exit/query_source.py +54 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/factory.py +158 -61
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/graph_wiring.py +5 -10
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +12 -19
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/builtin.py +1 -1
- langchain-agentx-python-1.0.7/langchain_agentx/loop/prompt/tool_aware_sections.py +112 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/__init__.py +13 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/context.py +29 -1
- langchain-agentx-python-1.0.7/langchain_agentx/loop/subagent/fork_boilerplate.py +125 -0
- langchain-agentx-python-1.0.7/langchain_agentx/loop/subagent/fork_ports.py +48 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/forked_runner.py +20 -22
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/orchestrator.py +112 -10
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/runner.py +1 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/instruction/exclusion.py +73 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/instruction/external_includes.py +62 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/loader.py +60 -9
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/runtime.py +12 -1
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/types.py +2 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/instruction/worktree_skip.py +58 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/__init__.py +0 -24
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/attachments.py +66 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/extractor.py +60 -8
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/gate.py +82 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/loader.py +81 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/memory_saved.py +52 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/prefetch.py +254 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/prompts/select_memories.py +24 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/recall.py +84 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/recall_service.py +462 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/scan.py +41 -15
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/side_query.py +101 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/written_paths.py +147 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/__init__.py +17 -0
- langchain-agentx-python-1.0.7/langchain_agentx/memory/session/extractor.py +85 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/prompts.py +13 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/session_memory.py +80 -20
- langchain-agentx-python-1.0.7/langchain_agentx/memory/session/tool_scope.py +53 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/agent_session.py +0 -2
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/conversation_session.py +0 -2
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/backend.py +41 -2
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/loader.py +58 -1
- langchain-agentx-python-1.0.7/langchain_agentx/tools/agent/memory_paths.py +102 -0
- langchain-agentx-python-1.0.7/langchain_agentx/tools/agent/memory_prompt.py +74 -0
- langchain-agentx-python-1.0.7/langchain_agentx/tools/agent/memory_snapshot.py +410 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/prompt.py +55 -19
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/registry/config.py +14 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/tool.py +10 -4
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/prompt.py +2 -2
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/semantics.py +10 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/fork.py +9 -3
- langchain-agentx-python-1.0.7/langchain_agentx/utils/git_roots.py +142 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/base.py +3 -7
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/config.py +34 -7
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/tool_boundary.py +24 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/PKG-INFO +1 -1
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/SOURCES.txt +21 -1
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/pyproject.toml +1 -1
- langchain-agentx-python-1.0.5/langchain_agentx/memory/memdir/gate.py +0 -54
- langchain-agentx-python-1.0.5/langchain_agentx/memory/memdir/recall.py +0 -45
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/LICENSE +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/README.md +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/clear.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/compact.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/memory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/context.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/dispatcher.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/registry.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/result.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/config/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/config/model_profiles.yaml +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/config/model_profiles.yaml.example +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/checks.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/preflight.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/agent_config.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/runtime_settings.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/token_estimator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/blocking_guard.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/compaction_service.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/message_utils.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/pipeline.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/recovery_mode.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/settings.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/base.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/collapse.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/noop.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/snip.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/reason_codes.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/resolution.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/terminal.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/withheld_error.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/graph_edges.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/config.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/engine.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/agent.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/command.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/http.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/hook_projection.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/post_sample_hook.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/progress_payload.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/registry.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/trust.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/injection/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/injection/dedup.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/loop_abort.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/model_node.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/model_nodes.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retrier.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_bridge.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_events.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_policy.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_progress.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/schema_and_format.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/builder.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/compact.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/sections.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/session_context.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/context.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/context_factory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/graph_driver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/helpers.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/loop_driver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/result.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/async_runner.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/graph.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/progress.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/transcript.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/resolver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/sections.py +0 -0
- {langchain-agentx-python-1.0.5/langchain_agentx/memory/memdir → langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/_deprecated/agent_memory}/agent_memory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/age.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/metrics.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/paths.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/runtime.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/threshold.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/compact_bridge.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/service.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/state.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/store.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/finish_event_payload_composer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/finish_outcome.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/debug_burst.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/logging_config.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/logging_contract.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/cli.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/service.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/store.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/ui.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/collector.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/event_emitter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/trace_callback.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/builtin.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/config.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/manifest.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/registries.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/anthropic.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/env.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/model_profile.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/openai.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/contracts.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/profile.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/registry.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/request_codec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/runtime.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/conversation_factory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/conversation_recovery.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/factory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/protocol.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/recovery.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/ids.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/output/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/output/sink.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/store/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/store/sqlite_store.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/adapter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/base.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/capabilities.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/errors.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/messages.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/override.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/path_safety.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/permission_context.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/pipeline.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/policy.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/process_loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/progress/event.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/read_permission.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/registry.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/session_hints.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/session_store.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/shell_error.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/general.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/registry/registry.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/scope.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/ast_security.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/boundary_check.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/events.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/mode_validation.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/observability.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/output_tracker.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/output_utils.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/path_security.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/result_presenter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/security.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/sed_validation.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/shell_locator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/task_runtime.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/diff_generator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/quote_match.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/settings_validator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/staleness.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/validator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/pagination.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/policy.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/hooks.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/hooks.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/summary.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/events.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/loader.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/backend.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/limits.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/models.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/prompt.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/tool.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/validator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/cwd.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/host_platform.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/path.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/path_hierarchy.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/path_user_input.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/rg_executable.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/subprocess_text.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/temp_paths.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/tool_paths.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/tool_result_storage.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/unc_path.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/win_reserved_paths.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/windows_paths.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/batch.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/dag.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/types.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/node.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/chaining.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/routing.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/runtime.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/state.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/__init__.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/boundary.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/capabilities.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/errors.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/grant.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/l3_root_grant.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/resolver.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/root_grant_manager.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/validators.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/view.py +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/requires.txt +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/top_level.txt +0 -0
- {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/setup.cfg +0 -0
|
@@ -251,6 +251,7 @@ class AgentLoopConfig:
|
|
|
251
251
|
# -----------------------------------------------------------------------
|
|
252
252
|
task_notification_max_priority: QueuePriority = QueuePriority.NEXT
|
|
253
253
|
managed_rules: str | None = None
|
|
254
|
+
claude_md_excludes: tuple[str, ...] = ()
|
|
254
255
|
|
|
255
256
|
# -----------------------------------------------------------------------
|
|
256
257
|
# 模型 profile
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"""
|
|
2
|
-
query_source
|
|
2
|
+
query_source 守卫策略(Compaction / Fork / UI 路由)。
|
|
3
3
|
|
|
4
4
|
职责:
|
|
5
|
-
|
|
6
|
-
token_blocking / persist_replacements 的统一跳过判定。
|
|
5
|
+
autocompact / microcompact / token_blocking / persist_replacements 的统一跳过判定。
|
|
7
6
|
|
|
8
7
|
链路位置:
|
|
9
8
|
ForkedAgentRunner / Loop 编译 → QuerySourcePolicy.compile_loop_context()
|
|
10
9
|
→ ContextCompactionContext / CompactionSettings / model_node 守卫。
|
|
11
10
|
|
|
12
11
|
当前裁剪范围:
|
|
13
|
-
|
|
12
|
+
常量定义在 loop.exit.query_source(对齐 CC constants/querySource.ts);
|
|
13
|
+
本模块仅承载与 compaction 相关的策略类。
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
16
|
from __future__ import annotations
|
|
@@ -18,6 +18,8 @@ from __future__ import annotations
|
|
|
18
18
|
from dataclasses import dataclass
|
|
19
19
|
from typing import Final, FrozenSet, Literal
|
|
20
20
|
|
|
21
|
+
from langchain_agentx.loop.exit.query_source import QuerySource
|
|
22
|
+
|
|
21
23
|
CompactionGuardStage = Literal[
|
|
22
24
|
"autocompact",
|
|
23
25
|
"microcompact",
|
|
@@ -27,40 +29,6 @@ CompactionGuardStage = Literal[
|
|
|
27
29
|
|
|
28
30
|
EmitterRoute = Literal["main", "sidechain", "drop"]
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
class QuerySource:
|
|
32
|
-
"""官方 query_source 常量(禁止在业务代码散落字面量)。"""
|
|
33
|
-
|
|
34
|
-
MAIN_THREAD: Final[str] = "main_thread"
|
|
35
|
-
EXTRACT_MEMORIES: Final[str] = "extract_memories"
|
|
36
|
-
SESSION_MEMORY: Final[str] = "session_memory"
|
|
37
|
-
COMPACT: Final[str] = "compact"
|
|
38
|
-
AGENT_SUMMARY: Final[str] = "agent_summary"
|
|
39
|
-
AGENT_PREFIX: Final[str] = "agent:"
|
|
40
|
-
|
|
41
|
-
@classmethod
|
|
42
|
-
def all_official(cls) -> FrozenSet[str]:
|
|
43
|
-
return frozenset(
|
|
44
|
-
{
|
|
45
|
-
cls.MAIN_THREAD,
|
|
46
|
-
cls.EXTRACT_MEMORIES,
|
|
47
|
-
cls.SESSION_MEMORY,
|
|
48
|
-
cls.COMPACT,
|
|
49
|
-
cls.AGENT_SUMMARY,
|
|
50
|
-
}
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
@classmethod
|
|
54
|
-
def is_agent_subagent(cls, query_source: str | None) -> bool:
|
|
55
|
-
return isinstance(query_source, str) and query_source.startswith(cls.AGENT_PREFIX)
|
|
56
|
-
|
|
57
|
-
@classmethod
|
|
58
|
-
def normalize(cls, query_source: str | None) -> str:
|
|
59
|
-
if isinstance(query_source, str) and query_source.strip():
|
|
60
|
-
return query_source.strip()
|
|
61
|
-
return cls.MAIN_THREAD
|
|
62
|
-
|
|
63
|
-
|
|
64
32
|
# 后台 fork 任务:跳过 autocompact / microcompact
|
|
65
33
|
_BACKGROUND_COMPACTION_SKIP: Final[FrozenSet[str]] = frozenset(
|
|
66
34
|
{
|
|
@@ -142,6 +110,14 @@ class QuerySourcePolicy:
|
|
|
142
110
|
persist_replacements=cls.should_persist_replacements(normalized),
|
|
143
111
|
)
|
|
144
112
|
|
|
113
|
+
@classmethod
|
|
114
|
+
def is_main_repl_thread(cls, query_source: str | None) -> bool:
|
|
115
|
+
"""对齐 CC querySource === 'repl_main_thread';缺省 / None 视为 main。"""
|
|
116
|
+
normalized = QuerySource.normalize(query_source)
|
|
117
|
+
if normalized == QuerySource.MAIN_THREAD:
|
|
118
|
+
return True
|
|
119
|
+
return normalized == "repl_main_thread" or normalized.startswith("repl_main_thread:")
|
|
120
|
+
|
|
145
121
|
@classmethod
|
|
146
122
|
def default_ui_visible(cls, query_source: str | None) -> bool:
|
|
147
123
|
normalized = QuerySource.normalize(query_source)
|
|
@@ -25,6 +25,8 @@ from typing import Any, NotRequired, TypedDict
|
|
|
25
25
|
|
|
26
26
|
from langchain_core.messages import AIMessage
|
|
27
27
|
|
|
28
|
+
from .query_source import QuerySource
|
|
29
|
+
|
|
28
30
|
from .resolution import LoopResolution
|
|
29
31
|
from .terminal import LoopTerminal
|
|
30
32
|
|
|
@@ -219,6 +221,7 @@ def create_initial_state(
|
|
|
219
221
|
"finish_reason": None,
|
|
220
222
|
"finish_reasons": [],
|
|
221
223
|
"section_cache": {},
|
|
224
|
+
"query_source": QuerySource.MAIN_THREAD,
|
|
222
225
|
}
|
|
223
226
|
|
|
224
227
|
|
|
@@ -264,6 +267,7 @@ class AgentLoopState(TypedDict):
|
|
|
264
267
|
finish_reason: str | None # Provider 协议层:这一轮 completion 为何停
|
|
265
268
|
finish_reasons: list[str] # finish_reason 历史(观测用)
|
|
266
269
|
section_cache: dict[str, str | None] # SystemPromptSection session 级缓存(key=name, value=compute() 结果)
|
|
270
|
+
query_source: NotRequired[str] # Loop 来源标签;主 REPL 为 main_thread,Fork 子图透传
|
|
267
271
|
|
|
268
272
|
|
|
269
273
|
# 状态字段契约别名(对外统一使用 LoopAgentStateFields)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""
|
|
2
|
+
query_source 官方常量(对齐 CC constants/querySource.ts)。
|
|
3
|
+
|
|
4
|
+
职责:
|
|
5
|
+
Loop 来源标签的单一字面量来源;与 compaction / fork 策略解耦。
|
|
6
|
+
|
|
7
|
+
链路位置:
|
|
8
|
+
AgentLoopState 默认值(exit_logic)与各层通过 query_source 字段透传。
|
|
9
|
+
|
|
10
|
+
当前裁剪范围:
|
|
11
|
+
仅常量与 normalize;守卫策略见 loop.context.query_source.QuerySourcePolicy。
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from typing import Final, FrozenSet
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class QuerySource:
|
|
20
|
+
"""官方 query_source 常量(禁止在业务代码散落字面量)。"""
|
|
21
|
+
|
|
22
|
+
MAIN_THREAD: Final[str] = "main_thread"
|
|
23
|
+
EXTRACT_MEMORIES: Final[str] = "extract_memories"
|
|
24
|
+
SESSION_MEMORY: Final[str] = "session_memory"
|
|
25
|
+
COMPACT: Final[str] = "compact"
|
|
26
|
+
AGENT_SUMMARY: Final[str] = "agent_summary"
|
|
27
|
+
MEMDIR_RELEVANCE: Final[str] = "memdir_relevance"
|
|
28
|
+
AGENT_PREFIX: Final[str] = "agent:"
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def all_official(cls) -> FrozenSet[str]:
|
|
32
|
+
return frozenset(
|
|
33
|
+
{
|
|
34
|
+
cls.MAIN_THREAD,
|
|
35
|
+
cls.EXTRACT_MEMORIES,
|
|
36
|
+
cls.SESSION_MEMORY,
|
|
37
|
+
cls.COMPACT,
|
|
38
|
+
cls.AGENT_SUMMARY,
|
|
39
|
+
cls.MEMDIR_RELEVANCE,
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def is_agent_subagent(cls, query_source: str | None) -> bool:
|
|
45
|
+
return isinstance(query_source, str) and query_source.startswith(cls.AGENT_PREFIX)
|
|
46
|
+
|
|
47
|
+
@classmethod
|
|
48
|
+
def normalize(cls, query_source: str | None) -> str:
|
|
49
|
+
if isinstance(query_source, str) and query_source.strip():
|
|
50
|
+
return query_source.strip()
|
|
51
|
+
return cls.MAIN_THREAD
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
__all__ = ["QuerySource"]
|
|
@@ -89,10 +89,6 @@ from ...memory.instruction.runtime import (
|
|
|
89
89
|
CallbackActiveFilesProvider,
|
|
90
90
|
InstructionMemoryBootstrap,
|
|
91
91
|
)
|
|
92
|
-
from ...memory.memdir.agent_memory import (
|
|
93
|
-
AgentMemoryPromptBootstrap,
|
|
94
|
-
get_default_agent_memory_extraction_coordinator,
|
|
95
|
-
)
|
|
96
92
|
from ...memory.memdir.runtime import MemoryPromptBootstrap
|
|
97
93
|
from ...memory.memdir.extractor import MemoryExtractionCoordinator
|
|
98
94
|
from ...memory.memdir.paths import is_memory_enabled
|
|
@@ -101,7 +97,6 @@ from ..hook.post_sample_hook import PostSampleHook
|
|
|
101
97
|
# SessionMemoryCompactBridge uses lazy import to avoid circular dependency with memory.session.session_memory
|
|
102
98
|
from ..prompt import SystemPromptSection, build_effective_system_prompt
|
|
103
99
|
from ..prompt.session_context import get_default_session_context_sections
|
|
104
|
-
from ...tools.agent.prompt import build_explore_plan_guidance
|
|
105
100
|
from ..config import ModelContextResolver
|
|
106
101
|
from ..config.loop_config import (
|
|
107
102
|
AgentLoopConfig,
|
|
@@ -352,6 +347,7 @@ class LoopGraphBuilder:
|
|
|
352
347
|
self._state_schema = state_schema
|
|
353
348
|
self._context_schema = context_schema
|
|
354
349
|
self._prepared = False
|
|
350
|
+
self._memory_prefetch_coordinator: Any | None = None
|
|
355
351
|
|
|
356
352
|
def _prepare_compile_context(self) -> None:
|
|
357
353
|
if self._prepared:
|
|
@@ -370,6 +366,12 @@ class LoopGraphBuilder:
|
|
|
370
366
|
append_system_prompt = self._config.prompt.append_system
|
|
371
367
|
self._resolve_workspace_config()
|
|
372
368
|
self._setup_loader_tools()
|
|
369
|
+
from ...loop.prompt.tool_aware_sections import (
|
|
370
|
+
build_tool_aware_prompt_sections,
|
|
371
|
+
collect_enabled_tool_names,
|
|
372
|
+
)
|
|
373
|
+
|
|
374
|
+
self._enabled_tool_names = collect_enabled_tool_names(self._loader_tools)
|
|
373
375
|
# P0-3: 初始化 session_store.cwd
|
|
374
376
|
# 从 config.workspace.runtime_cwd 或回退到 workspace_root
|
|
375
377
|
if session_store is not None and hasattr(session_store, "set_cwd"):
|
|
@@ -405,10 +407,20 @@ class LoopGraphBuilder:
|
|
|
405
407
|
from ...memory.session.compact_bridge import SessionMemoryCompactBridge
|
|
406
408
|
|
|
407
409
|
session_memory_path = self._workspace_cfg.session_memory_path(session_id)
|
|
410
|
+
session_memory_extractor = None
|
|
411
|
+
if not self._config.subagent.is_subagent:
|
|
412
|
+
session_memory_extractor = self._build_session_memory_extractor(
|
|
413
|
+
model=model,
|
|
414
|
+
session_store=session_store,
|
|
415
|
+
session_id=session_id or "",
|
|
416
|
+
session_memory_path=session_memory_path,
|
|
417
|
+
base_prompt=base_prompt,
|
|
418
|
+
)
|
|
408
419
|
self._session_memory_manager = SessionMemoryManager(
|
|
409
420
|
session_memory_path=session_memory_path,
|
|
410
421
|
llm=model,
|
|
411
422
|
is_subagent=self._config.subagent.is_subagent,
|
|
423
|
+
extractor=session_memory_extractor,
|
|
412
424
|
)
|
|
413
425
|
self._session_memory_compact_bridge = SessionMemoryCompactBridge(
|
|
414
426
|
session_memory_path=session_memory_path,
|
|
@@ -432,6 +444,7 @@ class LoopGraphBuilder:
|
|
|
432
444
|
workspace_root=Path(self._workspace_root),
|
|
433
445
|
agent_home_segment=self._agent_home_segment,
|
|
434
446
|
managed_rules=self._config.managed_rules,
|
|
447
|
+
claude_md_excludes=self._config.claude_md_excludes,
|
|
435
448
|
active_files_provider=(
|
|
436
449
|
CallbackActiveFilesProvider(self._services.active_files_getter)
|
|
437
450
|
if self._services.active_files_getter is not None
|
|
@@ -446,14 +459,15 @@ class LoopGraphBuilder:
|
|
|
446
459
|
available_tools=self._loader_tools,
|
|
447
460
|
).build_sections()
|
|
448
461
|
)
|
|
449
|
-
self.
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
462
|
+
if not self._config.subagent.is_subagent:
|
|
463
|
+
self._dynamic_sections.extend(
|
|
464
|
+
build_tool_aware_prompt_sections(
|
|
465
|
+
self._enabled_tool_names,
|
|
466
|
+
loader_tools=self._loader_tools,
|
|
467
|
+
include_session_memory_mechanics=self._config.enable_session_memory,
|
|
468
|
+
is_subagent=False,
|
|
469
|
+
)
|
|
470
|
+
)
|
|
457
471
|
system_message = self._build_system_message(
|
|
458
472
|
base_prompt=base_prompt,
|
|
459
473
|
append_system_prompt=append_system_prompt,
|
|
@@ -467,12 +481,6 @@ class LoopGraphBuilder:
|
|
|
467
481
|
self._built_in_tools = []
|
|
468
482
|
self._available_tools = list(self._loader_tools)
|
|
469
483
|
|
|
470
|
-
if not self._config.subagent.is_subagent:
|
|
471
|
-
append_system_prompt, system_message = self._apply_explore_guidance(
|
|
472
|
-
append_system_prompt=append_system_prompt,
|
|
473
|
-
base_prompt=base_prompt,
|
|
474
|
-
)
|
|
475
|
-
|
|
476
484
|
# 使用已有的 config(frozen,不可修改),但需要添加运行时计算的值
|
|
477
485
|
# 运行时需要的额外值存储在 self._* 字段中
|
|
478
486
|
|
|
@@ -553,17 +561,21 @@ class LoopGraphBuilder:
|
|
|
553
561
|
model=model,
|
|
554
562
|
session_store=session_store,
|
|
555
563
|
session_id=session_id or "",
|
|
564
|
+
trace_collector=collector,
|
|
565
|
+
)
|
|
566
|
+
self._memory_prefetch_coordinator = self._build_memory_prefetch_coordinator(
|
|
567
|
+
model=model,
|
|
568
|
+
session_store=session_store,
|
|
556
569
|
)
|
|
557
570
|
self._hook_graph_wiring = HookGraphWiring(
|
|
558
571
|
hook_engine,
|
|
559
572
|
trace_lifecycle_collector=trace_lifecycle_collector,
|
|
560
573
|
session_memory=self._session_memory_manager,
|
|
561
574
|
memory_extractor=memory_extractor,
|
|
562
|
-
|
|
575
|
+
memory_prefetch_coordinator=self._memory_prefetch_coordinator,
|
|
563
576
|
workspace_cfg=self._workspace_cfg,
|
|
564
577
|
session_id=session_id or "",
|
|
565
578
|
container_type=container_type,
|
|
566
|
-
subagent_type=self._config.subagent.subagent_type,
|
|
567
579
|
post_sample_hook=PostSampleHook(memory_extractor=memory_extractor),
|
|
568
580
|
)
|
|
569
581
|
if self._config.trace.enabled:
|
|
@@ -664,9 +676,11 @@ class LoopGraphBuilder:
|
|
|
664
676
|
model: Any,
|
|
665
677
|
session_store: Any,
|
|
666
678
|
session_id: str,
|
|
679
|
+
trace_collector: Any | None = None,
|
|
667
680
|
) -> MemoryExtractionCoordinator:
|
|
668
681
|
from ..subagent.context import ForkedParentRuntime
|
|
669
682
|
from ..subagent.forked_runner import ForkedAgentRunner
|
|
683
|
+
from ...memory.memdir.extractor import build_trace_memory_saved_callback
|
|
670
684
|
|
|
671
685
|
if (
|
|
672
686
|
self._is_subagent
|
|
@@ -689,6 +703,7 @@ class LoopGraphBuilder:
|
|
|
689
703
|
capabilities=self._services.capabilities,
|
|
690
704
|
cwd=runtime_cwd,
|
|
691
705
|
)
|
|
706
|
+
from ...memory.memdir.fork_concurrency import default_fork_concurrency_limiter
|
|
692
707
|
from ...memory.memdir.metrics import default_memory_fork_metrics
|
|
693
708
|
|
|
694
709
|
metrics = default_memory_fork_metrics()
|
|
@@ -696,10 +711,101 @@ class LoopGraphBuilder:
|
|
|
696
711
|
forked_runner=ForkedAgentRunner(
|
|
697
712
|
parent_runtime=parent_runtime,
|
|
698
713
|
metrics=metrics,
|
|
714
|
+
concurrency_limiter=default_fork_concurrency_limiter(),
|
|
699
715
|
),
|
|
700
716
|
metrics=metrics,
|
|
717
|
+
on_memory_saved=build_trace_memory_saved_callback(trace_collector, session_id),
|
|
701
718
|
)
|
|
702
719
|
|
|
720
|
+
def _build_session_memory_extractor(
|
|
721
|
+
self,
|
|
722
|
+
*,
|
|
723
|
+
model: Any,
|
|
724
|
+
session_store: Any,
|
|
725
|
+
session_id: str,
|
|
726
|
+
session_memory_path: Any,
|
|
727
|
+
base_prompt: str,
|
|
728
|
+
) -> Any | None:
|
|
729
|
+
"""为 L3 Session Memory 组装 Fork 抽取器(对齐 memdir coordinator 构造)。"""
|
|
730
|
+
from pathlib import Path as StdPath
|
|
731
|
+
|
|
732
|
+
from ..subagent.context import ForkedParentRuntime
|
|
733
|
+
from ..subagent.forked_runner import ForkedAgentRunner
|
|
734
|
+
from ...memory.memdir.fork_concurrency import default_fork_concurrency_limiter
|
|
735
|
+
from ...memory.session.extractor import SessionMemoryExtractor
|
|
736
|
+
|
|
737
|
+
if self._services.loader is None or self._loop_loader is None:
|
|
738
|
+
return None
|
|
739
|
+
|
|
740
|
+
runtime_cwd = str(self._config.workspace.runtime_cwd or self._workspace_root)
|
|
741
|
+
parent_runtime = ForkedParentRuntime(
|
|
742
|
+
session_store=session_store,
|
|
743
|
+
tool_registry=self._loop_loader.registry,
|
|
744
|
+
tool_loader=self._services.loader,
|
|
745
|
+
model=model,
|
|
746
|
+
workspace_root=str(self._workspace_root),
|
|
747
|
+
agent_home_segment=self._workspace_cfg.agent_home_segment,
|
|
748
|
+
parent_run_id=session_id or None,
|
|
749
|
+
parent_conversation_session_id=session_id or None,
|
|
750
|
+
system_prompt=base_prompt,
|
|
751
|
+
capabilities=self._services.capabilities,
|
|
752
|
+
cwd=runtime_cwd,
|
|
753
|
+
)
|
|
754
|
+
forked_runner = ForkedAgentRunner(
|
|
755
|
+
parent_runtime=parent_runtime,
|
|
756
|
+
concurrency_limiter=default_fork_concurrency_limiter(),
|
|
757
|
+
)
|
|
758
|
+
return SessionMemoryExtractor(
|
|
759
|
+
forked_runner=forked_runner,
|
|
760
|
+
parent_runtime=parent_runtime,
|
|
761
|
+
session_memory_path=StdPath(session_memory_path),
|
|
762
|
+
)
|
|
763
|
+
|
|
764
|
+
def _build_memory_prefetch_coordinator(
|
|
765
|
+
self,
|
|
766
|
+
*,
|
|
767
|
+
model: Any,
|
|
768
|
+
session_store: Any,
|
|
769
|
+
) -> Any | None:
|
|
770
|
+
from ...memory.memdir.gate import is_memory_prefetch_enabled
|
|
771
|
+
from ...memory.memdir.prefetch import MemoryPrefetchCoordinator
|
|
772
|
+
from ...memory.memdir.recall_service import MemoryRecallService
|
|
773
|
+
|
|
774
|
+
if self._is_subagent or not is_memory_enabled(self._workspace_cfg):
|
|
775
|
+
return None
|
|
776
|
+
if not is_memory_prefetch_enabled(self._workspace_cfg):
|
|
777
|
+
return None
|
|
778
|
+
recall_service = MemoryRecallService(
|
|
779
|
+
workspace_cfg=self._workspace_cfg,
|
|
780
|
+
model=model,
|
|
781
|
+
)
|
|
782
|
+
return MemoryPrefetchCoordinator(
|
|
783
|
+
recall_service=recall_service,
|
|
784
|
+
workspace_cfg=self._workspace_cfg,
|
|
785
|
+
session_store=session_store,
|
|
786
|
+
)
|
|
787
|
+
|
|
788
|
+
def _consume_memory_prefetch_attachment_messages(self, state: dict[str, Any]) -> list[dict[str, Any]]:
|
|
789
|
+
coordinator = self._memory_prefetch_coordinator
|
|
790
|
+
if coordinator is None:
|
|
791
|
+
return []
|
|
792
|
+
iteration = int(state.get("turn_count", 0) or 0)
|
|
793
|
+
return coordinator.consume_attachment_messages(state, iteration=iteration)
|
|
794
|
+
|
|
795
|
+
def _patch_messages_with_memory_prefetch(
|
|
796
|
+
self,
|
|
797
|
+
state: dict[str, Any],
|
|
798
|
+
patch: dict[str, Any],
|
|
799
|
+
) -> dict[str, Any]:
|
|
800
|
+
memory_attachments = self._consume_memory_prefetch_attachment_messages(state)
|
|
801
|
+
if not memory_attachments:
|
|
802
|
+
return patch
|
|
803
|
+
messages = list(patch.get("messages") or state.get("messages") or [])
|
|
804
|
+
messages.extend(memory_attachments)
|
|
805
|
+
patch = dict(patch)
|
|
806
|
+
patch["messages"] = messages
|
|
807
|
+
return patch
|
|
808
|
+
|
|
703
809
|
def _resolve_workspace_config(self) -> None:
|
|
704
810
|
raw_workspace_root = self._config.workspace.workspace_root
|
|
705
811
|
if raw_workspace_root is None:
|
|
@@ -803,28 +909,6 @@ class LoopGraphBuilder:
|
|
|
803
909
|
structured_output_tools[structured_tool_info.tool.name] = structured_tool_info
|
|
804
910
|
return initial_response_format, tool_strategy_for_setup, structured_output_tools
|
|
805
911
|
|
|
806
|
-
def _apply_explore_guidance(
|
|
807
|
-
self,
|
|
808
|
-
*,
|
|
809
|
-
append_system_prompt: str | None,
|
|
810
|
-
base_prompt: str | None,
|
|
811
|
-
) -> tuple[str | None, SystemMessage | None]:
|
|
812
|
-
explore_guidance = build_explore_plan_guidance(self._available_tools)
|
|
813
|
-
if not explore_guidance:
|
|
814
|
-
return append_system_prompt, self._build_system_message(
|
|
815
|
-
base_prompt=base_prompt,
|
|
816
|
-
append_system_prompt=append_system_prompt,
|
|
817
|
-
)
|
|
818
|
-
updated_append_prompt = (
|
|
819
|
-
f"{append_system_prompt}\n\n{explore_guidance}"
|
|
820
|
-
if append_system_prompt
|
|
821
|
-
else explore_guidance
|
|
822
|
-
)
|
|
823
|
-
return updated_append_prompt, self._build_system_message(
|
|
824
|
-
base_prompt=base_prompt,
|
|
825
|
-
append_system_prompt=updated_append_prompt,
|
|
826
|
-
)
|
|
827
|
-
|
|
828
912
|
def _build_tool_node(self) -> Any:
|
|
829
913
|
self._prepare_compile_context()
|
|
830
914
|
need_tool_node = bool(self._available_tools)
|
|
@@ -870,7 +954,7 @@ class LoopGraphBuilder:
|
|
|
870
954
|
model = self._model
|
|
871
955
|
if self._config.enable_tool_call_degradation_fix and not isinstance(model, ToolCallDegradationCorrector):
|
|
872
956
|
allowed_tool_names = _build_allowed_tool_names_for_degradation_correction(
|
|
873
|
-
|
|
957
|
+
enabled_tool_names=set(self._enabled_tool_names),
|
|
874
958
|
built_in_tools=self._built_in_tools,
|
|
875
959
|
structured_output_tools=self._structured_output_tools,
|
|
876
960
|
)
|
|
@@ -1066,7 +1150,10 @@ class LoopGraphBuilder:
|
|
|
1066
1150
|
loop_entry_node = "hook_before_model"
|
|
1067
1151
|
raw_loop_entry_node = "hook_before_model"
|
|
1068
1152
|
provider_chain, has_skill_tool = self._build_provider_chain(tool_node)
|
|
1069
|
-
|
|
1153
|
+
wire_task_event_nodes = bool(provider_chain) or (
|
|
1154
|
+
self._memory_prefetch_coordinator is not None and tool_node is not None
|
|
1155
|
+
)
|
|
1156
|
+
if wire_task_event_nodes:
|
|
1070
1157
|
loop_entry_node = self._wire_task_event_nodes(
|
|
1071
1158
|
graph_inner=graph_inner,
|
|
1072
1159
|
provider_chain=provider_chain,
|
|
@@ -1092,6 +1179,7 @@ class LoopGraphBuilder:
|
|
|
1092
1179
|
"loop_exit_node": "model",
|
|
1093
1180
|
"exit_node": "hook_loop_end",
|
|
1094
1181
|
"provider_chain": provider_chain,
|
|
1182
|
+
"wire_task_event_nodes": wire_task_event_nodes,
|
|
1095
1183
|
}
|
|
1096
1184
|
|
|
1097
1185
|
def _build_provider_chain(self, tool_node: Any) -> tuple[list[QueuedCommandProvider], bool]:
|
|
@@ -1241,11 +1329,14 @@ class LoopGraphBuilder:
|
|
|
1241
1329
|
"agent_id": event.scope.agent_id,
|
|
1242
1330
|
}
|
|
1243
1331
|
)
|
|
1244
|
-
return
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1332
|
+
return self._patch_messages_with_memory_prefetch(
|
|
1333
|
+
state,
|
|
1334
|
+
{
|
|
1335
|
+
"pending_task_batch_id": None,
|
|
1336
|
+
"pending_task_command_ids": [],
|
|
1337
|
+
"task_events": task_events,
|
|
1338
|
+
},
|
|
1339
|
+
)
|
|
1249
1340
|
messages = list(state.get("messages") or [])
|
|
1250
1341
|
# 冻结契约:task 通知附件仅经本节点注入;按 command_id 与已有 messages 去重
|
|
1251
1342
|
# (见 docs/design-docs/loop/agent-loop/post-tools-injection-contract.md)
|
|
@@ -1309,14 +1400,17 @@ class LoopGraphBuilder:
|
|
|
1309
1400
|
"agent_id": event.scope.agent_id,
|
|
1310
1401
|
}
|
|
1311
1402
|
)
|
|
1312
|
-
return
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1403
|
+
return self._patch_messages_with_memory_prefetch(
|
|
1404
|
+
state,
|
|
1405
|
+
{
|
|
1406
|
+
"messages": messages,
|
|
1407
|
+
"pending_task_batch_id": encode_provider_batch_id(
|
|
1408
|
+
provider_index, batch.batch_id
|
|
1409
|
+
),
|
|
1410
|
+
"pending_task_command_ids": list(batch.command_ids),
|
|
1411
|
+
"task_events": task_events,
|
|
1412
|
+
},
|
|
1413
|
+
)
|
|
1320
1414
|
except Exception:
|
|
1321
1415
|
if batch is not None and batch.batch_id:
|
|
1322
1416
|
if 0 <= provider_index < len(provider_chain):
|
|
@@ -1415,6 +1509,7 @@ class LoopGraphBuilder:
|
|
|
1415
1509
|
loop_exit_node = routing["loop_exit_node"]
|
|
1416
1510
|
exit_node = routing["exit_node"]
|
|
1417
1511
|
provider_chain = routing["provider_chain"]
|
|
1512
|
+
wire_task_event_nodes = routing["wire_task_event_nodes"]
|
|
1418
1513
|
if tool_node is not None:
|
|
1419
1514
|
self._wire_main_edges_with_tools(
|
|
1420
1515
|
graph_inner=graph_inner,
|
|
@@ -1423,6 +1518,7 @@ class LoopGraphBuilder:
|
|
|
1423
1518
|
loop_exit_node=loop_exit_node,
|
|
1424
1519
|
exit_node=exit_node,
|
|
1425
1520
|
provider_chain=provider_chain,
|
|
1521
|
+
wire_task_event_nodes=wire_task_event_nodes,
|
|
1426
1522
|
)
|
|
1427
1523
|
return
|
|
1428
1524
|
if len(self._structured_output_tools) > 0:
|
|
@@ -1446,8 +1542,9 @@ class LoopGraphBuilder:
|
|
|
1446
1542
|
loop_exit_node: str,
|
|
1447
1543
|
exit_node: str,
|
|
1448
1544
|
provider_chain: list[QueuedCommandProvider],
|
|
1545
|
+
wire_task_event_nodes: bool,
|
|
1449
1546
|
) -> None:
|
|
1450
|
-
if
|
|
1547
|
+
if wire_task_event_nodes:
|
|
1451
1548
|
tools_model_destination = loop_entry_node
|
|
1452
1549
|
tools_to_model_destinations = [loop_entry_node, exit_node]
|
|
1453
1550
|
else:
|
|
@@ -1467,7 +1564,7 @@ class LoopGraphBuilder:
|
|
|
1467
1564
|
),
|
|
1468
1565
|
tools_to_model_destinations,
|
|
1469
1566
|
)
|
|
1470
|
-
if not
|
|
1567
|
+
if not wire_task_event_nodes:
|
|
1471
1568
|
graph_inner.add_edge("prune_and_compress", loop_entry_node)
|
|
1472
1569
|
graph_inner.add_edge(loop_exit_node, "hook_after_model")
|
|
1473
1570
|
graph_inner.add_edge("hook_after_model", "hook_stop")
|
|
@@ -1494,7 +1591,7 @@ class LoopGraphBuilder:
|
|
|
1494
1591
|
)
|
|
1495
1592
|
|
|
1496
1593
|
loop_controller_destinations = ["tools", loop_entry_node, exit_node, "reactive_compact"]
|
|
1497
|
-
if
|
|
1594
|
+
if wire_task_event_nodes and "task_event_commit_ack" not in loop_controller_destinations:
|
|
1498
1595
|
loop_controller_destinations.append("task_event_commit_ack")
|
|
1499
1596
|
graph_inner.add_conditional_edges(
|
|
1500
1597
|
"loop_controller",
|
|
@@ -41,11 +41,10 @@ class HookGraphWiring:
|
|
|
41
41
|
trace_lifecycle_collector: Any | None = None
|
|
42
42
|
session_memory: Any | None = None
|
|
43
43
|
memory_extractor: Any | None = None
|
|
44
|
-
|
|
44
|
+
memory_prefetch_coordinator: Any | None = None
|
|
45
45
|
workspace_cfg: Any | None = None
|
|
46
46
|
session_id: str | None = None
|
|
47
47
|
container_type: str = "interactive"
|
|
48
|
-
subagent_type: str | None = None
|
|
49
48
|
hook_runner: AsyncHookRunner = field(default_factory=AsyncHookRunner)
|
|
50
49
|
post_sample_hook: PostSampleHook | None = None
|
|
51
50
|
|
|
@@ -67,6 +66,8 @@ class HookGraphWiring:
|
|
|
67
66
|
patch.update(self._drain_hook_ui_events())
|
|
68
67
|
if result.state_patch:
|
|
69
68
|
patch.update(dict(result.state_patch))
|
|
69
|
+
if self.memory_prefetch_coordinator is not None:
|
|
70
|
+
patch.update(self.memory_prefetch_coordinator.start_turn(state))
|
|
70
71
|
return patch
|
|
71
72
|
|
|
72
73
|
def before_model_node(self, state: dict[str, Any], runtime: Any) -> dict[str, Any]:
|
|
@@ -120,14 +121,6 @@ class HookGraphWiring:
|
|
|
120
121
|
drain = getattr(self.memory_extractor, "drain_on_stop", None)
|
|
121
122
|
if callable(drain):
|
|
122
123
|
drain()
|
|
123
|
-
if self.agent_memory_extractor is not None and self.workspace_cfg is not None:
|
|
124
|
-
self.agent_memory_extractor.trigger_from_state(
|
|
125
|
-
state=state,
|
|
126
|
-
workspace_cfg=self.workspace_cfg,
|
|
127
|
-
session_id=self.session_id or str(state.get("_session_id") or ""),
|
|
128
|
-
container_type=self.container_type,
|
|
129
|
-
agent_type=self.subagent_type,
|
|
130
|
-
)
|
|
131
124
|
result = self._execute_sync(HookEvent.STOP, state)
|
|
132
125
|
if result is None:
|
|
133
126
|
return {}
|
|
@@ -138,6 +131,8 @@ class HookGraphWiring:
|
|
|
138
131
|
return patch
|
|
139
132
|
|
|
140
133
|
def loop_end_node(self, state: dict[str, Any], runtime: Any) -> dict[str, Any]:
|
|
134
|
+
if self.memory_prefetch_coordinator is not None:
|
|
135
|
+
self.memory_prefetch_coordinator.abort_turn()
|
|
141
136
|
result = self._execute_sync(HookEvent.LOOP_END, state)
|
|
142
137
|
patch = {"__hook_result__": _to_hook_result_dict(result)} if result is not None else {}
|
|
143
138
|
if result is not None:
|
|
@@ -25,7 +25,6 @@ import uuid
|
|
|
25
25
|
from typing import Any, Dict, List, Optional, Sequence, Set
|
|
26
26
|
|
|
27
27
|
from langchain.agents.structured_output import OutputToolBinding
|
|
28
|
-
from langgraph.prebuilt.tool_node import ToolNode
|
|
29
28
|
from langchain_core.messages import AIMessage
|
|
30
29
|
|
|
31
30
|
logger = logging.getLogger(__name__)
|
|
@@ -482,24 +481,18 @@ class ToolCallDegradationCorrector:
|
|
|
482
481
|
|
|
483
482
|
|
|
484
483
|
def _build_allowed_tool_names_for_degradation_correction(
|
|
485
|
-
|
|
484
|
+
*,
|
|
485
|
+
enabled_tool_names: Set[str] | frozenset[str],
|
|
486
486
|
built_in_tools: list[dict[str, Any] | Any],
|
|
487
487
|
structured_output_tools: dict[str, OutputToolBinding[Any]],
|
|
488
488
|
) -> Set[str]:
|
|
489
|
-
"""Build tool name whitelist for ToolCallDegradationCorrector."""
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
if isinstance(name_attr, str):
|
|
500
|
-
allowed_tool_names.add(name_attr)
|
|
501
|
-
|
|
502
|
-
# 3) Structured output tools derived from response_format / AutoStrategy
|
|
503
|
-
allowed_tool_names.update(structured_output_tools.keys())
|
|
504
|
-
|
|
505
|
-
return allowed_tool_names
|
|
489
|
+
"""Build tool name whitelist for ToolCallDegradationCorrector (SSOT: enabled ∪ built_in ∪ structured)."""
|
|
490
|
+
from langchain_agentx.loop.prompt.tool_aware_sections import (
|
|
491
|
+
build_degradation_allowed_tool_names,
|
|
492
|
+
)
|
|
493
|
+
|
|
494
|
+
return build_degradation_allowed_tool_names(
|
|
495
|
+
enabled_tool_names=enabled_tool_names,
|
|
496
|
+
built_in_tools=built_in_tools,
|
|
497
|
+
structured_output_tools=structured_output_tools,
|
|
498
|
+
)
|