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.
Files changed (619) hide show
  1. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/PKG-INFO +1 -1
  2. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/__init__.py +1 -1
  3. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/loop_config.py +1 -0
  4. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/query_source.py +14 -38
  5. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/exit_logic.py +4 -0
  6. langchain-agentx-python-1.0.7/langchain_agentx/loop/exit/query_source.py +54 -0
  7. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/factory.py +158 -61
  8. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/graph_wiring.py +5 -10
  9. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +12 -19
  10. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/builtin.py +1 -1
  11. langchain-agentx-python-1.0.7/langchain_agentx/loop/prompt/tool_aware_sections.py +112 -0
  12. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/__init__.py +13 -0
  13. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/context.py +29 -1
  14. langchain-agentx-python-1.0.7/langchain_agentx/loop/subagent/fork_boilerplate.py +125 -0
  15. langchain-agentx-python-1.0.7/langchain_agentx/loop/subagent/fork_ports.py +48 -0
  16. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/forked_runner.py +20 -22
  17. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/orchestrator.py +112 -10
  18. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/runner.py +1 -0
  19. langchain-agentx-python-1.0.7/langchain_agentx/memory/instruction/exclusion.py +73 -0
  20. langchain-agentx-python-1.0.7/langchain_agentx/memory/instruction/external_includes.py +62 -0
  21. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/loader.py +60 -9
  22. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/runtime.py +12 -1
  23. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/types.py +2 -0
  24. langchain-agentx-python-1.0.7/langchain_agentx/memory/instruction/worktree_skip.py +58 -0
  25. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/__init__.py +0 -24
  26. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/attachments.py +66 -0
  27. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/extractor.py +60 -8
  28. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/gate.py +82 -0
  29. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/loader.py +81 -0
  30. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/memory_saved.py +52 -0
  31. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/prefetch.py +254 -0
  32. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/prompts/select_memories.py +24 -0
  33. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/recall.py +84 -0
  34. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/recall_service.py +462 -0
  35. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/scan.py +41 -15
  36. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/side_query.py +101 -0
  37. langchain-agentx-python-1.0.7/langchain_agentx/memory/memdir/written_paths.py +147 -0
  38. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/__init__.py +17 -0
  39. langchain-agentx-python-1.0.7/langchain_agentx/memory/session/extractor.py +85 -0
  40. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/prompts.py +13 -0
  41. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/session_memory.py +80 -20
  42. langchain-agentx-python-1.0.7/langchain_agentx/memory/session/tool_scope.py +53 -0
  43. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/agent_session.py +0 -2
  44. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/conversation_session.py +0 -2
  45. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/backend.py +41 -2
  46. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/loader.py +58 -1
  47. langchain-agentx-python-1.0.7/langchain_agentx/tools/agent/memory_paths.py +102 -0
  48. langchain-agentx-python-1.0.7/langchain_agentx/tools/agent/memory_prompt.py +74 -0
  49. langchain-agentx-python-1.0.7/langchain_agentx/tools/agent/memory_snapshot.py +410 -0
  50. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/prompt.py +55 -19
  51. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/registry/config.py +14 -0
  52. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/tool.py +10 -4
  53. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/prompt.py +2 -2
  54. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/semantics.py +10 -0
  55. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/fork.py +9 -3
  56. langchain-agentx-python-1.0.7/langchain_agentx/utils/git_roots.py +142 -0
  57. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/base.py +3 -7
  58. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/config.py +34 -7
  59. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/tool_boundary.py +24 -0
  60. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/PKG-INFO +1 -1
  61. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/SOURCES.txt +21 -1
  62. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/pyproject.toml +1 -1
  63. langchain-agentx-python-1.0.5/langchain_agentx/memory/memdir/gate.py +0 -54
  64. langchain-agentx-python-1.0.5/langchain_agentx/memory/memdir/recall.py +0 -45
  65. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/LICENSE +0 -0
  66. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/README.md +0 -0
  67. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/__init__.py +0 -0
  68. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/__init__.py +0 -0
  69. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/clear.py +0 -0
  70. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/compact.py +0 -0
  71. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/memory.py +0 -0
  72. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
  73. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/context.py +0 -0
  74. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/dispatcher.py +0 -0
  75. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/registry.py +0 -0
  76. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/result.py +0 -0
  77. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/command/types.py +0 -0
  78. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/config/__init__.py +0 -0
  79. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/config/model_profiles.yaml +0 -0
  80. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/config/model_profiles.yaml.example +0 -0
  81. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/__init__.py +0 -0
  82. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/checks.py +0 -0
  83. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/models.py +0 -0
  84. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/health/preflight.py +0 -0
  85. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/__init__.py +0 -0
  86. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
  87. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/__init__.py +0 -0
  88. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/agent_config.py +0 -0
  89. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
  90. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/runtime_settings.py +0 -0
  91. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/token_estimator.py +0 -0
  92. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
  93. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/__init__.py +0 -0
  94. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/blocking_guard.py +0 -0
  95. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/compaction_service.py +0 -0
  96. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/message_utils.py +0 -0
  97. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/pipeline.py +0 -0
  98. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/recovery_mode.py +0 -0
  99. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/settings.py +0 -0
  100. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/__init__.py +0 -0
  101. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
  102. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/base.py +0 -0
  103. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/collapse.py +0 -0
  104. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
  105. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/noop.py +0 -0
  106. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/snip.py +0 -0
  107. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
  108. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/context/types.py +0 -0
  109. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/__init__.py +0 -0
  110. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/reason_codes.py +0 -0
  111. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/resolution.py +0 -0
  112. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/terminal.py +0 -0
  113. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/exit/withheld_error.py +0 -0
  114. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/__init__.py +0 -0
  115. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
  116. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/graph_edges.py +0 -0
  117. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
  118. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
  119. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/__init__.py +0 -0
  120. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
  121. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/config.py +0 -0
  122. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/engine.py +0 -0
  123. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
  124. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/agent.py +0 -0
  125. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/command.py +0 -0
  126. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/http.py +0 -0
  127. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
  128. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/hook_projection.py +0 -0
  129. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/post_sample_hook.py +0 -0
  130. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/progress_payload.py +0 -0
  131. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/registry.py +0 -0
  132. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/trust.py +0 -0
  133. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/hook/types.py +0 -0
  134. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/injection/__init__.py +0 -0
  135. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/injection/dedup.py +0 -0
  136. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/loop_abort.py +0 -0
  137. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/__init__.py +0 -0
  138. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/model_node.py +0 -0
  139. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/model_nodes.py +0 -0
  140. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
  141. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retrier.py +0 -0
  142. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_bridge.py +0 -0
  143. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_events.py +0 -0
  144. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_policy.py +0 -0
  145. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/retry_progress.py +0 -0
  146. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/schema_and_format.py +0 -0
  147. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
  148. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
  149. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/__init__.py +0 -0
  150. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/builder.py +0 -0
  151. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/compact.py +0 -0
  152. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/sections.py +0 -0
  153. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/prompt/session_context.py +0 -0
  154. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/__init__.py +0 -0
  155. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/context.py +0 -0
  156. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/context_factory.py +0 -0
  157. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
  158. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/graph_driver.py +0 -0
  159. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/helpers.py +0 -0
  160. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/loop_driver.py +0 -0
  161. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/result.py +0 -0
  162. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
  163. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
  164. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/async_runner.py +0 -0
  165. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
  166. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/graph.py +0 -0
  167. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/progress.py +0 -0
  168. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/prompt.py +0 -0
  169. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
  170. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/loop/subagent/transcript.py +0 -0
  171. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/__init__.py +0 -0
  172. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/__init__.py +0 -0
  173. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/resolver.py +0 -0
  174. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/instruction/sections.py +0 -0
  175. {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
  176. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/age.py +0 -0
  177. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
  178. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
  179. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/metrics.py +0 -0
  180. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/paths.py +0 -0
  181. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
  182. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
  183. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/runtime.py +0 -0
  184. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/threshold.py +0 -0
  185. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
  186. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/memdir/types.py +0 -0
  187. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/memory/session/compact_bridge.py +0 -0
  188. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/__init__.py +0 -0
  189. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/__init__.py +0 -0
  190. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
  191. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
  192. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
  193. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
  194. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
  195. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
  196. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
  197. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
  198. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/service.py +0 -0
  199. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/state.py +0 -0
  200. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/evaluation/store.py +0 -0
  201. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/__init__.py +0 -0
  202. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/finish_event_payload_composer.py +0 -0
  203. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/finish_outcome.py +0 -0
  204. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
  205. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
  206. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/__init__.py +0 -0
  207. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/debug_burst.py +0 -0
  208. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/logging_config.py +0 -0
  209. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/logging/logging_contract.py +0 -0
  210. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/__init__.py +0 -0
  211. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/cli.py +0 -0
  212. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/service.py +0 -0
  213. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/store.py +0 -0
  214. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/replay/ui.py +0 -0
  215. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/__init__.py +0 -0
  216. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/collector.py +0 -0
  217. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/event_emitter.py +0 -0
  218. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
  219. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/models.py +0 -0
  220. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
  221. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/trace_callback.py +0 -0
  222. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
  223. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/__init__.py +0 -0
  224. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/builtin.py +0 -0
  225. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/config.py +0 -0
  226. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/loader.py +0 -0
  227. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/manifest.py +0 -0
  228. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/registries.py +0 -0
  229. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/plugin/types.py +0 -0
  230. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/__init__.py +0 -0
  231. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/anthropic.py +0 -0
  232. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
  233. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/env.py +0 -0
  234. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/model_profile.py +0 -0
  235. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/openai.py +0 -0
  236. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/__init__.py +0 -0
  237. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
  238. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/contracts.py +0 -0
  239. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
  240. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
  241. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
  242. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
  243. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
  244. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
  245. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
  246. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
  247. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
  248. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
  249. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
  250. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai.py +0 -0
  251. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
  252. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
  253. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
  254. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
  255. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
  256. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
  257. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/profile.py +0 -0
  258. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/registry.py +0 -0
  259. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/request_codec.py +0 -0
  260. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/runtime.py +0 -0
  261. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
  262. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
  263. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
  264. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/__init__.py +0 -0
  265. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/conversation_factory.py +0 -0
  266. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/conversation_recovery.py +0 -0
  267. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/factory.py +0 -0
  268. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/protocol.py +0 -0
  269. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/session/recovery.py +0 -0
  270. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/__init__.py +0 -0
  271. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/__init__.py +0 -0
  272. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/ids.py +0 -0
  273. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
  274. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
  275. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/core/types.py +0 -0
  276. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
  277. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
  278. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
  279. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
  280. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
  281. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
  282. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
  283. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
  284. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
  285. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
  286. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/output/__init__.py +0 -0
  287. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/output/sink.py +0 -0
  288. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
  289. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
  290. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
  291. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
  292. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
  293. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
  294. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
  295. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
  296. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/store/__init__.py +0 -0
  297. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
  298. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/store/sqlite_store.py +0 -0
  299. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
  300. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
  301. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
  302. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
  303. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
  304. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
  305. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
  306. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
  307. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
  308. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
  309. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
  310. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
  311. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
  312. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
  313. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
  314. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
  315. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
  316. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
  317. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
  318. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
  319. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
  320. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
  321. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
  322. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
  323. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
  324. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
  325. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
  326. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
  327. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
  328. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
  329. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
  330. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
  331. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
  332. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
  333. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
  334. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
  335. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
  336. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
  337. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
  338. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
  339. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
  340. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
  341. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
  342. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
  343. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
  344. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
  345. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
  346. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
  347. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
  348. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
  349. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
  350. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
  351. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
  352. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
  353. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/__init__.py +0 -0
  354. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/adapter.py +0 -0
  355. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
  356. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
  357. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
  358. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
  359. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
  360. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
  361. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
  362. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
  363. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
  364. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
  365. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
  366. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
  367. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
  368. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
  369. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
  370. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
  371. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
  372. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/base.py +0 -0
  373. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/capabilities.py +0 -0
  374. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/errors.py +0 -0
  375. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
  376. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
  377. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
  378. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
  379. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
  380. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
  381. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
  382. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
  383. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
  384. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
  385. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/models.py +0 -0
  386. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
  387. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
  388. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
  389. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
  390. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
  391. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
  392. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
  393. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
  394. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/limits.py +0 -0
  395. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/loader.py +0 -0
  396. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
  397. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
  398. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/messages.py +0 -0
  399. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/models.py +0 -0
  400. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/override.py +0 -0
  401. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/path_safety.py +0 -0
  402. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/permission_context.py +0 -0
  403. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
  404. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/pipeline.py +0 -0
  405. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/policy.py +0 -0
  406. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
  407. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/process_loader.py +0 -0
  408. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
  409. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/progress/event.py +0 -0
  410. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
  411. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
  412. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
  413. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
  414. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
  415. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
  416. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
  417. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
  418. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
  419. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
  420. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
  421. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
  422. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/read_permission.py +0 -0
  423. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/registry.py +0 -0
  424. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
  425. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
  426. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
  427. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
  428. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
  429. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
  430. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/session_hints.py +0 -0
  431. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/session_store.py +0 -0
  432. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/shell_error.py +0 -0
  433. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
  434. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
  435. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
  436. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/__init__.py +0 -0
  437. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/__init__.py +0 -0
  438. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
  439. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
  440. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
  441. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/general.py +0 -0
  442. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
  443. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
  444. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
  445. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
  446. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
  447. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/limits.py +0 -0
  448. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/models.py +0 -0
  449. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
  450. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/registry/registry.py +0 -0
  451. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/agent/scope.py +0 -0
  452. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
  453. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
  454. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
  455. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/models.py +0 -0
  456. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
  457. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
  458. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
  459. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/__init__.py +0 -0
  460. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/ast_security.py +0 -0
  461. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
  462. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/backend.py +0 -0
  463. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
  464. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
  465. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/boundary_check.py +0 -0
  466. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
  467. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/events.py +0 -0
  468. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/limits.py +0 -0
  469. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/mode_validation.py +0 -0
  470. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/models.py +0 -0
  471. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/observability.py +0 -0
  472. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/output_tracker.py +0 -0
  473. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/output_utils.py +0 -0
  474. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/path_security.py +0 -0
  475. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
  476. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/result_presenter.py +0 -0
  477. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
  478. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/security.py +0 -0
  479. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
  480. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/sed_validation.py +0 -0
  481. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/shell_locator.py +0 -0
  482. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
  483. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/task_runtime.py +0 -0
  484. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/tool.py +0 -0
  485. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
  486. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/__init__.py +0 -0
  487. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/backend.py +0 -0
  488. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/diff_generator.py +0 -0
  489. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
  490. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/limits.py +0 -0
  491. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/models.py +0 -0
  492. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/prompt.py +0 -0
  493. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/quote_match.py +0 -0
  494. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
  495. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/settings_validator.py +0 -0
  496. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/staleness.py +0 -0
  497. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/tool.py +0 -0
  498. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/edit/validator.py +0 -0
  499. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/__init__.py +0 -0
  500. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/models.py +0 -0
  501. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/pagination.py +0 -0
  502. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/prompt.py +0 -0
  503. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
  504. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
  505. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/glob/tool.py +0 -0
  506. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/__init__.py +0 -0
  507. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/backend.py +0 -0
  508. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/models.py +0 -0
  509. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/prompt.py +0 -0
  510. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
  511. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/grep/tool.py +0 -0
  512. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/__init__.py +0 -0
  513. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/backend.py +0 -0
  514. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/limits.py +0 -0
  515. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/models.py +0 -0
  516. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/prompt.py +0 -0
  517. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/read/tool.py +0 -0
  518. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
  519. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/__init__.py +0 -0
  520. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
  521. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/loader.py +0 -0
  522. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/models.py +0 -0
  523. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/policy.py +0 -0
  524. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/prompt.py +0 -0
  525. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/skill/tool.py +0 -0
  526. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/__init__.py +0 -0
  527. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/hooks.py +0 -0
  528. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/limits.py +0 -0
  529. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/models.py +0 -0
  530. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/prompt.py +0 -0
  531. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_create/tool.py +0 -0
  532. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/__init__.py +0 -0
  533. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/models.py +0 -0
  534. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/prompt.py +0 -0
  535. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_get/tool.py +0 -0
  536. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/__init__.py +0 -0
  537. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/models.py +0 -0
  538. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/prompt.py +0 -0
  539. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_list/tool.py +0 -0
  540. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/__init__.py +0 -0
  541. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/hooks.py +0 -0
  542. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/models.py +0 -0
  543. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/prompt.py +0 -0
  544. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/task_update/tool.py +0 -0
  545. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/__init__.py +0 -0
  546. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/backend.py +0 -0
  547. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/limits.py +0 -0
  548. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/loader.py +0 -0
  549. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/models.py +0 -0
  550. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
  551. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/prompt.py +0 -0
  552. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/summary.py +0 -0
  553. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/webfetch/tool.py +0 -0
  554. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/__init__.py +0 -0
  555. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/backend.py +0 -0
  556. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/events.py +0 -0
  557. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/limits.py +0 -0
  558. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/loader.py +0 -0
  559. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/models.py +0 -0
  560. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/prompt.py +0 -0
  561. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/websearch/tool.py +0 -0
  562. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/__init__.py +0 -0
  563. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/backend.py +0 -0
  564. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/limits.py +0 -0
  565. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/models.py +0 -0
  566. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/prompt.py +0 -0
  567. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/tool.py +0 -0
  568. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/tools/write/validator.py +0 -0
  569. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/__init__.py +0 -0
  570. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/cwd.py +0 -0
  571. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/host_platform.py +0 -0
  572. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/path.py +0 -0
  573. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/path_hierarchy.py +0 -0
  574. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/path_user_input.py +0 -0
  575. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/rg_executable.py +0 -0
  576. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/subprocess_text.py +0 -0
  577. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/temp_paths.py +0 -0
  578. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/tool_paths.py +0 -0
  579. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/tool_result_storage.py +0 -0
  580. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/unc_path.py +0 -0
  581. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/win_reserved_paths.py +0 -0
  582. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/utils/windows_paths.py +0 -0
  583. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/__init__.py +0 -0
  584. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/batch.py +0 -0
  585. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/dag.py +0 -0
  586. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
  587. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
  588. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
  589. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
  590. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
  591. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
  592. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
  593. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
  594. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/event_adapter/types.py +0 -0
  595. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/node.py +0 -0
  596. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/__init__.py +0 -0
  597. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/chaining.py +0 -0
  598. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
  599. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
  600. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
  601. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/patterns/routing.py +0 -0
  602. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/runtime.py +0 -0
  603. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workflow/state.py +0 -0
  604. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/__init__.py +0 -0
  605. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/boundary.py +0 -0
  606. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/capabilities.py +0 -0
  607. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/errors.py +0 -0
  608. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/grant.py +0 -0
  609. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/l3_root_grant.py +0 -0
  610. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
  611. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/resolver.py +0 -0
  612. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/root_grant_manager.py +0 -0
  613. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/validators.py +0 -0
  614. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx/workspace/view.py +0 -0
  615. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
  616. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
  617. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/requires.txt +0 -0
  618. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/langchain_agentx_python.egg-info/top_level.txt +0 -0
  619. {langchain-agentx-python-1.0.5 → langchain-agentx-python-1.0.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: LangChain/LangGraph-based agent utilities for CodeBaseX.
5
5
  Author-email: GoodMood2008 <GoodMood2008@users.noreply.github.com>
6
6
  License: Apache License
@@ -11,7 +11,7 @@ from langchain_agentx import create_loop_agent
11
11
  ```
12
12
  """
13
13
 
14
- __version__ = "1.0.5"
14
+ __version__ = "1.0.7"
15
15
 
16
16
  from .loop import ( # noqa: F401
17
17
  create_loop_agent,
@@ -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.py Query Source 单一来源与 Loop 守卫策略
2
+ query_source 守卫策略(Compaction / Fork / UI 路由)。
3
3
 
4
4
  职责:
5
- 定义所有 query_source 官方常量,并提供 autocompact / microcompact /
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
- 不实现 fork 执行与 Coordinator 触发;仅提供常量与策略判定基座。
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._dynamic_sections.extend(
450
- AgentMemoryPromptBootstrap(
451
- workspace_cfg=self._workspace_cfg,
452
- is_subagent=self._config.subagent.is_subagent,
453
- subagent_type=self._config.subagent.subagent_type,
454
- available_tools=self._loader_tools,
455
- ).build_sections()
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
- agent_memory_extractor=get_default_agent_memory_extraction_coordinator(),
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
- tool_node=runtime_tools_node,
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
- if provider_chain:
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
- "pending_task_batch_id": None,
1246
- "pending_task_command_ids": [],
1247
- "task_events": task_events,
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
- "messages": messages,
1314
- "pending_task_batch_id": encode_provider_batch_id(
1315
- provider_index, batch.batch_id
1316
- ),
1317
- "pending_task_command_ids": list(batch.command_ids),
1318
- "task_events": task_events,
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 provider_chain:
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 provider_chain:
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 provider_chain and "task_event_commit_ack" not in loop_controller_destinations:
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
- agent_memory_extractor: Any | None = None
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
- tool_node: ToolNode | None,
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
- allowed_tool_names: Set[str] = set()
491
-
492
- # 1) Tools executed via ToolNode (client-side BaseTool / callables)
493
- if tool_node:
494
- allowed_tool_names.update(tool_node.tools_by_name.keys())
495
-
496
- # 2) Provider-side tools (dict format) passed through to the LLM
497
- for t in built_in_tools:
498
- name_attr = t.get("name") if isinstance(t, dict) else None
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
+ )